DNS 定义

DNS 是域名系统 (Domain Name System) 的缩写,该系统用于命名组织到域层次结构中的计算机和网络服务。DNS 命名用于 Internet 等 TCP/IP 网络中,通过用户友好的名称查找计算机和服务。当用户在应用程序中输入 DNS 名称时,DNS 服务可以将此名称解析为与之相关的其他信息,如 IP 地址。
例如,多数用户喜欢使用友好的名称(如 example.microsoft.com)来查找计算机,如网络上的邮件服务器或 Web 服务器。友好名称更容易了解和记住。但是,计算机使用数字地址在网络上进行通讯。为更容易地使用网络资源,DNS 等命名系统提供了一种方法,将计算机或服务的用户友好名称映射为数字地址。
下图显示了 DNS 的基本用途,即根据计算机名称查找其 IP 地址。
本例中,客户端计算机查询 DNS 服务器,要求获得某台计算机(已将其 DNS 域名配置为 host-a.example.microsoft.com)的 IP 地址。由于 DNS 服务器能够根据其本地数据库应答此查询,因此,它将以包含所请求信息的应答来回复客户端,即一条主机 (A) 资源记录,其中含有 host-a.example.microsoft.com 的 IP 地址信息。
此例显示了单个客户端与 DNS 服务器之间的简单 DNS 查询。实际上,DNS 查询要复杂得多,包含此处未显示的许多其他步骤。详细信息,请参阅DNS 查询的工作原理
DNS 查询的工作原理

DNS 查询的工作原理

当 DNS 客户端需要查询程序中使用的名称时,它会查询 DNS 服务器来解析该名称。客户端发送的每条查询消息都包括三条信息,指定服务器回答的问题:
  • 指定的 DNS 域名,规定为完全合格的域名 (FQDN)

  • 指定的查询类型,可根据类型指定资源记录,或者指定查询操作的专用类型。

  • DNS 域名的指定类别。

    对于 Windows DNS 服务器,它始终应指定为 Internet (IN) 类别。

例如,指定的名称可为计算机的 FQDN,如 host-a.example.microsoft.com,并且指定的查询类型用于通过该名称搜索地址 (A) 资源记录。将 DNS 查询看作客户端向服务器询问由两部分组成的问题,如“您是否拥有名为‘hostname.example.microsoft.com’的计算机的 A 资源记录?”当客户端收到来自服务器的应答时,它将读取并解释应答的 A 资源记录,获取根据名称询问的计算机的 IP 地址。
DNS 查询以各种不同的方式进行解析。有时,客户端也可使用从先前的查询获得的缓存信息在本地应答查询。DNS 服务器可使用其自身的资源记录信息缓存来应答查询。DNS 服务器也可代表请求客户端查询或联系其他 DNS 服务器,以便完全解析该名称,并随后将应答返回至客户端。这个过程称为递归。
另外,客户端自己也可尝试联系其他的 DNS 服务器来解析名称。当客户端执行此操作时,它会根据来自服务器的参考答案,使用其他的独立查询。这个过程称为迭代。
总之,DNS 查询进程分两部分进行:
  • 名称查询从客户端计算机开始,并传输至解析程序即 DNS 客户端服务程序进行解析。

  • 不能在本地解析查询时,可根据需要查询 DNS 服务器来解析名称。

下面将更加详细地解释这两个过程。

第 1 部分:本地解析程序

下图显示了完整的 DNS 查询进程的概况。
如查询过程的初始步骤所示,DNS 域名由本机的程序使用。该请求随后传输至 DNS 客户端服务,以便使用本地缓存信息进行解析。如果可以解析查询的名称,则应答该查询,该进程完成。
本地解析程序的缓存可包括从两个可能的来源获取的名称信息:
  • 如果在本地配置主机文件,则来自该文件的任何主机名称到地址的映射,在 DNS 客户端服务启动时将预先加载到缓存中。

  • 从以前的 DNS 查询应答的响应中获取的资源记录,将被添加至缓存并保留一段时间。

如果此查询与缓存中的项目不匹配,则解析过程继续进行,客户端查询 DNS 服务器来解析名称。

第 2 部分:查询 DNS 服务器

如前面的图中所示,客户端将查询首选 DNS 服务器。在此进程的初始客户端/服务器查询部分中使用的实际服务器选自全局列表。有关如何编译和更新该全局列表的详细信息,请参阅客户端功能
当 DNS 服务器接收到查询时,首先检查它能否根据在服务器的本地配置区域中获取的资源记录信息作出权威性的应答。如果查询的名称与本地区域信息中的相应资源记录匹配,则使用该信息来解析查询的名称,服务器作出权威性的应答。
如果区域信息中没有查询的名称,则服务器检查它能否通过来自先前查询的本地缓存信息来解析该名称。如果从中发现匹配的信息,则服务器使用该信息应答查询。接着,如果首选服务器可使用来自其缓存的完全匹配响应来应答发出请求的客户端,则此次查询完成。
如果查询名称在首选服务器中未发现来自缓存或区域信息的匹配应答,则查询进程可继续进行,使用递归来完全解析名称。这涉及来自其他 DNS 服务器的支持,以帮助解析名称。在默认情况下,DNS 客户端服务要求服务器在返回应答之前,使用递归过程来代表客户端完全解析名称。在大多数情况下,DNS 服务器默认配置为支持递归过程,如下图所示。
为了使 DNS 服务器正确执行递归过程,首先需要使用 DNS 域命名空间内有关其他 DNS 服务器的一些有用的联系信息。该信息以根提示的形式提供,它是一个初始资源记录列表,DNS 服务可利用这些记录定位其他 DNS 服务器,它们对 DNS 域命名空间树的根具有绝对控制权。根服务器对于 DNS 域命名空间树中的根域和顶级域具有绝对控制权。详细信息,请参阅更新根提示
使用根提示查找根服务器,DNS 服务器可完成递归的使用。理论上,该进程将启用 DNS 服务器,以定位那些对域命名空间树的任何级别使用的任何其他 DNS 域名具有绝对控制权的服务器。
例如,当客户端查询单个 DNS 服务器时,考虑使用递归过程来定位名称 host-b.example.microsoft.com。在 DNS 服务器和客户端首次启动,并且没有本地缓存信息可帮助解析名称查询时,就会进行上述过程。根据其配置的区域,它假定由客户端查询的名称是域名,该服务器在本地不包含有关该域名的信息。
首先,首选服务器分析全名并确定对于顶级域“com”具有绝对控制权的服务器的位置。随后,对“com”DNS 服务器使用迭代查询,以获取“microsoft.com”服务器的参考信息。随后,参考应答从“microsoft.com”服务器传送到“example.microsoft.com”的 DNS 服务器。
最后,与服务器 example.microsoft.com 建立联系。因为该服务器包括作为其配置区域一部分的查询名称,所以它向启动递归的源服务器作出权威性地应答。当源服务器接收到表明已获得对请求查询的权威性应答的响应时,它将此应答转发给发出请求的客户端,这样递归查询过程就完成了。
尽管执行上述递归查询过程可能需要占用大量资源,但对于 DNS 服务器来说它仍然具有一些性能上的优势。例如,在递归过程中,执行递归查询的 DNS 服务器可获得有关 DNS 域命名空间的信息。该信息由服务器缓存起来并可再次使用,以便提高使用此信息或与之匹配的后续查询的应答速度。随着时间的推移,这些缓存信息会不断增加并占据大量的服务器内存资源,尽管每次 DNS 服务重新启动时这一信息将被清除。

可选的查询响应

以前对 DNS 查询的讨论,都假定此过程在结束时会向客户端返回一个肯定的响应。然而,查询也可返回其他应答。最常见的应答有:
  • 权威性应答

  • 肯定应答

  • 参考性应答

  • 否定应答

权威性应答是返回至客户端的肯定应答,并随 DNS 消息中设置的“授权机构”位一同发送,消息指出此应答是从带直接授权机构的服务器获取的。
肯定应答可由查询的 RR 或 RR 列表(也称作 RRset)组成,它与查询的 DNS 域名和查询消息中指定的记录类型相符。
参考性应答包括查询中名称或类型未指定的其他资源记录。如果不支持递归过程,则这类应答将返回至客户端。这些记录的作用是为了提供一些有用的参考性应答,客户端可使用参考性应答继续进行递归查询。
参考性应答包含其他的数据,如不属于查询类型的资源记录 (RR)。例如,如果查询主机名称为“www”并且在这个区域未找到该名称的 A RR,而是找到了“www”的 CNAME RR,则 DNS 服务器在响应客户端时可包含该信息。
如果客户端能够使用迭代过程,则它可使用这些参考性信息为自己进行其他查询,以便完全解析此名称。
来自服务器的否定应答可以表明:当服务器试图处理并且权威性地彻底解析查询的时候,遇到两种可能的结果之一:
  • 权威性服务器报告:在 DNS 命名空间中没有查询的名称。

  • 权威性服务器报告:查询的名称存在,但该名称不存在指定类型的记录。

以肯定或否定响应的形式,解析程序将查询结果传回请求程序并把响应消息缓存起来。
注意
  • 如果查询的最终应答太长而不能在一个 UDP 消息数据包中发送和解析,则 DNS 服务器可以在 TCP 端口 53 上发送故障转移响应消息,以便在 TCP 连接会话中完全应答客户端。

  • 当限定 DNS 客户端的名称解析到特定的 DNS 服务器(如 Intranet 上的 DNS 服务器)的时候,系统通常会禁止在 DNS 服务器上使用递归。当 DNS 服务器不能解析外部 DNS 名称的时候,可能也会禁用递归,而且期望客户端故障转移到其他 DNS 服务器,以便解析这些名称。

    在相应服务器的 DNS 控制台中,可以在“高级”属性中进行配置,以禁用递归。详细信息,请参阅禁用 DNS 服务器上的递归

  • 如果在 DNS 服务器上禁用递归,那么您将无法在同一服务器上使用转发器。

  • 默认情况下,在执行递归查询并联系其他 DNS 服务器时,DNS 服务器使用若干默认的时间设置。它们是:

    • 3 秒的递归重试间隔。这是 DNS 服务在递归查询期间重试查询之前等候的时间长度。

    • 15 秒的递归超时间隔。这是 DNS 服务在重试的递归查询失败之前等候的时间长度。

    在大多数情况下,这些参数不需要进行调整。但是,如果在慢速广域网链路上使用递归查询,那么或许可通过对设置略作调整,来改善服务器的性能,加快查询的完成速度。详细信息,请参阅调整高级服务器参数

迭代的工作原理

迭代是在以下条件生效时 DNS 客户端和服务器之间使用的名称解析类型:
  • 客户端申请使用递归过程,但在 DNS 服务器上禁用递归。

  • 查询 DNS 服务器时客户端没有申请使用递归。

来自客户端的迭代请求告知 DNS 服务器:客户端希望直接从 DNS 服务器那里得到最好的应答,无需联系其他 DNS 服务器。
使用迭代时,DNS 服务器根据它自身对与查询的名称数据有关的命名空间的特定知识应答客户端。例如,如果 Intranet 上的 DNS 服务器接收到来自本地客户端“www.microsoft.com”的查询,则可能会返回来自其名称缓存的应答。如果查询的名称当前未存储在服务器的名称缓存中,则服务器可能会通过提供参考信息对客户端作出响应,即提供一张与客户端所查询的名称比较接近的其他 DNS 服务器的 NS 和 A 资源记录列表。
在形成参考性信息的时候,假定 DNS 客户端负责向其他配置的 DNS 服务器继续进行递归查询,以便解析该名称。例如,在大多数情况下,DNS 客户端可能会将其搜索扩展到 Internet 上的根域服务器,以定位对于“com”域具有绝对控制权的 DNS 服务器。一旦联系上 Internet 根服务器,它就会从指向“microsoft.com”域的实际 Internet DNS 服务器的这些 DNS 服务器中获得进一步的递归响应。当客户端收到这些 DNS 服务器的记录时,可以向 Internet 上的外部 Microsoft DNS 服务器发送其他迭代查询,它们可以提供肯定和权威性的应答。
使用迭代时,除了向客户端提供自己最好的应答外,DNS 服务器还可在名称查询解析中提供进一步的帮助。对于大部分迭代查询,如果它的主 DNS 不能辩识该查询,那么客户端使用本地配置的 DNS 服务器列表,在整个 DNS 命名空间中联系其他名称服务器。

缓存的工作原理

DNS 服务器采用递归或迭代来处理客户端查询时,它们将发现并获得大量有关 DNS 命名空间的重要信息。然后这些信息由服务器缓存。
缓存为 DNS 解析流行名称的后续查询提供了加速性能的方法,同时大大减少了网络上与 DNS 相关的查询通信量。
当 DNS 服务器代表客户端进行递归查询时,它们将暂时缓存资源记录 (RR)。缓存的 RR 包含从 DNS 服务器获得的信息,对于在进行迭代查询以便搜索和充分应答代表客户端所执行的递归查询过程中所获知的 DNS 域名而言,此信息具有绝对的权威性。稍后,当其他客户端发出新的查询,请求与缓存的 RR 匹配的 RR 信息时,DNS 服务器可以使用缓存的 RR 信息来应答它们。
当信息缓存时,生存时间 (TTL) 值适用于所有缓存的 RR。只要缓存 RR 的 TTL 没有到期,DNS 服务器就可继续缓存并再次使用 RR 来应答与这些 RR 相匹配的客户端提出的查询。将大部分区域配置中 RR 所用的缓存 TTL 值指定为“最小的(默认)TTL”,它被设置为用于区域的起始授权机构 (SOA) 资源记录。在默认情况下,最小的 TTL 为 3,600 秒(1 小时),但是可以进行调整,也就是说如果需要可以在每个 RR 上分别设置各自的缓存 TTL。
注意
  • 可将 DNS 服务器安装为仅用于缓存服务器。详细信息,请参阅使用仅用于缓存服务器

  • 默认情况下,DNS 服务器使用根提示文件 Cache.dns,该文件存储在服务器计算机的 systemroot\System32\Dns 文件夹中。当服务启动时,该文件的内容预先加载到服务器存储区,并包含运行 DNS 服务器所在的 DNS 命名空间的根服务器的指针信息。有关该文件或如何使用该文件的详细信息,请参阅与 DNS 相关的文件
客户端功能

客户端功能

域名系统 (DNS) 客户端服务用来解析 DNS 域名与实施下列功能:
  • 系统范围的缓存

    当应用程序查询 DNS 服务器时,来自查询响应的资源记录 (RR) 将添加到客户端缓存中。然后,此信息为设置的生存时间 (TTL) 而缓存,而且可以再使用此信息应答随后的查询。

  • 符合 RFC 的负缓存支持

    除了缓存来自 DNS 服务器(它在应答中包含资源记录信息)的正查询响应之外,DNS 客户端服务还缓存负查询响应。当查询的名称不存在时产生负响应。

    负缓存防止对于不存在的名称的重复查询,因为重复查询会对客户端系统性能产生负影响。负缓存的任何查询信息保存的时间比正查询响应所用的短,默认情况下,不超过 5 分钟。如果这些记录可以在以后使用,这样可避免对于旧信息的连续负缓存。

    负缓存是在 RFC 2308 中定义的新的 DNS 标准规范。 详细信息,请参阅 RFC 文档。有关获取 RFC 的详细信息,请参阅 TCP/IP RFC

  • 避免无响应的 DNS 服务器

    DNS 客户端服务使用按优先级排列的服务器搜索列表。此列表包括为系统中每个活动网络连接配置的所有首选和备用的 DNS 服务器。

    该列表基于下列条件来排布:

    1. 首选的 DNS 服务器具有第一优先权。

    2. 如果没有首选的 DNS 服务器可以使用,则使用备用的 DNS 服务器。

    3. 无响应的服务器会暂时从这些列表中删除。

要点
动态更新

动态更新

动态更新允许 DNS 客户端计算机在发生更改的任何时候使用 DNS 服务器注册和动态地更新其资源记录。它减少了对区域记录进行手动管理的需要,特别对于频繁移动或改变位置并使用 DHCP 获得 IP 地址的客户端更是如此。
DNS 客户端和服务器服务支持使用动态更新,如 RFC (Request for Comments) 2136“Dynamic Updates in the Domain Name System”(域名系统中的动态更新)中所述。DNS 服务器服务允许在配置为加载标准主要区域或目录集成区域的每个服务器上,在每个区域上启用或禁用动态更新。默认情况下,DNS 客户端服务在配置用于 TCP/IP 时,将动态更新 DNS 中的主机 (A) 资源记录 (RR)。有关 RFC 的详细信息,请参阅 DNS RFC

客户端和服务器计算机更新其 DNS 名称的方式

默认情况下,静态配置用于 TCP/IP 的计算机尝试为由其安装的网络连接所配置和使用的 IP 地址动态注册主机 (A) 和指针 (PTR) 资源记录 (RR)。默认情况下,所有计算机都基于其完全限定的域名 (FQDN) 注册记录。
主完整的计算机名称 FQDN 是基于附加到其“计算机名”的“计算机的主 DNS 后缀”。
这两个设置均可在“系统属性”中的“计算机名”选项卡内显示或配置。详细信息,请参阅查看系统属性
注意
  • 默认情况下,Windows XP 上的 DNS 客户端不会尝试通过远程访问服务 (RAS) 或虚拟专用网 (×××) 连接进行动态更新。要修改该配置,可以修改特定网络连接的高级 TCP/IP 设置或修改注册表。有关详细信息,请参阅配置 TCP/IP 使用 DNSMicrosoft Windows 资源工具包网站

  • 默认情况下,DNS 客户端不尝试顶级域 (TLD) 区域的动态更新。用单个标记名称命名的任何区域被视为 TLD 区域,例如,com、edu、空白、my-company。若要配置 DNS 客户端允许对 TLD 区域进行动态更新,可以使用“更新顶级域区域”策略设置或修改注册表。

  • 默认情况下,计算机的 FQDN 的主 DNS 后缀部分必须与计算机连接到的 Active Directory 域的名称相同。要允许使用不同的主 DNS 后缀,域管理员可以通过在域对象容器中修改 msDS-AllowedDNSSuffixes 属性创建包括允许的后缀的限制列表。域管理员使用 Active Directory 服务接口 (ADSI) 或轻型目录访问协议 (LDAP) 管理该属性。

    详细信息,请参阅编程接口目录访问协议

下列任何原因或事件都可导致发送动态更新内容:
  • 在 TCP/IP 属性配置中为任何一个已安装的网络连接添加、删除或修改 IP 地址。

  • IP 地址租约通过 DHCP 服务器更改或续订任何一个已安装的网络连接。例如,当启动计算机时或在使用 ipconfig /renew 命令时。

  • ipconfig /registerdns 命令用于手动执行 DNS 中客户端名称注册的刷新。

  • 当打开计算机进行启动时。

  • 成员服务器被升级为域控制器。

当以前的其中一个事件触发动态更新操作时,DHCP 客户端服务(非 DNS 客户端服务)发送更新内容。它是这样设计的,如果由于 DHCP 的原因而使 IP 地址信息发生变化,则会在 DNS 中进行相应的更新,为该计算机同步名称到地址的映射。DHCP 客户端服务为在系统上使用的所有网络连接执行该功能,包括未配置使用 DHCP 的连接。
注意
  • 如何对运行 Windows 2000、Windows XP 或 Windows Server 2003 操作系统(使用 DHCP 获取其 IP 地址)的计算机执行动态更新的过程与本部分描述的过程不同。详细信息,请参阅使用集成了 DHCP 的 DNS 服务器

  • 该部分所述的更新过程假定安装默认值对于运行 Windows 2000、Windows XP 的计算机或运行 Windows Server 2003 的服务器有效。当高级 TCP/IP 属性配置为使用非默认的 DNS 设置时,可以调整特定的名称和更新行为。

    除计算机的完整计算机名(或主名称)外,其他的特定连接 DNS 名称可在 DNS 中配置并有选择地进行注册或更新。详细信息,请参阅配置多个名称配置 TCP/IP 使用 DNS

例如:如何进行动态更新

当计算机上的 DNS 名称或 IP 地址更改时,通常会要求动态更新。例如,假设名为“oldhost”的客户端最初在“系统属性”中配置的是以下名称:

 

计算机名称
oldhost
计算机的 DNS 域名  
example.microsoft.com
完整的计算机名称
oldhost.example.microsoft.com
在本例中,计算机未配置特定连接 DNS 域名称。随后,计算机从“oldhost”重新更名为“newhost”,这样,系统上将发生以下名称变化:

 

计算机名称
newhost
计算机的 DNS 域名  
example.microsoft.com
完整的计算机名称
newhost.example.microsoft.com
一旦更改的名称在“系统属性”中被采纳,系统就会提示您重新启动计算机。当计算机重新启动 Windows 时,DHCP 客户端服务将会按以下顺序更新 DNS:
  1. DHCP 客户端服务通过使用计算机的 DNS 域名发送起始授权机构 (SOA) 类型查询。

    客户端计算机采用计算机当前配置的 FQDN(如 newhost.example.microsoft.com)作为本查询中所指定的名称。

  2. 用于包含对 SOA 型查询的客户端 FQDN 响应的区域的权威 DNS 服务器。

    对于标准主区域,在 SOA 查询响应中返回的主服务器(所有者)是固定的并且是静态的。它始终与随区域一起存储的 SOA RR 中出现的确切 DNS 名称一致。然而,如果要更新的区域为目录集成的,那么加载区域的任何 DNS 服务器可响应和动态地插入自己的名称作为 SOA 查询响应中区域的主服务器(所有者)。

  3. 然后,DHCP 客户端服务会尝试与主 DNS 服务器联络。

    客户端处理其名称的 SOA 查询响应,以确定授权为接受其名称的主服务器(DNS 服务器)的 IP 地址。然后,它根据需要按以下步骤联络并动态更新其主服务器:

    1. 它向 SOA 查询响应中确定的主服务器发送动态更新请求。

      如果更新成功,则不进行任何进一步的操作。

    2. 如果更新失败,则客户端接着为 SOA 记录中指定的区域名发送 NS 型查询。

    3. 当它接收到对该查询的响应时,会同时向此响应消息中所列的第一个 DNS 服务器发送 SOA 查询。

    4. 解析 SOA 查询之后,客户端向返回的 SOA 记录中所指定的服务器发送动态更新请求。

      如果更新成功,则不进行任何进一步的操作。

    5. 如果此次更新失败,则客户端通过向此响应消息中所列的下一个 DNS 服务器发送同一请求来重复 SOA 查询过程。

  4. 一旦联系到可执行更新的主服务器,客户端就会发送更新请求并且服务器会对它进行处理。

    更新请求的内容包括以下指令:为 newhost.example.microsoft.com 添加 A(有可能是 PTR)RR,然后删除 oldhost.example.microsoft.com 的相同记录类型,后者的名称在以前注册过。

    此服务器还进行检查,以确保允许对客户端请求的更新。对于标准主区域,动态更新是不安全的,因此任何客户端都尝试成功更新。对于 Active Directory 集成的区域,更新是安全的,而且通过使用基于目录的安全设置来执行。

定期发送或刷新动态更新。默认情况下,计算机每 7 天发送一次刷新。如果此更新未引起区域数据的任何改变,则此区域保留为其当前版本并且不会写入任何改动内容。只有当名称或地址实际更改了,更新才会引起实现的区域变化或增加的区域传输。
请注意,如果名称变为非活动状态或在刷新间隔(7 天)内未更新,则名称不从 DNS 区域删除。尽管在地址的更改或新名称生效时,DNS 客户端的确尝试了删除或更新旧的名称记录,但 DNS 仍不会使用某种机制来释放或删除名称。
当 DHCP 客户端服务为计算机注册 A 和 PTR 资源记录时,它会为主机记录使用 15 分钟的默认缓存生存时间 (TTL)。这可以确定其他 DNS 服务器和客户端缓存包含在查询响应中的计算机记录的时间长度。

安全的动态更新

DNS 更新的安全措施只为集成在 Active Directory 中的区域提供。一旦您将目录集成到某个区域,DNS 控制台便可提供访问控制列表 (ACL) 编辑功能,这样您就可为指定的区域或资源记录添加或删除来自 ACL 的用户或组。详细信息,请参阅修改资源记录的安全性修改与目录集成的区域的安全性
默认情况下,DNS 服务器和客户端的动态更新安全性可以做如下处理:
  • DNS 客户端尝试首先使用非安全的动态更新。如果非安全的更新被拒绝,则客户端会试着使用安全的更新。

    另外,如果客户端没有因为更新的安全性要求而被明确拒绝,它们将使用默认的更新策略,这些策略允许客户端尝试覆盖以前注册的资源记录。

  • 区域一旦变为与 Active Directory 集成,运行 Windows Server 2003 的 DNS 服务器就默认为只允许进行安全的动态更新。

    使用标准区域存储区时,DNS 服务器服务默认为不允许在它的区域中动态更新。对于目录集成的区域或者使用基于文件的标准存储的区域,您可更改此类区域,以允许进行所有动态更新,这样所有的更新都将被接受。

要点
注意
  • 动态更新是在 RFC 2136 中定义的最新附加 DNS 标准规范。详细信息,请参阅 RFC。有关获取 RFC 的信息,请参阅 TCP/IP RFC

  • 有关 DNS 动态更新和安全更新的详细信息,请参阅使用 Windows 部署和资源工具包

  • 可使用注册表项限制 DNS 资源记录的动态注册。详细信息,请参阅 Microsoft 知识库中的文章 Q246804“How to Enable/Disable Windows 2000 Dynamic DNS Registrations”(如何启用/禁用 Windows 2000 动态 DNS 注册)。
配置 TCP/IP 使用 DNS

配置 TCP/IP 使用 DNS

  1. 打开“网络连接”。

  2. 右键单击要配置的网络连接,然后单击“属性”。

  3. 在“常规”选项卡(用于本地连接)上或“网络”选项卡(用于所有其他连接)上,单击“Internet 协议 (TCP/IP)”,然后单击“属性”。

  4. 如果要从 DHCP 服务器获得 DNS 服务器地址,请单击“自动获得 DNS 服务器地址”。

  5. 如果要手动配置 DNS 服务器地址,请单击“使用下面的 DNS 服务器地址”,在“首选 DNS 服务器”和“备用 DNS 服务器”中,键入首选 DNS 服务器和备用 DNS 服务器的 IP 地址。

  6. 要配置高级 DNS 属性,请单击“高级”,再单击“DNS”选项卡,然后执行以下一项或多项操作:

    • 配置其他 DNS 服务器的 IP 地址:

在“DNS 服务器地址(按使用顺序排列)”下,单击“添加”。
在“TCP/IP DNS 服务器”中,键入 DNS 服务器的 IP 地址,然后单击“添加”。
要通过附加主 DNS 后缀和每个连接的 DNS 后缀(如果配置的话)来解析不合格的名称,请单击“附加主要的和连接特定的 DNS 后缀”。如果还要搜索主 DNS 后缀的父后缀,一直搜索到二级域,请选中“附加主 DNS 后缀的父后缀”复选框。
要通过从已配置的后缀列表中附加后缀来解析不合格的名称,请单击“附加这些 DNS 后缀(按顺序)”,然后单击“添加”将后缀添加到列表中。
要使用 DNS 动态更新来注册此连接的 IP 地址和计算机的主域名,请选中“在 DNS 中注册此连接的地址”复选框。默认情况下该选项处于启用状态。计算机的主域名是在计算机名后附加主 DNS 后缀,并且在“计算机名称”选项卡(在控制面板的“系统”中)上显示为完整的计算机名。
要使用 DNS 动态更新来注册 IP 地址和此连接的连接特定的域名,请选中“在 DNS 注册中使用此连接的 DNS 后缀”复选框。默认情况下该选项处于禁用状态。此连接的连接特定的域名是在计算机名后附加的此连接的 DNS 后缀。
 
使用集成了 DHCP 的 DNS 服务器

使用集成了 DHCP 的 DNS 服务器

安装 Windows Server 2003 DHCP 服务时,可以配置该服务器,使之能代表其 DHCP 客户端对任何支持动态更新的域名系统 (DNS) 服务器进行更新。

DHCP/DNS 更新如何交互工作

DHCP 服务器可用来代表其启用了 DHCP 的客户端注册和更新指针 (PTR) 和主机 (A) 资源记录。
该进程要求使用一个附加的 DHCP 选项,即“客户端 FQDN”选项(选项 81)。该选项允许客户端提供其完全合格的域名 (FQDN),并向 DHCP 服务器提供关于该服务器如何代表自己处理 DNS 动态更新(如果存在)的指令。
当限定的 DHCP 客户端(例如运行 Windows 2000、Windows XP 或 Windows Server 2003 操作系统并启用了 DHCP 的计算机)发布选项 81 后,运行 Windows Server 2003 的 DHCP 服务器就会处理并解释该选项以确定服务器如何代表客户端来初始化更新。如果服务器被配置成执行 DNS 动态更新,它将执行以下操作之一:
  • 如果客户端使用选项 81 提出请求,DHCP 服务器将同时更新 DNS A 和 PTR 记录。

  • DHCP 服务器同时更新 DNS A 和 PTR 记录,不论客户端是否请求了该操作。

此外,DHCP 服务器还可以代表那些无法向服务器发送选项 81 的旧版客户端动态更新 DNS A 和 PTR 记录。也可以配置 DHCP 服务器,使之在客户端租约被删除时禁用客户端的 A 和 PTR 记录。
可以使用以下方式之一配置 DHCP 服务器:
  • DHCP 服务器根据 DHCP 客户端请求使用它所在区域中的授权 DNS 服务器对客户端信息进行注册和更新。

    对于运行 Windows Server 2003 的 DHCP 服务器和运行 Windows 2000、Windows XP 或 Windows Server 2003 操作系统的 DHCP 客户端而言,这是默认配置。在这种模式下,DHCP 客户端可以对 DHCP 服务器更新其主机 (A) 和指针 (PTR) 资源记录的方式提出请求。如果可能,DHCP 服务器还允许客户端请求处理它在 DNS 中的名称和 IP 地址信息的更新。

    要修改此设置,请选中“只有在 DHCP 客户端请求时才动态更新 DNS A 和 PTR 记录”复选框,该复选框位于相应的 DHCP 服务器或其任一作用域上的“DNS”选项卡的“属性”中。

  • DHCP 服务器始终注册和更新 DNS 中的客户端信息。

    这是为支持运行 Windows Server 2003 的 DHCP 服务器和运行 Windows 2000、Windows XP 或 Windows Server 2003 操作系统的 DHCP 客户端而修改的配置。在该模式下,不论客户端是否请求执行它自身的更新,DHCP 服务器都会执行该客户端的 FQDN、租用的 IP 地址信息以及其主机 (A) 和指针 (PTR) 资源记录的更新。

    要修改此设置,请选中“根据下面的设置启用 DNS 动态更新”复选框,并单击“总是动态更新 DNS A 和 PTR 记录”,该选项位于相应的 DHCP 服务器或其任一作用域上的“DNS”选项卡的“属性”中。

  • DHCP 服务器从不注册和更新 DNS 中的客户端信息。

    要设置该操作,必须配置 DHCP 服务器来禁用 DHCP/DNS 代理更新的性能。禁用该功能后,在 DNS 中不会为 DHCP 客户端更新任何客户端主机 (A) 或指针 (PTR) 资源记录。

    如果需要,可以在运行 Windows Server 2003 的 DHCP 服务器上进行这样的设置更改,方法是清除“根据下面的设置启用 DNS 动态更新”复选框(位于相应的 DHCP 服务器或其任一作用域上的“DNS”选项卡的“属性”中)。默认情况下,始终会对新安装的并且运行 Windows Server 2003 的 DHCP 服务器以及为它们创建的任何新作用域执行更新操作。

高级 DHCP/DNS 服务器配置选项

除上述标准的 DHCP/DNS 交互操作之外,还可配置 DHCP 服务器执行以下这些可选的更新任务:
  1. 可以有选择地将服务器配置为:当客户端租约期满时不发送任何更新内容,以放弃客户端主机 (A) 资源记录。

    如果启用 DHCP 服务器进行 DNS 更新,那么当租约过期时它始终会发送更新内容,以放弃客户端指针 (PTR) 资源记录。至于服务器在客户端租约期满时是否也对客户端主机 (A) 资源记录执行相同操作,则是一个可配置的选项。在默认情况下,服务器将放弃这些记录。

    要在相应的 DHCP 服务器上修改此项,请清除“DNS”选项卡“属性”中的“租约期满时废弃正向(名称到地址)搜索”复选框。

  2. 可以有选择地将服务器配置为:不向无法使用客户端 FQDN 选项(选项 81)的客户端发送更新内容,以请求处理更新的方式。

    默认情况下,DHCP 服务器不会为那些不支持选项 81 的客户端发送更新内容。

    要修改此设置,请选中“为不请求更新的 DHCP 客户端(例如,运行 Windows NT 4.0 的客户端)动态更新 DNS A 和 PTR 记录”复选框,该复选框位于相应的 DHCP 服务器或其任一作用域上的“DNS”选项卡的“属性”中。

Windows DHCP 客户端和 DNS 动态更新协议

在执行上述的 DHCP/DNS 交互操作时,运行 Windows 2000、Windows XP 或 Windows Server 2003 操作系统的 DHCP 客户端与运行 Windows 早期版本的客户端有着不同的交互方式。下面的示例和图形显示了在不同情况下该过程如何变化。

示例 1:运行 Windows 2000、Windows XP 或 Windows Server 2003 操作系统的 DHCP 客户端的 DHCP/DNS 更新交互操作

运行 Windows 2000、Windows XP 或 Windows Server 2003 操作系统的 DHCP 客户端按以下方式同 DNS 动态更新协议交互:
  1. 该客户端向服务器发出 DHCP 请求消息 (DHCPREQUEST) 并包含 DHCP 选项 81。默认情况下,该客户端注册它自己的 DNS A 记录时,请求 DHCP 服务器注册 DNS PTR 记录。

  2. 服务器向客户端返回 DHCP 确认消息 (DHCPACK),授予 IP 地址租约并包含 DHCP 选项 81。如果 DHCP 服务器是通过默认设置(仅在 DHCP 客户端请求时才动态更新 DNS A 和 PTR 记录)配置的,选项 81 会向该客户端说明:DHCP 服务器将注册 DNS PTR 记录,而该客户端将注册 DNS A 记录。

  3. 客户端注册其 DNS A 记录,DHCP 服务器注册该客户端的 DNS PTR 记录(这两个过程不同步)。

示例 2:Windows 早期版本(Windows 2000 之前)的 DHCP 客户端的 DHCP/DNS 更新交互操作

Windows 早期版本的 DHCP 客户端不直接支持 DNS 动态更新过程,因而无法直接与 DNS 服务器交互。对于这些 DHCP 客户端,更新通常按如下方式处理:
  1. 客户端向服务器发出 DHCP 请求消息 (DHCPREQUEST)。该请求不包含 DHCP 选项 81。

  2. 服务器向客户端返回 DHCP 确认消息 (DHCPACK),授予 IP 地址租约,但不含 DHCP 选项 81。

  3. 然后,服务器会针对客户端的正向查找记录(属于主机 (A) 资源记录)向 DNS 服务器发送更新内容。服务器还将针对客户端的反向查找记录(属于指针 (PTR) 资源记录)发送更新内容。

DNS 记录所有权和 DnsUpdateProxy 组

如上所述,您可以配置 DHCP 服务器,使之代表 DHCP 客户端动态注册主机 (A) 和指针 (PTR) 资源记录。在这种配置下,DNS 服务器使用安全的动态更新可能会导致资源记录过时。
例如,假定发生以下系列事件:
  1. 运行 Windows Server 2003 的 DHCP 服务器 (DHCP1) 代表它的某个客户端为特定的 DNS 域名执行安全动态更新。

  2. 因为 DHCP 服务器已成功创建此名称,所以它将成为该名称的所有者。

  3. 一旦 DHCP 服务器变成该名称的所有者,则只有此 DHCP 服务器才能更新该名称的 DNS 记录。

在某些情况下,这可能导致问题。例如,在 DHCP1 发生了故障因而另一个备用的 DHCP 服务器变为联机时,后者将无法更新客户端名称,因为它不是该名称的所有者。
又如,如果 DHCP 服务器为旧版的 DHCP 客户端(运行 Windows 2000 之前版本的 Windows 的客户端)执行了 DNS 动态更新,而这些客户端随后被升级到 Windows 2000、Windows XP 或 Windows Server 2003 操作系统,那么升级后的客户端将无法拥有它自己的 DNS 记录或对它们进行更新。
为解决此问题,系统提供了被称为 DnsUpdateProxy 的内置安全组。如果将所有的 DHCP 服务器添加成 DnsUpdateProxy 组的成员,则当某台服务器发生故障时,其记录可由其他服务器更新。而且,因为所有由 DnsUpdateProxy 组的成员创建的对象并不都是安全的,所以第一个修改与某个 DNS 名称关联的记录集的用户(不是 DnsUpdateProxy 组的成员)将变成该记录集的所有者。因此,当旧版的客户端被升级后,它们就可以获取在 DNS 服务器中的名称记录的所有权。如果每个为旧版客户端注册资源记录的 DHCP 服务器都是 DnsUpdateProxy 组的成员,那么前面讨论的问题都将得以避免。
可以通过“Active Directory 用户和计算机”配置 DnsUpdateProxy 安全组。详细信息,请参阅将成员添加到组

在使用 DnsUpdateProxy 组时保护记录的安全

当 DHCP 服务器是 DnsUpdateProxy 组的成员时,由它注册的 DNS 域名并不安全。DHCP 服务器自身的主机 (A) 资源记录就是这种记录的示例。而且,因为由 DnsUpdateProxy 组的成员创建的对象并不安全,所以不可能在 Active Directory 集成的区域(该区域仅允许安全动态更新)有效地使用该组,除非采取其他步骤来允许对该组成员所创建的记录进行保护。
为防止不安全的记录,或者允许 DnsUpdateProxy 组的成员在仅允许安全动态更新的区域中注册记录,您可以创建专用的用户帐户并配置 DHCP 服务器,让它使用该用户帐户凭据(用户名、密码和域)执行 DNS 动态更新。一个专用用户帐户的凭据可以被多个 DHCP 服务器使用。
专用用户帐户是一种其目的仅在于为 DNS 动态更新注册向 DHCP 服务器提供凭据的用户帐户。创建了专用用户帐户并使用该帐户的凭据配置 DHCP 服务器后,每个 DHCP 服务器在代表 DHCP 客户端使用 DNS 动态更新来注册名称时都将提供这些凭据。专用用户帐户应该创建于要被更新的区域的主 DNS 服务器所驻留的林中。专用用户帐户也可以位于另一个林中,前提是它所驻留的林必须具有林信任,该信任关系通过包含要被更新的区域的主 DNS 服务器的林来建立。有关建立林信任的详细信息,请参阅林信任
如果 DHCP 服务器服务安装在域控制器上,使用专用用户帐户的凭据配置 DHCP 服务器可防止该服务器继承(因而可能滥用)域控制器的权力。如果安装在域控制器上,DHCP 服务器服务将继承该域控制器的安全权限,并有权更新或删除在安全的 Active Directory 集成的区域中注册的任何 DNS 记录(这将包括其他运行 Windows 2000 或 Windows Server 2003 操作系统的计算机和域控制器安全注册的记录)。
在以下情形中需要配置专用用户帐户并使用该帐户凭据配置 DHCP 服务器:
  • 配置域控制器,让它充当 DHCP 服务器。

  • 配置 DHCP 服务器,让它代表 DHCP 客户端执行 DNS 动态更新。

  • DHCP 服务器要更新的 DNS 区域被配置成仅允许安全动态更新。

一旦创建了专用的用户帐户,即可利用 DHCP 控制台或 Netsh DHCP 上下文命令 server set dnscredentials 通过该用户帐户凭据配置 DHCP 服务器。有关使用 DHCP 控制台配置凭据的详细信息,请参阅配置 DNS 动态更新凭据。有关用于 DHCP 的 Netsh 命令的综合参考(包括 set dnscredentials 命令在 netsh dhcpserver 上下文中的语法、参数和示例),请参阅用于 DHCP 的 Netsh 命令
有关组和帐户的详细信息,请参阅新建用户帐户默认组

关于 DHCP 和 DNS 交互操作的其他资源

鉴于这部分所介绍的 DHCP 和 DNS 的紧密结合,您可能很想研究或了解其他相关主题,包括与该功能相关的部署问题。
详细信息:
注意
  • Microsoft 支持正在进行最终审阅的 DHCP/DNS 更新交互操作,作为由 Internet 工程任务组 (IETF) 提议的 Internet 标准征求意见文档 (RFC) 文档。

    这一交互过程在相应的草案“DHCP 和 DNS 的互操作”中进行了完整的说明。要获取该草案的当前或最终版本,请参阅 RFC 网站

  • 如果您想使用不支持动态更新的旧版的 DNS 服务器,可进行以下更改,动态更新和注册 DHCP 客户端的名称和地址:

    1. 如果正在使用 WINS 和旧版的 Windows DNS 服务器(即运行 Windows NT Server 4.0 的 DNS 服务器),您或许可以使用 WINS 查找集成来支持网络上未在 DNS 中得到动态更新的客户端名称和地址的解析。

    2. 升级旧版的 DNS 服务器或用运行 Windows Server 2003 的 DNS 服务器替换它们。

  • 有关 DHCP 的详细信息,请参阅 Microsoft Windows 资源工具包网站上的“Dynamic Host Configuration Protocol”(动态主机配置协议)。
配置 DNS 动态更新凭据

配置 DNS 动态更新凭据

  1. 打开 DHCP。

  2. 在控制台目录树中,单击相应的 DHCP 服务器。

    位置

    • DHCP/相应的 DHCP 服务器

  3. 在“操作”菜单上,单击“属性”。

  4. 在“服务器属性”中,单击“高级”选项卡,然后单击“凭据”。

    将出现“DNS 动态更新凭据”对话框。

  5. 在“DNS 动态更新凭据”中,键入用于提供确定 DNS 记录所有权的凭据所需的信息,然后单击“确定”。

注意
  • To open DHCP, click Start, click Settings, click Control Panel, double-click Administrative Tools, and then double-click DHCP.

  • 如果所提供的凭据属于作为 DnsUpdateProxy 安全组成员的某个对象(如计算机),则下一个在 DNS 中注册相同名称记录的对象会成为该记录的所有者。

  • 如果指定了 DHCP 服务器在 DNS 中注册 DHCP 客户端计算机时所使用的凭据(用户名、域以及密码),那么将不会采用同步或异步备份的方式对这些凭据进行备份。还原 DHCP 数据库后,必须配置新的凭据。
更新根提示

更新根提示

根提示用于为非根区域准备服务器授权机构,以便它们可以了解和发现管理位于更高级别的域或 DNS 域名称空间的其他子树上的域的授权服务器。在这些情况下定位和搜索服务器时,这些提示对于名称空间底层的服务器授权是必要的。
例如,假定一个 DNS 服务器(服务器 A)拥有被称作 sub.example.microsoft.com 的区域,那么在应答更高级别的域(如 example.microsoft.com 域)查询的过程中,服务器 A 需要一些协助以定位该域的权威服务器(如服务器 B)。
为了使服务器 A 找到服务器 B 或 microsoft.com 域的任何其他授权服务器,需要能够查询 DNS 名称空间的根服务器。根服务器然后将服务器 A 交给 com 域的授权服务器。com 域的服务器可以依次地将参考信息提供给服务器 B 或者对 microsoft.com 域授权的其他服务器。
服务器 A 使用的根提示必须是对根服务器有有益的提示,以便于本过程按照需要定位服务器 B(或者其他授权服务器)。
要正确配置并使用根提示,必须首先确定以下各项如何应用于您的 DNS 服务器:
  • 您是在 Internet 上还是在专用网络上使用 DNS?

  • 该服务器是用作根服务器吗?

默认情况下,DNS 服务器服务使用存储在服务器计算机 systemroot\System32\Dns 文件夹中的文件 Cache.dns 实现根提示。此文件通常包含 Internet 根服务器的 NS 和 A 资源记录。然而,如果在专用网络上使用 DNS 服务器服务,可以用指向自己的内部根 DNS 服务器的类似记录编辑或替换此文件。
根提示按不同方式处理的另一种服务器配置是:其中的 DNS 服务器作为在外部(例如,Internet)管理的其他 DNS 名称查询的转发器由内部名称空间中的其他 DNS 服务器使用。尽管作为转发器使用的 DNS 服务器和把它作为转发器使用的服务器可以在内部的同一网络上,但是它仍然需要提示以便 Internet 根服务器能正常工作并解析外部名称。
注意
  • 如果您要运行内部根服务器,则不要使用根提示。而是删除您的所有根服务器的整个 Cache.dns 文件。

  • 如果 DNS 服务器被配置为可以识别其他 DNS 服务器,例如,在已安装网络连接的客户端 TCP/IP 属性中配置 DNS 服务器列表,DNS 服务器服务就能够在新的服务器配置过程中收集自己的根提示。可以使用 DNS 控制台提供的“配置 DNS 服务器向导”来完成此项操作。

禁用 DNS 服务器上的递归

禁用 DNS 服务器上的递归

使用 Windows 界面

  1. 打开“DNS”。

  2. 在控制台树中,右键单击适当的 DNS 服务器,然后单击“属性”。

  3. 单击“高级”选项卡。

  4. 在“服务器选项”中,选中“禁用递归”复选框,然后单击“确定”。

注意
  • To perform this procedure, you must be a member of the Administrators group on the local computer, or you must have been delegated the appropriate authority. If the computer is joined to a domain, members of the Domain Admins group might be able to perform this procedure. As a security best practice, consider using Run as to perform this procedure.

  • To open DNS, click Start, click Control Panel, double-click Administrative Tools, and then double-click DNS.

  • 如果禁用 DNS 服务器上的递归,那么您将无法在同一服务器上使用转发器。

使用命令行

  1. 打开“命令提示符”。

  2. 键入:

    dnscmdServerName/Config/NoRecursion {1|0}

 

描述
dnscmd
指定命令行工具的名称。
ServerName
必需。指定 DNS 服务器的 DNS 主机名。还可以键入 DNS 服务器的 IP 地址。要在本地计算机上指定 DNS 服务器,还可以键入句点 (.)。
/Config
必需。指定配置命令。
/NoRecursion
必需。指定命令禁用递归。
{1|0}
必需。要禁用递归,请键入 1(关闭)。要启用递归,请键入 0(打开)。默认情况下,递归处于启用状态。
注意
  • To perform this procedure, you must be a member of the Administrators group on the local computer, or you must have been delegated the appropriate authority. If the computer is joined to a domain, members of the Domain Admins group might be able to perform this procedure. As a security best practice, consider using Run as to perform this procedure.

  • To open a command prompt, click Start, point to All programs, point to Accessories, and then click Command prompt.

  • 此过程需要 Dnscmd Windows 支持工具。有关安装 Windows 支持工具的信息,请参阅“相关主题”。

  • 要查看该命令的完整语法,请在命令提示符下键入:

    dnscmd/Config/help

  • 如果禁用 DNS 服务器上的递归,那么您将无法在同一服务器上使用转发器。

格式图例

 

格式 意义
斜体
用户必须提供的信息
粗体
用户必须严格按照其显示键入的元素
省略号 (...)
可在命令行中重复多次的参数
在括号 ([]) 之间
可选项目
在大括号 ({}) 之间;将选项用管线 (|) 隔开。例如:{even|odd}
用户必须从中只选择一个选项的选项组
Courier font
代码或程序输出
 
调整高级服务器参数

调整高级服务器参数

对服务进行初始化时,DNS 服务器使用多项服务器配置设置,这些设置取自于启动信息文件、注册表以及通过 Active Directory 集成提供的可能区域信息中规定的参数。
在大多数情况下,安装的默认值是可接受的而且不需要修改。但是,在需要时,可以使用 DNS 控制台调整如下高级参数,以适应特定配置需要和情况。
为进行这些调整,请使用 DNS 服务器“属性”中的“高级”选项卡。

 

描述
停用递归
确定 DNS 服务器是否使用递归。默认情况下,启用 DNS 服务器服务以使用递归。详细信息,请参阅修改服务器默认值
BIND 辅助区域
确定在将区域传输给运行传统 Berkeley Internet Name Domain (BIND) 系统的 DNS 服务器时是否使用快速传输格式。
在默认情况下,所有基于 Windows 的 DNS 服务器使用快速区域传输格式,该格式在连接的传输期间使用压缩并可以在每个 TCP 消息中包含多个记录。该格式也与运行 4.9.4 或更高版本、基于 BIND 的更新 DNS 服务器兼容。
详细信息,请参阅互操作性问题
如果区域数据不正确,加载会失败
设置 DNS 服务器严格分析文件。
在默认情况下,DNS 服务器服务记录数据错误,忽略区域文件中任何错误的数据并继续加载区域。该选项可使用 DNS 控制台重新配置,使 DNS 服务器的服务记录错误,而且在明确区域文件中的记录数据有错误时使区域文件加载失败。
详细信息,请参阅检查名称和区域数据
启用循环
如果对于查询应答来说存在多个相同类型的 RR,则确定 DNS 服务器是否使用循环法交替和重新排序资源记录 (RR)。
默认情况下,DNS 服务器服务使用循环法。详细信息,请参阅配置循环
启用 netmask 排序
确定 DNS 服务器是否将同一资源记录集中的 A 资源记录重新排序,该记录集位于根据查询来源的 IP 地址进行的查询响应中。
在默认情况下,DNS 服务器服务使用本地子网优先级。详细信息,请参阅分配本地子网的优先级
保护缓存防止污染
确定服务器是否尝试清理响应以避免缓存被破坏。默认情况下,将启用该设置。
在默认情况下,DNS 服务器使用安全响应选项,该选项能防止包含在参考应答中的无关资源记录添加到它们的缓存中。在大多数情况下,在参考应答中加入的任何名称通常要进行缓存,并有助于提高解析后续 DNS 查询的速度。
但是,通过使用这个功能,服务器可以确定引用的名称是否有潜在的破坏性或不安全性并由此废弃这些名称。服务器根据名称是否为生成原始查询名称的确切相关 DNS 域名树的一部分,决定是否缓存参考响应中所提供的名称。
例如,如果查询最初是针对“example.microsoft.com”进行的,而且参考应答为“microsoft.com”域名树以外的名称(例如 msn.com)提供了一个记录,则该名称不能在可使用该功能的地方进行缓存。
警告
  • 编辑注册表不当可能会严重损坏您的系统。在更改注册表之前,应备份计算机上任何有价值的数据。

注意
  • 建议您使用 DNS 控制台配置这些和其他服务器参数值。

  • 其他高级参数可根据注册表配置进行配置。详细信息,请参阅使用 Windows 部署和资源工具包

  • DNS 服务器参数项值存储在注册表的下列位置:

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\DNS\Parameters

  • DNS 区域参数项值存储在注册表的下列位置:

    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\DNS Server

  • 使用基于注册表的配置时,对 DNS 服务器所做的改动只有在重新初始化该服务后才能生效。在这些情况下,如果值在注册表中直接手动更改,则为了使用新值必须重新启动 DNS 服务器。

    详细信息,请参阅启动或停止 DNS 服务器
管理资源记录

管理资源记录

创建区域之后,需要向该区域添加其他的资源记录。要添加的最常用资源记录 (RR) 是:
  • 主机 (A)用于将 DNS 域名映射到计算机使用的 IP 地址。

  • 别名 (CNAME)用于将 DNS 域名的别名映射到另一个主要的或规范的名称。

  • 邮件交换器 (MX)用于将 DNS 域名映射到交换或转发邮件的计算机的名称。

  • 指针 (PTR)用于映射基于指向其正向 DNS 域名的计算机的 IP 地址的反向 DNS 域名。

  • 服务位置 (SRV)用于将 DNS 域名映射到指定的 DNS 主机列表,该 DNS 主机提供诸如 Active Directory 域控制器之类的特定服务。

  • 所需要的其他资源记录。

主机 (A) 资源记录

主机 (A) 资源记录在区域中使用,以将计算机(或主机)的 DNS 域名与它们的 IP 地址相关联,并能按多种方法添加到区域中:
  • 使用 DNS 控制台,您可以手动为静态 TCP/IP 客户端创建 A 资源记录。

  • 当 IP 配置更改时,Windows 客户端和服务器使用 DHCP 客户端服务在 DNS 内动态注册和更新自己的 A 资源记录。

  • 如果运行较早版本的 Microsoft 操作系统且启用 DHCP 的客户端计算机从有资格的 DHCP 服务器获取它们的 IP 租约,则可通过代理来注册和更新其 A 资源记录(目前只有 Windows 2000 和 Windows Server 2003 DHCP Server 服务支持该功能)。

并非所有计算机都需要主机 (A) 资源记录,但是在网络上共享资源的计算机需要该记录。共享资源并需要用其 DNS 域名进行识别的任何计算机,都需要使用 A 资源记录来提供对计算机 IP 地址的 DNS 名称解析。
区域内需要的大多数 A RR 可以包含其他共享资源的工作站或服务器、其他 DNS 服务器、邮件服务器和 Web 服务器。这些资源记录由区域数据库中的大部分资源记录构成。
详细信息,请参阅资源记录参考

别名 (CNAME) 资源记录

别名 (CNAME) 资源记录有时也称为“规范名称”。这些记录允许您使用多个名称指向单个主机,使得某些任务更容易执行,例如在同一台计算机上维护 FTP 服务器和 Web 服务器。例如,通过使用映射到 DNS 主机名(如“server-1”)的 CNAME RR,为主持这些服务的服务器计算机注册众所周知的服务器名称(ftp、www)。
建议在下列情况中使用 CNAME RR:
  • 在同一区域的 A RR 中指定的主机需要被重新命名时。

  • 当用于象 www 这样的已知服务器的通用名称需要解析一组提供相同服务的单独计算机(每个都有单独的 A RR)时。例如,一组冗余 Web 服务器。

在区域中使用现有 A RR 为计算机重命名时,您可以暂时使用 CNAME RR 让用户和程序使用宽限周期,以便从指定旧的计算机名转换到使用新名称。为此,需要进行如下操作:
  • 对于计算机的新 DNS 域名,新的 A RR 将被添加到该区域中。

  • 对于旧的 DNS 域名,将添加指向新 A RR 的 CNAME RR。

  • 从区域中删除旧 DNS 域名(如果合适的话,还有与之相关的 PTR RR)的原始 A RR。

使用 CNAME RR 为计算机定义别名或重命名时,对记录从 DNS 删除之前记录在区域中使用的时间设置暂时的限制。如果您忘记删除 CNAME RR 而以后删除了与其关联的 A RR,那么 CNAME RR 有可能会尝试解析网络上不再使用的名称的查询,从而浪费了服务器资源。
CNAME RR 最普遍的用法是向多台计算机或 Web 服务器使用的一个 IP 地址提供永久的 DNS 域别名,用于基于服务的名称(如 www.example.microsoft.com)的通用名称解析。例如,下例显示了使用 CNAME RR 的基本语法。
alias_nameIN CNAMEprimary_canonical_name
在该例中,名为 host-a.example.microsoft.com 的计算机需要既作为名为“www.example.microsoft.com”的 Web 服务器又作为名为“ftp.example.microsoft.com”的 FTP 服务器。要获得命名该计算机的预期使用,可以在区域 example.microsoft.com 中添加和使用如下 CNAME 项:
host-a    IN  A      10.0.0.20 ftp       IN  CNAME  host-a www       IN  CNAME  host-a
如果您后来决定将 FTP 服务器移至独立于“host-a”上的 Web 服务器的另一台计算机,只要为 ftp.example.microsoft.com 改变区域中的 CNAME RR 并为维护 FTP 服务器的新计算机添加其他的 A RR。
在以前范例的基础上,如果新计算机被命名为“host-b.example.microsoft.com”,那么新的和修改的 A 和 CNAME RR 如下:
host-a    IN  A      10.0.0.20 host-b    IN  A      10.0.0.21 ftp       IN  CNAME  host-b www       IN  CNAME  host-a
详细信息,请参阅资源记录参考

邮件交换器 (MX) 资源记录

邮件交换器 (MX) RR 由电子邮件应用程序使用,用以根据在目标地址中使用的 DNS 域名为电子邮件接收者定位邮件服务器。例如,对名称“example.microsoft.com”的 DNS 查询可能会用于寻找 MX RR,允许电子邮件应用程序将邮件转发或交换到电子邮件地址为“user@microsoft.com”的用户。
MX RR 为处理域的邮件的计算机显示 DNS 域名。如果存在多个 MX RR,则 DNS 客户端服务会尝试按照从最低值(最高优先级)到最高值(最低优先级)的优先级顺序与邮件服务器联系。以下是使用 MX RR 的基本语法。
mail_domain_nameIN MXpreference mailserver_host
通过使用在 example.microsoft.com 区域下显示的 MX RR,发送到 user@example.microsoft.com 的邮件首先发往 user@mailserver0.example.microsoft.com(如果可能)。如果该服务器不可用,则解析程序客户端可以使用 user@mailserver1.example.microsoft.com。
@         IN  MX   1    mailserver0 @         IN  MX   2    mailserver1
注意:在该记录中 at 符号 (@) 的使用表明发件人的 DNS 域名和区域的源名称 (example.microsoft.com) 相同。
详细信息,请参阅资源记录参考

指针 (PTR) 资源记录

指针 (PTR) RR 用于支持基于在 in-addr.arpa 域中创建和确立的区域的反向查找过程。这些记录用于通过 IP 地址定位计算机并为该计算机将信息解析为 DNS 域名。
PTR RR 能以多种方法添加到区域中:
  • 可以为使用 DNS 的静态 TCP/IP 客户端计算机手动创建 PTR RR,既可以作为一个单独的过程,也可以作为创建 A RR 过程的一部分。

  • IP 配置更改时,计算机可以使用 DHCP 客户端服务动态注册和更新它们在 DNS 中的 PTR RR。

  • 如果启用了 DHCP 的所有其他客户端计算机从有资格的服务器中获得了 IP 租约,则能通过 DHCP 服务器注册和更新它们的 PTR RR。Windows 2000 和 Windows Server 2003 DHCP Server 服务提供该功能。

指针 (PTR) 资源记录仅用于在反向查找区域中支持反向查找。详细信息,请参阅资源记录参考

服务位置 (SRV) 资源记录

要定位 Active Directory 域控制器,需要知道服务位置 (SRV) RR。通常,安装 Active Directory 时可以避免手动管理 SRV RR。
在默认情况下,Active Directory 安装向导根据首选或备用 DNS 服务器列表尝试定位 DNS 服务器,这些服务器是在任何 TCP/IP 客户端属性中为任何活动的网络连接配置的。如果联系了可以接受 SRV RR(以及有关在 DNS 中将 Active Directory 注册为一项服务的其他 RR)动态更新的 DNS 服务器,则配置过程就完成了。
如果在安装过程中无法找到可以接受用于命名 Active Directory 的 DNS 域名更新的 DNS 服务器,该向导可在本地安装 DNS 服务器并使用支持 Active Directory 域的区域自动配置它。
例如,如果您为林中的第一个域选择的 Active Directory 域是 example.microsoft.com,那么在 DNS 域名 example.microsoft.com 上确立的区域将被添加并配置为与运行在新域控制器上的 DNS 服务器一同使用。
不论是否在本地安装 DNS 服务器服务,在 Active Directory 安装过程中将写入和创建文件 (Netlogon.dns),该过程包含支持 Active Directory 使用所需的 SRV RR 和其他 RR。该文件位于 systemroot\System32\Config 文件夹中。
如果您打算使用符合下列描述之一的 DNS 服务器,则应使用 Netlogon.dns 中的记录手动配置该服务器上的主要区域以支持 Active Directory。
  1. 操作 DNS 服务器的计算机正在另一个平台(如 UNIX)上运行,并且不能接受或识别动态更新。

  2. 该计算机上的 DNS 服务器不是与 Windows Server 2003 家族产品一起提供的 DNS 服务器服务,它对于 Active Directory 域的 DNS 域名对应的主要区域具有权威性。

  3. 如同 Internet 草案“指定服务 (DNS SRV) 位置的 DNS RR”中所定义的那样,DNS 服务器支持 SRV RR 但不支持自动更新。

    例如,Windows NT Server 4.0 提供的 DNS 服务器服务在更新到 Service Pack 4 或更高版本时符合该描述。

将来,如果应用程序实现并支持指定该记录类型的 DNS 名称查询,那么 SRV RR 可能也会用于注册和搜索网络上其他已知的 TCP/IP 服务。详细信息,请参阅资源记录参考

其他资源记录

其他附加资源记录受 Windows Server 2003 DNS 支持并且很少在大多数区域中使用。这些附加类型的资源记录可以根据需要使用 DNS 控制台添加。有关支持的资源记录的详细信息,请参阅资源记录参考
互操作性问题

互操作性问题

运行 Windows Server 2003 的 DNS 服务器符合大部分用来定义 DNS 协议的征求意见文档 (RFC) 规范。这为在混合或异构环境下操作 DNS 服务器提供了明显的好处。有关 RFC 的详细信息,请参阅 DNS RFC
对于这些环境下的互操作,它具有如下主要优点:
  • 与执行符合 RFC 标准的 DNS 名称服务操作的其他 DNS 服务器实现系统进行完全的互操作。

  • 使用 Windows DNS 服务器在 Internet 上提供 DNS 服务。

对于互操作测试,Windows Server 2003 DNS 开发小组已通过实施下列版本的 Berkeley Internet 域名系统 (BIND) DNS 服务器来测试 Windows Server 2003 DNS 服务器和客户端服务:
  • BIND 4.9.7

  • BIND 8.1.2

  • BIND 8.2

  • BIND 9.1.0

与在其他不同的环境中使用 Windows Server 2003 DNS 或在 Internet 上使用 DNS 服务器有关的互操作性和配置问题将在以下部分讨论。

Active Directory 的 DNS 考虑

网络资源需要 DNS 来定位 Active Directory 域控制器。您可以选择使用 Active Directory 安装向导将 DNS 服务器服务设置为 Active Directory 安装的一部分。在服务器上安装 Active Directory 时,服务器将提升为域控制器角色。
在服务器上安装 Active Directory 时,“Active Directory 安装向导”会提供选项自动安装 DNS 服务器服务,并在本地添加新的区域。选择使用“Active Directory 安装向导”安装与配置 DNS 服务器的选项时,将根据在该向导中指定的 DNS 名称创建区域。
冗余与容错的简单方法是在每个域控制器上运行 DNS 服务器。对于每个子网,应让两个域控制器运行 DNS 服务器服务并承载 Active Directory 集成区域。

使用 BIND 和其他 DNS 服务器实现的区域传输

在两台 Windows DNS 服务器之间传输区域时,DNS 服务器服务可以使用采用压缩的快速传输方法。这种方法在发送的每个消息中包括多个资源记录 (RR),以完成服务器之间区域的传输。
默认情况下,运行 Windows Server 2003 的 DNS 服务器配置为使用慢速非压缩传输格式传输区域。这使得不支持快速传输方法的 DNS 服务器(如低于 4.9.4 版本的 BIND 服务器)能够成功进行区域传输。
如果清除高级服务器属性中的“BIND 辅助区域”复选框,则将启用快速传输。有关详细信息,请参阅在区域传输期间启用或禁用快速传输格式

用其他 DNS 服务器实现系统支持 Active Directory

在很多大型企业中,DNS 早就用其他解决方案实现了,例如运行老版本 BIND 软件的 UNIX DNS 服务器。在某些情况下,这些 DNS 服务器没有配置成支持使用 Active Directory 的 DNS 要求。这个问题可以用以下两个办法之一来解决:
  • 将任何 BIND DNS 服务器升级到 BIND 软件 8.1.2 或更高的版本,以满足支持 Active Directory 的 DNS 要求。

  • 如果可能,请使用 Windows Server 2003 家族附带提供的 DNS 服务器服务将任何当前 DNS 区域迁移到运行 Windows Server 2003 的 DNS 服务器。

尽管推荐使用 DNS 服务器服务来支持 Active Directory,但是您还可以使用其他 DNS 服务器实施来实现这一目的。但是,其他的实现系统必须支持下列标准规范:
  • 在 Internet 草案“用以指定服务 (DNS SRV) 位置的 DNS RR”中描述的服务位置 (SRV) 资源记录。

  • 如 RFC 2136 中描述的 DNS 中的动态更新。

推荐支持动态更新,但这并不是必要的。对 SRV 资源记录的支持是不可或缺的,因为需要它才能向 Active Directory 提供基本 DNS 支持。例如,不支持动态更新的 DNS 服务器,就像 Windows NT Server 4.0(现已更新到 Service Pack 4 或更高版本)附带提供的服务器,支持 Active Directory 的 DNS 要求,因为在 Service Pack 4 中增加了对 SRV 资源记录的支持。
Active Directory 的 DNS 配置支持需要对 SRV 资源记录进行额外的手动管理,以便在不支持自动更新的 DNS 服务器上正确运行。有关详细信息,请参阅管理资源记录

Windows DNS 服务器与其他 DNS 服务器实现之间的互操作

如果决定使用 Windows DNS 服务并用分开的 DNS 配置管理服务,在这种情况下:
  • 现有根区域的 DNS 服务器将不升级或将迁移到其他 DNS 解决方案。

  • 将部署 Windows Server 2003 DNS,并将提供对于任何 DNS 域名的管理,这些域名是注册、更新和支持与 Active Directory 一起使用所需要的。

可以用以下任一方式修改 DNS 名称空间的设计规划:
  1. 在当前的 DNS 域名称空间中创建单个新子域,以确立第一个 Active Directory 域。

    例如,如果您的组织已经注册且正在使用二级域名(例如 microsoft.com),则您可以创建一个子域(例如 example.microsoft.com),并使用此域来确立 Active Directory 使用的 DNS 域命名空间。在您安装第一个域控制器时,DNS 服务器服务自动配置为支持 Active Directory。

    在运行 DNS 服务器服务的计算机上为新的子域创建区域之前,可以为二级域(如 microsoft.com)在主要区域委派这些子域。 在某些情况下,可能只需要通知您单位的另一个 DNS 或 UNIX 系统管理员为您进行委派。有关详细信息,请参阅委派区域

  2. 基于 DNS 二级域创建多重子域,以支持在 DNS 中的 Active Directory 注册。

    例如,如果您的组织注册了已在使用的二级 DNS 域名(例如 microsoft.com),则您可以创建委派给 Windows DNS 服务器而且仅用于注册 Active Directory 相关的 DNS 名称的其他子域。

    这种方法实现起来更加复杂,但它只需要对当前已配置且不基于 Windows 操作系统的 DNS 基础结构做少量更改。使用这种名称空间设计方案,可以只创建支持 Active Directory 配置所需的其他子域和相应区域。例如,在此配置中,域名 microsoft.com 既是根 DNS,也是您的组织的根 Active Directory 域名。

    对于此配置,您必须首先使用运行 Windows Server 2003 的 DNS 服务器上的 DNS Microsoft 管理控制台 (MMC) 控制台为下列子域创建区域:

    child1.microsoft.com child2.microsoft.com

    在创建这些区域之前,您可以在主区域上为父域或二级域名委派这些子域,或通知管理这些区域的其他 DNS 管理员进行这一工作。有关详细信息,请参阅委派区域

在 Internet 上使用 DNS

要在 Internet 上占有一席之地,个人或公司必须先向一个授权的 DNS 域名注册颁发机构申请并注册一个二级域名。Internet 服务提供商 (ISP) 通常能实现这个功能并代表您获取一个名称,但这通常需要额外的费用。
要注册域名,需要进行下列任务:
  • 选择并调查目前尚未注册或使用的二级域名。

    通过使用在网站上为相应的 Internet DNS 域名注册者提供的 WHOIS 查询引擎来访问 Internet,很容易做到这一点。如果 WHOIS 查询显示首选的名称已经被注册或使用,请准备一个候选名称。

  • 注册并获得至少一个可在 Internet 上有效使用的 IP 地址。

    对于 Internet 上您希望作为基于二级域名的区域主要副本的主机建立的 DNS 服务器,该地址是必需的。在很多情况下,如果您打算让 ISP 代表您注册域名,则他们可指定您想作为 Internet 主要和辅助服务器的一个或两个服务器的 IP 地址。

    作为注册过程的一个部分,申请者必须提供至少两个当前活动的 DNS 服务器,它们作为在 Internet 上为新域指定的主服务器和辅助服务器。为确保在 Internet 上查询已注册的 DNS 域名的其他服务器对 Internet 根服务器的适当配置和引用,该要求是必需的。

    获得一个 IP 地址以后,有时您可以安排(或者您的 ISP 能代表您安排)另一个公司或 ISP 的 DNS 服务器作为该区域的辅助服务器。如果您仍然需要获得能在美国直接使用的 IP 地址,则可以通过美国 Internet 编号注册机构 (ARIN) 获得一个有效的 IP 地址。在其他国家(地区),您可以和当地 Internet 服务提供商或电话供应商联系,获知如何注册和获取 IP 地址(如果需要)。

  • 完成注册申请表并将它和注册费一起提交给相应的 Internet DNS 域名注册机构。注册一般只在规定时间内有效,而且必须定时更新。

有关选择和注册 Internet DNS 名称的详细信息,请参阅 VeriSign Global Registry Services 网站

互操作性规划:配置相关服务

Windows Server 2003 DNS 提供了多个与其他 TCP/IP 服务的互操作选项。可使用下列选项来减少管理 DNS 结构所需的时间:
  • WINS 正向和反向查找。

    提供 DNS 服务器服务的目的是为了使用 WINS 查找。这个功能使已配置的 DNS 区域能将没有从当前区域信息获得响应的查询提交给 WINS 服务器,以进行进一步解析。由于有了这种附加的 WINS 名称空间搜索功能,DNS 和 WINS 可用于执行已注册名称的完全搜索,已获得匹配的响应。

    WINS 查找既支持正向查找区域又支持反向查找区域,并且 WINS 查找可以在每个区域的基础上启用或针对所选区域进行配置。这个功能也可配置为防止 WINS 资源记录复制或区域传输到使用不识别 WINS 资源记录的其他 DNS 系统的服务器。

  • 与 DHCP 服务器的动态集成。

    对于 Windows Server 2003 DNS,DHCP 服务对注册和更新 DNS 区域中传统 DHCP 客户端的信息提供默认支持。旧客户端通常包括在 Windows 2000 之前发布的其他 Microsoft TCP/IP 客户端计算机。Windows Server 2003 DNS-DHCP 集成使得不能动态更新 DNS 资源记录的 DHCP 客户端能够直接由 DHCP 服务器在 DNS 正向和反向查找区域中更新此信息。

注意
  • Web addresses can change, so you might be unable to connect to the Web site or sites mentioned here.

  • 与 DHCP 服务的动态集成仅在运行 Windows 2000 和 Windows Server 2003 的 DNS 服务器上可行。在运行 Windows NT Server 4.0 及更早版本的 DHCP 服务器上不支持 DNS-DHCP 集成。

  • 默认情况下,运行 Windows Server 2003 的 DNS 服务器上主持的区域将只允许向区域的名称服务器 (NS) 资源记录中列出的授权 DNS 服务器进行区域传输。

使用仅用于缓存服务器

使用仅用于缓存服务器

尽管所有的 DNS 服务器都缓存它们已解析的查询,但仅用于缓存服务器是仅执行查询、缓存应答和返回结果的 DNS 服务器。它们对于任何域来说并不是权威的,并且它们所包含的信息限于解析查询时已缓存的内容。
在确定何时使用这类服务器时,请注意当该服务器初次启动时,它没有缓存任何信息。该信息在响应客户端请求时获得。但是,如果您要处理站点之间的慢速广域网链路,则该选项可能会很理想,这是因为一旦建立了缓存,通讯量便会减少。另外,缓存专用服务器不执行区域传输,这种传输也可能导致广域网环境中的网络通讯量增大。
注意
安装仅用于缓存的 DNS 服务器

安装仅用于缓存的 DNS 服务器

  1. 要安装仅用于缓存的 DNS 服务器,请在服务器计算机上安装 DNS 服务器。

  2. 不要配置 DNS 服务器(正常情况下可能会这样做)以加载任何区域。

  3. 检查服务器根提示是否正确配置或更新。

    详细信息,请参阅“相关主题”。

注意
  • To perform this procedure, you must be a member of the Administrators group on the local computer, or you must have been delegated the appropriate authority. If the computer is joined to a domain, members of the Domain Admins group might be able to perform this procedure. As a security best practice, consider using Run as to perform this procedure.

  • 仅用于缓存的 DNS 服务器不维护任何区域并且没有特定域的授权。它们是一些特殊的 DNS 服务器,负责构建在代表其客户端执行递归查询时所获悉的名称的本地服务器缓存。然后在应答随后的客户端查询时可以从其缓存中获得此信息。

  • 对于在本地需要 DNS 功能但在管理上并不想创建该位置的单独域或区域的站点,仅用于缓存的 DNS 服务器是非常有用的。

  • 强烈建议您在将计算机作为 DNS 服务器运行时,手动配置 TCP/IP 并使用静态 IP 地址。

有关功能差异的信息

  • Your server might function differently based on the version and edition of the operating system that is installed, your account permissions, and your menu settings. For more information, see Viewing Help on the Web.