在 Hyper-V Server 2012 R2 上配置 NAT

在 Hyper-V Server 2012 R2 上配置 NAT

我安装了 Hyper-V Server 2012 R2(因为它是免费的)。我在这个服务器上有 2 个虚拟机,一个 Ubuntu Server(vLS)和一个 Windows Server(vWS)。

我只有 1 个主机外部 IP 地址,因此虚拟机与主机(192.168.110.1)位于内部 192.168.110.0/24 子网中(我在连接的 Hyper-V 管理器中创建了虚拟交换机)。

我想设置一个基本的 NAT,将外部端口 80 绑定到 vWS 上的端口 80,以便服务器充当 Web 服务器(随着时间的推移,我将允许通过各种端口访问两个虚拟机,因此端口 80 只是一个示例)。

问题是 Hyper-V Server 不允许安装 RRAS 角色,并且 ICS 也不可用。

其他一些问题指出使用New-NetNat但由于现在还不是 Server 2016,InternalIPInterfaceAddressPrefix不可用。这是最后一个不带 SLAT 运行的 Hyper-V 服务器版本,因此无法升级到 2016。

ExternalIPInterfaceAddress我曾尝试将其与和参数一起使用InternalRoutingDomainId,但无法确定有效的内部路由域 ID 是什么,以及如何确定我的 ID(它似乎是某种 GUID)。我尝试使用一堆零,但无济于事。

我看过NAT32但它似乎在服务器启动时挂起,GUI 从未弹出。我会进一步试验它,但我希望在服务器上有本机功能,而无需安装任何第三方产品(话虽如此,如果我能让它工作,我很乐意接受第三方解决方案)。

有没有办法在 Hyper-V Server 2012 R2 中设置 NAT 并将虚拟机的某些端口绑定到外部 IP?如果可以,我该怎么做?

答案1

您需要两个 vswitch 和一个 VM 来为您执行 NAT。

  • 运行某种防火墙软件的虚拟机,并分配了两个 NIC。
  • vswitchInternal可以连接到虚拟机和主机,但不能连接到物理网卡。这将是您的 192.168.110.0/24 网络。将所有现有虚拟机更改为此 vswitch,并将其中一个网卡更改为防火墙虚拟机。
  • vswitchExternal可以连接到物理 NIC。防火墙的另一个虚拟 NIC 应连接到此 NIC。您还应取消选中“允许管理操作系统共享此网络适配器”复选框。

在您的主机上,两个 vswitch 应显示为控制面板中的网络适配器。在与 vswitch 匹配的适配器上配置 192.168.110.0/24 IP Internal。现在,主机与外界通信的唯一方式是通过防火墙 VM。

答案2

您可以在 VM 中安装另一个 Windows Server 并为其设置 RRAS,或者您可以安装和配置 VyOS 虚拟路由器并将其配置为将所有 tcp 端口 80 流量(出于参数原因)转发到将充当 Web 服务器的 Windows Server。

对于 VyOS 配置来说,这非常简单。您需要下载 VyOS 虚拟路由器的 .iso 并将其安装在 VM 中。将两个 vNIC 连接到该 VM;一个连接到连接到 LAN 适配器的外部 vSwitch,另一个连接到您的 VM 所连接的内部或私有 vSwitch。因此,您的 VyOs 路由器必须连接到两个网络;您的外部互联网接入网络和您的私有或内部 VM 网络。

安装 VyOS 映像后,您可以运行一些命令来配置 VyOS 路由器的接口。

set interface eth eth0 address dhcp
set interface eth eth1 address 192.168.110/24

上述命令设置外部接口通过 DHCP 获取其地址,并将路由器的下一个接口配置为与虚拟服务器(VM)位于同一网络上。

接下来,您将运行一些简单的命令将所有 TCP 80 流量转发到您选择的内部服务器。

set nat destination rule 1 description 'Port Forwarding: HTTP to 192.168.110.254'
set nat destination rule 1 destination port 80
set nat destination rule 1 inbound-interface 'eth0'
set nat destination rule 1 protocol 'tcp'
set nat destination rule 1 translation address '192.168.110.254'

并且您有一个虚拟路由器将所有 TCP 80 数据包转发到地址为 192.168.110.254 的内部服务器(仅用于参数)。

相关内容