基于名称的 NAT 查找

基于名称的 NAT 查找

我有一个专用的测试服务器,它有一个面向公众的 IP,上面有 VMWare Server,还有 4 个通过 NAT 连接的测试环境。

这可以很好地通过 RDP 进入 Windows Server 2003 主机并从那里预览站点和客户端/服务器,但其中一些站点/服务器需要由客户端从外部访问。

有没有办法转换名称(即 clientXYZ.ourtestserver.com),将 GoDaddy 的 DNS 解析为主机服务器(64.89.12.44)和私有 IP(192.168.248.16),并将所有流量转发给来宾?

非常感谢所有的帮助。

答案1

不,如果不接受缺点或使用专门用于此方法的软件,使用单个地址是不可能实现这一点的。您可以做的是:

  • 为每个目标机器转发一个端口。假设您有三台 NAT 机器,它们在 TCP 端口 12345 上托管服务。您可以在公共机器上创建端口转发:端口 12345 -> 主机 A,端口 12345 端口 12346 -> 主机 B,端口 12345 端口 12347 -> 主机 C,端口 12345

  • 使用协议级反向代理。当然,这仅适用于本质上支持命名的协议。假设您想要提供 HTTP,您将在公共地址的端口 80 上运行反向代理。然后,此代理将分析 Host: 标头并将请求转发到 NATed 机器。

答案2

如果我理解你的问题没有错,我可以想出一种方法来做到这一点,这可能确实对你有用。这有点复杂,但我认为它会起作用。每台虚拟机都可以被赋予从一台机器路由到另一台机器的能力。考虑到这是一个测试环境,这种方法的性能损失可能并不重要。

所以这里...如果您需要的所有唯一外部 DNS 条目都解析为同一个 IP 地址,那么只需配置每个 VM 服务器以了解如何通过静态路由到达每个特定的 VM 服务器。您需要在受影响的 VM 的主机文件中对 fqdn 进行硬编码,或者您可以使用内部 DNS(如果有)。您仍然需要为本地路由到的每台机器配置特定路由。

答案3

英镑主页解释了如何使用磅作为反向代理在虚拟主机(一般)部分。虽然作者说他不认为这是庞德的工作 :-) 我认为您也可以使用 Apache 来做到这一点mod_proxy

基本上,pound 获取公共 IP,并通过读取 HTTP 请求标头将请求分发到适当的私有 IP。通常,您以前无法使用 SSL 执行此操作,但现在有办法做到这一点,参见此链接

相关内容