我想禁用TCP 解除安裝(TOE) 在我的 Debian 伺服器上。我會使用類似的東西:
ethtool -K …
不過,我有一些願望:是否可以將其乾淨地整合到 Debian 中?
內容如下:不rc.local
,我還想避免偽 rc 腳本。
我猜想,它正在安裝ethtool
和使用 pre-up.d/hook,它使用 中的選項取消配置 TOE /etc/network/interfaces
。
我想使用 FAI 以通用方式取消配置我的所有(未來)伺服器(因為 FAI 已經到位 - 並且需要!)。
某些硬體不支援腳趾選項怎麼辦?如果停用不存在的選項,網路會失敗嗎?我想不這樣做應該是穩健的,但這似乎也不是我想要的解決方案。
它使配置非常混亂,因為 atm 有 11 個選項!使用多個網路卡對我來說這很容易出錯。
難道沒有更通用的解決方案嗎?我心裡有一個 sysctl,但還沒找到。我的願望是:
echo 0 > /proc/sys/net/core/enable_tcp_offloading
聚苯乙烯:我很驚訝地發現我的「新硬體」預設啟用了 TOE,因為這。
答案1
在 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
答案2
尤里卡!找到“我的”解決方案!
我只是簡單地放置我自己的禁用腳趾腳本在/etc/network/if-up.d/這會完全禁用 tcp 卸載。
作為獎勵我添加了一個/etc/網路/接口-選項,停用此功能。
#!/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
答案3
偏離主題(有點),但當我試圖弄清楚如何對某些 RHEL6 伺服器執行相同的操作時,我最終來到了這裡。因此,如果有人正在為 RHEL/CentOS/Fedora 等發行版尋找相同的東西,您會找到答案這裡。
答案4
如果您使用的系統使用網路計劃(例如Ubuntu)設定網路然後你可以使用Netplan 後期腳本配置卸載。正如在一篇文章中所提到的回答另一個問題。
您可以在以下目錄中建立腳本,其名稱以數字為前綴,以指示載入順序,例如/etc/networkd-dispatcher/routable.d/40-offloading-config
- 該腳本是可執行的並由 root 擁有。例如,要關閉 eth0 上的 TCP 分段卸載:
#!/bin/sh
/sbin/ethtool -K eth0 tso off