web-dev-qa-db-fra.com

Désactiver le déchargement TCP {complètement, génériquement et facilement}

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

15
Michuelnik

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
7
Michuelnik

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
13
hmlth

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 .

0
PaddyD