Proxmox 를 설치한 AOOSTAR WTR PRO 에서 업데이트 후(?) 간헐적인 네트워크 먹통 증상이 발생하여 해결한 방법입니다.
인텔 2.5GbE(Intel I225-V) NIC에 문제가 있는 것으로 보입니다.
1. 환경 예시
1) 방에 인터넷 공유기로부터 나온 케이블 한개만 들어오고 PC 2대 모두 인터넷 사용 필요
2) AOOSTAR 2포트를 활용해서, 포트1번(eno1/vmbr0)은 인터넷 케이블 연결, 포트2번(ensp3s0/vmbr1)은 PC 1대에 연결
2. 증상
PROXMOX 내부에서 외부(공유기, 연결된 PC 등)로는 통신이 되는데, 반대로는 불가
3. 1차 대응
- PVE 서버에 root 직접 접속 후, networking 서비스 재시작, 정상화
# systemctl restart networking
4. 후속 대응
1) 모든 네트워크 인터페이스에 아래 구문을 넣어서 offloading 기능 해제 (약간의 성능 이득 보다 안정성이 우선)
post-up /sbin/ethtool -K $IFACE tso off gso off gro off
post-down /sbin/ethtool -K $IFACE tso on gso on gro on || true
2) 모든 interface에 대해 현재 상황 확인
- 아래 세개가 켜져 있으면 문제가 될 수 있음
# ethtool -k eno1 | grep offload
tcp-segmentation-offload: on (tso)
generic-segmentation-offload: on (gso)
generic-receive-offload: on (gro)
3) offloading off 설정 예시
# vi /etc/network/interfaces
auto lo
iface lo inet loopback
# 외부 인터넷 인터페이스 (vmbr0 경유)
iface eno1 inet manual
post-up /sbin/ethtool -K $IFACE tso off gso off gro off
post-down /sbin/ethtool -K $IFACE tso on gso on gro on || true
# 내부 통신 인터페이스 (vmbr1 경유, 9K MTU)
iface enp3s0 inet manual
mtu 9000
post-up /sbin/ethtool -K $IFACE tso off gso off gro off
post-down /sbin/ethtool -K $IFACE tso on gso on gro on || true
# 외부 인터넷 브리지
auto vmbr0
iface vmbr0 inet static
address 192.168.0.2/24
gateway 192.168.0.1
bridge-ports eno1
bridge-stp off
bridge-fd 0
bridge-maxwait 0
post-up /sbin/ethtool -K $IFACE tso off gso off gro off
post-down /sbin/ethtool -K $IFACE tso on gso on gro on || true
# 내부 통신 브리지 (NAT+MASQUERADE)
auto vmbr1
iface vmbr1 inet static
mtu 9000
address 10.10.10.1/24
bridge-ports enp3s0
bridge-stp off
bridge-fd 0
bridge-maxwait 0
post-up iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o vmbr0 -j MASQUERADE
post-up /sbin/ethtool -K $IFACE tso off gso off gro off
post-down iptables -t nat -D POSTROUTING -s 10.10.10.0/24 -o vmbr0 -j MASQUERADE
post-down /sbin/ethtool -K $IFACE tso on gso on gro on || true
source /etc/network/interfaces.d/*
4) 설정 검증 ( ifquery 는 모든 라인이 [pass] 또는 []이어야 함, 아닌 경우, 원복 후 재확인 )
# ifup --no-act -av
# ifquery --check -a
5) 변경 사항 반영 (또는 리부팅)
# ifreload -a
6) 확인
- 아래 세개가 꺼진 것 확인
# ethtool -k eno1 | grep offload
tcp-segmentation-offload: off (tso)
generic-segmentation-offload: off (gso)
generic-receive-offload: off (gro)
7) 기타 (필요 시)
cat >> /etc/sysctl.conf << EOF
# Proxmox 네트워킹 최적화
net.ipv4.conf.all.arp_ignore = 2
net.ipv4.conf.all.rp_filter = 2
# Masquerading (인터넷 공유 시에만 추가)
net.ipv4.ip_forward=1
EOF
# 적용
sysctl -p