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