Centos 当在KVM主机上使用iptables设置nat时,无法路由到设置为在主机启动时自动启动的VM

Centos 当在KVM主机上使用iptables设置nat时,无法路由到设置为在主机启动时自动启动的VM,centos,centos6,kvm,virsh,Centos,Centos6,Kvm,Virsh,问题: 主机和虚拟机都是使用CentOS 6.10构建的。 外部机器⇔VM通过使用主机iptables的nat功能进行路由。 问题是,在重新启动主机或打开电源后,iptables已启动(“服务iptables状态”), 但我们不可能路由到自动启动的VM。 在此现象之后,重新启动iptables(“服务iptables restart”)将通过所有路由 iptables和VM都在运行,iptables设置与预期一致 我不知道为什么不可能路由到VM。 如果你能告诉我问题出在哪里,我将不胜感激 ---

问题:

主机和虚拟机都是使用CentOS 6.10构建的。 外部机器⇔VM通过使用主机iptables的nat功能进行路由。 问题是,在重新启动主机或打开电源后,iptables已启动(“服务iptables状态”), 但我们不可能路由到自动启动的VM。 在此现象之后,重新启动iptables(“服务iptables restart”)将通过所有路由

iptables和VM都在运行,iptables设置与预期一致

我不知道为什么不可能路由到VM。 如果你能告诉我问题出在哪里,我将不胜感激

---------自动开始设置/停止设置------------

----kvm----

其他信息:

---------------
#virsh net-edit default

<network>
  <name>default</name>
  <uuid>1d4f2476-0da2-45d5-b97f-xxxxxxxxxxx</uuid>
  <forward mode='nat'/>
  <bridge name='virbr0' stp='off' delay='0' />
  <mac address='XX:XX:XX:XX:XX:XX'/>
  <ip address='1.2.3.4' netmask='255.255.255.0'>
  </ip>
</network>
-----------------
---------------
#virsh网络编辑默认值
违约
1d4f2476-0da2-45d5-b97f-XXXXXXXXXX
-----------------
确认后,主机守护进程的启动顺序如下

1.iptables 2.网络 3.qemu-ga 4.libvirtd 5.libvirt-guest

libvirt依赖于网络,而网络依赖于iptables 无法更改chkconfig的顺序。
在这种情况下,我应该让iptables重启脚本在chkconfig的末尾运行,还是让anacron重启iptables?或者您有其他归档方法吗?

libvirt/qemu网络是如何配置的?如果是tap网络(或macvtap,与此相同),则实际的tap设备(来自
ip addr
output)仅在VM暂停或运行时存在。iptables规则使用接口,因此,如果iptables(重新)启动时接口不存在,则需要在VM创建时重新添加规则。简单的iptables重启也可以。

谢谢您的回复。我的网络配置为[附加信息]。你还需要其他信息吗?虚拟网桥(virbr0)正在创建内部专用网络。
cat /etc/redhat-release
CentOS release 6.10 (Final)
qemu-kvm-0.12.1.2-2.506.el6_10.5.x86_64
---------------
#virsh net-edit default

<network>
  <name>default</name>
  <uuid>1d4f2476-0da2-45d5-b97f-xxxxxxxxxxx</uuid>
  <forward mode='nat'/>
  <bridge name='virbr0' stp='off' delay='0' />
  <mac address='XX:XX:XX:XX:XX:XX'/>
  <ip address='1.2.3.4' netmask='255.255.255.0'>
  </ip>
</network>
-----------------