Windows Server 2008中DNS的增強功能
自 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 IPv6地址
#p#
更好地支持 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反向查詢區域
針對反向區域的另一增強功能是 DNS 管理器插件顯示 IPv6 指針 (PTR) 記錄的方法。圖 3 說明了 Windows Server 2003 的 DNS 管理器插件如何顯示 PTR 記錄。
圖3 Windows Server 2003中IPv6 的PTR記錄
盡管此顯示準確地反映了 IPv6 反向域名的 DNS 命名空間結構,但是它使得 IPv6 地址的 PTR 記錄管理更加困難。圖 4 說明了 Windows Server 2008 的 DNS 管理器插件如何顯示 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 兩種地址。
只讀域控制器支持
Windows Server 2008 還引入了 RODC,它是一種新型域控制器,包含 Active Directory 信息的只讀副本并可執行 Active Directory 功能,但無法直接進行配置。RODC 不易受到攻擊,可放置在域控制器的物理安全性無法得到保證或網絡包含潛在惡意主機的位置。
對于 RODC,Windows Server 2008 中的 DNS 服務器服務支持新的主要只讀區域類型。當計算機變為 RODC 后,它會將 DNS 使用的所有應用程序目錄分區復制一份完整的只讀副本,包括域分區、ForestDNSZone 和 DomainDNSZone。這樣可以確保 RODC 上運行的 DNS 服務器服務具有存儲在非 RODC 域控制器的目錄分區中的任意 DNS 區域的完整只讀副本。可查看但無法更改 RODC 上主要只讀區域的內容。必須在非 RODC 域控制器上更改區域的內容。
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 域后綴或后綴搜索列表。
#p#
GlobalNames 區域
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 區域。
【編輯推薦】