查看 DNS 概念

域名系统 (DNS) 是一个表示命名空间的分布式数据库。 命名空间包含任何客户端查找任何名称所需的所有信息。 任何 DNS 服务器都可以答复有关其命名空间中任何名称的查询。 DNS 服务器通过以下方式之一来答复查询:

  • 如果答案位于其缓存中,它将从缓存中答复查询。
  • 如果答案位于 DNS 服务器托管的区域中,则它将从其区域中答复查询。 区域是 DNS 服务器上存储的 DNS 树的一部分。 当 DNS 服务器托管某个区域时,它对该区域中的名称具有权威性(也就是说,DNS 服务器可以答复对该区域中的任何名称的查询)。 例如,托管 contoso.com 区域的服务器可以答复对 contoso.com 中的任何名称的查询。
  • 如果服务器无法从其缓存或区域中答复查询,它会查询其他服务器以获取答案。

了解 DNS 的核心功能(例如委托、递归名称解析和 Active Directory 集成的 DNS 区域)非常重要,因为它们直接影响到 Active Directory 逻辑结构设计。

有关 DNS 和 Active Directory 域服务 (AD DS) 的详细信息,请参阅 DNS 和 AD DS

委托

要使 DNS 服务器能够答复有关任何名称的查询,它必须具有指向命名空间中每个区域的直接或间接路径。 这些路径是通过委托创建的。 委托是父区域中的一条记录,其中列出了一个名称服务器,该服务器对层次结构的下一个级别中的区域具有权威性。 委托使一个区域中的服务器能够将客户端引荐到其他区域中的服务器。 下图显示了一个委托示例。

DNS 概念

DNS 根服务器托管以点 (.) 表示的根区域。 根区域包含对下一级层次结构中的区域(即 com 区域)的委托。 根区域中的委托告知 DNS 根服务器,若要查找 com 区域,它必须联系 Com 服务器。 同样,com 区域中的委托会告知 Com 服务器,若要查找 contoso.com 区域,它必须联系 Contoso 服务器。

注意

委托使用两种类型的记录。 名称服务器 (NS) 资源记录提供权威服务器的名称。 主机 (A) 和主机 (AAAA) 资源记录提供权威服务器的 IP 版本 4 (IPv4) 和 IP 版本 6 (IPv6) 地址。

这个包含区域和委托的系统创建一个表示 DNS 命名空间的分层树。 每个区域表示层次结构中的一个层,每个委托表示树的一个分支。

使用包含区域和委托的层次结构,DNS 根服务器可以在 DNS 命名空间中找到任何名称。 根区域包括直接或间接引导到层次结构中的所有其他区域的委托。 任何可以查询 DNS 根服务器的服务器都可以使用委托中的信息来查找命名空间中的任何名称。

递归名称解析

递归名称解析是 DNS 服务器使用包含区域和委托的层次结构来响应它对其不具权威性的查询的过程。

在某些配置中,DNS 服务器包含根提示(即名称和 IP 地址列表),使它们能够查询 DNS 根服务器。 在其他配置中,服务器将所有无法答复的查询转发到另一台服务器。 转发和根提示都是可供 DNS 服务器用来解析它们不具权威性的查询的方法。

通过使用根提示解析名称

根提示使任何 DNS 服务器都能够查找 DNS 根服务器。 DNS 服务器找到 DNS 根服务器后,可以解析该命名空间的任何查询。 下图描述了 DNS 如何使用根提示来解析名称。

此图显示 DNS 如何使用根提示来解析名称。

在此示例中,会发生以下事件:

  1. 客户端将递归查询发送到 DNS 服务器,以请求与名称 ftp.contoso.com 对应的 IP 地址。 递归查询指示客户端需要一个针对其查询的明确答案。 对递归查询的响应必须是一个有效的地址或一条指示找不到地址的消息。
  2. 由于 DNS 服务器对名称不具有权威性,并且其缓存中没有答案,因此 DNS 服务器使用根提示来查找 DNS 根服务器的 IP 地址。
  3. DNS 服务器使用迭代查询来请求 DNS 根服务器解析名称 ftp.contoso.com。 迭代查询表示服务器将接受向另一台服务器进行的引荐,而不是对查询的明确答复。 由于名称 ftp.contoso.com 以标签 com 结尾,因此 DNS 根服务器会返回一个向托管 com 区域的 Com 服务器进行的引荐。
  4. DNS 服务器使用迭代查询来请求 Com 服务器解析名称 ftp.contoso.com。 由于名称 ftp.contoso.com 以名称 contoso.com 结尾,因此 Com 服务器会返回一个向托管 contoso.com 区域的 Contoso 服务器进行的引荐。
  5. DNS 服务器使用迭代查询来请求 Contoso 服务器解析名称 ftp.contoso.com。 Contoso 服务器在其区域数据中查找答案,然后将答案返回给 DNS 服务器。
  6. 然后,DNS 服务器将结果返回给客户端。

通过使用转发解析名称

使用转发,你可以通过特定服务器路由名称解析,而不使用根提示。 下图描述了 DNS 如何使用转发来解析名称。

此图显示 DNS 如何使用转发来解析名称。

在此示例中,会发生以下事件:

  1. 客户端向 DNS 服务器查询名称 ftp.contoso.com。
  2. DNS 服务器将查询转发到另一个 DNS 服务器,称为转发器。
  3. 由于转发器对名称不具有权威性,并且其缓存中没有答案,因此它使用根提示来查找 DNS 根服务器的 IP 地址。
  4. 转发器使用迭代查询来请求 DNS 根服务器解析名称 ftp.contoso.com。 由于名称 ftp.contoso.com 以名称 com 结尾,因此 DNS 根服务器会返回一个向托管 com 区域的 Com 服务器进行的引荐。
  5. 转发器使用迭代查询来请求 Com 服务器解析名称 ftp.contoso.com。 由于名称 ftp.contoso.com 以名称 contoso.com 结尾,因此 Com 服务器会返回一个向托管 contoso.com 区域的 Contoso 服务器进行的引荐。
  6. 转发器使用迭代查询来请求 Contoso 服务器解析名称 ftp.contoso.com。 Contoso 服务器在其区域文件中查找答案,然后将答案返回给 DNS 服务器。
  7. 然后,转发器将结果返回给原始 DNS 服务器。
  8. 然后,原始 DNS 服务器将结果返回给客户端。