在没有 dhcp 的托管服务器上的 hyper-v VM 上访问网站的互联网

在没有 dhcp 的托管服务器上的 hyper-v VM 上访问网站的互联网

我们的 Web 服务器运行在较旧的托管专用服务器上,而我们的 SP 正在弃用这些服务器并取消对其的支持。

这些是 2008 r2 服务器,我们没有某些旧 ASP.NET 站点的源代码 - 因此我们不能将应用程序迁移到新服务器上的新操作系统 - 而且 SP 不支持在新服务器上直接运行 2008 r2 的图像迁移。

我们使用了 disk2vhd,并且能够在新的 2012 r2 服务器上将旧的 2008 r2 映像作为 Hyper-V VM 启动。

问题是,当我们尝试从互联网访问其中一台虚拟机时......

我们的 SP 仅提供每个托管服务器的静态 IP 地址...没有 SP DHCP 来分配 IP 地址

我已经阅读了好几天了 - 并尝试了很多变化。据我所知 - 每个人都说这“很容易做到” - 只需设置一个外部 vswitch 并让您的 VM NIC 连接到它 - 然后设置一个端口转发等...... ... 但这些都不起作用 -因为虚拟机没有获取 IP 地址

现在我最好的猜测是:

  1. 使用内部 vswitch
  2. 使用 ??? IP 地址和 ??? 子网掩码设置虚拟机网卡
  3. 使用 netsh 设置从主机 IP 地址到 ??? 虚拟机 IP 地址的端口 80 和 443 的静态路由

但我已经完全迷失了——而且我尝试过的所有配置都没有成功......

我们的托管服务器 NIC 之一的示例:

  • IP:172.24.16.207
  • 子:255.255.252.0
  • 网关:172.24.16.1
  • (注意:这仅仅是服务器 IP - 而不是公共 IP)

主机服务器和虚拟机上的 Windows 防火墙已关闭。

如果这可能的话......有人可以帮我填写:

  1. vswitch 配置应该是什么?
  2. 虚拟机网卡的IP地址和子网掩码是什么?
  3. 需要哪些 netsh 命令(如果有的话)?
  4. 为了实现此功能,我是否应该/不应该在主机服务器上运行任何特定角色/功能/服务(当然除了 Hyper-V)?

或者能为我指出我想实现的目标的正确方向吗?

答案1

您的房东听起来很差劲。或者您根本不了解他们提供的东西。话虽如此,以下是我的建议。

您有两个选择。要么在 Hyper-V 中为客户机设置 NAT 和 DHCP,要么使用安装在 Hyper-V 主机上的反向代理或负载均衡器。

Windows 2012 R2 上的客户机 NAT 和 DHCP 是可行的,但 Microsoft 并不完全支持这种配置,而且没有友好的设置方法。下一个试图弄清楚它如何工作的人将面临很大的困惑。因此,我不建议使用此选项。

在我看来,最好的选择是在 Hyper-V 主机上安装反向代理或负载平衡器。这违背了不要在主机上安装任何东西的一般建议,但在你糟糕的情况下,我仍然会优先选择 NAT 和 DHCP。要实现这一点,你需要在主机上创建一个“内部”v-switch,并在主机和客户机上分配静态 IP。然后,你可以配置反向代理,将你网站的请求定向到 VM 客户机。IIS 包括一个称为应用程序请求路由 (ARR) 的反向代理,这就是我要使用的。

作为 ARR 的替代方案,您可以在主机上安装负载均衡器。但是,他们提供的称为 NLB 的 Microsoft 负载均衡功能在这里并不合适,所以不要费心。我这里没有其他建议。

相关内容