タグなしのイーサネットネットワークを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タグを付けます。もっと簡単なものはありますか?
はい:ブリッジを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 [〜#〜]