ブリッジに非VLANインターフェイスを追加すると、VLANインターフェイスがハングするのはなぜですか?

ブリッジに非VLANインターフェイスを追加すると、VLANインターフェイスがハングするのはなぜですか?

ブリッジで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パケットが消費されていますが、eth0VLAN コードはパケットを選択しません。これはおそらく正しい動作です。

ブリッジにトランクポートを追加するには、ブリッジの外部で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 のパケットを消費するかどうか間の競合がなくなり、階層化が明確になります。

関連情報