eu quero desabilitardescarregamento tcp(TOE) em meus servidores Debian. Eu usaria algo como:
ethtool -K …
Porém, tenho alguns desejos: é possível integrá-lo de forma limpa ao Debian?
Isto diz: não rc.local
, eu também gostaria de evitar scripts pseudo-rc.
Eu acho que está instalando ethtool
e usando o pre-up.d/hook que desconfigura o TOE usando opções de /etc/network/interfaces
.
Gostaria de desconfigurar todos os meus (futuros) servidores de maneira genérica usando FAI (já que o FAI já está em vigor - e é desejado!).
E quanto às opções de dedo do pé que não são suportadas em alguns hardwares? A rede falhará se uma opção inexistente for desativada? Acho que deveria ser robusto não fazer isso, mas essa também não parece ser a solução que desejo.
Isso atrapalha muito a configuração, já que no atm são 11 opções! Usar várias NICs parece propenso a erros para mim.
Não existe uma solução mais genérica? Tenho um sysctl em mente, mas ainda não encontrei um. Meu desejo era:
echo 0 > /proc/sys/net/core/enable_tcp_offloading
PS: Estou bastante surpreso ao descobrir que meu "hardware mais recente" tem o TOE habilitado por padrão, por causa deesse.
Responder1
No Debian, o ethtool
pacote agora fornece um if-up.d
script que implementa opções de descarregamento (e outras ethtool
configurações).
Você só precisa instalar este pacote e adicionar linhas como essas à interface em /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
Responder2
Eureca! Encontrei a "minha" solução!
Estou simplesmente colocando o meu própriodesabilitar o dedo do péRoteiro em/etc/network/if-up.d/que desativa completamente o descarregamento do TCP.
Como bônus, adicionei um/etc/rede/interfaces-Opção, que desativa isso.
#!/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
Responder3
Fora do tópico (mais ou menos), mas acabei aqui tentando descobrir como fazer a mesma coisa para alguns servidores RHEL6. Então, se alguém estiver procurando a mesma coisa para distribuições do tipo RHEL/CentOS/Fedora, você encontrará a respostaaqui.
Responder4
Se você estiver usando um sistema que usaNetplan(por exemplo, Ubuntu) para configurar a rede, então você pode usar umScript de post-up do Netplanpara configurar o descarregamento. Como mencionado em umresponderpara outra pergunta.
Você cria um script no diretório a seguir com um nome prefixado por um número para indicar a ordem de carregamento, por exemplo /etc/networkd-dispatcher/routable.d/40-offloading-config
- que é executável e de propriedade do root. por exemplo, para desativar o descarregamento de segmento TCP na eth0:
#!/bin/sh
/sbin/ethtool -K eth0 tso off