禁用递归查询(禁用转发器).note

noteId: WEBdac6b2e6ecf69c73671c4d3239b04125 · 原始路径:/ALL/Windows - B模块/服务配置/DNS/DNS安全策略/禁用递归查询(禁用转发器).note · 图片:12 · 附件待处理:0

 
 
一、禁用递归查询(禁用转发器):
 
·递归查询默认是开启的:
Get-DnsServerRecursion
Get-DnsServerRecursionScope
这里的 RecursionScope 其实就是dns服务器的 转发器
 
我们将它设置为 192.168.1.2
 
 
1、完全禁用递归查询:
 
(1)禁用递归查询:
当你禁用了递归查询后,就无法在 dnsmgmt.msc 中修改 转发器中的内容了,只有开启之后才能修改
# 禁用递归查询:
set-dnsserverrecursionscope -name . -enablerecursion $false
 
# 开启递归查询:
set-dnsserverrecursionscope -name . -enablerecursion $true
 
·测试:
需要先清除dns缓存(有时清除不掉直接重启)
禁用前:
 
禁用后:
 
 
二、不同的地址使用不同的递归(使用不同的转发器):
 
1、配置递归:
不需要定义拒绝的递归条目,只需要将转发器中的IP清空,将默认转发器禁用,其他服务器就无法进行递归了
 
(1)定义 允许递归的策略:
# 自定义递归:
Add-DnsServerRecursionScope -name "recursion1" -Forwarder 192.168.1.2 -EnableRecursion $true
 
# 定义客户端子网范围:
Add-DnsServerClientSubnet -Name subnet1 -IPv4Subnet 192.168.1.0/24
 
# 应用递归并关联客户端网段(注意参数要按照下面的顺序来写,否则容易报错)
Add-DnsServerQueryResolutionPolicy -name "RecursionPolicy" -Action ALLOW -ApplyOnRecursion -RecursionScope "recursion1" -ClientSubnet "EQ,subnet1"
 
(2)定义 禁止递归的策略:
这个不配置也行,只需要关闭默认递归策略即可
set-DnsServerRecursionScope -name . -EnableRecursion $false
# 定义策略,禁止递归:
Add-DnsServerRecursionScope -Name "recursion2" -EnableRecursion $false
 
# 定义客户端子网范围:
Add-DnsServerClientSubnet -Name subnet2 -IPv4Subnet 172.16.10.0/24
 
# 应用递归(因为recursionScope中配置了Disable,因此这里配置ALLOW也是一样的效果)
Add-DnsServerQueryResolutionPolicy -Name "DenyPolicy" -Action ALLOW -ApplyOnRecursion -RecursionScope "recursion2" -ClientSubnet "EQ,subnet2"
 
 
·测试:
172.16.10.0 网段测试:
 
 
刚配置完前几次解析可能失败,多解析几次,实在不行直接重启(重启客户端 + 服务器)
192.168.10.0 网段测试:
 
192网段解析后172网段再次测试,就能够解析了,因为虽然172网段无法使用递归,但是它可以访问dns的缓存记录,
 
·如果不想要让 172网段访问缓存:
# 设置缓存时间为 0秒(等同于直接关闭dns缓存):
set-dnsservercache -MaxTtl 0
此时 客户就无法通过缓存进行访问了,因为192网段访问后只会缓存一秒
 
 
·注意:如果有时dns本地无法访问,看看是否使用的是ipv6地址,将ipv6禁用,使用ipv4来访问就可以了