未标记的流量在通过桥接后必须变为标记的流量

未标记的流量在通过桥接后必须变为标记的流量

我正在尝试实现一些简单的事情。

我有一台具有单个物理端口的机器enp89s0。它连接到本机 VLAN(VLAN=1)。

我需要创建虚拟机并将它们放在单独的VLAN=166.

为了不指定 systemd 网络中机器的接口名称,我创建了一个网桥并在那里连接虚拟机。

该桥具有上行链路 vlan 接口eth.166,连接到主桥。

设计看起来如下

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

虚拟机连接到br166

虚拟机不标记流量,因此流量到达时未加标记,接口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 地址
客户机流量未标记客户机流量,在主机和上游交换机之间标记。客户机使用网桥接口brV2brV613
仅供客户机使用的网桥,<key>=no[网络] 部分下的所有条目都避免看到“降级”状态networkctl list

对于第一次进入 systemd-networkd,我发现绘图很有帮助。
配置图 - systemd.networkd 和 libvirt 客户端的 VLAN

/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

相关内容