![内部 DNS 委托给外部主机](https://linux22.com/image/613053/%E5%86%85%E9%83%A8%20DNS%20%E5%A7%94%E6%89%98%E7%BB%99%E5%A4%96%E9%83%A8%E4%B8%BB%E6%9C%BA.png)
我们一直面临内部 DNS 委派的问题。
以下是我们的架构和问题的描述:
建筑学
域1
- DHCPDNS1 和 DHCPDNS2 (Windows Server 2012)
域2
- extDNS1 和 extDNS2 (Windows Server 2003) - 外部 DNS
- intDNS1 和 intDNS2 (Windows Server 2003) - Domain2 服务器的内部 DNS
- srv1 和 srv2 (Windows Server 2003) - Web 服务器
以下是我们的架构描述: 我们的环境中有两个 Active Directory 域(林)。第一个是“Domain1”(我们将其用于通用服务器和用户/客户端计算机)和“Domain2”(我们将其用于 Web 开发服务器)。Domain2 还包括我们的外部 DNS“extDNS1”和“extDNS2”。我们有相当多的网站托管在外部(在“Domain1”和“Domain2”之外),但需要在“Domain2”中的 Web 服务器(“srv1”和“srv2”)上进行内部引用,以便与其他网站和门户集成。这些网站使用“extDNS1”和“extDNS2”作为其 DNS。为了使“srv1”和“srv2”能够引用这些外部服务器,我们在“intDNS1”和“intDNS2”服务器的“Domain2”中的内部 DNS 中为这些域设置了委托。这些委托指向“Domain1”中的服务器“DHCPDNS1”和“DHCPDNS2”,以获取外部 DNS 地址。 “DHCPDNS1”和“DHCPDNS2”是我们的 DHCP 服务器。
在 Windows Server 2008 上安装“DHCPDNS1”和“DHCPDNS2”之前,此设置一直运行良好。我们最近将这两台服务器迁移到 Windows Server 2012,使用与之前相同的 DHCP 和 DNS 设置。迁移后,在“srv1”或“srv2”上,我们无法通过 ping 解析委托指向“DHCPDNS1”和“DHCPDNS2”的域的 IP 地址。
以下是一些观察结果以及我们尝试过的一些方法:
如果我们在 Domain1 或 DHCPDNS1 或 DHCPDNS2 中的任何客户端计算机或服务器上 ping 这些子域,它就能够检索外部 IP 地址,然后将其存储在其 DNS 解析器缓存中。只要这些记录存在于 DHCPDNS1 或 DHCPDNS2 的解析器缓存中,srv1 和 srv2(以及 Domain2 中的所有服务器)就能够 ping 这些子域。当 DHCPDNS1 和 DHCPDNS2 上的解析器缓存记录过期时,从 Domain2 服务器 ping 将无法工作。请记住,这仅适用于具有指向 DHCPDNS1 和 DHCPDNS2 的委托的域。同样,我们的目标是 Domain2 中的服务器能够检索外部 IP 地址,这是不可能的,因为外部 DNS 位于同一个域中。
当将 DHCPDNS1 上的动态更新从“无”更改为“不安全且安全”时,Domain2 服务器立即能够成功地通过 DHCPDNS1 和 DHCPDNS2 路由其 ping 请求。这工作了 7 天,现在所有 Domain2 服务器上的 ping 请求都无法解析。我不确定这是否与 DHCPDNS1 上的默认设置为 7 天的老化有关。
希望有人能帮我解释一下。再次重申,我们的目标是域 2 中的所有服务器(包括外部 DNS)必须能够 ping 外部地址(使用 extDNS1 和 extDNS2 作为其 DNS)。因此,域 Domain2 中的内部 DNS 必须指向外部 IP 地址。
答案1
我们在 DHCPDNS1 和 DHCPDNS2 上设置转发到 8.8.8.8,现在 Domain2 中的所有服务器都可以解析这些地址。