2

最近,我在 www.active-domain.com 购买了一个域名,我将它用于我的家庭网络,所以我们谈论的是 NAT 和动态 IP。由于我的 IP 是动态的,我无法创建委托来使用我自己的 DNS 服务器。active-domain 充当 DNS 服务器,所以我只能创建:A、CNAME、URL Redirect、URL Frame 和 TXT 记录。

也就是说,这是我的问题:因为我在 NAT 后面,是否可以在同一个 IP 后面创建多个主机?

示例:
我希望 srv1.mydomain.com 在我的网络中指向 192.168.0.101。
我希望 srv2.mydomain.com 在我的网络中指向 192.168.0.102。
但从外部看,两者都指向(示例​​)74.0.0.1

简而言之:
srv1.mydomain.com -> 74.0.0.1 -> 192.168.0.101
srv2.mydomain.com -> 74.0.0.1 -> 192.168.0.102

谢谢。

4

1 回答 1

2

在任何情况下,外部 DNSyourhost.example.comanotherhost.example.net将指向防火墙的外部地址(IN A 74.0.0.1此处)或防火墙的主机名(例如IN CNAME yourfirewall.example.org.)。

但是请注意,DNS(域名到 IP 地址解析)与连接处理和路由分开发生。这意味着什么:

  • 客户端计算机在遇到 DNS 主机名时,会尝试查找它 - 例如询问其本地 DNS 服务器“谁是 yourhost.example.com”;DNS 服务器回复“74.0.0.1”。
  • 就 IP 堆栈而言,这是最后一次使用主机名;从现在开始,客户端仅使用地址进行操作。
  • 客户端打开到地址和端口的连接;但是,传入的数据包仅标记为“用于地址 74.0.0.1 的计算机”,而没有任何指示“用于获取该地址的 DNS 名称,如果有的话”。

某些协议(例如 HTTP)可能会在数据包的数据部分使用主机名(对于 HTTP,它是Host:标头),但并非每个协议都这样做。这些是可能性:

  • 如果您有两台将在不同端口上运行的服务器,这并不是一个真正的问题:我建议您参考SuperUser 上的端口转发问答

  • 如果您需要在同一个端口上运行两台服务器,这将变得很困难,如果不是不可能的话:可能会反向代理流量(并将一台服务器的数据与另一台服务器的数据分开);如果有问题的协议不这样做(例如 SMTP 或 SSH),那么你就是 SOL。

    • 74.0.0.1具体来说,如果您的意图是将流量引导到两个不同的 HTTP 服务器(都在端口 80 上),则需要在防火墙 ( )上运行某种反向代理。使用 Apache,最简单的配置可能看起来像这样:
<VirtualHost *:80>  
        ServerName yourhost.example.com  
        ProxyPass / http://192.168.0.101/  
        ProxyPassReverse / http://192.168.0.101/  
</VirtualHost>  
<VirtualHost *:80>  
        ServerName anotherhost.example.net  
        ProxyPass / http://192.168.0.102/  
        ProxyPassReverse / http://192.168.0.102/  
</VirtualHost>
于 2011-06-10T14:03:07.463 回答