我在运行 ubuntu 16.04 的几台 ubuntu 服务器上遇到了 kvm 和桥接网络的奇怪问题。桥接网络在我的其中一台服务器上运行良好,但在其他三台服务器上却无法运行。我相信它们的配置都相同且正确。
在正在运行的机器上,我的 /etc/network/interfaces 文件包含:
auto eno2s0
iface eno2s0 inet manual
auto br0
iface br0 inet dhcp
bridge_ports enp2s0
bridge_stp off
bridge_fd 0
bridge_maxwait 0
在不起作用的机器上,唯一的区别是 bridge_ports 行,因为每个服务器上真正的以太网设备名称都不同。
当我启动每台机器时,操作系统都会正确地从 dhcp 获取 IP,并在 br0 上配置网络,但是当我尝试通过 virt-manager 或 virsh 启动虚拟机时,网络就像没有连接一样,基本上在启动过程中挂起 5 分钟,直到超时。
virsh xml 中的接口在每台机器定义上看起来如下所示,当然每台机器的 mac 地址都不同。
<interface type='bridge'>
<mac address='52:54:00:12:4d:ec'/>
<source bridge='br0'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
我真的无法解释为什么 3 台服务器无法工作,而其中一台可以工作,所有三台服务器都安装了 bridge-utils,并且安装了相同的 qemu/libvirt 包。我没有在任何机器上弄乱 /etc 中的任何 libvirt 配置文件,因此它们都是默认值。在谷歌上搜索答案后,我尝试了许多不同的方法来解决这个问题,但似乎没有任何效果。
知道发生了什么吗?感谢您的帮助。
答案1
我认为
bridge_ports enp2s0
应该
bridge_ports eno2s0
匹配上面的接口