Active Directory (AD)域设计的最佳做法建议使用注册域名作为 AD 域的名称。可行的备选方案包括使用非公共 DNS 后缀(例如,本地或LAN)在 ad 域名中,或者使 AD 域成为注册域的子域(例如,corp.domain.com)。
但是,您不能在该情况下始终进行选择。您可能会发现自己支持与公司注册域具有相同名称的 AD 域,并且管理可能不希望更改任一名称。这称为拆分 DNS (或裂脑 DNS)情形,其中有两个不同的 DNS 命名空间— AD 使用的内部命名空间,而公共域注册器使用的外部命名空间—具有相同的名称。这种情况可能会带来一些独特的挑战。本文讨论了拆分 DNS 环境中的一些常见问题,以及为缓解这些问题可采取的措施。
在下面的所有示例中,AD 域和注册域均命名为 " domain.com",并且存在名为 " www.domain.com" 的公司网站。
问题1:在办公室
内无法访问外部托管的公司网站在拆分 DNS 环境中,这是最常见的问题:公司的网站或另一个公司拥有互联网连接的资源,不能通过加入 AD 域的机器从办公室内部到达,但在办公室以外的机器没有问题访问该网站。发生这种情况的原因可能是:检查内部用户尝试浏览公司网站时所发生的情况:
出现此问题的原因在于,在其数据库中具有特定查找分区的 DNS 服务器—此示例中的domain.com分区-不会在其他任何位置发送该区域中的记录的查询;如果没有与给定查询匹配的记录,它将只返回 "未找到" 响应。在此示例中,存在另一个具有正确记录的 DNS 服务器:托管属于域注册机构的公用domain.com分区的 DNS 服务器,因为该办事处外部的机器可以访问该网站。但是,来自内部计算机的查询从不会到达该服务器。
此问题的解决方案很简单:在 DC 上的domain.com分区中创建名为www的主机记录,并提供该网站的 IP 地址。随后查询 DNS 服务器的计算机将获得正确的响应并能浏览网站。
问题2:从办公室内部无法访问内部托管的公共网站
这可能被视为上面的问题1的变化。这种情况的不同之处在于,该网站在内部托管,可以位于公司内部网络或 DMZ 中的防火墙之后。它应可供内部和外部用户访问,但内部用户无法访问,而外部用户报告不存在问题。
问题的原因与问题1中的类似,但这种情况下的内部用户能够将网站的名称正确解析为其公用 IP 地址。但是,由于防火墙的配置方式,他们仍然无法访问网站。它要求内部网络上的用户使用其专用地址而不是其公用地址来访问网站。
此外,还提供了一个简单的修补程序:在 DC 上的domain.com分区中创建名为www的主机记录,但这次将为该记录提供网站的专用 IP 地址。内部计算机将网站的名称解析为该专用地址,而外部机器继续将该名称解析为网站的公用地址。
问题3:在执行上述更改后,网站未完成加载或仍无法加载
如果网站代码将浏览器从www.domain.com重定向到domain.com或内部链接引用网站为domain.com而不是www.domain.com,则会发生这种情况。无论站点是内部还是外部托管,在内部计算机上都会看到相同的症状:
这种情况下的问题稍复杂一些。为了让机器将domain.com解析为 IP 地址,DNS 中的domain.com分区中必须有一个空的主机记录。在 Windows DNS 控制台中,此记录的名称显示为(与父文件夹相同) 。但是,在这种情况下存在问题:AD 使用domain.com分区中的空白主机记录来表示Domain.com域的 dc。域成员在查找用于身份验证的 DC 时使用这些记录,如果domain.com分区中存在额外的空主机记录,可能会导致延迟或身份验证问题。
出于上述原因,无法单独在 DNS 中解决此问题。使用该网站的 IP 地址创建空主机记录时,会间歇性地解决针对内部用户的网站访问问题,因为在域中已存在包含 Dc 的 IP 地址的其他空主机记录,因此会导致域身份验证问题。
解决此问题的最简单方法是修改网站的代码,以删除重定向或修复内部链接,以使所有内容均称为www.domain.com而非domain.com。如果不能修改代码,则唯一用于解决该问题的选项是重命名 AD 域。这可能是一项复杂的任务,具体取决于环境的大小和复杂程度。