这是一个理论上的问题:鉴于我有几个服务器都有一个公有IP地址以及一个私人IP地址(192.xxx范围)。 这两个Addesses用于不同的服务。 我不想在IP地址的内部工作(对于专用局域网),也不想使用主机名,因为它们要记得更好:
例如:foobar.myhost.com =>公网IP 222.xxx和私有IP 192.xxx
我知道我可以使用/ etc / network / hosts文件来定义所有的“专用局域网”主机名,但是这是非常麻烦和错误的。因为我必须保持所有这些文件同步。
什么是最佳实践/您的选项使用标准公共DNSlogging(我的域名)也列出私人名称? 这有道理吗? 但是,这确实重新评估了我的专用LAN的结构,这是好的吗? 公共DNSlogging也将列出私人IP(这是我以前从未见过的)。
而最大的问题是:其实我想有一个单一的主机名,但这个主机名同时拥有一个公共的私人IP地址。 是否有可能在DNSlogging(具有相同名称foobar.myhost.com)中定义这两者,但稍后在私人和公共IP地址之间进行区分?
任何好博客/最佳实践/文章/意见非常赞赏。
谢谢jens
有很多不同的方法来实现这一点。 显然,你不想为公共和私人IP地址创buildAlogging,并公布这些logging供公众使用,因为那么用户将尝试通过私有IP访问。 如果单个名称列出多个Alogging,则会以循环方式使用这些logging,导致用户有时无法连接。
以下是我使用的一些解决scheme:
我最喜欢的解决scheme是为这些服务器创build一个DNS子区域,也许称为“private.example.com”。 然后将“example.com”中具有私有IP地址的服务器列在“private.example.com”区域中。 然后configuration你的/etc/resolv.conf(可能通过DHCP),这样当你连接到专用networking时,你的DNSsearchpath是“private.example.com example.com”。 现在,如果您尝试访问“主机名”,它将首先尝试查找“hostname.private.example.com”。 然后是“hostname.example.com”。 因此,您在该域中的任何主机没有私人IP,您不必在多个地方列出。 您也可以通过说“hostname.example.com”来明确引用公有IP,对于私有IP也是如此。 但是,如果你只是说“主机名”,它将search匹配。
注意:如果第三方意识到有一个“private.example.com”区域,他们可能会查询或“挖”它,看到IP寻址。 揭示这些信息可能会受到您的关注,具体取决于您的确切要求,但是为了我的需要,揭示一些私有IP地址从来就不是问题。
你可以configuration什么BIND调用“视图”。 以下是另一个显示视图示例configuration的问题的链接 。 基本上,您可以configuration访问控制列表,说明使用哪个区域文件来根据请求的IP地址来回答请求。 所以如果你从私人networking获得一个请求,你可以用私有IP进行响应。 但是,视图可能难以configuration和维护。 还有一个问题是在不同的视图中保存logging的副本,请参阅我的下一个build议以获取更多详细信息。
如果您的专用networking有一台主机,您可以运行与公用DNS服务器分开的DHCP和DNS,则可能需要将此主机上的DNS设置为专用networking中机器的默认DNS服务器,然后设置DNS服务器使用私有IP来回答这些机器的查询。 但是,如果不是您感兴趣的DNS区域中的所有计算机都将拥有专用IP,则可能会导致重复logging,您必须在两台DNS服务器中列出服务器的IP地址。 类似于上面的视图,但是在概念上有点简单的设置和testing,因为你有完全独立的DNS服务器。
当然,将私有IP范围列在与权威公共地址相同的服务器中是一个坏主意。 但是,如果您运行的内部服务器对于您的域不具有权威性(即只能由内部服务器访问),那么在私有地址的同一区域内复制公有地址不存在任何技术问题(除了更新在公共服务器中更改的地址)。 事实上,提供内部DNS服务是非常有意义的。
在logging时间之前,我写了一个脚本来设置绑定,但是请注意,这主要是为了内部地址位于与公共地址不同的域的场景。 现在(如果你在Unix / Linux / POSIX上运行) dnsmasq是一个更好的解决scheme(具有DHCP地址的附加好处)。
如果您不想混淆less量logging的BIND视图(或者运行的DNS服务器没有像Microsoft DNS那样的function),则可以在内部DNS服务器上创build相应的区域仅包含@ Alogging的内部主机的FQDN。 您域中的其他logging将通过您的Internet DNSparsing。 对于使用内部DNS服务器的LAN上的客户端,将返回指定了LAN IP的FQDN区域(因为LAN DNS服务器对这些名称是权威的)。
在DNS中添加全球不可路由的IP范围可能会导致混淆,因为可能有其他服务器具有该IP范围,当欺骗用户访问局域网外的LAN系统时,可能会允许攻击。
在局域网中使用recursion方式设置DNS服务器,如果你还没有一个,在那里添加相关的区域/logging,并在那里指出局域网的DHCP /计算机,或者使用BIND视图或DNS服务器的相应function来显示来自局域网的不同区域