DNS 拆分域架构,同时保留对拆分区域的访问

DNS 拆分域架构,同时保留对拆分区域的访问

与大多数组织一样,我们出于各种原因维护各种拆分域。由于我们的工作,我们经常在域的不同实例中使用相同的名称来指向不同版本的内容,这是我们必须维护的。最近出现的问题是,这正在成为拆分之间访问的障碍。在最简单的情况下,我们希望能够为内部用户提供对 example.com 的访问权限,该网站同时存在于内部和外部。

我们希望能够以 example.com 的形式访问内部版本,以 ext.example.com 的形式访问外部版本。我们有权将外部区域从外部提供商传输到我们的内部 BIND 服务器。

我在 BIND 服务器中配置了一个视图,其中没有客户端匹配项,因此它所做的只是为区域执行区域传输。然后,我尝试在“内部”视图中使用相同的文件作为名为 ext.mypna.com 的主文件。完成此操作后,所有记录都会被 bind 视为“区域外数据”而失效。

通过筛选内部服务器与外部提供商的区域文件,我发现转移的区域标记为“$ORGIN external.com”和“external.com IN SOA”。将这些恢复为 @ 允许 BIND 再次使用区域文件,但它会在更新后被丢弃。

是否有一种标准方法来实现这种架构?

答案1

如果我理解正确的话,您运行的是单独的独立 DNS 服务器,并且每组服务器(我真的希望每个子网或网络位置有多个实例)都包含不同的未协调信息。这是不可持续的。几年前,我实际上继承了类似的东西,它是我们最大的烦恼、错误和中断来源,直到我们将其拆除并构建了一个全新的 DNS 设置。

不要维护多个主服务器来负责各自的区域,而是创建一个主服务器来管理所有区域,并具有多个视图。在合适的地方设置从服务器(另一个位于同一位置,更多位于其他物理位置,将它们物理上和逻辑上放置在靠近用户的位置)。将所有视图复制到所有从服务器,或者如果您知道某些从服务器不会处理来自某些网络的请求,则仅复制部分视图。一旦完成,您的所有服务器都将拥有完全相同的数据。您只需确保视图定义正确,所有客户端都将获得所需的准确结果,无论他们使用哪个服务器。

关于实施的几点提示:

  1. 在您的区域文件中使用 $INCLUDE,以便单个视图文件仅具有在不同视图之间不同的条目(例如,无论视图如何,您的 ext.example.com 可能会解析为相同的 IP,因此它会进入通用包含文件,而 example.com 将特定于每个视图文件)。

  2. 对于复制,您可能希望为每个 DNS 服务器提供多个 IP 地址 - 每个视图一个。这样做是因为视图使用客户端 IP 地址来确定要提供什么 - 这还包括来自从属服务器的 XFER 请求。因此,您必须 1) 对于每个从属服务器,将其一个且仅一个 IP 地址添加到每个视图中;2) 在从属服务器上,使用 named.conf 中的 transfer-source 指令,以便 XFER 源自正确的 IP。以下是更详细地解释的相同想法:http://coding.infoconex.com/post/2010/04/26/Bind-DNS-e28093-Configuring-multiple-views-on-primary-and-secondary-DNS-servers.aspx

另外,看看你是否可以从网络管理员那里获得帮助。在某些情况下,DNS 重写可以使单独的视图变得没有必要。

相关内容