首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我是否可以使用服务器2016 DNS策略返回替代IP,但仅针对某个域中的某些记录?

问我是否可以使用服务器2016 DNS策略返回替代IP,但仅针对某个域中的某些记录?
EN

Server Fault用户
提问于 2018-03-05 23:48:53
回答 1查看 2.9K关注 0票数 3

我需要提供一种DNS拆分大脑场景,其中有两个关键目标:

  1. “特殊”DNS客户端(基于其子网)必须将一个域中的某些记录解析为与其他客户端不同的IP地址
  2. 无论哪个客户端请求,都必须平等地解析同一域中的所有其他记录。

换句话说,我想要创建一种"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。此外,使用主机文件是不可能的,因为这些“特殊”服务器并不完全在我们的控制之下。

复制

的步骤

代码语言:javascript
复制
#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"

结果:

从“常规”客户端查找:

代码语言:javascript
复制
> 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

“默认”显像管的两个记录都被正确地返回。

从客户端在“特殊”子网中查找:

代码语言:javascript
复制
> 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 domain

HostA是使用SpecialZoneScope中的替代IP解析的,HostB完全没有解析。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2018-03-06 18:13:03

是的,你绝对可以做到。除了忘记将查询解析策略限制在区域范围内的特定记录之外,一切都做对了。您可以通过-FQDN参数执行此操作,如下所示。

代码语言:javascript
复制
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。您也可以使用通配符。

票数 4
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/900152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档