데비안 서버에서 tcp-offloading ( “TOE”)을 비활성화하고 싶습니다.
ethtool -K .....
그래도 몇 가지 소원이 있습니다.
데비안에 깔끔하게 통합
이것은 rc.local이 아니라 pseudo-rc-scripting을 피하고 싶습니다 …
ethtool을 설치하고 pre-up.d / -Hook을 사용하여 / etc / network / interfaces의 옵션을 사용하여 TOE를 구성 해제 한다고 생각합니다 .
FAI를 사용하여 모든 (미래) 서버를 일반적인 방식으로 구성 해제하고 싶습니다 . (실패가 이미 존재하고 싶었 기 때문에!) 일부 하드웨어에서 지원되지 않는 발가락 옵션은 어떻습니까? 존재하지 않는 옵션을 비활성화해야 네트워킹이 실패합니까? 그렇게하지 않는 것이 강력해야한다고 생각하지만 이것은 내가 원하는 해결책이 아닌 것 같습니다.
atm에는 11 가지 옵션이 있기 때문에 구성이 매우 복잡합니다! 여러 개의 NIC를 사용하면 오류가 발생하기 쉽습니다.
더 일반적인 해결책이 없습니까? 나는 sysctl을 염두에두고 있지만 아직 찾지 못했습니다. 내 소원은 :
echo 0 > /proc/sys/net/core/enable_tcp_offloading
추신 : 다음과 같은 이유로 기본적으로 TOE를 활성화 할 수있는 “최신 하드웨어”를 찾게되어 매우 놀랐습니다. http://www.linuxfoundation.org/collaborate/workgroups/networking/toe
답변
데비안에서 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
답변
유레카! “내”솔루션을 찾았습니다!
tcp-offloading을 완전히 비활성화하는 /etc/network/if-up.d/에 자체 비활성화 스크립트 를 배치하고 있습니다 .
보너스로 / 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