我们有一台托管服务提供商的专用服务器。我们运行的是 ESXi 6.0。该服务器有一个公共 IP,目前用于管理接口。提供商还为我们分配了一个 /29 块,以便我们的虚拟机可以拥有公共 IP。我们只能使用 1 个物理网卡,我认为这是导致一些问题的原因。
他们告诉我们,该块 IP 的默认网关应设置为 ESXi 服务器的 IP。每当我们尝试配置它时,虚拟机都会抱怨说网关位于不同的子网中,事实确实如此。
他们表示,由于他们的网络配置方式,我们需要通过 ESXi 服务器的 IP 路由他们分配给我们的块中的任何 IP。据我所知,ESXi 不支持路由,因此这是不可能的。
我们询问他们是否可以将这个块(甚至是单个 IP)分配给服务器,以便它们与 ESXi IP 相同,以便我们可以在虚拟机上使用它们,但他们告诉我们他们的网络设置不允许这样做。
理想情况下,我们希望能够将这些公共 IP 分配给我们的虚拟机,以便它们可以直接从互联网访问。有办法做到这一点吗?我们遗漏了什么吗?
如果上述方法不可行,我们有没有办法进行端口转发/其他操作,以便我们可以从互联网访问我们的虚拟机?
我们没有更改 ESXi 中的任何网络配置,因此我们仍然只有一个 vSwtich,管理网络和 VM 网络都连接到它。此 vSwitch 连接到服务器上的单个物理 NIC,所有 IP 都分配给该 NIC。
如果需要的话,我们很乐意提供任何其他信息。
答案1
您的托管服务提供商(猜测是 Hetzner?)是正确的。
您需要为 VMware 服务器的 VMK 接口分配单个静态 IP 地址。这样您就可以通过 VMware 控制台连接到服务器并创建虚拟机。
您的托管服务提供商应该能够将您的 /29 子网路由到服务器的 MAC 地址。
您还将在 vSphere 中配置一个 vSwitch(为了合理起见,我个人将其重命名为“公共”),该 vSwitch 连接到您的物理网卡。
您将需要创建第二个 vSwitch(为了理智起见,我建议将其称为“私有”),它不连接到任何物理网络接口。
设置好这两个 vSwitch 后,您就可以创建一个具有两个 vNIC 的虚拟机 - 每个 vSwitch 中各一个。使用您喜欢的任何“路由器”操作系统(通常类似于防火墙或者普富思就可以了),并将其配置为 WAN(公共)和 LAN(私有)vSwitch 之间的 NAT 数据包。
要使用您的 /29 IP 地址,您需要创建连接到您的私有 vSwitch 的虚拟机,然后根据需要进行 NAT 端口转发。
答案2
我真的会真的强烈建议您不要将 ESXi 管理界面直接放在互联网上。您唯一的安全控制就是您的密码,它为您提供了通往王国的完整钥匙。
我建议您安装一个统一威胁管理器 (UTM),例如 pfsense 或 Untangle,作为具有公共 IP 地址的路由器。您的网络将如下所示:
Internet ---> VSWitch1 ---> UTM ---> VSwitch2> --- Virtual Machines
在哪里:
- VSWitch1连接到面向互联网的真实网卡
- 移动管理连接到 VSWitch1(使用您的一个公共 29 位 IP 地址)和 VSwitch2(使用私有 IP 地址)
- 交换机2未连接到任何真实 NIC
- 虚拟机都连接到 NIC 并具有私有 IP 地址(如 192.168.0.0/24 或 10.0.0.0/8)
通过此配置,您将使用 UTM 执行 NAT,以便您的虚拟机可以访问 Internet(反之亦然,使用端口转发)。这些 UTM 具有防火墙功能、IPS 功能以及保护您网络的所有好东西。
对于 ESXI 访问,我实际上建议您使用 VPN 连接到您的专用网络。将您的 VMKernel 放在专用网络上(例如 192.168.0.101/24)。这样,您就可以使用 VPN 进行身份验证,并且所有流量都会被加密。VPN 是我提到的 UTM 的一个功能。
另外!额外福利!它们是免费且开源的 :-)
如果您必须直接通过 Internet 访问您的 ESXI - 我仍然建议至少在您的 ESXI 和 Internet 之间放置一个防火墙/NAT,否则您就只能使用 ESXi 的 [不存在的] 安全功能。