问题。我有一个 Windows AD 域,但有一部分对我来说是个谜:Windows 域/DNS 服务器如何查找 Windows 域之外的域?
在简单的家庭网络中,DNS 请求路由很容易理解:
Generic Example: Client machine -> (defined DNS or from DHCP) ->
->Router / Gateway -> (usually ISP DNS) -> DNS root servers -> Internet
Specific Example: 192.168.1.101 -> 192.168.1.1 -> 8.8.8.8 -> DNS root servers -> Internet
相比之下,我目前看到的 AD 网络路径是这样的:
Client Machine -> Windows Domain / DNS -> ??????? -> DNS root servers -> Internet
如果我检查我的 Domain Server 上的网络设置,DNS 设置为备用 DNS 服务器(辅助 Domain Server)、它本身和环回,没有别的。
我的互联网工作正常,所以 Windows 域服务器以某种方式足够智能,可以从上游服务器获取 DNS 信息,但是这是在哪里以及如何定义的?
您的 DC 可以通过以下几种方式查询外部名称服务器:
我猜#1或#2。您的问题仅包括检查网络设置 - 您是否检查过 DC 上的 DNS 管理器?
如果以上所有内容均为空白,则说明发生了意外情况,您或许应该使用wireshark 跟踪传出的DNS 查询。
DNS 由两个完全不同的部分组成。一部分负责发布数据,另一部分负责接受来自客户端的 DNS 请求并尝试通过收集数据来响应这些请求。扮演发布数据角色的 DNS 服务器通常被称为“权威”服务器,尽管这在技术上并不是一个真正正确的名称。就个人而言,我更喜欢“DNS 内容服务器”这个名称,但该术语的使用并不广泛。接受和回答来自客户端的请求的服务器通常称为“解析”服务器。
这实际上与 HTTP 服务器和 HTTP 代理的工作方式非常相似:HTTP 服务器发布数据,HTTP 代理接受来自客户端(浏览器)的请求,并联系服务器以收集客户端请求的数据。Web 浏览器和 DNS 客户端之间的区别在于,DNS 客户端本身无法联系内容 DNS 服务器。DNS 客户端必须使用 DNS 解析服务器,而 Web 浏览器完全能够在没有 HTTP 代理的情况下运行。
由于 DNS 信息以分层和分布式方式存储,因此要回答单个查询,您需要来自多个 DNS 内容服务器的信息,这些服务器可能位于世界各地。当 DNS 客户端想知道“www.serverfault.com”的地址时,它可以将该请求发送到 DNS 解析服务器。然后,该 DNS 解析服务器必须执行联系全球 DNS 服务器的实际工作。
首先,解析 DNS 服务器将整个查询发送到根服务器(即内容 DNS 服务器)。该根服务器没有完整的答案,但它确实知道哪些 DNS 内容服务器具有有关“.com”域中名称的更多信息。因此,DNS 解析器现在将整个查询发送到“.com”内容 DNS 服务器之一。该服务器也没有完整的答案,但它确实知道哪些 DNS 内容服务器有更多关于名称的信息
servervault.com
领域。解析 DNS 服务器将不断询问世界各地的内容 DNS 服务器,直到它为客户端提供完整的答案。当然,解析 DNS 服务器将一路缓存信息:如果它从其缓存中知道“.com”内容 DNS 服务器在哪里,它不会为“.com”域中的每个查询联系根内容 DNS 服务器。“转发器”只是一个解析 DNS 服务器,它将客户端查询发送到另一个(预配置的)解析 DNS 服务器,而不是通过联系世界各地的内容 DNS 服务器来尝试自己回答它们。家庭路由器通常包含一个解析 DNS 服务器,该服务器被配置为使用 ISP 的解析 DNS 服务器作为转发器。
当两个不同的角色(内容服务和解析)一起出现在一个 DNS 服务器中时,可能会让人感到困惑。这或多或少是 Active Directory 发生的情况。在 Active Directory 中,DNS 用于发布有关在何处可以找到某些服务的信息。例如,当域中的客户端
ad.example.com
想要联系其域的 Kerberos 密码更改服务器时,它会针对名为_kpasswd._tcp.ad.example.com
. 与任何其他 DNS 请求一样,此 DNS 请求被发送到客户端中配置的解析 DNS 服务器。解析 DNS 服务器然后开始工作以尝试回答请求。这是它可能会有点混乱的地方。DNS 解析服务器可能知道它是特定 Active Directory 域的一部分,这意味着它可以识别对该域中名称的传入查询。如果解析器收到这样的查询,它不会联系外部 DNS 服务器,但它可以直接回复来自 Active Directory 数据库的信息。如果传入查询不是针对域中的名称,解析器要么尝试通过联系内容 DNS 服务器自己回答问题,要么(如果它被配置为使用转发器)只是将查询发送到另一个 DNS 解析服务器. 这很可能是您的场景中发生的情况。
更令人困惑的是动态更新。在任何重要的领域中,服务都不是静态的。可能会添加或删除域控制器等。这同样适用于工作站。这意味着需要更新 DNS 中的信息以反映这一点。动态更新是一种使客户端能够修改在 DNS 中发布的信息的协议。客户端向其解析 DNS 服务器发送查询,以找出它可以将新信息发送到哪个内容 DNS 服务器。在 Active Directory 集成 DNS 基础设施的情况下,解析 DNS 服务器很可能有权访问数据库本身:在这种情况下,解析 DNS 服务器告诉客户端它可以自己更新信息。