GUESTS 网络根本不工作。换句话说,guest 无法 ping 主机或 LAN 网关。
- 我已经创建了 br0 网桥,并且 brctl 显示 vnet0 已由 KVM 在客户机启动时正确添加到 br0
- 我已将 ip_forward 设置为 1
- iptables 已关闭,甚至没有安装,因为我只需要 GUESTS 通过桥接 br0 直接访问路由器/局域网
我有这个设置在其他带有 centos 主机的系统上工作,但我是 debian 新手,不知道我可能忘记做什么了。
主机网络似乎工作正常,eth0 不再拥有 IP,而 br0 拥有 eth0 曾经拥有的 IP。brctl show 命令显示 br0 和 eth0 在 Guest 关闭时被奴役,当 Guest 打开时显示 eth0 和 vnet0
我只是通过简单地从 VIRTIO 更改为 RTL 网络接口来使其工作,这与选择“hypervisor default”是一样的。还有的输出lsmod | grep virtio
virtio_pci 17389 0
virtio_net 26553 0
virtio_blk 17341 0
virtio_ring 17469 3 virtio_blk,virtio_net,virtio_pci
virtio 13058 3 virtio_blk,virtio_net,virtio_pci
我不得不使用 modprobe virtio 手动添加 virtio,但它仍然没有解决问题。使用 modprobe virtio 等添加内核模块后我没有重新启动,但我确实重新启动了 libvirtd 和 virt-manager
它可以正常工作,但不能与 virtio 一起使用。内核是否存在潜在问题?我如何检查内核配置,这是一个带有uname -a
输出的 debian Jessie
Linux vmserver 3.14-2-amd64 #1 SMP Debian 3.14.15-2 (2014-08-09) x86_64 GNU/Linux
感谢马斯。清理我的第一篇文章。我刚刚注意到来宾上不存在 /sys/devices/virtio 文件夹,但 /sys/devices/virtual/net/lo 存在,但没有 /sys/devices/virtual/net/eth0
centos 6.4“guest”上的 ifconfig 显示 eth0 得到 0 字节 RX 但 14kB TX 所以我猜它没有收到任何通信。我不会放弃轻松,但我并不期待在来宾和主机上从头开始重建内核。
您是否在 iptables 中启用了伪装?
检查与
您应该会看到如下内容:
如果您在 iptables 中没有看到 MASQUERADE,您可以使用以下命令来允许它:
当然,将 IP 范围替换为您正在使用的 IP 范围。
好吧,我似乎找到了问题所在。为了诊断,我安装了一个 Windows 客户机并安装了 Windows virtio 驱动程序。我能够在 Windows 中使用 virtio 网络,所以问题出在 Linux 来宾内核或内核驱动程序上,因为 Linux 来宾确实加载了 virtio pci/block 等内核模块,因此可能需要重新编译内核。因此,“HOST”方面没有任何问题。
另外,我应该在我的研究中指出,发现人们总是在虚拟化方面给出建议而没有说明他们指的是 GUEST 还是 HOST,这很烦人,事实上,由于这个原因,人们在加载时会产生很多混乱virtio 内核模块在主机上而不是来宾等...(我在两者上都加载了它们,不必要地在主机上...但无论哪种方式都无所谓,不能解决我的问题,看来我必须在我的 centos Linux 客户机上重新编译 Linux 内核。)