web-dev-qa-db-ja.com

ブリッジインターフェイスとVLANタグ

タグなしのイーサネットネットワークをTAPトンネルに結合するシステムをセットアップしようとしています。トラフィックがトンネルに移動するときにVLANタグを追加します。

これまでのところ:

  • eth0-タグなしトラフィックを運ぶ物理イーサネットインターフェイス。
  • tap1-TAPトンネルインターフェイス。
  • br0-tap1(およびその他の物理インターフェース)を含むブリッジ

これを行うことで、イーサネット側にVLANタグを追加できることを知っています。

$ ip link add link eth0 name eth0.5 type vlan id 5
$ brctl addif br0 eth0.5

しかし、どうすればその逆ができますか?

編集私はこれができることがわかりました:

$ ip link add veth0 type veth peer name veth1
$ ip link add link veth0 name veth0.5 type vlan id 5
$ brctl addif br0 veth0.5
$ brctl addbr br1
$ brctl addif br1 eth0
$ brctl addif br1 veth1

これは私が望んでいることだと思います-2つのブリッジを作成し、それらに仮想イーサネットデバイスを接続して、VLANタグを付けます。もっと簡単なものはありますか?

3
Tom

はい:ブリッジをVLAN対応にするように設定できます。

次に、ブリッジはVLAN構成に応じてタグ付けとタグ付け解除を含む、それを横切るフレームに添付されたIDを処理し、指定されたVLANに属するフレームを送信しますVLANサブインターフェイスを使用する必要はありませんが、これらのサブインターフェイスは一部の設定で使用できます)。

この機能は廃止されたbrctlコマンドでは利用できませんが、新しい置換 bridge コマンドが必要です(通常の ip linkとともに) コマンド)。これはより簡単なセットアップです(1つのブリッジ、サブインターフェースなし)。

VLAN ID(VID)5のタグ付きブリッジポートとしてtap1を構成し、VID 5のeth0も構成しますが、タグなしとして設定します。出力はタグなし、およびこのVIDをPVIDとして(ポートVLAN ID):入力はブリッジ内でタグ付けされます。ポートごとにPVIDは1つだけです。

同時に、オプションでVLAN IDがデフォルトで各ポートに割り当てられた1のIDを削除します(より複雑な設定で複数のVLANが必要な場合を除いて))、クリーンな構成を維持します。

これまでの設定では、新しいコマンドは次のようになります。

ip link set eth0 up
ip link set tap1 up

# the following line could have directly included at bridge creation the additional parameter `vlan_filtering 1`
ip link add name br0 type bridge

ip link set tap1 master br0
ip link set eth0 master br0

特定のVLAN対応のブリッジ設定、機能をアクティブにすることから始めます:

ip link set dev br0 type bridge vlan_filtering 1

bridge vlan del dev tap1 vid 1
bridge vlan del dev eth0 vid 1

bridge vlan add dev tap1 vid 5
bridge vlan add dev eth0 vid 5 pvid untagged

ip link set br0 up

ブリッジの自己暗黙ポートはまだVID 1を使用しているため、一部の設定で行われるようにブリッジに直接IPを割り当てると、正しく通信できなくなります。そのような構成が本当に必要な場合は、ブリッジ自体のポートなので、ブリッジのセルフポートをVLAN 5でも設定できます。これは少し異なる構文(self)を使用します)。

bridge vlan del dev br0 vid 1 self
bridge vlan add dev br0 vid 5 pvid untagged self

通常、それは(可能な相互作用を防ぐためにブリッジのデフォルトのVID 1を削除して)よりクリーンですvethペアを追加し、一端を接続しますブリッジ、そのブリッジvlan設定をeth0と同じように構成し、もう一方の端にIPを割り当てます。

このトピックに関する優れたブログシリーズ:

名前のないLinuxネットワーク名前空間でvethデバイス、Linuxブリッジ、VLANをお楽しみください
[〜#〜] i [〜#〜][〜#〜] ii [〜#〜][〜#〜] iii [〜#〜][〜#〜] iv [〜#〜][〜#〜] v [〜#〜][ 〜#〜] vi [〜#〜][〜#〜] vii [〜#〜][〜#〜] viii [〜#〜]

3
A.B