Думаю, у меня есть половина ответа, но мне нужна помощь с последними шагами ...
Я пытаюсь настроить наши DNS-серверы Windows 2016 для ответа как рекурсивные серверы для клиентов в наших внутренних подсетях, но отвечать только на запросы для нашего домена от клиентов во внешних подсетях.
У меня это в основном работает со следующим (номера сетей изменены)
Set-DnsServerRecursionScope -Name . -EnableRecursion $False
Add-DnsServerRecursionScope -Name "Internal" -EnableRecursion $true -Forwarder X.X.X.X,Y.Y.Y.Y
Add-DnsServerClientSubnet -Name "10.1" -IPv4Subnet 10.1.0.0/16 -PassThru
Add-DnsServerClientSubnet -Name "172.20" -IPv4Subnet 172.20.0.0/16 -PassThru
Add-DnsServerClientSubnet -Name "172.21" -IPv4Subnet 172.21.0.0/16 –PassThru
Add-DnsServerClientSubnet -Name LoopBackSubnet -IPv4Subnet 127.0.0.0/8 -IPv6Subnet ::1/128
Add-DnsServerQueryResolutionPolicy -Name "Allow10.1" -Action ALLOW - ApplyOnRecursion -RecursionScope "Internal" -ClientSubnet "EQ,10.1" -PassThru
Add-DnsServerQueryResolutionPolicy -Name "Allow172.20" -Action ALLOW -ApplyOnRecursion -RecursionScope "Internal" -ClientSubnet "EQ,172.20" -PassThru
Add-DnsServerQueryResolutionPolicy -Name "Allow172.21" -Action ALLOW -ApplyOnRecursion -RecursionScope "Internal" -ClientSubnet "EQ,172.21" –PassThru
Add-DnsServerQueryResolutionPolicy -Name "AllowLocal" -Action ALLOW -ApplyOnRecursion -RecursionScope "Internal" -ClientSubnet "EQ,LoopBackSubnet" –PassThru
Это дает желаемый эффект: не выполняется рекурсивный поиск, если клиент не находится в одной из определенных подсетей, однако сервер по-прежнему будет отвечать на рекурсивные поиски, если ответ находится в кэше.
Я попробовал другой подход (сначала удалил указанные выше политики и снова включил рекурсивный поиск в области по умолчанию):
Set-DnsServerRecursionScope -Name . -EnableRecursion $true -Forwarder X.X.X.X,Y.Y.Y.Y
Add-DnsServerQueryResolutionPolicy -Name "DenyRecursion" -Action DENY -ClientSubnet "NE,10.1,172.20,172.21,LoopBackSubnet" -PassThru –FQDN “NE,*.TESTDOMAIN.COM”
Это не дало того, что я ожидал, поскольку ни внутренние, ни внешние подсети не имеют рекурсивного ответа.
Есть ли способ отключить использование кеша при первой настройке, или может кто-нибудь указать, что я пропустил во второй попытке, чтобы мои внутренние подсети могли использовать DNS-сервер в качестве `` полного '' (рекурсивного) сервера, но внешние клиенты могут только запросить хосты в моей зоне (и не увидеть кешированных ответов)?