我正在尝试实现一些简单的事情。
我有一台具有单个物理端口的机器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 地址
客户机流量未标记客户机流量,在主机和上游交换机之间标记。客户机使用网桥接口brV2
或brV613
。
仅供客户机使用的网桥,<key>=no
[网络] 部分下的所有条目都避免看到“降级”状态networkctl list
。
对于第一次进入 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