jen*_*ens 7 security domain-name-system local-area-network
这是一个理论问题:鉴于我有几个服务器,它们都有一个公共 IP 地址和一个私有 IP 地址(192.xxx 范围)。两个地址都用于不同的服务。我不想在内部(对于专用 LAN)使用 IP 地址但也不想使用主机名,因为它们更容易记住:
示例:foobar.myhost.com => 公共 IP 222.xxx 和私有 IP 192.xxx
我知道我可以使用 /etc/network/hosts 文件来定义所有“私有 LAN”主机名,但这非常麻烦且容易出错。因为我必须保持所有这些文件同步。
使用标准公共 DNS 记录(我的域)来列出私有名称的最佳实践/您的选择是什么?这有意义吗?然而,这确实改变了我的私有 LAN 的结构,这样好吗?然后公共 DNS 记录还将列出私有 IP(这是我以前从未见过的)。
最大的问题是:实际上我想要一个单一的主机名,但这个主机名同时具有公共和私有 IP 地址。是否有可能在 DNS 记录(具有相同名称 foobar.myhost.com)中定义这两个,但稍后区分私有 IP 地址和公共 IP 地址?
非常感谢任何好的博客文章/最佳实践/文章/意见。
谢谢詹斯
有许多不同的方法可以实现这一点。显然,您不希望为公共和私有 IP 地址创建 A 记录并将这些记录发布以供公共使用,因为这样用户将尝试通过私有 IP 进行访问。如果为单个名称列出了多个 A 记录,它们将在循环中使用,导致用户有时无法连接。
以下是我使用过的一些解决方案:
我最喜欢的解决方案是为这些服务器创建一个 DNS 子区域,可能称为“private.example.com”。然后“example.com”中的服务器具有我在“private.example.com”区域中列出的私有IP地址。然后配置您的 /etc/resolv.conf(可能通过 DHCP),以便当您连接到专用网络时,您的 DNS 搜索路径是“private.example.com example.com”。现在,如果您尝试访问“hostname”,它将首先尝试查找“hostname.private.example.com”。然后是“hostname.example.com”。因此,该域中没有私有 IP 的任何主机都不必在多个位置列出。您还可以通过说“hostname.example.com”明确引用公共 IP,私有 IP 也是如此。但如果你只是说“
注意:如果第三方意识到有一个“private.example.com”区域,他们可能能够查询或“挖掘”它并查看 IP 地址。根据您的具体要求,您可能会关注这些信息的披露,但对于我的需要,披露一些私有 IP 地址从来都不是问题。
您可以配置 BIND 称为“视图”的内容。 这是另一个问题的链接,该问题显示了 views 的示例配置。基本上,您配置访问控制列表,根据请求的 IP 地址说明使用哪个区域文件来回答请求。因此,如果您收到来自专用网络的请求,您可以使用专用 IP 进行响应。然而,视图可能难以配置和维护。还有一个问题是在不同的视图中保留重复的记录副本,有关更多详细信息,请参阅我的下一个建议。
如果您的专用网络有一台主机,您可以在该主机上运行与公共 DNS 服务器分开的 DHCP 和 DNS,您可能希望将此主机上的 DNS 设置为专用网络中机器的默认 DNS 服务器,然后设置DNS 服务器使用私有 IP 回答对这些机器的查询。但是,如果不是您感兴趣的 DNS 区域中的所有计算机都将拥有私有 IP,这可能会导致记录重复,您现在必须在两个 DNS 服务器中列出服务器的 IP 地址。类似于上面的视图,但从概念上讲,设置和测试更简单一些,因为您拥有完全独立的 DNS 服务器。