Virtualbox:在主机专用网络之间进行路由的物理主机似乎默认执行 NAT,这是不希望的

Virtualbox:在主机专用网络之间进行路由的物理主机似乎默认执行 NAT,这是不希望的

配置:

  • Ubuntu 14.04 主机
  • Virtualbox 4.3.18(来自http://download.virtualbox.org/virtualbox/debian
  • Ubuntu 主机作为路由器运行 -net.ipv4.ip_forward=1
  • 配置了几个仅主机网络,这些网络之间的流量由主机路由。
    • vboxnet0:
      • 前缀:192.168.1.0/24
      • 网关:192.168.1.1(这是虚拟机主机上的IP)
    • vboxnet1:
      • 前缀:192.168.2.0/24
      • 网关:192.168.2.1
    • 等等——还有更多的网络,但对于这个问题的目的来说,这并不相关。

问题:

当我从网络 vboxnet0 中的虚拟机 Alice 连接到网络 vboxnet1 中的虚拟机 Bob 时,在 Bob 上,该连接显示为好像来自网关的 IP。Bob 上的 netstat 或 tcpdump 将显示来自 Alice 的流量的源 IP 为 192.168.2.1(网关 IP),而不是 Alice 的 IP,后者可能是 192.168.1.30。

换句话说,NAT 似乎正在发生。但是,我不希望这样 - 我只希望我的主机/路由器在子网之间转发数据包。鉴于我没有明确配置 NAT,我不确定它为什么会这样。任何帮助都非常感谢!

答案1

我从未见过在仅主机网络中禁用 MASQUERADE 的方法。

如果您确实坚持不使用伪装,则可以使用 NAT 网络而不是仅主机网络。在这种情况下,主机充当路由器,将所有虚拟机置于同一个 LAN 内,并允许它们在不进行 NAT 的情况下相互通信。在这种情况下,主机将仅对外部通信进行 NAT。

相关内容