Windows 2016 DNS 策略/拆分 DNS 是否可以在具有旧 DC 的 AD 集成区域上使用?

Windows 2016 DNS 策略/拆分 DNS 是否可以在具有旧 DC 的 AD 集成区域上使用?

Windows Server 2016 支持 DNS 策略,它们为裂脑 DNS 等场景提供支持:

您可以配置 DNS 策略来指定 DNS 服务器如何响应 DNS 查询。DNS 响应可以基于客户端 IP 地址(位置)、一天中的时间和其他几个参数。DNS 策略支持位置感知 DNS、流量管理、负载平衡、裂脑 DNS 和其他场景。

我读过DNS 策略概述页面但是当并非所有 DC 都是 Server 2016 时,我似乎无法在任何地方找到有关如何在 AD 集成区域上工作的文档。

我无法想象它会运行得那么好,因为下级服务器不知道如何解释策略并采取相应行动,但由于信息在 AD 中复制,我可以预见到旧的 DC 会忽略新的属性并以某种“默认”方式(不应用策略)做出响应,而新的 DC 会根据策略做出响应。

我认为在某些情况下这样做是可以的,您可以(或已经)让客户端指向 DC 的子集,因为这可以提供一种使用新功能的方法,而无需一次升级所有 DC。

但是,我找不到任何信息来表明我所描述的是否是它实际如何工作的,或者您是否根本无法在混合环境中使用新功能,或者介于两者之间。


警告

我最近发现DNS 策略 cmdlet 上的-WhatIf-Verbose-ErrorAction参数已损坏;请在此处投票以修复此问题。要小心!

答案1

这引起了我的好奇心 - 并且对一个有见地的问题也+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为简洁起见,以下是两种具体情况的详细信息:

阻止域的查询

这在 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 服务器定位到特定需求,例如支持(有限的)裂脑部署场景的递归策略。

相关内容