Я хочу отключить tcp-offloading («TOE») на своих серверах debian.
ethtool -K .....
Но у меня есть несколько пожеланий:
Интегрируйте его в debian
Это гласит: no rc.local, я бы также хотел избежать псевдо-rc-скриптинга ...
Я бы предположил, что это установка ethtool и использование pre-up.d /-Хук, который деконфигурирует TOE, используя параметры из / и т.д. / сеть / интерфейсы.
Я хотел бы отключить все мои (будущие) серверы обычным образом, используя FAI. (поскольку fai уже установлен - и нужен!) А как насчет опций toe, которые не поддерживаются некоторым оборудованием? Не сработает ли сеть, если нужно отключить несуществующий параметр? Я думаю, что это должно быть надежным, чтобы этого не делать, но это тоже не кажется моим желаемым решением.
Очень загромождает конфиг, так как на атм есть 11 вариантов! Использование нескольких сетевых адаптеров кажется мне предрасположенным к ошибкам.
Нет ли более универсального решения? Я имею в виду sysctl, но пока не нашел. Мое желание было:
echo 0 > /proc/sys/net/core/enable_tcp_offloading
PS: Я очень удивлен, обнаружив, что на моем "новом оборудовании" по умолчанию включен TOE, из-за этого: http://www.linuxfoundation.org/collaborate/workgroups/networking/toe
В Debian ethtool
пакет теперь предоставляет if-up.d
скрипт, реализующий варианты разгрузки (и другие ethtool
настройки).
Вам просто нужно установить этот пакет и добавить подобные строки в интерфейс в/etc/network/interfaces
.
auto eth0
iface eth0 inet static
address 10.0.3.1/255.255.248.0
gateway 10.0.2.10
offload-tx off
offload-sg off
offload-tso off
Эврика! Нашел "свое" решение!
Я просто кладу свои отключенный носок Скрипт в /etc/network/if-up.d/ который полностью отключает tcp-offloading.
В качестве бонуса я добавил / и т.д. / сеть / интерфейсы-Опция, отключающая это.
#!/bin/bash
RUN=true
case "${IF_NO_TOE,,}" in
no|off|false|disable|disabled)
RUN=false
;;
esac
if [ "$MODE" = start -a "$RUN" = true ]; then
TOE_OPTIONS="rx tx sg tso ufo gso gro lro rxvlan txvlan rxhash"
for TOE_OPTION in $TOE_OPTIONS; do
/sbin/ethtool --offload "$IFACE" "$TOE_OPTION" off &>/dev/null || true
done
fi
Не по теме (вроде), но я оказался здесь, когда пытался выяснить, как сделать то же самое для некоторых серверов RHEL6. Так что, если кто-то ищет то же самое для дистрибутивов, подобных RHEL / CentOS / Fedora, вы найдете ответ Вот.
Если вы используете систему, которая использует Netplan (например, Ubuntu) для настройки сети, тогда вы можете использовать Пост-ап скрипт Netplan настроить разгрузку. Как упоминалось в ответ на другой вопрос.
Вы создаете сценарий в следующем каталоге с именем с префиксом числа, чтобы указать порядок загрузки, например. /etc/networkd-dispatcher/routable.d/40-offloading-config
- который является исполняемым и принадлежит root. например Чтобы отключить разгрузку сегмента TCP на eth0:
#!/bin/sh
/sbin/ethtool -K eth0 tso off