Je veux désactiver tcp-offloading ("TOE") sur mes serveurs Debian.
ethtool -K .....
J'ai cependant quelques souhaits:
Intégrez-le proprement dans Debian
Cela se lit: pas de rc.local, je voudrais aussi éviter les pseudo-rc-scripts ...
Je suppose que c'est installer ethtool et utiliser le pre-up.d / - Crochet qui déconfigure la TOE en utilisant les options de /etc/network/interfaces.
Je voudrais déconfigurer tous mes (futurs) serveurs de manière générique en utilisant [~ # ~] fai [~ # ~]. (puisque fai est déjà en place - et recherché!) Qu'en est-il des options d'orteils qui ne sont pas prises en charge sur certains matériels? La mise en réseau échouera-t-elle si une option non existante doit être désactivée? Je suppose que cela ne devrait pas être le cas, mais cela ne semble pas non plus être ma solution souhaitée.
Il encombre beaucoup la config, puisque atm il y a 11 options! L'utilisation de plusieurs cartes réseau me semble sujette aux erreurs.
N'y a-t-il pas une solution plus générique? J'ai un sysctl en tête, mais je n'en ai pas encore trouvé. Mon souhait était:
echo 0 > /proc/sys/net/core/enable_tcp_offloading
PS: je suis assez surpris de trouver mes "nouveaux matériels" pour que TOE soit activé par défaut, pour cette raison: http://www.linuxfoundation.org/collaborate/workgroups/networking/toe
Eureka! J'ai trouvé "ma" solution!
Je place simplement mon propre disable-toe Script dans / etc/network/if-up.d / qui désactive complètement le déchargement de TCP.
En bonus, j'ai ajouté une option / etc/network/interfaces -, qui désactive cela.
#!/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
Sur Debian, le package ethtool
fournit maintenant un if-up.d
script qui implémente les options de déchargement (et d'autres paramètres ethtool
).
Il vous suffit d'installer ce package et d'ajouter des lignes comme celles-ci à l'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
Hors sujet (en quelque sorte) mais je me suis retrouvé ici en essayant de comprendre comment faire la même chose pour certains serveurs RHEL6. Donc, si quelqu'un cherche la même chose pour les distributions RHEL/CentOS/Fedora, vous trouverez la réponse ici .