Domain-Name-System

Windows 2016 DNS 策略/拆分 DNS 是否可以在具有較舊 DC 的 AD 集成區域上實現?

  • May 9, 2017

Windows Server 2016 支持 DNS 策略,它提供對裂腦 DNS 的支持以及其他場景:

您可以配置 DNS 策略以指定 DNS 伺服器如何響應 DNS 查詢。DNS 響應可以基於客戶端 IP 地址(位置)、一天中的時間和其他幾個參數。DNS 策略支持位置感知 DNS、流量管理、負載平衡、裂腦 DNS 和其他場景。

我已經閱讀了DNS 策略概述頁面,但是當並非所有 DC 都是 Server 2016 時,我似乎無法在任何地方找到有關其如何在 AD 集成區域上工作的文件。

我無法想像它會執行得這麼好,因為下層伺服器不知道如何解釋策略並採取相應的行動,但由於資訊在 AD 中複製,我可以預見舊 DC 忽略新屬性並做出響應的情況以某種“預設”方式(未應用策略),而新的 DC 將根據策略做出響應。

我認為在某些情況下您可以(或已經這樣做)讓客戶端指向 DC 的子集是可以的,因為這可以提供一種使用新功能的方法,而無需一次升級所有 DC。

但是,我找不到任何資訊來說明我所描述的是它實際上是如何工作的,或者您是否根本無法在混合環境中使用新功能,或者介於兩者之間。


警告

我最近發現DNS Policy cmdlet 上的-WhatIf-Verbose-ErrorAction參數被破壞了;在這裡投票以解決問題。小心!

這引起了我的好奇心 - 並為一個有見地的問題 +1 - 所以我建立了一個快速實驗室來測試這個:

  • Win2012-DC:Windows Server 2012 R2,提升為新test.local林/域的域控制器。
  • Win2016-DC:Windows Server 2016,升級為上述test.local域的第二個域控制器。

截至今天(2016 年 10 月 29 日),所有內容都已完全修補且是最新的。林和域的功能級別都是 2012 R2。兩台伺服器也被配置為此測試域的 DNS 伺服器。

總而言之,結果似乎如您後來所預見的那樣:

較舊的 DC 忽略新屬性並以某種“預設”方式響應(未應用策略),而新 DC 將根據策略響應。

我瀏覽了https://technet.microsoft.com/en-us/windows-server-docs/networking/dns/deploy/dns-policies-overview下記錄的大多數場景。為簡潔起見,以下是 2 個特定場景的詳細資訊:

阻止域查詢

這在 2016 DC 上執行沒有問題 - 但 2012 DC 顯然甚至不辨識命令:

Add-DnsServerQueryResolutionPolicy -Name "BlackholePolicy" -Action IGNORE -FQDN "EQ,*.treyresearch.com"

針對 2016 DC發出 DNS 查詢時www.treyresearch.com,未給出響應並且請求超時。當對 2012 DC 發出相同的查詢時,它不知道策略並提供由上游 A 記錄組成的預期響應。

具有地理位置感知的應用程序負載平衡

文章中包含的 PowerShell 命令以供參考:

Add-DnsServerZoneScope -ZoneName "contosogiftservices.com" -Name "DublinZoneScope"
Add-DnsServerZoneScope -ZoneName "contosogiftservices.com" -Name "AmsterdamZoneScope"
Add-DnsServerResourceRecord -ZoneName "contosogiftservices.com" -A -Name "www" -IPv4Address "151.1.0.1" -ZoneScope "DublinZoneScope”
Add-DnsServerResourceRecord -ZoneName "contosogiftservices.com" -A -Name "www" -IPv4Address "141.1.0.1" -ZoneScope "AmsterdamZoneScope"
Add-DnsServerQueryResolutionPolicy -Name "AmericaLBPolicy" -Action ALLOW -ClientSubnet "eq,AmericaSubnet" -ZoneScope "SeattleZoneScope,2;ChicagoZoneScope,1; TexasZoneScope,1" -ZoneName "contosogiftservices.com" –ProcessingOrder 1
Add-DnsServerQueryResolutionPolicy -Name "EuropeLBPolicy" -Action ALLOW -ClientSubnet "eq,EuropeSubnet" -ZoneScope "DublinZoneScope,1;AmsterdamZoneScope,1" -ZoneName "contosogiftservices.com" -ProcessingOrder 2
Add-DnsServerQueryResolutionPolicy -Name "WorldWidePolicy" -Action ALLOW -FQDN "eq,*.contoso.com" -ZoneScope "SeattleZoneScope,1;ChicagoZoneScope,1; TexasZoneScope,1;DublinZoneScope,1;AmsterdamZoneScope,1" -ZoneName "contosogiftservices.com" -ProcessingOrder 3

這裡的結果幾乎比上面的結果“​​更糟糕”:www.contosogiftservices.com僅通過策略有效註冊,2012 DC 對此一無所知並返回 NXDOMAIN。(www在 2012 或 2016 伺服器上的傳統 DNS 管理控制台中看不到任何記錄。) 2016 伺服器按照上述策略的配置進行響應。

概括

我在這裡看不到任何阻止在功能級別較低的域中使用 2016 功能的內容。如果可能的話,最簡單和最不容易混淆的選項可能是停止使用任何剩餘的 2012 DC 作為 DNS 伺服器。冒著一些額外複雜性的風險,您可以將支持策略的 2016 伺服器作為特定需求的目標,例如支持(有限)腦裂部署方案的遞歸策略。

引用自:https://serverfault.com/questions/811271