ブリッジに接続されているイーサネットポートがあります。
$ brctl show
bridge name bridge id STP enabled interfaces
eth0_bridge 8000.6a612bcc4723 yes eth0
ブリッジはVLAN対応です(つまり、/sys/class/net/eth0_bridge/bridge/vlan_filtering
は1
です)。次のように、そのブリッジに他のインターフェースを追加し、それらにVLANを割り当てることができるようにしたいと思います。
ip link set eth1 master eth0_bridge
bridge vlan add dev eth1 vid 10 pvid untagged
これにより、eth1のタグなしトラフィックがVLAN 10がeth0に接続されます。ただし、次のようになるまでトラフィックは通過しません。
bridge vlan add dev eth0 vid 10
これを実行すると、必要に応じてすべてが機能します。しかし、eth0
がブリッジのトランクポートeth0_bridge
であり、all VLANを伝送し、VLAN =ブリッジからの出力をフィルタリングしますか?
bridge vlan
コマンドを使用すると、VLAN IDの範囲をシングルショットで追加(または削除)できます。次に例を示します。
# bridge vlan add vid 2-4094 dev eth0
使用可能なすべてのVLANをトランクインターフェイスに追加しますeth(0と4095はプロトコルで予約されており、使用できません(使用できない)。1はデフォルトでPVID untagged VLAN IDなので、回避するか、おそらくより良い方法で削除する必要があります)。
# bridge vlan show dev eth0
eth0 1 PVID Egress Untagged
2
3
[...]
4093
4094
# bridge -c vlan show dev eth0
port vlan ids
eth0 1 PVID Egress Untagged
2-4094
ここに -c
を意味する -c[ompressvlans]
のではなく -c[olor]
:ブリッジのマニュアルページ(少なくともiproute2-ss191125まで)には、このオプションに関する情報がまったくありません。
範囲の削除は、期待どおりに機能します。
# bridge vlan del vid 100-200 dev eth0
# bridge -c vlan show
port vlan ids
bridge0 1 PVID Egress Untagged
eth1 1 Egress Untagged
10 PVID Egress Untagged
eth0 1 PVID Egress Untagged
2-99
201-4094
内部的にはすべて、個々のVLANの( ハッシュ )リストを使用して処理されます。
注1
Cumulus Networks(ネットワーク機器でほとんどLinuxのネイティブネットワークスタックを使用することが知られています)には、これに関する old (および newer )の例がいくつかあります。
次のブリッジの例を考えてみます。
auto bridge iface bridge bridge-vlan-aware yes bridge-ports swp1 swp9 bridge-vids 2-100 bridge-pvid 101 bridge-stp on
VLANその構成のメンバーシップ)は次のとおりです。
cumulus@switch$ bridge -c vlan show portvlan ids swp1 101 PVID Egress Untagged 2-100 swp9 101 PVID Egress Untagged 2-100 bridge 101
使用される構成ファイルは interfaces ifupdown2からのファイル (およびその アドオン )であり、Cumulus Networksが実際に開発して交換したもの ifupdown 、ほとんど互換性のある構文ですが、大幅に改善されたブリッジとVLANサポート。
注2
すべてのVLANをブリッジポートに自動的にフラッディングする特別なフラグの証拠は見つかりませんでした。この カーネルコミット は、VID 4095がIEEE 802.1Qで文書化されて制限があることを示しますが、使用が許可されています管理操作用 VIDのワイルドカード一致として使用されますが、Linuxでは使用できませんそのような方法を使用しているようです。