之前介绍了使用DNS策略实现感知等场景的智能DNS服务,那么这里将给大家分享基于DNS策略的筛选参数有哪些可以使用,让DNS策略更适应复杂的场景,比如下面的这个表可以看出可以根据很多条件来进行筛选:

WinSrv2019使用DNS策略实现DNS查询上的应用筛选_第1张图片

参考https://docs.microsoft.com/en-us/powershell/module/dnsserver/add-dnsserverqueryresolutionpolicy?view=win10-ps

下面我就罗列一些场景来介绍:

  • 阻止具有域名后缀abc.com的任何查询请求

Add-DnsServerQueryResolutionPolicy -Name "BlockListPolicy" -Action IGNORE -FQDN "EQ,*.abc.com" -PassThru

WinSrv2019使用DNS策略实现DNS查询上的应用筛选_第2张图片

备注:Action配置的参数为ignore时,DNS服务器配置为删除完全没有响应的查询,这会导致DNS客户端解析该域名超时。

  • 阻止某段子网的查询请求

Add-DnsServerQueryResolutionPolicy -Name "BlockListPolicyChengduSubnet" -Action IGNORE -ClientSubnet "EQ,ChengduSubnet" -PassThru

clip_image002

  • 阻止某子网对qq.com域名的解析,访问其他域名不受影响

Add-DnsServerQueryResolutionPolicy -Name "BlockListPolicyChengduSubnet" -Action IGNORE -ClientSubnet "EQ,ChengduSubnet" -FQDN "EQ,*.qq.com"-PassThru

clip_image003

  • 仅允许对*.basehome.com.cn的查询请求,其他域的查询全部阻止(配置允许列表时,DNS服务器仅处理来自允许域的查询,同时阻止来自其他域的所有其他查询)

Add-DnsServerQueryResolutionPolicy -Name "AllowListPolicyDomain" -Action IGNORE -FQDN "NE,*.basehome.com.cn" -PassThru

  • 仅允许来自子网的查询

还可以为IP子网创建允许列表,以便忽略不是源自这些子网的所有查询

Add-DnsServerQueryResolutionPolicy -Name "AllowListPolicySubnet” -Action IGNORE -ClientSubnet "NE, BeijingSubnet" -PassThru

  • 仅允许某些Qtype

例如,如果DNS有2张网卡,一张对内,一张对外,外部客户查询DNS服务器外网卡是192.168.1.2,则只允许查询某些QTYPE,而其他QTYPE(如SRV或TXT记录)由DNS服务器内网卡负责解析

Add-DnsServerQueryResolutionPolicy -Name "AllowListQType" -Action IGNORE -QType "NE,A,AAAA,MX,NS,SOA" –ServerInterface “EQ,192.168.1.2” -PassThru

这里只是给大家介绍了方法,更多的需要大家在实际的业务场景中举一反三实现自己的业务需求,详细的可以参考:https://docs.microsoft.com/en-us/windows-server/networking/dns/deploy/apply-filters-on-dns-queries