DNS主机背后的IP相同

问题描述:

最近我在www.active-domain.com买了一个域名 我把它用于我的家庭网络,所以我们谈论NAT和动态IP。 由于我的IP是动态的,我无法创建一个委派来使用我自己的DNS服务器。 活动域充当DNS服务器,所以我只能创建:A,CNAME,URL重定向,URL框架和TXT记录。DNS主机背后的IP相同

这就是说,这是我的问题:因为我支持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

谢谢。

在任何情况下,外部DNS为yourhost.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:报头),但不是每个协议执行此操作。这些都是可能性:

  • 如果你有这将在不同端口上运行两台服务器,这是不是一个真正的问题:我是指你的Q&A on port forwarding on SuperUser

  • 如果您需要将相同的端口上运行两个服务器,这变得困难,如果不是不可能的:它可能可以反向代理业务(和一台服务器从数据中为其他分隔数据);如果有问题的协议不能做到这一点(例如SMTP或SSH),那么你就是SOL。

    • 特别是,如果你的目的是将流量导向到两个不同的HTTP服务器(包括端口80),你需要在你的防火墙(74.0.0.1)运行某种反向代理的。与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>

+0

不,这不会是HTTP。 – Moinonime 2011-06-10 15:12:05

+0

@Matthieu:在这种情况下,它可能会更复杂一点。看我的编辑。 – Piskvor 2011-06-10 15:49:24

+1

那么协议是什么?如果该协议不包含用于获取74.0.0.1地址的域名,则无法知道哪个域名的用途。 – 2011-06-10 15:50:47