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


Непредвиденное поведение регистрации записей DNS, если DHCP-сервер использует "Всегда динамически обновлять записи DNS"

Область применения: Windows 11, Windows 10, Windows 8.1

Симптомы

У вас есть инфраструктура, которая использует dhcp-клиенты Windows и DHCP-серверы Майкрософт для назначения IP-адресов и управления ими. На DHCP-сервере выберите Включить динамические обновления DNS в соответствии с приведенными ниже параметрами и Всегда динамически обновлять записи DNS. В этой конфигурации ожидается, что DHCP-сервер будет управлять динамическими обновлениями DNS для записей A и PTR. Однако вы заметили, что записи DNS создаются как клиентом, так и сервером. В зависимости от конфигурации это поведение имеет следующие последствия:

  • Если вы настроите зоны DNS для небезопасных и безопасных динамических обновлений, то увидите, что DHCP-сервер создает записи, а затем DHCP-клиент удаляет и повторно создает те же записи.
  • Если вы настроите зоны DNS для защиты только динамических обновлений, записи DNS могут стать несогласованными. И DHCP-сервер, и DHCP-клиент создают записи. Однако DHCP-сервер не может обновлять записи, создаваемые DHCP-клиентом, и DHCP-клиент не может обновлять записи, создаваемые DHCP-сервером.

Причина

Чтобы получить IP-адрес, DHCP-клиент отправляет сообщение DHCP-запроса НА DHCP-сервер. Как правило, это сообщение включает полное доменное имя клиента (FQDN) и флаги, управляющие поведением динамического обновления DNS. Эти сведения вместе называются Вариант 81 (также известный как параметр полного доменного имени клиента).

Примечание.

Некоторые старые DHCP-клиенты не используют вариант 81. Чтобы обеспечить динамические обновления для этих клиентов, настройте DHCP-сервер, чтобы включить параметр Динамическое обновление записей DNS для DHCP-клиентов, которые не запрашивают обновления (например, клиенты, работающие Windows NT 4.0).

DHCP-сервер также хранит набор флагов варианта 81, которые управляют динамическим поведением обновления DNS. Часть процесса DHCP DORA (обнаружение,предложение/запрос/подтверждение) включает сравнение между клиентом и сервером значений флагов варианта 81, чтобы определить, кто отвечает за обновления DNS. Флаги, участвующие в поведении, описанном в разделе Симптомы , называются битами O (переопределение) и S (сервер). Флаги функционируют следующим образом:

  • Если S = 0, клиент отвечает за обновление записей A.
  • Если значение S = 1, сервер отвечает за обновление записей A.
  • Если значение S , отправляемое клиентом в запросе, отличается от значения S сервера, сервер задает значение Oравным 1.

Как описано в RFC, ответ DHCP-сервера на сообщение запроса должен содержать значения флагов. Если для O задано значение 1 в сообщении сервера, клиент должен понимать, что сервер переопределяет значение S клиента.

В Windows 8.1 в поведение динамического обновления DNS DHCP-клиента было внесено преднамеренное изменение структуры. Это изменение поддерживает продолжающуюся разработку и усовершенствования стека TCP/IP (протокол управления передачей и интернет-протокол) в более поздних версиях операционных систем Майкрософт. В Windows 8.1 и более поздних версиях DHCP-клиент не учитывает значения параметра 81 O и S DHCP-сервера. Если клиент настроен на обновление записей A, он продолжает делать это, даже если сервер также настроен для обновления записей A. Это происходит при выборе параметра Всегда динамически обновлять записи DNS в консоль управления DHCP.

Если в зонах DNS настроено безопасное динамическое обновление, то только сущность (DHCP-клиент, DHCP-сервер или учетная запись, для использования которую настроены службы DHCP), которая создала запись DNS, может обновить или удалить эту запись. Если DHCP-клиент, а не DHCP-сервер создает запись DNS, DHCP-сервер не сможет изменить ее позже.

Примечание.

DHCP-клиент Майкрософт не предоставляет метод для прямого задания значений O и S клиента в пользовательском интерфейсе. По умолчанию оба значения имеют значение 0. Вы можете просмотреть значения, записав netsh-трассировку запроса DHCP-клиента и используя такое средство, как Netmon, для просмотра результатов.

Для просмотра значения параметра 81 DHCP-сервера можно использовать командлет Windows PowerShell Get-DhcpServerv4OptionValue. Однако командлет передает это значение в виде одного целого числа, которое объединяет несколько разных параметров в виде битовых значений. Например, если выбрать Всегда динамически обновлять записи DNS на вкладке DNS окна свойств DHCP область, то для параметра S будет задано значение 1. Но командлет сообщает одно из восьми возможных значений для варианта 81. Все они используют S=1. Конкретное значение зависит от сочетания параметров, внесенных на вкладке DNS .

Дополнительные сведения о том, как динамические обновления работают между DHCP-клиентом, DHCP-сервером и DNS-сервером, см. в статье Процессы и взаимодействия DNS.

Разрешение

Если в вашей архитектуре требуется постоянное динамическое обновление записей DNS, можно создать раздел реестра на клиентском компьютере, чтобы заставить DHCP-клиент учитывать переопределение DHCP-сервера.

Важно!

В этот раздел, описание метода или задачи включены действия, содержащие указания по изменению параметров реестра. Однако неправильное изменение параметров реестра может привести к возникновению серьезных проблем. Поэтому следует в точности выполнять приведенные инструкции. Для защиты создайте резервную копию реестра перед его изменением, чтобы в случае возникновения проблем можно было восстановить его. Для получения дополнительной информации о том, как создать резервную копию и восстановить реестр, см. статью Сведения о резервном копировании и восстановлении реестра Windows.

  1. Перейдите к следующему подразделу: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters

  2. В подразделе создайте следующую запись:

    • Имя: RegistrationOverwrite
    • Тип: REG_DWORD
    • Значение: 2

    Примечание.

    RegistrationOverwrite имеет следующие возможные значения:

    • 0 — нет перезаписи.
    • 1 — записи, создаваемые DNS-клиентом, перезаписью записей, создаваемых DHCP-сервером. Это значение используется по умолчанию.
    • 2 — записи, которые DHCP-сервер создает перезаписи записей, создаваемых DNS-клиентом).
  3. Перезагрузите клиентский компьютер.

  4. В консоль управления DNS-сервера проверка зоны прямого и обратного просмотра. В зависимости от конкретной среды может потребоваться вручную удалить записи A и PTR, на удаление или изменение которых у DHCP-сервера нет разрешений.