我正在尝试在我的 Fedora 系统上设置包含 VLAN 接口的 Linux 桥接器。我的目标是将此桥接器与 virt-manager 结合使用以创建多个虚拟机,每个虚拟机在桥接器中都有一个接口,可以在特定 VLAN(VLAN ID 12)上进行通信。
我的物理接口是 enp5s0,并且我为 VLAN ID 12 创建了一个 VLAN 接口 enp5s0.12。我使用 NetworkManager 和 nmcli 命令来管理我的网络连接。
以下是我遵循的步骤:
创建 VLAN 接口:
nmcli con add type vlan con-name enp5s0.12 dev enp5s0 id 12
创建桥梁:
nmcli con add type bridge con-name br0
nmcli con modify br0 bridge.stp no
架起了桥梁:
nmcli con up br0
为网桥添加VLAN接口:
nmcli con add type bridge-slave con-name br0-enp5s0.12 ifname enp5s0.12 master br0
但是,当我尝试建立 br0-enp5s0.12 连接时,出现以下错误:
Error: Connection activation failed: No suitable device found for this connection (device enp5s0 not available because profile is not compatible with device (mismatching interface name)).
我已经检查过,我的所有连接(enp5s0.12、br0 和 br0-enp5s0.12)都设置为自动连接。即使重新启动系统后,当我运行 ip addr show br0 时,br0 接口也不会出现,这表明网桥没有启动。如果您能提供任何有关如何解决此问题的指导,我将不胜感激。如果我可以提供任何其他可能有用的信息,请告诉我。
答案1
我找到了一种方法来让它为我工作,希望它也能帮助别人。
首先创建 VLAN 接口:
nmcli con add type vlan con-name enp5s0.12 dev enp5s0 id 12
然后创建桥梁:
nmcli con add type bridge con-name br0 ifname br0
然后将 VLAN enp5s0.12 添加到网桥 br0:
nmcli con modify enp5s0.12 master br0
然后将桥设置为
nmcli con up br0
然后将 VLAN 接口设置为 up
nmcli con up enp5s0.12
此后,我看到 12 网络上的 DHCP 服务器将 IP 地址分配给我的网桥 br0
然后为了创建 libvirt 网络我创建了一个包含以下内容的文件:
<network>
<name>demo-net</name>
<forward mode="bridge" />
<bridge name="br0" />
</network>
然后运行:
virsh net-define ./demo-net.xml
virsh net-start demo-net
virsh net-autostart demo-net
此后,我可以使用 virt-manager 创建可以在 VLAN 12 网络上通信的虚拟机