web-dev-qa-db-ja.com

TCPオフロードを無効にする{完全に、一般的に、簡単に}

私のdebianサーバーでtcp-offloading( "TOE")を無効にしたい。

ethtool -K .....

しかし、私にはいくつかの願いがあります。

debianに完全に統合します

これは次のようになります:rc.localはありません。疑似rcスクリプトの記述も避けたいです...

私は推測するでしょう、それはethtoolをインストールし、pre-up.d /-Hookを使用して、/ etc/network/interfaces

[〜#〜] fai [〜#〜]を使用して、一般的な方法ですべての(将来の)サーバーを構成解除したいと思います。 (faiがすでに設置されているため-そして欲しかった!)一部のハードウェアでサポートされていないトーオプションについてはどうですか?存在しないオプションを無効にする必要がある場合、ネットワークは失敗しますか?そうしないことが堅牢である必要があると思いますが、これも私の望んだ解決策ではないようです。

Atmには11のオプションがあるため、設定が非常に煩雑になります。複数のNICを使用すると、エラーが発生しやすくなります。

より一般的な解決策はありませんか?私はsysctlを念頭に置いていますが、まだ見つけていません。私の望みは:

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

PS:このため、「新しいハードウェア」でデフォルトでTOEが有効になっていることに驚いています。 http://www.linuxfoundation.org/collaborate/workgroups/networking/toe

15
Michuelnik

ユーレカ! 「私の」解決策が見つかりました!

私は自分のdisable-toeスクリプトを/ etc/network/if-up.d /に配置するだけで、tcpオフロードを完全に無効にします。

おまけとして、これを無効にする/ etc/network/interfaces-Optionを追加しました。

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

Debianでは、ethtoolパッケージが、オフロード(およびその他のethtool設定)のオプションを実装するif-up.dスクリプトを提供するようになりました。

このパッケージをインストールして、このような行をインターフェイス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

オフトピック(一種)ですが、一部のRHEL6サーバーで同じことを行う方法を理解しようとしたときに、ここで終わりました。したがって、誰かがRHEL/CentOS/Fedoraディストリビューションと同じものを探しているなら、答えは here です。

0
PaddyD