嵌套桥接:可以到达托管虚拟机,但不能到达域 0 或上游网络(已解决)

嵌套桥接:可以到达托管虚拟机,但不能到达域 0 或上游网络(已解决)

我的盒子的设置如下:

我在裸机上使用 Xen,Domain-0(Debian Bullseye)用作 X 终端。在这里,我创建了一组连接到网桥的虚拟机(包括连接到 Domain-0 中的 X 终端的虚拟机)。任何发往上游网络的流量都会路由到连接到上游路由器的接口(即,它不是所述网桥的端口)。

现在,在我工作的虚拟机 (Debian Bullseye) 中,我尝试使用 KVM 设置嵌套虚拟化 (虚拟机是 Debian Bullseye) 以进行测试 (此虚拟机启用了 VMX 直通),并在此“主”虚拟机中设置了另一个网桥并将其出站接口连接到它。我创建的嵌套虚拟机的后端接口也与此“内部”网桥绑定。

现在,当我尝试从嵌套虚拟机访问网络时,我可以毫无问题地访问托管嵌套虚拟机的虚拟机,但是,当我尝试 ping Domain-0 或 Internet 上的任何主机时,它们已被过滤。此外,我通常可以从所述“主”虚拟机访问 Domain-0 和 Internet,这反过来告诉我,Domain-0 中的桥接器正在过滤来自嵌套虚拟机的所有流量。

有没有办法配置位于 Domain-0 中的桥接器,以便让嵌套 VM 的流量通过?我不打算在“主”VM 中使用路由(尽管这肯定可以解决问题,但这不是我的本意)。

这个问题不幸的是,结果并没有定论,因为它的作者试图从“主”VM 内部解决这个问题,而我试图从外部(即在 Domain-0 内)解决这个问题。

答案1

进一步调查显示,该问题是一个防火墙问题。通过将日志记录规则放入 Domain-0 中的 ebtables 的 PREROUTING 链以及托管嵌套 VM 的 DomU 中的 PREROUTING 和 POSTROUTING 链中,我注意到 Domain-0 根本没有收到任何数据包,并且在托管 DomU 中检查发现 ICMP 数据包到达了嵌套 VM 创建的后端接口,但它们尚未转发到出站 PV 前端接口。

通过添加 iptables 规则来免除桥接流量的处理(iptables -A FORWARD -m physdev --physdev-is-bridged -j ACCEPT托管 DomU 中的一个简单的规则就完成了),我终于能够访问上游服务器(Domain-0,在 Xen 下运行的其他 DomU,以及最后但并非最不重要的网络上的机器)。

在此之前,我已经在 Domain-0 中的所有网桥和托管 DomU 中的网桥上重新启用了 STP,并且将与此相关的几个参数设置为合理的值。

相关内容