Networking 同一IP后面的DNS主机

Networking 同一IP后面的DNS主机,networking,dns,nat,hosts,Networking,Dns,Nat,Hosts,最近,我在www.active-domain.com上买了一个域名 我把它用于我的家庭网络,所以我们讨论的是NAT和动态IP。 由于我的IP是动态的,我无法创建一个使用我自己的DNS服务器的委派。 活动域充当DNS服务器,因此我只能创建:A、CNAME、URL重定向、URL帧和TXT记录 这就是说,我的问题是:由于我在NAT后面,是否有可能在同一IP后面创建多个主机 示例: 我希望srv1.mydomain.com在我的网络中指向192.168.0.101 我希望srv2.mydomain.co

最近,我在www.active-domain.com上买了一个域名 我把它用于我的家庭网络,所以我们讨论的是NAT和动态IP。 由于我的IP是动态的,我无法创建一个使用我自己的DNS服务器的委派。 活动域充当DNS服务器,因此我只能创建:A、CNAME、URL重定向、URL帧和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


谢谢。

在任何情况下,
yourhost.example.com
另一个主机的外部DNS。example.net
将指向防火墙的外部地址(
在74.0.0.1中,此处为
),或防火墙的主机名(例如CNAME yourfirewall.example.org中的

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

  • 当客户端计算机遇到DNS主机名时,将尝试查找它-例如,询问其本地DNS服务器,“who is yourhost.example.com”;DNS服务器回复“74.0.0.1”
  • 就IP堆栈而言,这是最后一次使用主机名;从现在起,客户端只使用地址进行操作
  • 客户端打开与地址和端口的连接;然而,传入的数据包仅标记为“地址为74.0.0.1的计算机”,没有任何指示“使用什么DNS名称获取该地址,如果有的话”
某些协议(如HTTP)可能在数据包的数据部分使用主机名(使用HTTP,它是
主机:
头),但并非每个协议都这样做。这些是可能的:

  • 如果您有两台服务器将在不同的端口上运行,这实际上不是问题:请参阅

  • 如果您需要在同一端口上运行两台服务器,这将变得非常困难(如果不是不可能的话):可以反向代理流量(并将一台服务器的数据与另一台服务器的数据分离);如果所讨论的协议没有做到这一点(例如SMTP或SSH),那么您几乎就是SOL

    • 具体来说,如果您的目的是将流量定向到两个不同的HTTP服务器(都在端口80上),则需要在防火墙上运行某种反向代理(
      74.0.0.1
      )。对于Apache,最简单的配置可能如下所示:

ServerName yourhost.example.com
ProxyPass/http://192.168.0.101/
ProxyPassReverse/http://192.168.0.101/


ServerName另一个主机.example.net
ProxyPass/http://192.168.0.102/
ProxyPassReverse/http://192.168.0.102/

在任何情况下,
yourhost.example.com
另一个主机.example.net
的DNS外部将指向防火墙的外部地址(
在74.0.0.1中,此处为
),或防火墙的主机名(例如CNAME yourfirewall.example.org中的

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

  • 当客户端计算机遇到DNS主机名时,将尝试查找它-例如,询问其本地DNS服务器,“who is yourhost.example.com”;DNS服务器回复“74.0.0.1”
  • 就IP堆栈而言,这是最后一次使用主机名;从现在起,客户端只使用地址进行操作
  • 客户端打开与地址和端口的连接;然而,传入的数据包仅标记为“地址为74.0.0.1的计算机”,没有任何指示“使用什么DNS名称获取该地址,如果有的话”
某些协议(如HTTP)可能在数据包的数据部分使用主机名(使用HTTP,它是
主机:
头),但并非每个协议都这样做。这些是可能的:

  • 如果您有两台服务器将在不同的端口上运行,这实际上不是问题:请参阅

  • 如果您需要在同一端口上运行两台服务器,这将变得非常困难(如果不是不可能的话):可以反向代理流量(并将一台服务器的数据与另一台服务器的数据分离);如果所讨论的协议没有做到这一点(例如SMTP或SSH),那么您几乎就是SOL

    • 具体来说,如果您的目的是将流量定向到两个不同的HTTP服务器(都在端口80上),则需要在防火墙上运行某种反向代理(
      74.0.0.1
      )。对于Apache,最简单的配置可能如下所示:

ServerName yourhost.example.com
ProxyPass/http://192.168.0.101/
ProxyPassReverse/http://192.168.0.101/


ServerName另一个主机.example.net
ProxyPass/http://192.168.0.102/
ProxyPassReverse/http://192.168.0.102/

不,它不是HTTP。@Matthieu:那样的话,它可能有点复杂。看我的编辑。那它将是什么协议呢?如果协议中没有用于获取74.0.0.1地址的域名,您就无法知道使用的是哪个域名。不,它不会是HTTP。@Matthieu:那样的话,它可能会更复杂一些。看我的编辑。那它将是什么协议呢?如果协议中没有用于获取74.0.0.1地址的域名,您将无法知道该域名的用途。