Поделиться через


Политика геолокации DNS-сервера не работает должным образом

Область применения: Windows Server 2019, все выпуски Windows Server 2019 Datacenter: Azure Edition — предварительная версия

Симптомы

Рассмотрим организацию, использующую интегрированную с AD зону (область зоны по умолчанию), которая называется contoso.com для внутренних рабочих станций и серверов. Организация хочет реализовать структуру DNS географического расположения для своих филиалов, чтобы клиенты на определенном сайте могли получить доступ к службам интрасети из своих локальных подсетей.

Конфигурация зоны DNS напоминает следующую структуру.

Подсеть Диапазон IPv4-адресов Имя области зоны
NorthAmericaSubnet 192.168.3.0/24 NorthAmericaZoneScope
CentralAmericaSubnet 192.168.6.0/24 CentralAmericaZoneScope
SouthAmericaSubnet 192.168.7.0/24 SouthAmericaZoneScope

В организации используются следующие командлеты Windows PowerShell для регистрации записей адреса узла (A):

Add-DnsServerResourceRecord -ZoneName "contoso.com" -A -Name "www" -IPv4Address "192.168.3.40" -ZoneScope "NorthAmericaZoneScope"
Add-DnsServerResourceRecord -ZoneName "contoso.com" -A -Name "www" -IPv4Address "192.168.6.40" -ZoneScope "CentralAmericaZoneScope"
Add-DnsServerResourceRecord -ZoneName "contoso.com" -A -Name "www" -IPv4Address "192.168.7.40" -ZoneScope "SouthAmericaZoneScope"

В организации используются следующие командлеты PowerShell для определения политик:

Add-DnsServerQueryResolutionPolicy -Name "NorthAmericaPolicy" -Action ALLOW -ClientSubnet "eq,NorthAmericaSubnet" -ZoneScope "NorthAmericaZoneScope,1" -ZoneName "contoso.com"
Add-DnsServerQueryResolutionPolicy -Name "CentralAmericaPolicy" -Action ALLOW -ClientSubnet "eq,CentralAmericaSubnet" -ZoneScope "CentralAmericaZoneScope,1" -ZoneName "contoso.com"
Add-DnsServerQueryResolutionPolicy -Name "SouthAmericaPolicy" -Action ALLOW -ClientSubnet "eq,SouthAmericaSubnet" -ZoneScope "SouthAmericaZoneScope,1" -ZoneName "contoso.com"

Требуемый результат заключается в том, что клиент пытается сначала найти запрошенный ресурс в области локальной зоны, а затем в области зоны по умолчанию. Однако после настройки этих политик клиенты из определенных подсетей не могут успешно разрешать записи, размещенные в области зоны по умолчанию (contoso.com). Например, клиенты не могут разрешать hostA.contoso.com. При получении таких запросов DNS-сервер возвращает сообщение "Сбой сервера".

Причина

В этой ситуации входящие авторитетные запросы оцениваются в соответствии с соответствующим набором политик уровня зоны на основе их порядка приоритета. Кажется интуитивно понятным, что любой запрос, который не соответствует политике, будет автоматически обслуживаться из области зоны по умолчанию. Однако это не так. Вместо этого любой несоединяющий запрос вызывает сбой разрешения имен. То есть, если DNS-сервер получает запрос разрешения имен для hostA.contoso.com от клиента, указанного в политике подсети клиента, DNS-сервер проверяет только связанную область зоны.

Решение

Чтобы настроить политики таким образом, чтобы DNS-сервер проверял область зоны по умолчанию в дополнение к области локальной зоны, используйте более точную инструкцию DnsServerQueryResolutionPolicy , например следующую:

Add-DnsServerQueryResolutionPolicy -Name "NorthAmericaPolicy" -Action ALLOW -ClientSubnet "eq,NorthAmericaSubnet" -ZoneScope "NorthAmericaZoneScope,1" -ZoneName "contoso.com" -FQDN "www.contoso.com"

Примечание.

Необходимо создать инструкцию для каждой DnsServerQueryResolutionPolicy записи, содержащей соответствующую область зоны.