Desativar o TCP-Offloading {completa, genericamente e facilmente}

13

Eu quero desativar o tcp-offloading ("TOE") nos meus servidores Debian.

ethtool -K .....

Eu tenho alguns desejos, no entanto:

Integre-o de forma limpa ao debian

Isto diz: no rc.local, eu também gostaria de evitar o pseudo-rc-scripting ...

Eu acho, ele está instalando o ethtool e usando o pre-up.d / -Hook que desconfigura o TOE usando opções de / etc / network / interfaces .

Eu gostaria de desconfigurar todos os meus (futuros) servidores de maneira genérica usando FAI . (já que a fai já está no lugar - e queria!) E as opções do toe que não são suportadas em algum hardware? A rede falhará se uma opção não existente for desativada? Eu acho que deve ser robusto não fazê-lo, mas isso não parece ser a minha solução desejada, também.

Ele atravessa muito a configuração, já que o atm tem 11 opções! Usando vários NICs, isso cheira a erros.

Não há uma solução mais genérica? Eu tenho um sysctl em mente, mas ainda não encontrei nenhum. Meu desejo era:

echo 0 > /proc/sys/net/core/enable_tcp_offloading

PS: Estou muito surpreso ao encontrar meus "hardwares mais novos" para ter o TOE ativado por padrão, por causa disso: link

    
por Michuelnik 28.08.2012 / 15:21

3 respostas

8

Eureka! Encontrei a "minha" solução!

Estou simplesmente colocando meu próprio script disable-toe em /etc/network/if-up.d / que desativa totalmente o descarregamento de tcp.

Como bônus, adicionei uma / etc / network / interfaces

#!/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
    
por 29.08.2012 / 17:53
9

No Debian, o pacote ethtool agora fornece um script if-up.d que implementa opções para descarregamento (e outras configurações ethtool ).

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
    
por 12.05.2017 / 11:52
0

Off topic (tipo de) mas acabei aqui ao tentar descobrir como fazer a mesma coisa com alguns servidores RHEL6. Então, se alguém está procurando a mesma coisa para as distribuições RHEL / CentOS / Fedora, você encontrará a resposta aqui .

    
por 05.11.2014 / 11:42