パブリックDNSサーバーで、 DNSポリシー を使用してルールを作成し、特定のドメインのみへのトラフィックを許可します。指定されたサブネット。
たとえば、ドメインcontoso.com
があるが、特定のサブネットのみがこれをクエリできるようにしたい場合(このサーバーには他の公的にクエリ可能なドメインがあることに注意してください )。 DNSポリシーを使用すると、特定のサブネットが特定のドメインにクエリを実行するのを簡単にブロックできますが、その方法がわかりませんallow特定のサブネットが特定のドメインにクエリを実行できるようにします。
以下はblockに対して機能します:
Add-DnsServerQueryResolutionPolicy -Name "Disallow_Contoso" -Action IGNORE -ClientSubnet "EQ,LocalSubnet10.x" –FQDN "EQ,*.contoso.com" -PassThru
ただし、以下はallowでは機能しません。
Add-DnsServerQueryResolutionPolicy -Name "Allow_Contoso" -Action ALLOW -ClientSubnet "EQ,LocalSubnet10.x" –FQDN "EQ,*.contoso.com" -PassThru
2番目のコマンドで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
は許可されていないようですが、不可解なエラーメッセージに基づいて確認することはできません。
多くの試行錯誤の末、以下が機能しています。
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ゾーンはtest.contoso.com
の「A」レコードで応答します(手動で作成されていると想定)。クエリを実行しているデバイスが192.168.0.0/24サブネット内にある場合、ここで作成されたポリシーは、10.10.0.1
のクエリに対してtest.contoso.com
で応答します。