如何根据请求的主机名将入站网络流量定向到特定的内部 IP?(Win 2012)

如何根据请求的主机名将入站网络流量定向到特定的内部 IP?(Win 2012)

这可能相当基础,所以如果看起来是这样,请不要想太多!

我的设置

  • 运行 Hyper-V 的家庭服务器,带有 IIS、MSSQL 和其他虚拟机
  • 住宅连接可能会转移 IP,我已将其映射到 DynDNS 域(因此 DNS 会自动更新)
  • 服务器和所有虚拟机(除一台外)均运行 Windows Server 2012
  • 托管虚拟机的服务器配置为 DNS 服务器,并且所有虚拟机都具有网络的静态内部 IP(以及主机名 - 例如,我的 IIS VM 是 iis.mydomain.com)
  • 服务器位于路由器后面,但可以配置常规功能(DMZ、端口转发等)

场景

我希望能够转发流量全部**.mydomain.com:PORT* 的端口用于转到适当映射的虚拟机(即iis.mydomain.com:端口--> IIS_VM:PORT),它映射到我的网络上的特定静态 IP。

例如,我使用 RDP 访问 iis.mydomain.com,它会通过远程桌面从网络外部将我连接到 IIS VM。我在 Web 浏览器中访问 iis.mydomain.com,它会加载与 IIS VM 上的该主机名绑定的相应站点。

或者,如果以上所有条件都成立,我可以创建mssql.mydoman.com并击中通过远程桌面,它连接我到VM。我还可以通过 Management Studio 访问它并让它连接。

当前尝试

  • 设置指向我的住宅 IP 的名称服务器(并通过 DynDNS 动态更新)
  • 我的域名到上述域名服务器
  • 使用运行 DNS 的中央服务器来解析网络上的主机名

问题

我可以打iis.mydomain.com来自我的网络外部,它确实解析了一个 IP——不幸的是,它解析的是 192.168.0.105,这是 IIS 机器的内部 IP。这是有道理的,因为在 DNS 管理器中,这就是我分配给主机名的 IP。

因此,问题是:

我该如何配置我的 DNS 服务器(或者重新配置我当前的设置)以便在网络内部将流量正确转发到 192.168.0.105 - 但在网络外部它只会到达住宅 IP?

猜测

我知道这里的事情“按预期工作”,因为我的 DNS 服务器正确地将主机名解析为指定的 IP——所以如果我在本地网络上尝试所有这些,它将完全正常运行。我觉得问题在于通过让外部机器仅连接到我的住宅 IP 来掩盖内部 IP,然后在幕后有一些层将请求的主机名转换为内部 IP。

根据我的阅读,我怀疑 NAT 可能就是我所寻找的,但我真的没有很好的背景。

答案1

对于路由,主机名不是方程式的一部分 - DNS 查询已经解析了 IP 地址,并且将用于 TCP/IP 连接。当它到达那里时(无论“那里”在哪里),连接上运行的协议就可以发挥作用,例如 HTTP/1.1 指定了主机名,以允许大规模虚拟托管。

那么你可以将到达端口 80 的所有 HTTP 流量发送到您的 VM 以进行 Web 服务(假设您的 ISP 不会在途中阻止它);同样,您可以将 VNC 连接发送到不同的服务器,将 RDP 连接发送到另一台服务器;但是您不能尝试通过 RDP 连接到 iis.example.com 并期望它转到其他地方以通过 RDP 连接到 MySQL.example.com,如果从客户端的角度来看两个主机名都解析为同一个 IP 地址。

相关内容