タグなしトラフィックはブリッジを通過後にタグ付きトラフィックになる必要がある

タグなしトラフィックはブリッジを通過後にタグ付きトラフィックになる必要がある

私は何か単純なことを達成しようとしています。

単一の物理ポートを持つマシンがありますenp89s0。これはネイティブ VLAN ( VLAN=1) に接続されています。

VM を作成し、別の に配置する必要がありますVLAN=166

systemd networkd 内のマシンのインターフェース名を指定しないようにするために、ブリッジを作成し、そこに VM を接続します。

eth.166このブリッジには、メイン ブリッジに接続されたアップリンクとして VLAN インターフェイスがあります。

デザインは次のようになります

              -------------               -------------
  enps890    |             |     eth.166 |              |
-------------|   br0       |-------------|    br166     | 
             |             |             |              |
             --------------               --------------

VM が に接続されますbr166

VM はトラフィックにタグを付けないので、トラフィックはタグなしで到着し、インターフェイスはeth.166それをタグ付けしてスイッチに渡す必要があります。私のスイッチはトランク ポートで構成されているため、スイッチの問題ではないと思います。私はそれに時間を費やしましたが、方法を見つけることができませんでした。

私の設定はこちら

br0.netdev

[NetDev]
Name=br0
Kind=bridge

[Bridge]
VLANFiltering=yes

br0.network

[Match]
Name=br0

[Network]
DHCP=yes

[Network]
VLAN=eth.166

enps890.network

[Match]
Name=enp89s0
[Network]
Bridge=br0
[BridgeVLAN]
VLAN=166

br166.netdev

[NetDev]
Name=br166
Kind=bridge

[Bridge]
VLANFiltering=yes

br166.network

[Match]
Name=br166

[Network]
DHCP=no

eth.166.network

[Match]
Name=eth.166

[Network]
Bridge=br166
DHCP=no

[BridgeVLAN]
VLAN=166
PVID=166
EgressUntagged=166

eth.166.netdev

[NetDev]
Name=eth.166
Kind=vlan

[VLAN]
Id=166
$ bridge vlan

port              vlan-id
enp89s0           1 PVID Egress Untagged
                  166
br0               1 PVID Egress Untagged
br166             1 PVID Egress Untagged
eth.166           1 Egress Untagged
                  166 PVID Egress Untagged
virbr0            1 PVID Egress Untagged

答え1

systemd-networkd は今回が初めての使用ですが、ヘッドレス libvirt ホスト、単一の物理インターフェース、複数の VLAN 上のゲストのホスティングに適したツールであることは明らかです。苦労しましたが、ようやく動作するようになったので、うまくいった方法を共有します。ホストとゲストは、それぞれのネットワークとインターネットを使用できます。ホストとゲスト間のトラフィックは、物理ネットワークとルーター (ホストの外部) を通過する必要があります。

(1) 物理 INF: enp4s0f0
(2) VLAN: f0.2、f0.613
(2) ゲスト接続用のブリッジ: brV2、brV613
ホストはタグなし VLAN 1 から DHCP アドレスを取得します。
ゲスト トラフィックはゲストに対してはタグなしになり、ホストとアップストリーム スイッチ間ではタグが付けられます。ゲストはブリッジ インターフェイスbrV2またはを使用しますbrV613
ゲスト専用のブリッジでは、<key>=no[Network] セクションのすべてのエントリで からの「degraded」ステータスが表示されませんnetworkctl list

systemd-networkd を初めて使用する場合は、図が役立つと思います。
構成図 - libvirt ゲスト用の VLAN を備えた systemd.networkd

/etc/systemd/network files:  

10-enp4s0f0.ネットワーク

[Match]
Name=enp4s0f0

[Network]
DHCP=ipv4
VLAN=f0.2
VLAN=f0.613

[DHCPv4]
UseDNS=no

28-vlan2.netdev

[NetDev]
Name=f0.2
Kind=vlan

[VLAN]
Id=2

28-vlan613.netdev

[NetDev]
Name=f0.613
Kind=vlan

[VLAN]
Id=613

30-vlan2.ネットワーク

[Match]
Name=f0.2

[Network]
Bridge=brV2  

30-vlan613.ネットワーク

[Match]
Name=f0.613

[Network]
Bridge=brV613

30-br2.netdev

[NetDev]
Name=brV2
Kind=bridge

30-br613.netdev

[NetDev]
Name=brV613
Kind=bridge

30-V2-brNET.ネットワーク

[Match]
Name=brV2

[Network]
DHCP=no
LinkLocalAddressing=no
LLDP=no
EmitLLDP=no
IPv6AcceptRA=no
IPv6SendRA=no

30-V613-brNET.ネットワーク

[Match]
Name=brV613

[Network]
DHCP=no
LinkLocalAddressing=no
LLDP=no
EmitLLDP=no
IPv6AcceptRA=no
IPv6SendRA=no

関連情報