我有一台 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>
无论如何它现在都可以工作了,但我将旧虚拟机的接口类型修改为网络,仍然不起作用,很奇怪。