新的KVM访客不能访问外部LAN

我有一个KVM主机(在192.168.0.10 ),当前有一个工作的KVM来宾(在192.168.0.12 )。 在今天试图安装一个新的KVM guest虚拟机时,我遇到了一个问题:新guest虚拟机的networking只能部分工作。

我可以从新访客访问的唯一东西是networking中的资源。 尝试访问任何其他networking资源(包括通过网关的资源)会导致目的地100%的数据包丢失。

客户端通过使用eth2的桥接器连接到networking。

主机networking按预期工作,而另一个(当前只有一个)客户机的networking也通过同一个网桥连接。 closures工作的客人并不能解决问题。

两位客人都通过DHCP获取他们的networking详细信息。

在guest虚拟机的虚拟接口上从主机运行tcpdump显示guest虚拟机试图与外部世界进行通信,只能从主机和网关获取响应。


主办

有问题的客人目前正在通过vnet0连接。

 # ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000 link/ether 00:1e:4f:34:dc:79 brd ff:ff:ff:ff:ff:ff 3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000 link/ether 00:1e:4f:34:dc:7b brd ff:ff:ff:ff:ff:ff 4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP qlen 1000 link/ether 00:15:17:6a:fb:ee brd ff:ff:ff:ff:ff:ff 13: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP link/ether 00:15:17:6a:fb:ee brd ff:ff:ff:ff:ff:ff inet 192.168.0.10/24 brd 192.168.0.255 scope global br0 inet6 fe80::215:17ff:fe6a:fbee/64 scope link valid_lft forever preferred_lft forever 24: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UNKNOWN qlen 500 link/ether fe:54:00:fc:0f:07 brd ff:ff:ff:ff:ff:ff inet6 fe80::fc54:ff:fefc:f07/64 scope link valid_lft forever preferred_lft forever 25: vnet1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UNKNOWN qlen 500 link/ether fe:54:00:89:8e:17 brd ff:ff:ff:ff:ff:ff inet6 fe80::fc54:ff:fe89:8e17/64 scope link valid_lft forever preferred_lft forever # ip route default via 192.168.0.202 dev br0 192.168.0.0/24 dev br0 proto kernel scope link src 192.168.0.10 # cat /etc/network/interfaces auto lo iface lo inet loopback auto br0 iface br0 inet dhcp bridge_ports eth2 bridge_stp off bridge_maxwait 0 bridge_fd 0 # brctl show bridge name bridge id STP enabled interfaces br0 8000.0015176afbee no eth2 vnet0 vnet1 

不工作的客人

请注意,非工作的访客使用busybox ip

 # ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisk pfifo_fast qlen 1000 link/ether 52:54:00:fc:0f:07 brd ff:ff:ff:ff:ff:ff inet 192.168.0.27/24 scope global eth0 inet6 fe80::5054:ff:fefc:f07/64 scope link valid_lft forever preferred_lft forever # ip route default via 192.168.0.202 dev eth0 192.168.0.0/24 dev eth0 src 192.168.0.27 

工作的客人

 # ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 52:54:00:89:8e:17 brd ff:ff:ff:ff:ff:ff inet 192.168.0.12/24 brd 192.168.0.255 scope global eth0 inet6 fe80::5054:ff:fe89:8e17/64 scope link valid_lft forever preferred_lft forever # ip route default via 192.168.0.202 dev eth0 192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.12 

主机和客人都运行Debian Wheezy。

在发布的详细信息中,我没有看到任何错误的configuration,特别是要记住最近安装另一个KVM guest虚拟机的工作方式完全相同(即使现在也继续工作)。 可能是这个问题的原因,我该如何解决?

应该在用于KVM虚拟机的网桥上启用STP 。

解决这个在你的/etc/network/interfaces文件中:

  bridge_stp on 

在运行时启用它,无需重新启动networking服务:

 # brctl stp br0 on