网络专家Windows Server 2008 中的 DNS 增强功能

Joseph Davies

这篇文章基于 Windows Server 2008 的预发布版。文中的所有信息均可能发生变更。

自 Windows NT 4.0 起,Microsoft 就已将域名系统 (DNS) 服务器服务包括进各种版本的 Windows Server 中。DNS 是一种分层结构的分布式数据库,其中包含 DNS 域名到各种类型数据(如 IP 地址)的映射。随着 Windows Server 2008 的发布,DNS 服务器服务将包含新的

后台区域加载、增强对 IPv6 的支持、支持只读域控制器 (RODC) 以及能承载全局单标签名称。

后台区域加载

Windows Server® 2008 中的 DNS 服务器服务通过执行后台区域加载提高了数据检索的速度。过去,当 Windows Server 2003 中的 DNS 服务器服务在重新启动后尝试从 Active Directory 中检索 DNS 数据时,具有在 Active Directory® 中包含大量记录的区域的企业曾经历长达一个小时甚至更长时间的延迟。在此类延迟期间,DNS 服务器对于其任何托管区域的服务 DNS 客户端请求均不可用。

为解决此问题,Windows Server 2008 中的 DNS 服务器服务在启动后将在后台从 Active Directory 检索区域数据,以便对其他区域的数据请求做出响应。在服务启动时,它会创建一个或多个执行线程来加载存储在 Active Directory 中的区域。由于有单独的线程分别加载基于 Active Directory 的区域,因此在进行区域加载的同时,DNS 服务器服务可响应查询。如果 DNS 客户端请求已加载区域中的数据,DNS 服务器会做出适当响应。如果请求的数据位于一个尚未完全检索的区域中,DNS 服务器将改为从 Active Directory 中检索特定数据。

对于在文件中存储区域信息,这种在区域加载期间从 Active Directory 检索特定数据的功能还提供了额外的好处 — 即 DNS 服务器服务能立即响应请求。当区域存储到文件中后,服务必须按顺序通读文件,直到找到数据。

增强对 IPv6 的支持

我们已在本专栏之前的版本中介绍过 IPv6,它是一组新的 Internet 标准协议组件。IPv6 旨在解决当前版本 (IPv4) 存在的多种问题,如地址耗尽、安全性、自动配置和可扩展性需求。

IPv6 的一个不同之处是它的地址长为 128 位,而 IPv4 地址仅为 32 位。IPv6 地址采用冒号十六进制表示法。每个十六进制数字即为 4 位 IPv6 地址。完整表示的 IPv6 地址是分为 8 块的 32 个十六进制数字,用冒号分隔。完整表示的 IPv6 地址的一个示例为 FD91:2ADD:715A:2111:DD48:AB34:D07C:3914。

IPv6 地址的正向名称解析使用 IPv6 主机 DNS 记录,称为 AAAA 记录(发音为“quad-A”)。对于反向名称解析,IPv6 使用 IP6.ARPA 域,由 32 个数字组成的 IPv6 地址中的每个十六进制数字均以相反的顺序变成反向域层次结构中单独的一层。例如,地址 FD91:2ADD:715A:2111:DD48:AB34:D07C:3914 的反向查找域名为 4.1.9.3.C.7.0.D.4.3.B.A.8.4.D.D.1.1.1.2.A.5.1.7.D.D.A.2.1.9.D.F.IP6.ARPA。

Windows Server 2003 中的 DNS 服务器服务支持 IPv6 的正向和反向名称解析;然而,并未完全集成此支持。例如,要在 Windows Server 2003 DNS 管理器插件中创建 IPv6 地址记录(刚讨论过的 AAAA 记录),必须右键单击区域,单击 Other New Records(其他新记录),然后双击 IPv6 Host (AAAA) 作为资源记录类型。要在 Windows Server 2008 的 DNS 管理器插件中添加一条 AAAA 记录,需要右键单击区域名称,然后单击 New Host(新主机)(A 或 AAAA)。在 New Host(新主机)对话框中,可键入 IPv4 或 IPv6 地址。图 1 就是一个示例。

图 1 新主机对话框

图 1** 新主机对话框 **

更好地支持 IPv6 的另一示例是针对反向 IPv6 区域的。要在 Windows Server 2003 的 DNS 管理器插件中创建反向查找区域,必须在 New Zone Wizard(新区域向导)的 Reverse Lookup Zone Name(反向查找区域名称)页面中手动键入反向区域名称。DNS 反向区域名称的一个示例是 1.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa(对于 IPv6 子网前缀 2001:db8:0:1::/64,完整表示为 2001:0db8:0000:0001::/64)。

Windows Server 2008 的 DNS 管理器插件中的 IPv6 反向区域现已完全集成到 New Zone wizard(新区域向导)中。此向导有一个新页面,它会提示您选择 IPv4 反向查找区域还是 IPv6 反向查找区域。对于 IPv6 反向查找区域,只需键入 IPv6 子网前缀,向导会自动为您创建区域。图 2 就是一个示例。

图 2 命名 IPv6 反向查询区域

图 2** 命名 IPv6 反向查询区域 **(单击该图像获得较大视图)

针对反向区域的另一增强功能是 DNS 管理器插件显示 IPv6 指针 (PTR) 记录的方法。图 3 说明了 Windows Server 2003 的 DNS 管理器插件如何显示 PTR 记录。

图 3 Windows Server 2003 中 IPv6 的 PTR 记录

图 3** Windows Server 2003 中 IPv6 的 PTR 记录 **(单击该图像获得较大视图)

尽管此显示准确地反映了 IPv6 反向域名的 DNS 命名空间结构,但是它使得 IPv6 地址的 PTR 记录管理更加困难。图 4 说明了 Windows Server 2008 的 DNS 管理器插件如何显示 PTR 记录。

图 4 Windows Server 2008 中 IPv6 的 PTR 记录

图 4** Windows Server 2008 中 IPv6 的 PTR 记录 **(单击该图像获得较大视图)

Windows Server 2003 中的 DNS 服务器服务支持对 IPv6 的操作,但必须通过 dnscmd /config /EnableIPv6 1 命令来手动启动它。Windows Server 2008 则默认支持对 IPv6 的操作。Dnscmd.exe 命令行工具已更新为在命令行选项中接受 IPv6 地址。此外,DNS 服务器服务现在可向仅面向 IPv6 的服务器发送递归查询,并且服务器转发器列表可包含 IPv4 和 IPv6 两种地址。

有关 IPv6 和 Windows® 如何对其提供支持的详细信息,请参阅 microsoft.com/ipv6

只读域控制器支持

Windows Server 2008 还引入了 RODC,它是一种新型域控制器,包含 Active Directory 信息的只读副本并可执行 Active Directory 功能,但无法直接进行配置。RODC 不易受到攻击,可放置在域控制器的物理安全性无法得到保证或网络包含潜在恶意主机的位置。

对于 RODC,Windows Server 2008 中的 DNS 服务器服务支持新的主要只读区域类型。当计算机变为 RODC 后,它会将 DNS 使用的所有应用程序目录分区复制一份完整的只读副本,包括域分区、ForestDNSZone 和 DomainDNSZone。这样可以确保 RODC 上运行的 DNS 服务器服务具有存储在非 RODC 域控制器的目录分区中的任意 DNS 区域的完整只读副本。可查看但无法更改 RODC 上主要只读区域的内容。必须在非 RODC 域控制器上更改区域的内容。

GlobalNames 区域

使用 GlobalNames 区域解析名称

在部署 GlobalNames 区域后,如果基于 Windows Vista 的 DNS 客户端尝试解析单标签名称,它会向单标签名称附加主 DNS 后缀,然后向 DNS 服务器提交名称查询请求。

如果找不到名称,DNS 客户端会针对单标签名称与 DNS 后缀搜索列表(若已配置)中的后缀的组合发送其他名称查询请求。如果这些名称均未解析成功,客户端会请求使用单标签名称进行解析。

DNS 服务器将在 GlobalNames 区域中搜索单标签名称。如果它出现在该处,则 DNS 服务器将把解析后的 IPv4 地址或 FQDN 发回 DNS 客户端。否则,DNS 客户端计算机将把名称转换为 NetBIOS 名称,并利用 NetBIOS 名称解析技术(包括 WINS)。要在 GlobalNames 区域中实现单标签名称解析,DNS 客户端服务不需有任何更改。

Windows Server 2008 和 Windows Vista® 支持基于 TCP/IP 协议的 NetBIOS (NetBT)。NetBT 使用 NetBIOS 名称来识别会话层的 NetBIOS 应用程序。当前版本的 Windows 依赖基于 Windows 套接字的网络应用程序和 DNS 来实现名称解析,尽管它们已不再需要使用 WINS 来实现 NetBIOS 名称解析,但许多 Microsoft 客户仍在他们的网络中部署 WINS,以支持旧版 NetBT 应用程序并在整个组织提供单标签名称的名称解析。单标签名称通常指组织中重要、众所周知且广泛使用的服务器(如电子邮件服务器、中央 Web 服务器或用于业务线应用程序的服务器)。

为允许仅使用 DNS 来在整个组织解析这些单标签名称,必需向组织的多个 DNS 域添加 A 记录,这样基于 Windows 的 DNS 客户端可直接解析名称,而不必考虑分配的 DNS 域后缀或后缀搜索列表。

例如,假定 contoso.com 或组织拥有一个名为 CWEB 的中央 Web 服务器,它是 central.contoso.com 域的一个成员。要在可向 DNS 客户端分配 DNS 域后缀 wcoast.contoso.com、central.contoso.com 或 ecoast.contoso.com 时实现服务器 CWEB 的单标签名称,网络管理员必须为 cweb.wcoast.contoso.com 和 cweb.ecoast.contoso.com 分别创建两个附加 A 记录。但是,切记必须在 IPv4 地址分配发生更改时或出现新名称时维护为单标签名称手动创建的 A 记录。

如果 contoso.com 已将 WINS 用于旧版 NetBT 应用程序,网络管理员可通过将单静态 WINS 记录添加到 WINS 基础结构来执行单标签名称 CWEB 的名称解析。若 IPv4 地址发生变化,仅需更改单静态 WINS 记录。由于单标签名称在 WINS 上更易于管理,许多基于 Windows 的网络都将静态 WINS 记录用于单标签名称。

为在 DNS 上提供单标签名称解决方案,让它的管理象静态 WINS 记录一样容易,Windows Server 2008 中的 DNS 服务器服务支持名为 GlobalNames 的新区域来存储单标签名称。此区域的复制范围通常是林,它在整个 Active Directory 林中提供单标签名称解析。此外,如果使用服务位置 (SRV) 资源记录来发布 GlobalNames 区域的位置,GlobalNames 区域可在包含多个林的组织内支持单标签名称解析。

与 WINS 不同,GlobalNames 区域旨在为有限的一组主机名称(通常是组织内由其 IT 部门管理的中央服务器和关键服务器)提供单标签名称解析。GlobalNames 区域的目的不是用于存储 IPv4 地址可能发生变化的台式计算机或其他服务器的名称,并且它根本不支持 DNS 动态更新。它最常用于存储别名 (CNAME) 资源记录,以将单标签名称映射为完全限定域名 (FQDN)。对于当前使用 WINS 的网络,GlobalNames 区域通常包含已在 WINS 中静态配置的 IT 管理名称的资源记录。

GlobalNames 区域仅在所有主管 DNS 服务器均运行 Windows Server 2008 时才提供单标签名称解析。但是,对于任意区域均非主管的其他 DNS 服务器,可运行旧版本 Windows 或其他操作系统。GlobalNames 区域在林中必须是唯一的。

要提供最佳性能和可扩展性,将应 GlobalNames 区域与 Active Directory 集成,并且应使用它的本地副本来配置每个主管 DNS 服务器。必须完成此操作,才能支持在多个林部署 GlobalNames 区域。

有关 Windows 中的 DNS 支持以及有关部署 GlobalNames 区域的更多信息,请参阅 Microsoft DNS 网页,网址为:microsoft.com/dns

Joseph Davies 是 Microsoft 的一位技术撰稿人,从 1992 年起一直从事 Windows 网络主题的培训和编写工作。他曾为 Microsoft Press 编写了五本著作,是每月在线 TechNet 网络专家专栏的作者。

© 2008 Microsoft Corporation 与 CMP Media, LLC.保留所有权利;不得对全文或部分内容进行复制.