Отключить TCP-разгрузку {полностью, обобщенно и легко}
Я хочу отключить tcp-offloading ("TOE") на моих серверах Debian.
ethtool -K .....
У меня есть некоторые пожелания, хотя:
Интегрируйте его в Debian
Это гласит: нет rc.local, я также хотел бы избежать псевдо-rc-сценариев...
Я предполагаю, что он устанавливает ethtool и использует pre-up.d /-Hook, который деконфигурирует ОО, используя параметры из / etc / network / interfaces.
Я хотел бы деконфигурировать все мои (будущие) серверы в общем виде с использованием FAI. (поскольку fai уже есть - и хотел!) А как насчет опций, которые не поддерживаются на некоторых аппаратных средствах? Будет ли сбой в сети, если отключить несуществующую опцию? Я полагаю, это должно быть надежно, чтобы не делать этого, но это тоже, похоже, не мое решение.
Конфиг очень сильно загромождает, так как у него 11 вариантов! При использовании нескольких сетевых карт это пахнет ошибкой для меня.
Разве нет более общего решения? Я имею в виду sysctl, но пока не нашел. Мое желание было:
echo 0 > /proc/sys/net/core/enable_tcp_offloading
PS: я очень удивлен, обнаружив, что на моем "новом оборудовании" по умолчанию включена поддержка ОО, из-за этого: http://www.linuxfoundation.org/collaborate/workgroups/networking/toe
3 ответа
Эврика! Нашел "мое" решение!
Я просто помещаю свой скрипт Script- Toe в /etc/network/if-up.d/, который полностью отключает tcp-разгрузку.
В качестве бонуса я добавил / etc / network / interfaces-Option, который отключает это.
#!/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
На 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
Если вы используете систему, которая использует Netplan (например, Ubuntu) для настройки сети, вы можете использовать post-up скрипт Netplan для настройки разгрузки. Как уже упоминалось в ответе на другой вопрос.
Вы создаете сценарий в следующем каталоге с именем с префиксом номера, чтобы указать порядок загрузки, например
/etc/networkd-dispatcher/routable.d/40-offloading-config
- который является исполняемым и принадлежит root. например, чтобы отключить разгрузку сегмента TCP на eth0:
#!/bin/sh
/sbin/ethtool -K eth0 tso off
Не по теме (вроде), но я оказался здесь, когда пытался понять, как сделать то же самое для некоторых серверов RHEL6. Поэтому, если кто-то ищет то же самое для дистрибутивов, подобных RHEL/CentOS/Fedora, вы найдете ответ здесь.