Кабельщик

Таблица политик разрешения имен

Джозеф Дейвис

Конфигурирование разрешения DNS-имен на хостах обычно предусматривает указание одного или нескольких IPv4- или IPv6-адресов DNS-серверов, которые обслуживают запросы, поступающие на сетевые интерфейсы. Обычно на компьютерах под управлением Windows Vista или Windows Server 2008 эта конфигурация создается автоматически средствами протокола DHCP (Dynamic Host Configuration Protocol) или DHCP для IPv6 (DHCPv6). На компьютерах под управлением Windows Vista или Windows Server 2008 все запросы на разрешение DNS-имен во всем пространстве DNS-имен обслуживаются DNS-серверами, заданными на сетевых интерфейсах, которые в дальнейшем мы будем так и называть — «DNS-серверы, заданные на интерфейсах».

Некоторые технологии требуют особого отношения к запросам на разрешение имен в отдельных частях пространства DNS-имен. Иначе говоря, если DNS-имя относится к заданной части пространства имен, следует применять особый порядок, а для других DNS-имен должен выполняться обычный DNS-запрос заданного на интерфейсе DNS-сервера. Для решения этой задачи в Windows 7 и Windows Server 2008 R2 появилась таблица политик разрешения имен (Name Resolution Policy Table, NRPT).

NRPT содержит заданные администратором правила, в которых указаны отдельные имена или целые пространства имен, требующие особой обработки, а также порядок этой обработки. При разрешении DNS-имени до отправки запроса на разрешение имени в DNS служба «DNS-клиент» сверяется, не соответствует ли запрашиваемое имя какому-либо правилу NRPT. Запросы и ответы, указанные в правиле NRPT, обрабатываются особо — как указано в таблице политик разрешения имен. Запросы и ответы, не подпадающие ни под какое правило NRPT, обрабатываются в обычном порядке, то есть службой «DNS-клиент», которая отправляет запрос на разрешение имени заданным на сетевом интерфейсе DNS-серверам.

В Windows 7 и Windows Server 2008 R2 DirectAccess и DNSSEC (DNS Security Extensions) требуют особой обработки запросов на разрешение DNS-имен. Находясь в Интернете, клиенты DirectAccess отправляют DNS-запросы ресурсов интрасети на DNS-серверы, указанные в NRPT. При разрешении особых имен или имен в рамках определенных пространств имен (обычно это высокоценные и защищенные ресурсы интрасети) служба DNS-клиента может использовать DNSSEC, чтобы гарантировать, что разрешенное имя проверено DNS-сервером.

Конфигурирование NRPT

NRPT можно сконфигурировать в групповой политике через реестр Windows (параметр HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\DnsClient\DnsPolicyConfig), а правила DirectAccess — средствами мастера установки DirectAccess. Нет никаких команд командной строки для настройки NRPT. Для конфигурирования правил DNSSEC рекомендуется использовать консоль редактирования групповых политик, а для настройки правил DirectAccess —Мастер установки DirectAccess.

Средствами консоли управления групповой политикой настраивают NRPT, конфигурируя соответствующий объект в узле Computer Configuration\Policies\Windows Settings\Name Resolution Policy, как показано на рис. 1.

 

Рис. 1. NRPT в Редакторе групповой политики

В этом окне управления групповой политикой можно создать новое правило NRPT и отредактировать или удалить существующие правила. В правиле надо указать часть пространства имен, к которому оно должно применяться, связана ли специальная обработка в правиле с каким-то центром сертификации и относится ли данное правило к DNSSEC и относящимся к нему параметров. Есть также дополнительные глобальные параметры, которые относятся ко всем DNS-клиентам в Windows 7 и Windows Server 2008 R2.

При определении пространства имен, к которому должно применяться правило, доступны варианты Suffix, FQDN, Subnet (IPv4), Subnet (IPv6), Prefix и Any. Чтобы задать DNS-имена, заканчивающиеся на contoso.com, выберите Suffix и введите суффикс имени contoso.com. Чтобы задать DNS-имена, начинающиеся с определенной строки, состоящей из одной части, выберите Prefix и введите префикс имени, например чтобы выбрать все DNS-имена, начинающиеся на «secsvr», выберите Prefix и введите secsvr.

Чтобы задать все DNS-имена, выберите Any. Основанное на DirectAccess правило NRPT для варианта Any применяется, только если включен параметр Computer Configuration\Policies\Administrative Templates\Network\Network Connections\Route all traffic through the internal network Group Policy групповой политики для обеспечения принудительного туннелирования DirectAccess. Если имя подпадает под действие нескольких правил, применяется правило с самым высоким приоритетом; приоритет снижается в следующем порядке: FQDN, Prefix, Suffix и Any.

Чтобы выбрать DNS-имена для обратного разрешения имен в подсети IPv4, выберите Subnet (IPv4) и введите префикс подсети IPv4, например чтобы задать всех DNS-имена, заканчивающиеся на «17.168.192.in-addr.arpa», выберите Subnet (IPv4) и введите 192.168.17.0/24. Чтобы задать DNS-имена для обратного разрешения имен в подсети IPv6 подсети, выберите Subnet (IPv6) и введите префикс подсети IPv6, например чтобы задать DNS-имена, заканчивающиеся на «1.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa», выберите Subnet (IPv6) и введите 2001:db8:0:1::/64.

При использовании DNSSEC в правиле можно определить, должна служба DNS-клиента обеспечивать проверку DNS-сервером ответа на запрос на разрешение имени и нужно ли использовать протокол IPsec для защиты обмена запросами на разрешение DNS-имен. Здесь доступны такие варианты: «No encryption (integrity only)» (без шифрования), «Low: 3DES, AES (128, 192, 256)» (низкий уровень безопасности), «Medium: AES (128, 192, 256)» (средний уровень безопасности) и «High: AES (192, 256)» (высокий уровень безопасности). DES означает Data Encryption Standard, а AES — Advanced Encryption Standard.

При включении DirectAccess в правиле можно задать IPv6-адреса набора интрасетевых DNS-серверов, которые будет разрешать имена по запросам клиентов DirectAccess, когда те находятся в Интернете, указать, следует ли использовать веб-прокси и нужно ли применять IPsec для защиты обмены запросами на разрешение DNS-имен. Такие же параметры можно задать для защиты средствами IPsec.

Для просмотра сконфигурированного набора правил NRPT на компьютере под управлением Windows 7 или Windows Server 2008 R2 можно воспользоваться командой netsh namespace show policy. Для получения перечня активных правил NRPT служит команда netsh namespace show effectivepolicy.

Дополнительные глобальные параметры политики

При выборе варианта Advanced Global Policy Settings в окне Редактора групповой политики NRPT по умолчанию открывается окно Configure Advanced Global Policy Settings (рис. 2).

 

Рис. 2. Окно настройки дополнительных параметров политики

В разделе Network Location Dependency можно задать клиентов DirectAccess, которые смогут пользоваться сервер разрешения в сети и обнаружение в интрасети для детектирования подключения к интрасети, или заставить всегда или никогда не использовать основанные на DirectAccess правила NRPT.

В разделе Query Failure можно настроить, что нужно делать при сбое запроса и указать: надо ли использовать локальное разрешение имен (широковещательная рассылка LLMNR [Link-Local Multicast Name Resolution] и NetBIOS), только если ответ на запрос DNS-имени говорит, что имя не существует; использовать локальное разрешение имен, если имя не существует или DNS-серверы недоступны в сети с частными адресами IPv4; или использовать локальное разрешение имен при любом сбое разрешения имен или ошибке.

В разделе Query Resolution можно задать параметры разрешения запроса и задать порядок разрешения имен — только в адреса IPv6 или в адреса IPv4 и IPv6.

Текущую конфигурацию этих параметров настройки можно увидеть, выполнив команду netsh dns show state.

Исключения NRPT

Разумно сократить число правил NRPT путем задания пространств имен, охватывающих максимально возможное число нужных пространств имен, но при этом, скорее всего, потребуется исключить отдельные имена этих пространств из обработки правилом. В этом случае надо сконфигурировать исключения NRPT. Допустим, планируется использовать DNSSEC для всех имен DNS в пространстве имен secure.corp.contoso.com за исключением DNS-имени waystation.secure.corp.contoso.com.

Исключение NRPT — правило, которое не задает никакой особой обработки. Для DNSSEC такое правило разрешает DNSSEC, но не требует проверки правильности или защиты IPsec. Для DirectAccess правило разрешает DirectAccess, но не определяет набор интрасетевых DNS-серверов, веб-прокси или защиту IPsec. DNS-имена, указанные в исключениях правил NRPT, обрабатываются заданными на интерфейсах DNS-серверами.

Пример необходимого исключения NRPT — правило с FQDN для сервера определения сети DirectAccess, который клиенты DirectAccess используют для определения, подключены ли они к интрасети. Чтобы отправлять запросы DNS-имен серверам интрасети, в NRPT для клиентов DirectAccess имеется «правило суффикса» для пространства имен интрасети, например corp.contoso.com с адресом IPv6 интрасетевых DNS-серверов. Сервер определения сети обычно находится в том же пространстве имен, например nls.corp.contoso.com. Однако инфраструктура IPv6 может быть такова, что интрасетевые DNS-серверы недоступны по указанным адресам IPv6, но доступны по заданным на интерфейсах адресам IPv4.

В отсутствие правила исключения подключенный к интрасети клиент DirectAccess пытается разрешить имя сервера определения сети средствами IPv6. Поскольку DNS-серверы интрасети недоступны, клиент DirectAccess не сможет достучаться до сервера определения сети и решит, что находится в Интернете, а не интрасети. В такой ситуации клиент DirectAccess никогда не сможет получить доступ к ресурсам интрасети по имени. Поэтому обязательно должно присутствовать правило исключения для сервера определения сети (nls.corp.contoso.com), чтобы возможно было обнаружить интрасеть. Мастер установки DirectAccess автоматически создает правила NRPT для пространства имен интрасети и исключение для сервера определения сети.

Как работает NRPT

Далее описан порядок разрешения имен в Windows 7 и Windows Server 2008 R2.

  1. Приложение применяет API-функцию DnsQuery() или одну из функций API сокетов Windows — GetAddrInfo () или GetHostByName () — для разрешения имени. Если имя плоское, служба «DNS-клиент» создает полное доменное имя (FQDN), используя заданные DNS-суффиксы.
  2. Служба «DNS-клиент» ищет полученное полное доменное имя в кеше распознавателя DNS; кеш содержит содержимое файла Hosts и результаты последних удачных или неудачных запросов на разрешение имен. В случае успеха используется обнаруженный результат и процесс на этом завершается.
  3. Служба «DNS-клиент» проверяет полное доменное имя не предмет применимости к нему каких-либо правил NRPT.
  4. Если полное доменное имя не подпадает ни под какое правило или к нему применимо только одно правило исключения, служба «DNS-клиент» пытается разрешить полное доменное имя средствами заданных на интерфейсах DNS-серверов.
  5. Если полное доменное имя подпадает под единственное, не являющееся исключением правило, служба «DNS-клиент» обрабатывает его в соответствии с этим правилом.
  6. Если полное доменное имя подпадает под несколько правил, служба «DNS-клиент» сортирует правила по приоритету в следующем порядке: полное доменное имя, самый длинный совпадающий префикс [включая IPv4 и IPv6 подсети] или все адреса (Any) и определяет правило, наиболее близко соответствующее полному доменному имени.
  7. Определив самое приоритетное правило, служба «DNS-клиент» обрабатывает его в соответствии с этим правилом.

Резюме

NRPT в Windows 7 и Windows Server 2008 R2 позволяет организовать особый порядок обработки запросов на разрешение DNS-имен (что необходимо для DNSSEC и DirectAccess) в форме правил, в которых можно указывать пространства имен, префиксы, полные доменные имена и исключения.

Врезка: Пример правил NRPT для DirectAccess

В корпорации Contoso DNS-имена Интернета размещены в пространстве DNS-имен contoso.com, а интрасети — в corp.contoso.com. URL-адрес — https://nls.corp.contoso.com, и на интрасетевом интерфейсе сервера DirectAccess задан IPv4-адрес DNS-сервера — 10.0.0.1. Основываясь на такой конфигурации, Мастер установки DirectAccess создал два правила NRPT для DirectAccess:

  1. Правило с суффиксом .corp.contoso.com, пересылающее DNS-запросы по адресу IPv6 2002:836b:2:1:0:5efe:10.0.0.1. Это адрес, производный от публичного IPv4-адреса сервера DirectAccess и IPv4-адреса DNS-сервера.
  2. Правило исключения для nls.corp.contoso.com.

Вот результат выполнения команды netsh namespace show policy на клиенте DirectAccess, содержащий информацию об указанных политиках:

 

DNS Name Resolution Policy Table SettingsSettings for nls.corp.contoso.com----------------------------------------------------------------------Certification authority                 : DC=com, DC=contoso, DC=corp,                                          CN=corp-DC1-CADNSSEC (Validation)                     : disabledDNSSEC (IPsec)                          : disabledDirectAccess (DNS Servers)              :DirectAccess (IPsec)                    : disabledDirectAccess (Proxy Settings)           : Bypass proxySettings for .corp.contoso.com----------------------------------------------------------------------Certification authority                 : DC=com, DC=contoso, DC=corp,                                          CN=corp-DC1-CADNSSEC (Validation)                     : disabledDNSSEC (IPsec)                          : disabledDirectAccess (DNS Servers)              : 2002:836b:2:1:0:5efe:10.0.0.1DirectAccess (IPsec)                    : disabledDirectAccess (Proxy Settings)           : Bypass proxy 

Джозеф Дейвис (Joseph Davies) — ведущий технический писатель в группе команды технических писателей по теме сетей Windows в Microsoft. Он является автором и соавтором нескольких книг, опубликованных издательством Microsoft Press, в числе которых «Windows Server 2008 Networking and Network Access Protection (NAP)»*,* «Understanding IPv6, Second Edition» и «Windows Server 2008 TCP/IP Protocols and Services»*.*

Связанное содержимое