主机和客户机之间的 KVM 隔离网络在几个小时后发生故障

主机和客户机之间的 KVM 隔离网络在几个小时后发生故障

我有一台 KVM CentOS 主机和几台 CentOS 客户机。所有客户机都使用网桥进行网络通信。客户机已启动并运行了几个月,并且运行正常。由于基于网桥的网络配置,客户机无法直接与主机通信。据我所知,这是正常的。来源:Libvirt——macvtap

我现在有一个场景,我希望客户机能够与主机进行通信以进行管理。使用来自 libvirt.org 的上述同一篇文章,我在主机上配置了一个“隔离”虚拟网络:

<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>

然后我在客户机上添加了一个新的网络接口:

<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>

当我重新启动客户机时,客户机从主机“隔离”网络收到一个新地址,一切似乎都运行良好。然后几个小时后,“隔离”网络似乎停止了通信。重新启动客户机上的网络无法解决问题。似乎客户机上的 dhcp 客户端无法获取地址,我在 /var/log/messages 中看到日志记录表明:

guest-host NetworkManager[684]: <warn> (eth1): DHCPv4 request timed out.

我重新将主机和客户机上的隔离网络配置为静态。主机和客户机仍然无法通信。

我最终关闭了客户机,删除了客户机的“隔离”网络接口,并在客户机上为“隔离”网络添加了一个新接口。当我重新打开客户机时,网络又恢复了工作。然而,一小时后,网络再次无法通信,无法获取 DHCP 地址。问题似乎出在主机和客户机之间的“隔离”网络上,而不是 DHCP 特定的问题。

在此期间,所有主机上基于桥接的网络继续正常工作。

答案1

看来我因为其他原因重启了主机上的防火墙,从而自己造成了这个问题。当 libvirtd 启动时,Libvirtd 会向防火墙添加网络过滤规则。重启防火墙将删除这些规则。如果重启防火墙,则需要重启 libvirtd。

相关内容