使用 VMware 分布式交换机跨多个主机伪造 NAT

使用 VMware 分布式交换机跨多个主机伪造 NAT

我需要为网络中的某些机器构建 NAT。希望使用 dvSwitch 来实现这一点 - 因为这似乎是解决问题的合理方法,因为在这种情况下只有不到 30 台主机。

为了让 NAT 虚拟机能够访问“真实”网络。我提供了一个“路由器”虚拟机,它将能够访问 WAN/外部网络,并充当 NAT 机器的 DHCP 服务器。

问题空间

当连接到 NAT 接口和路由器的机器位于同一主机上时,它们会从路由器 VM 获取 IP,并完美运行(路由到外部)。

不幸的是,连接到 dvSwitch 的其他主机上的机器不是获取一个 IP,并且进一步的 tcpdump 显示没有网络数据通过 dvSwitch 内的主机。

有人之前使用 dvSwitch 实现过 NAT 解决方案吗,可以分享一下吗?

谢谢。

编辑:

包括图表

答案1

答案协同

那么你的问题可能是你的设置和你的问题一样过于复杂:)

如果不启用中继,DHCP 不会跨越路由器边界

一旦实现了这一点,你的其他“机器”将能够与你的 DHCP 服务器取得联系 :P

答案2

以下问题可能有助于澄清事实:

  • 您的图中的哪个系统是 DHCP 服务器?
  • NAT 在哪里执行?
  • 您是否已验证 dvSwitch 确实正常工作?(您可以尝试为另一台主机上的一台虚拟机分配一个静态 IP,看看它是否可以 ping 通或以其他方式连接到其他虚拟机)。

我已经设置了 DHCP 穿越 dvSwitch 的系统,没有任何问题,所以可以做这种事情。我猜是因为 dvSwitch 配置不正确。

祝你好运,

--杰德

答案3

好吧,最后我思考我明白,让我测试一下我的假设;

  1. 您有许多虚拟机需要以 NAT 方式访问某种形式的“适当”网络,它们也需要获取其 DHCP 地址 - 我不清楚它们是否需要同时访问另一个内部网络 - 也许您可以澄清这一点。
  2. 您希望使用 dvSwitch 来节省管理员(实际上,大多数 VCP 目前在生产环境中都避开 dvSwitches,而是宁愿等待下一个版本)。
  3. 您看到 dvSwitch 中的行为不一致(顺便参见第 2 项)。

如果这是正确的,那么我认为您可以通过执行以下操作让事情变得更容易;

  1. 创建您的 dvSwitch,连接到所有适当 VM 的 vNIC1 和您指定的“路由器/DHCP”VM 的 vNIC1,并将客户端设置为使用 DHCP。
  2. 将“路由器/DHCP”VM 的 vNIC2 附加到“适当的”网络 dv/vSwitch 端口。
  3. 在‘路由器/DHCP’服务器上安装操作系统和路由器/DHCP 守护程序/服务,并进行适当配置。

如果需要,可选择将虚拟机 vNIC2 连接到其他内部网络。

这应该允许所有适当的虚拟机从“路由器/DHCP”虚拟机获取其 DHCP 信息,该虚拟机也将自身作为默认网关传递 - 反过来它将 NAT 路由来自该接口的所有流量。如果需要,您只需在虚拟机上使用静态路由,将不需要 NAT 的流量指向其 vNIC2,以便根据需要由内部网络处理。

这有意义吗 - 我知道这非常接近你所建议的,但代替更清晰的文字/图表,这是我现在能做的最好的。

答案4

如果没有更多关于您环境的信息,我无法准确说出问题所在。我怀疑您遇到的问题可能与您在分布式交换机环境和物理交换机中设置(或更具体地说未设置)VLAN 和 PVLAN 的方式有关,但可能只是上行链路端口在所有主机上均未正确配置。因此,在所有主机上精确配置 dVSwitch 非常重要。正如其他人指出的那样,dVSwitches 目前并不是最容易使用的东西,对它们进行更改既违反直觉又容易出错。您的 dVSwitch 的屏幕截图,其中突出显示了 NAT dVPortgroup 以识别所有主机上的上行链路路径,这将非常具有启发性。

最好的起点是vSphere 网络指南尽管它没有直接关系VMware\Cisco Nexus1000v DMZ 指南也值得一读。

相关内容