将 Linux 内核升级到 4.11 后,无法在客户虚拟机 (QEMU/KVM) 中 ping 默认网关

将 Linux 内核升级到 4.11 后,无法在客户虚拟机 (QEMU/KVM) 中 ping 默认网关

我有一台 Ubuntu16.04 主机,我使用QEMU/KVM(3.0.0)创建了一个 Windows 客户虚拟机,网络运行顺利。但我需要启用嵌套虚拟化,以便我将 Linux 内核版本升级到了 4.11(4.11.2-041102-generic),这样做之后,在 KVM 上运行的客户虚拟机无法通过网络到达主机,也无法 ping 默认网关。

以下是示例:
guest vm ip:192.168.136.9
br2:192.168.136.253

br2   Link encap:Ethernet  HWaddr 30:0e:d5:c7:0c:e5  
      inet addr:192.168.136.253  Bcast:192.168.136.255  Mask:255.255.255.0
      inet6 addr: fe80::320e:d5ff:fec7:ce5/64 Scope:Link
      ......

这是我的客户虚拟机的网络设置:

<interface type='bridge'>
  <mac address='52:54:00:04:01:d6'/>
  <source bridge='br2'/>
  <model type='e1000'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>

并将客户虚拟机的IP设置为192.168.136.9,将网关设置为192.168.136.253: 在此处输入图片描述

但是,当我尝试在客户虚拟机中 ping 网关时ping 192.168.136.253,它显示:

来自 192.168.136.9 的回复:目标主机不可达。

从主机,我也无法 ping 192.168.136.9。

我不知道如何解决这个问题以及原因。任何帮助都非常感谢!

以下是我在提出这个问题之前检查的内容:

$ cat /proc/sys/net/ipv4/ip_forward -> 1
$ vim /etc/sysctl.conf -> net.ipv4.ip_forward=1
$ systemctl status libvirtd -> active (running)
$ systemctl status libvirt-bin -> active (running)

环境:
Ubuntu 16.04.6 LTS
Linux 内核 4.11.2-041102-generic
QEMU 3.0.0
Libvirtd 1.3.1
Virt-manager 1.3.2

=========== 更新 ===========

我通过创建另一个新的虚拟机解决了这个问题virt-install ... --network network=default,这次它运行完美,它可以 ping 到默认网关和主机,我查看meld它们的配置文件发现它们有不同的接口类型:

<interface type='network'>
  <mac address='52:54:00:88:d1:87'/>
  <source network='default'/>
  <model type='rtl8139'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>

无论如何它现在都可以工作了,但我将旧虚拟机的接口类型修改为网络,仍然不起作用,很奇怪。

相关内容