我从 ISP(Comcast)获得了 5 个静态 IP,并且我有一台安装了 VMware ESXi 4.0 的物理机,上面托管着多个虚拟机。目前,我只是使用默认的 vmware 虚拟网络 (vswitch0) 和来自 Comcast IP 网关路由器的 DHCP,一切运行正常。每个虚拟机都可以访问互联网等。
我的一台虚拟机是 Web 服务器(Windows Server 2008),我想将其分配给我的 5 个静态 IP 中的 1 个,以便可以从公共互联网访问它,同时让内部 LAN 上的其他虚拟机仍使用 DHCP。
如果我将笔记本电脑直接插入 Comcast IP 网关(背面有 4 个端口),并使用 Windows 网络对话框为笔记本电脑分配一个静态 IP,那么我就可以从公共互联网访问我的笔记本电脑,而且效果很好。但是,如果我尝试执行相同的步骤在我的 Windows Server 2008 VM 上设置静态 IP 配置,则无法正常工作。VM 无法访问互联网(打开 Firefox 并尝试访问 google.com),我也无法从公共互联网看到 VM。
我假设我在 ESXi 配置中的某个地方遗漏了某些内容,但是我对 ESXi 还很陌生,我不确定如何配置它以以这种方式工作。
答案1
由于您的虚拟机可以通过 vSwitch0 与 Comcast 路由器内部通信,因此 vSwitch0 使用的物理网卡也连接到内部。我没有那种硬件,互联网提供的信息也相互矛盾,但我怀疑路由器实际上会根据物理端口确定哪些流量要进行 NAT,哪些流量要通过。这就是为什么您可以在一个端口上使用 DHCP 和内部 IP,而在另一个端口上使用笔记本电脑的公共 IP。
如果我的理解正确,那么您需要将 ESXi 服务器的另一个物理网卡连接到 Comcast 设备上的端口,使用该 pnic 配置新的 vSwitch,然后将您的 VM 连接到该 vSwitch。
现在,忘记我刚才说的一切。因为将网络服务器直接连接到互联网是鲁莽的。
相反,在 LAN 上为 Web 服务器 VM 配置一个静态 IP(与通过 DHCP 分配的网络相同,确保您选择的 IP 不在 DHCP 范围内)。然后,您有两种路由选择:1. 为网关使用的公共 IP 地址设置端口转发,以便到端口 80 和 443 的连接转到 Web VM 的静态 IP,并将 Web VM 连接到 vSwitch0。2. 设置另一个防火墙以容纳您的公共 IP 并转发 80+443 端口,创建另一个网络路径(第二个 pnic - 第二个 vSwitch)以连接到该新防火墙的内部,并将 Web VM 连接到新的 vSwitch。