KVM 主机上的接口之间路由出现问题

KVM 主机上的接口之间路由出现问题

摘要:不同子网中的主机上的虚拟机可以相互访问,但子网 B 上的虚拟机无法联系子网 A 上的主机接口。我不确定这是我的实验室设置和防火墙规则的产物,还是 libvirt/KVM 网络中的某些问题。

免责声明:此 VM 主机实际上是一个 VM 本身,其外部接口是具有转发模式 = 路由的 virbrX 接口,但我不知道思考这就是问题所在,因为大多数虚拟机都可以正常通信。话虽如此……

VM 主机有两个接口。子网 A:192.168.122.10 和 192.168.130.10。路由如下所示:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.130.0   0.0.0.0         255.255.255.0   U     0      0        0 br1
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 br0
0.0.0.0         192.168.122.1   0.0.0.0         UG    0      0        0 br0

122 上的虚拟机(均位于此主机上)可以连接到 130 上的虚拟机(均位于此主机上),反之亦然。但是,当 122 上的虚拟机尝试连接到 130.10 上的主机时,或者当 130 上的虚拟机尝试连接到 122.10 时,ping 不起作用,并且连接超时。

在主机上执行 TCP 转储显示数据包已到达主机,但没有数据包返回虚拟机。例如,我看到了以下内容:

23:18:24.111043 IP mailserver-a.kugler.localdomain.34642 > 
vmserver-a.kugler.localdomain.ssh <packet information here>

当然,我没有看到任何返回数据包,甚至没有看到返回数据包的尝试。没有会阻止的 iptables 规则(没有规则,所有默认接受)。我错过了什么?为什么所有跨子网连接都在工作,除了当我尝试这样做来连接到 VM 主机时?

感谢您的见解。

答案1

再想想,我意识到这可能与回复试图通过 130.10 接口有关。我将该接口设置为另一个我没有使用的 RFC 私有子网 172.16.xx,然后重新启动网络。就这样,130.x 主机可以连接到 122.10 地址。

这很好,因为在生产中,第二个接口甚至没有有效的 IP 地址,它只是作为需要在该物理网络上的虚拟机的桥接接口。

相关内容