我们有一个新的 Windows 2008 R2 安装,作为具有 DNS 的域控制器运行。我们还有外部公共 IP,它们通过 NAT 连接到我们网络上的内部资源。已使用这些外部公共 IP 配置外部 DNS,以解析我们公司域名上的内部资源。
这些相同的 DNS 记录也已在内部 Windows 2008 DNS 上配置,以映射到内部私有 IP(其中 A 记录针对的是非 AD 一部分的资源,即自定义公司网站 URL 等)。
我们的问题是,即使内部客户端或其他成员服务器将主 DNS 设置为 Windows 2008 DNS 服务器(并将路由器设置为辅助 DNS),DNS 查询也会间歇性地解析为外部公共 IP(由于 Cisco 路由器阻止它,因此无法工作)。即使您对资源执行 nslookup,它也会将 Windows DNS 设置为主 DNS,并返回正确的内部 IP。但是,当您 ping 资源或尝试通过浏览器访问它(因为它是一个网站)时,它仍然会解析为外部公共 IP。
它究竟为什么要这么做?
答案1
考虑到您的配置,这种行为是意料之中的。您不应将路由器的 IP 设置为 PC 和成员服务器的辅助 DNS,否则它们有时会转到您不希望的那个位置。它们应该只将域控制器作为其 DNS,以便所有 DNS 流量都通过域控制器路由。然后,您可以将域控制器配置为转发到它无法解析的域的上游 DNS 服务器(通常是您的 ISP),或者让它保持原样,它将使用根提示服务器来解析外部查询。
通常,您需要在 PC 和成员服务器上配备两个 DNS 服务器,并且可以通过第二个域控制器来实现这一点,这样,如果主服务器出现故障,DNS(和 Active Directory)仍可继续运行。
答案2
我要做的第一件事是从客户端(包括服务器)上的 DNS 配置中删除路由器的 IP 地址。所有 AD/DNS 客户端都应仅将您的 AD/DNS 服务器用于 DNS。我认为没有理由使用任何其他 DNS 服务器,并且可以看到这会导致间歇性、不稳定的名称解析问题,例如您所遇到的问题。
答案3
icky3000 说到了点子上。 您的后备代理 DNS 服务器为您的主要代理 DNS 服务器提供了不同的 DNS 命名空间视图,因此导致出现问题。 不要那样做。