我有一个有多个CentOS guest虚拟机的KVM CentOS主机。 所有的客人都在使用网桥进行networking通信。 客人已经开始运作了好几个月,工作正常。 由于基于网桥的networkingconfiguration,访客不能直接与主机通信。 据我了解这是正常的。 资料来源: Libvirt – macvtap
我现在有一个场景,我想让一个客人能够与主机进行通信以进行pipe理。 使用libvirt.org上面的同一篇文章,我在主机上configuration了一个“隔离的”虚拟networking:
<network connections='1'> <name>isolated</name> <uuid>xxxxx-xxxx-xxxxx-xxxxx-xxxxx</uuid> <bridge name='virbr1' stp='on' delay='0' /> <mac address='xx:xx:xx:xx:xx:xx'/> <ip address='10.4.4.1' netmask='255.255.255.0'> <dhcp> <range start='10.4.4.2' end='10.4.4.6' /> </dhcp> </ip> </network>
然后,我在客人上添加了一个新的networking接口:
<interface type='network'> <mac address='xx:xx:xx:xx:xx:xx'/> <source network='isolated'/> <target dev='vnet13'/> <model type='virtio'/> <alias name='net1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> </interface>
当我重新启动客人,客人从主机“孤立”networking收到一个新的地址,一切似乎工作很好。 几个小时之后,“孤立”networking似乎停止了通信。 重新启动客户networking不能解决问题。 看来客户端上的dhcp clinet无法获得地址,并且在/ var / log / messages中看到了指示这样的日志logging:
guest-host NetworkManager[684]: <warn> (eth1): DHCPv4 request timed out.
我重新configuration主机和客户端上的隔离networking是静态的。 主持人和客人仍然不会沟通。
最后,我closures了guest虚拟机,删除guest虚拟机的“孤立”networking接口,并在guest虚拟机上添加了一个新的“孤立”networking接口。 当我重新启动客人时,networking再次工作。 但是,一个小时后,networking没有再次通信,也没有获得一个DHCP地址。 看起来问题在于主机和来宾之间的“孤立”networking,而不是DHCP特定的问题。
在此期间,所有主机上的基于网桥的networking继续正常工作。
看起来像我通过重新启动我的主机上的防火墙自己创build这个问题,其他原因。 当libvirtd启动时,Libvirtd将networking过滤规则添加到防火墙。 重新启动防火墙将删除这些规则。 如果重新启动防火墙,则需要重新启动libvirtd。