Proxmox VM 中的 OPNSense,嵌套在 Azure VM 中,尝试欺骗 VM NIC 以透明地中继到主机 NIC

问题描述 投票:0回答:2

我正在尝试在 Proxmox 内设置 OPNSense VM,该 VM 在启用了嵌套的 Azure VM 中运行。我有我这样做的理由,所以请不要问我“为什么不选择原生”的问题。

由于 azure VM 不支持 vIOMMU(请注意,vIOMMU 中的“v”代表虚拟化 IOMMU,用于 L2 实例),因此我无法将接口进一步从 Proxmox 传递到 OPNSense,因此我需要使用桥接器。

主机设置为:

  • 通过 eth0 的广域网
  • 分配了 eth0 的 vmbr0

桥接接口处于混杂模式。

实际配置为:

    iface eth0 inet manual
    
    auto vmbr0
    iface vmbr0 inet manual
        bridge-ports eth0
        bridge-stp off
        bridge-fd 0

访客配置为:

  • VirtIO NIC 连接到 vmbr0,使用相同的 MAC 覆盖 地址为 eth0
  • 防火墙:否
  • MAC 过滤器:否

在 eth0 或 vmbr0 上运行 dhclient 可以正确发现并分配 IP 地址。

现在,我尝试让虚拟机中的 OPNSense 获取该 IP 地址,并通过 vmbr0 在主机外部透明地中继其流量。我之前在虚拟机和另一个虚拟机中运行的 OpenWRT 之间做过一些非常类似的事情,使用 OpenWRT 的“简单中继”(kmod-trelay,请参阅https://forum.openwrt.org/t/howto-kmod-trelay/49610/ 2,还有https://github.com/openwrt/openwrt/commit/c3bba7f8c61ee98265bcffef8ee86e22aa89bbe9),尽管这个特殊情况要简单得多,但我无法让虚拟机与ISP正确通信。我尝试简单地通过设置 OPNSense VM 的接口来欺骗 eth0 的 MAC 地址,但这还不够。

我还使用 tcpdump 检查了两端的流量,有趣的是,vmbr0 确实看到了来自虚拟机的 DHCP 请求,并且 ISP 确实做出了响应,但该响应永远不会到达虚拟机,也不会到达与该虚拟机对应的 Tap 接口Proxmox 分配给桥。

我在这里缺少什么?

azure nested kvm proxmox bridging
2个回答
0
投票
仅供参考,解决方案是在直通模式下使用 macvtap。如果我需要更多虚拟机共享相同的 MAC 地址,替代方案是使用 ipvtap。


0
投票
您能说得更具体一些吗?谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.