Linux仮想ブリッジはVLANをサポートしていますか?

Linux仮想ブリッジはVLANをサポートしていますか?

Linux仮想ブリッジ(たとえば、ipまたはで設定brctl)はVLANをサポートしていますか?たとえば、異なるVLANにアクセスポートを設定し、特定のVLANに対してのみトランクポートをイネーブルにします。私のカーネルの唯一のオプション(3.2.0-4-686-pae)VLANとブリッジに関する設定ファイルがありますが、CONFIG_BRIDGE_EBT_VLAN私が理解したように、これは802.1q VLANフィールドでフィルタリングできますebtables

答え1

問題ありません。これは、ほとんどのopenWRTシステムがWLANとスイッチポートを同じLANに接続する方法です。以下は、2つのWi-Fiネットワーク(個人用とゲスト用)を持つ私のopenWRTシステムの構成例です。

# brctl show
bridge name     bridge id               STP enabled     interfaces
br-vlan2        7fff.a0f3c15eb708       no              eth0.2
                                                        wlan0
                                                        wlan1
br-vlan3        7fff.a0f3c15eb708       no              eth0.3
                                                        wlan0-1
                                                        wlan1-1

さらなる説明:

一般的なopenwrtハードウェア(上記のTP-Link WDR4300)には、すべての物理ポートを処理するスイッチがあります。時々、物理WANポートはethSoC CPUの別々のインターフェイスです。スイッチはトランクを介してCPUに接続されます(この接続のパケットにはVLANタグ付き)。したがって、eth0.2はVLAN2であり、4つの物理スイッチポートにのみ接続され、VLANタグが削除されました。

したがって、br-vlan2はCPUからスイッチへの接続が1つしかないため、必要に応じてVLANを使用する「LANネットワーク」と簡単に考える必要があります。

Linux のイーサネット ブリッジは、VLAN と物理インターフェイスをメンバーとして持つことができます。 VLANインターフェイスは、物理インターフェイスと同様に、独自のルーティング、ファイアウォールなどを備えたLinuxの物理インターフェイスのように動作するため、これが私が期待したものです。後続の狂乱を気にしない場合は、ブリッジに別のVLANを追加できることを願っています。 :)

VLANタグ付きトラフィックも転送するなど、物理インターフェイスをブリッジしたことはありませんeth0。タグ付きパケットもブリッジされるかどうかわかりません。

答え2

1つの秘密は、vconfigコマンドを使用してVLANトラフィックを転送できることをブリッジに明示的に通知することです。以下のコードはコマンドラインでこれを行い、再起動後に消えます。再起動時にこれを行うには、次を参照してください。https://serverfault.com/questions/414115/linux-vlans-over-bridge

brctl addbr br0
brctl addif br0 eth0
vconfig add br0 100
ifconfig br0.100  127.16.0.128 netmask 255.255.255.0

上記のifconfigはbr0とeth0が接続されているため、eth0でも機能します。

関連情報