首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于DNS路由的一般问题

关于DNS路由的一般问题
EN

Server Fault用户
提问于 2015-09-27 19:01:56
回答 2查看 254关注 0票数 1

有个问题。我有一个Windows域,有一个部分对我来说是个谜: Windows域/ DNS服务器如何查找Windows域以外的域?

在简单的家庭网络中,DNS请求路由很容易理解:

代码语言:javascript
复制
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网络中看到的路径是:

代码语言:javascript
复制
Client Machine -> Windows Domain / DNS -> ??????? -> DNS root servers -> Internet

如果我检查域服务器上的网络设置,则DNS设置为备用DNS服务器(辅助域服务器)、其本身和回送,而不是其他任何内容。

我的互联网正常工作,所以Windows域服务器很聪明,可以从上游服务器获取DNS信息,但是在哪里以及如何定义呢?

EN

回答 2

Server Fault用户

回答已采纳

发布于 2015-09-27 23:52:07

DC可以通过多种方式查询外部名称服务器:

  1. 根提示
  2. 全球货运代理
  3. 显式定义存根区域、委托区域或条件转发区域
  4. 设置在你的DC的网络接口--你已经检查过了。

我将猜测#1或#2。您的问题只包括检查网络设置--您检查过DC上的DNS管理器吗?

如果上面的所有内容都是空的,那么可能会发生一些意外的事情,您也许应该使用wireshark跟踪传出的DNS查询。

票数 3
EN

Server Fault用户

发布于 2015-09-28 18:52:44

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服务器将在此过程中缓存信息:如果解析DNS服务器从其缓存中知道".com“内容DNS服务器所在的位置,它将不会联系".com”域中的每个查询的根内容DNS服务器。

“转发器”只是一个解析DNS服务器,它将客户端查询发送到另一个解析DNS服务器(预配置),而不是试图通过联系全世界的内容DNS服务器来响应它们。家庭路由器通常包含解析DNS服务器,该服务器被配置为使用ISP的解析DNS服务器作为转发器。

当两个不同的角色(内容服务和解析)聚集在一个DNS服务器上时,它可能会变得很混乱。这或多或少就是Active Directory所发生的事情。在Active中,DNS用于发布有关可在何处找到某些服务的信息。例如,当域中的客户端ad.example.com想联系其域的Kerberos密码更改服务器时,它会向名为_kpasswd._tcp.ad.example.com的SRV记录发出DNS请求。与任何其他DNS请求一样,此DNS请求将发送到客户端中配置的解析DNS服务器。解析DNS服务器然后开始工作,试图响应请求。

这可能会让人有点困惑。DNS解析服务器可能知道它是特定域的一部分,这意味着它可以识别该域中名称的传入查询。如果解析器收到这样的查询,它将不会与DNS服务器之外的服务器联系,但它可以直接使用Active数据库中的信息进行答复。如果传入的查询不是针对域中的名称的,解析器将尝试通过与内容DNS服务器联系来回答问题本身,或者(如果将其配置为使用转发器)只将查询发送到另一个DNS解析服务器。这很可能发生在您的场景中。

更令人困惑的是动态更新。在任何重要的领域中,服务都不是静态的。域控制器可能被添加或删除,等等。同样适用于工作站。这意味着需要更新DNS中的信息以反映这一点。动态更新是一种协议,它允许客户端修改在DNS中发布的信息。客户端向其解析DNS服务器发送查询,以确定可以将新信息发送到哪个内容DNS服务器。在Active集成DNS基础结构的情况下,解析DNS服务器很可能可以访问数据库本身:在这种情况下,解析DNS服务器告诉客户端它可以自己更新信息。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/725135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档