新的 KVM 访客无法访问 LAN 外

Chr*_*ris 5 networking linux routing bridge kvm-virtualization

我有一台 KVM 主机(在192.168.0.10),它目前有一个工作的 KVM 来宾(在192.168.0.12)。今天尝试安装一个新的 KVM 来宾时,我遇到了一个问题,即新来宾上的网络只能部分工作。

我可以从新来宾访问的唯一内容是网络内的资源。尝试访问任何其他网络资源(包括那些经过网关的资源)会导致到达目的地的 100% 数据包丢失。

客人通过连接在桥br0使用eth2访问网络。

主机网络按预期工作,另一个(当前只有一个)来宾上的网络也通过同一网桥连接,工作正常。关闭工作访客并不能解决问题。

两个来宾都通过 DHCP 获取他们的网络详细信息。

tcpdump在来宾的虚拟接口上从主机运行显示来宾尝试与外部世界通信,并且仅从主机和网关获得响应。


主持人

有问题的来宾当前正在通过 连接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
Run Code Online (Sandbox Code Playgroud)

非工作客人

请注意,非工作访客使用 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
Run Code Online (Sandbox Code Playgroud)

工作客人

# 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
Run Code Online (Sandbox Code Playgroud)

主机和访客都运行 Debian Wheezy。

我在发布的详细信息中没有看到任何配置错误,特别是要记住,完全相同的设置方法最近用于安装另一个 KVM 来宾(并且现在仍在继续工作)。此问题的原因可能是什么,我该如何解决?

Mic*_*ton 4

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

在您的文件中修复此问题/etc/network/interfaces

    bridge_stp      on
Run Code Online (Sandbox Code Playgroud)

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

# brctl stp br0 on
Run Code Online (Sandbox Code Playgroud)

  • 我认为你必须询问维护人员,因为这对我来说也没有任何意义。 (2认同)