我有一台便宜但功能强大的专用服务器,我租用的是 OVH,因为他们最近在做促销。我想尝试通过使用 ESXi 玩虚拟机来管理所有这些功能。
但是我只配备了一个 NIC。
我原以为这很容易解决,因为在家里我只有一个 NIC,即我的宽带调制解调器,而一个简单的 NAT 网关设备就可以愉快地为我的所有设备提供互联网访问。
不过,我在 ESXi 上很难实现这一点。有人能告诉我如何让 ESXi 和多个虚拟机只使用一个 NIC 吗?
这是我当前的设置:
我相信我所需要的是能够配置从 NIC 到所有 VM 等的 NAT。我该如何设置和管理这种基础设施?
答案1
一个 NIC 非常可行,我已经这样做过几次了。在进行设置时,您会为管理网络提供一个 IP 地址。然后,当您将客户端连接到它时,您可以配置 VMNET 以使用相同的 NIC。它会抱怨它们确实应该分开,但它会起作用。
但是你标记了此纳特所以我猜这里实际的问题是:
当我只有一个 IP 地址可用时,如何使 ESXi5 工作。
这是一个非常不同的问题,因为一个 NIC 可以拥有数千个 IP 地址。
这可能不适合你的特定情况,但你所说的是可以做到的。你可以创建另一个没有物理网卡的虚拟交换机来实现这一点。
然后,您将创建一个虚拟机来桥接两个虚拟交换机,并充当两者之间的 NAT 网关。您的管理网络将运行在私有虚拟交换机上,并在 NAT 网关上配置一个端口直通,以允许您连接到它。
但是,如果不物理访问机器,我看不出有任何可能的方法进行设置,因此该解决方案的用途有限。
答案2
我认为您将单个公共 IP 地址与虚拟机上配置的内部 IP 地址混淆了。您应该从 RFC 1918 中定义的地址空间为 vSphere 主机和虚拟机分配 IP 地址。至于将流量从公共 IP 地址转发到虚拟机以进行对 HTTP、SMTP、FTP 等服务的入站访问,您可以将单个端口转发到任何一台虚拟机(例如端口 80)。如果您需要将单个端口转发到多台虚拟机(端口 80 转发到两个不同的虚拟机),则需要研究某种类型的代理。
至于在 vSphere 主机中使用单个 NIC,这当然是可行的。创建 vSwitch 时,您只需使用 VMkernel 端口(用于访问和管理主机)和虚拟机端口组(用于虚拟机)创建它。这将使虚拟机能够物理访问 vSphere 主机所连接的同一物理网络。vSphere 安装(IIRC)应该为您创建一个 vSwitch,该 vSwitch 将配置为管理(VMkernel)和虚拟机(虚拟机端口组)访问。
答案3
你好。我的 vSphere 主机是 ESXi 服务器本身,对吗?我只能从互联网访问此服务器,因此我不确定它是否真的有 RFC 1918 IP。我欣赏的虚拟机本身有。但是,我如何实际设置将连接到端口 x 的服务器 IP 的请求定向到虚拟机?
– deed02392 2013 年 8 月 22 日 21:35
我可能是错的,但如果您在 ESXi 主机上创建/配置路由器 VM 设备(具有一个公共 IP 地址的设备),那么您可以像这样来回处理 PORT 转发::
Incoming Request on PublicIP:8080 >> Router Appliance PortForward >> InternalIPServer1:80
这些是 1:1 转换,因此在示例中 8080 已被占用,所以对于 InternallIPServer2 它不能使用(必须使用其他东西)
虚拟路由器设备有很多都是开源的,等等。Vyatta、Halon、Cisco、PFSense 也可以用作路由器,DD WRT……等等
我希望我没有错误地尝试理解你想要达到的目的,并且我可能给出了一些想法,如果没有别的...
如果我犯了错误,ESXi Pros 可以纠正我并修正我:)