Linux
禁用 TCP 解除安裝 {完全、一般和輕鬆}
我想在我的 debian 伺服器上禁用 tcp-offloading(“TOE”)。
ethtool -K .....
不過,我有一些願望:
將其乾淨地集成到 debian 中
上面寫著:沒有 rc.local,我也想避免偽 rc 腳本……
我猜,它正在安裝 ethtool 並使用pre-up.d/ -Hook 使用*/etc/network/interfaces*中的選項取消配置 TOE 。
我想使用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
在 Debian 上,該
ethtool
軟體包現在提供了一個if-up.d
腳本,用於實現解除安裝選項(和其他ethtool
設置)。你只需要安裝這個包並在
/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
尤里卡!找到“我的”解決方案!
我只是將我自己的disable-toe腳本放在*/etc/network/if-up.d/*中,它完全禁用了 tcp-offloading。
作為獎勵,我添加了一個*/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