我需要提供一种DNS拆分大脑场景,其中有两个关键目标:
换句话说,我想要创建一种"DNS重写“或覆盖,对于某些客户端,很少有不同的记录。我希望通过服务器2016中的DNS策略来实现这一目标,该策略将“拆分大脑/地平线”描述为预期的场景之一,例如https://blogs.technet.microsoft.com/networking/2015/05/12/split-brain-dns-deployment-using-windows-dns-server-policies/ --但我似乎无法实现目标2。
在我的测试中,我创建了一个具有可选IP地址的ZoneScope,该地址将返回给匹配的客户端和基于客户端子网的查询解析策略,从而实现目标1)。但是,如果客户端被匹配为来自“特殊”子网,那么它只能解析来自特殊ZoneScope的记录,而不能解析来自“默认”范围的记录--因此目标2失败了。
如果我的特殊显像管不包含匹配记录的话,是否有一个我错过的配置步骤,允许返回到默认的ZoneScope?我被告知,这可以很容易地使用绑定DNS与响应区域政策,但我想坚持在所有可能的MS。此外,使用主机文件是不可能的,因为这些“特殊”服务器并不完全在我们的控制之下。
的步骤
#define subnet of restricted servers
Add-DnsServerClientSubnet -name SpecialServers -IPv4Subnet 192.168.0.0/24
#define ZoneScope for the special records
Add-DnsServerZoneScope -ZoneName "test.local" -Name "SpecialZoneScope"
#Prepare some testing records in the default scope
Add-DnsServerResourceRecord -ZoneName "test.local" -A -Name HostA -IPv4Address 1.1.1.1
Add-DnsServerResourceRecord -ZoneName "test.local" -A -Name HostB -IPv4Address 1.1.1.2
#Prepare alternative record in SpecialZoneScope
Add-DnsServerResourceRecord -ZoneName "test.local" -ZoneScope "SpecialZoneScope" -A -Name HostA -IPv4Address 20.20.20.1
#Define query resolution policy
Add-DnsServerQueryResolutionPolicy -Name "SplitBrainZonePolicy" -Action ALLOW -ClientSubnet "eq,SpecialServers" -ZoneScope "SpecialZoneScope,1" -ZoneName "test.local"从“常规”客户端查找:
> HostA.test.local
Server: dns.test.local
Address: ****
Name: HostA.test.local
Address: 1.1.1.1
> HostB.test.local
Server: dns.test.local
Address: ****
Name: HostB.test.local
Address: 1.1.1.1.2“默认”显像管的两个记录都被正确地返回。
从客户端在“特殊”子网中查找:
> HostA.test.local
Server: dns.test.local
Address: ****
Name: HostA.test.local
Address: 20.20.20.1
> HostB.test.local
Server: dns.test.local
Address: ****
*** dns.test.local can't find HostB.test.local: Non-existent domainHostA是使用SpecialZoneScope中的替代IP解析的,HostB完全没有解析。
发布于 2018-03-06 18:13:03
是的,你绝对可以做到。除了忘记将查询解析策略限制在区域范围内的特定记录之外,一切都做对了。您可以通过-FQDN参数执行此操作,如下所示。
Add-DnsServerQueryResolutionPolicy -Name "SplitBrainZonePolicy" -Action ALLOW -FQDN "eq,HostA.test.local" -ClientSubnet "eq,SpecialServers" -ZoneScope "SpecialZoneScope,1" -ZoneName "test.local"您正在尝试将区域范围看作是一种覆盖在原始区域上的“透明度”,但实际上并非如此。
它是一个不透明的替代区域(有点像文件上的备用数据流)。对该区域范围的查询永远不会“退回”到默认区域。
因此,当您创建查询解析策略时,您正在定义特定查询选择区域范围的规则。
通过定义一个只有一个记录HostA的区域范围,然后定义一个QRP将所有查询从特定的IP发送到该区域,您实际上是说他们只能看到该记录。
将FQDN添加到QRP意味着只有来自指定子网(S)的客户端也在查询HostA.test.local,才会被发送到备用区域范围。
当然,如果区域中有更多的记录,则需要指定多个记录或创建多个QRP。您也可以使用通配符。
https://serverfault.com/questions/900152
复制相似问题