Server 2016:使用 DNS 策略允许从特定子网查询特定域

Server 2016:使用 DNS 策略允许从特定子网查询特定域

在公共 DNS 服务器上,我想使用以下规则创建规则DNS 策略允许流量到特定域仅有的来自指定子网。

例如,假设我们有一个域contoso.com,但只想允许特定子网查询它(请注意,此服务器上还有其他可公开查询的域)。使用 DNS 策略,我可以轻松堵塞特定子网无法查询特定域,但我不知道如何允许特定子网查询特定域。

以下工作堵塞

Add-DnsServerQueryResolutionPolicy -Name "Disallow_Contoso" -Action IGNORE -ClientSubnet "EQ,LocalSubnet10.x" –FQDN "EQ,*.contoso.com" -PassThru

但以下不起作用允许

Add-DnsServerQueryResolutionPolicy -Name "Allow_Contoso" -Action ALLOW -ClientSubnet "EQ,LocalSubnet10.x" –FQDN "EQ,*.contoso.com" -PassThru

Powershell 在第二个命令上返回的错误是:

Add-DnsServerQueryResolutionPolicy : Failed to create policy Allow_Contoso on DNS server DNS1. Please see internal exception for details.
At line:1 char:1
+ Add-DnsServerQueryResolutionPolicy -Name "Allow_Contoso" -Action ALLOW  ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidArgument: (Allow_Contoso:root/Microsoft/...esolutionPolicy) [Add-DnsServerQueryResolutionPolicy], CimException
+ FullyQualifiedErrorId : WIN32 87,Add-DnsServerQueryResolutionPolicy

看起来-Action ALLOW在这种情况下是不允许的,但我无法根据神秘的错误信息来确认这一点。

答案1

经过多次反复尝试后,以下方法有效:

Add-DnsServerClientSubnet -Name "Subnet192.x" -IPv4Subnet 192.168.0.0/24
Add-DnsServerZoneScope -ZoneName "contoso.com" -Name "SpecialSubnet" -PassThru
Add-DnsServerResourceRecord -ZoneName "contoso.com" -A -Name "test" -IPv4Address "10.10.0.1" -ZoneScope "SpecialSubnet" -PassThru
Add-DnsServerQueryResolutionPolicy -Name "SpecialPolicy" -Action ALLOW -ClientSubnet "eq,Subnet192.x" -ZoneScope "SpecialSubnet,1" -ZoneName "contoso.com" -PassThru

因此,如果查询设备位于 192.168.0.0/24 子网之外,则本机 DNS 区域将响应“A”记录test.contoso.com(假设已手动创建)。如果查询设备位于 192.168.0.0/24 子网内,则此处创建的策略将响应10.10.0.1查询test.contoso.com

相关内容