Distriggers TCP-Offload {completamente, genericamente e facilmente}

Desidero disabilitare il tcp-offloading ("TOE") nei miei server debian.

ethtool -K ..... 

Ho alcuni desideri, però:

Integrarlo in modo debole in debian

Questo legge: no rc.local, vorrei anche evitare pseudo-rc-scripting …

Immagino, sta installando ethtool e usando il pre-up.d / -Hook che deconfigura TOE usando le opzioni da / etc / network / interfaces .

Vorrei deconfiggere tutti i miei (futuri) server in modo generico utilizzando FAI . (poiché Fai è già in atto – e voleva!). Che cosa circa le opzioni di punta che non sono supportte in alcuni hardware? La networking non riesce se un'opzione non esistente dovrebbe essere distriggersta? Penso che dovrebbe essere robusto non farlo, ma questo non sembra essere la mia scelta voluta.

Si blocca molto la configuration, in quanto ci sono 11 opzioni! Utilizzando più NIC questo mi odia di errore.

Non esiste una soluzione più generica? Ho un sysctl in mente, ma non l'ho trovato ancora. Il mio desiderio era:

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

PS: Sono abbastanza sorpreso di trovare i miei "hardver più recenti" per avere TOE abilitato per impostazione predefinita, a causa di questo: http://www.linuxfoundation.org/collaborate/workgroups/networking/toe

3 Solutions collect form web for “Distriggers TCP-Offload {completamente, genericamente e facilmente}”

Eureka! Trovato la "mia" soluzione!

Stavo semplicemente posizionando il mio script disable-toe in /etc/network/if-up.d/ che distriggers completamente il tcp-offload.

Come bonus ho aggiunto un'applicazione / etc / network / interfaces , che distriggers questo.

 #!/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 

Su Debian, il pacchetto if-up.d fornisce ora uno script if-up.d che implementa le opzioni per il rilascio (e altre impostazioni di ethtool ).

Basta installare questo pacchetto e aggiungere linee come queste all'interface in /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 

Off topic (tipo) ma ho finito qui quando cerco di capire come fare la stessa cosa per alcuni server RHEL6. Quindi, se qualcuno sta cercando la stessa cosa per le distribuzioni RHEL / CentOS / Fedora, troverai qui la risposta.

Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.