브리지에서 VLAN 작업을 하고 있는데 브리지에 비VLAN 인터페이스를 추가하면 모든 VLAN 인터페이스가 중단되는 것을 발견했습니다. 즉, 패킷은 정상적으로 나가지만 반환 패킷(적절한 VLAN 태그 포함)은 어딘가에서 삭제됩니다. 브리지에서 비VLAN 인터페이스를 제거하자 VLAN 인터페이스가 다시 작동하기 시작했습니다.
그 이유는 무엇입니까? 이것은 버그입니까?
가능한 문제를 해결하려면:
#setup bridges and vlans
vconfig add eth0 2
vconfig add eth0 3
brctl addbr br2
brctl addbr br3
brctl addif br2 eth2.2
brctl addif br3 eth2.3
ip link set dev br2 up
ip link set dev br3 up
#wait for forwarding state and test
arping -I br2 10.10.10.1
#this works - I get replies
arping -I br3 192.168.1.1
#this works - I get replies
brctl addbr br0
brctl addif eth0
arping -I br2 10.10.10.1
#broken - no replies. Wireshark shows reply packets coming in exactly as before.
arping -I br3 192.168.1.1
#also broken
ip link set br0 up
#wait for forwarding mode, then...
arping -I br3 192.168.1.1
#still broken
brctl delif br0 eth0
arping -I br3 192.168.1.1
#working again!
답변1
특정 예에서는 br0
패킷이 소비되고 있지만 eth0
VLAN 코드가 패킷을 선택하지 않습니다. 이는 아마도 올바른 동작일 것입니다.
브리지에 트렁크 포트를 추가하려면 브리지 외부에서 VLAN을 실행해야 합니다.
brctl addbr br0
brctl addif br0 eth0
ip link set br0 up
vconfig add br0 2
brctl addbr br2
brctl addif br2 br0.2
ip link set br2 up
vconfig add br0 3
brctl addbr br3
brctl addif br3 br0.3
ip link set br3 up
브리지와 VLAN 설정이 없어서 테스트할 수는 없지만 제겐 이해가 됩니다. 이는 VLAN 또는 브리지가 eth0의 패킷을 소비하는지 여부 간의 충돌을 제거하고 계층화를 명확하게 만듭니다.