Как удалить дубликаты в DNS и сделать динамическое обновление DNS через DHCP в Windows 2016

У нас проблема возникла с дублированием записей в обратной зоне PTR DNS. Но для нас не было проблем что они там дублируются . Но после того как внедрили fortigate. Начались проблемы с интернетом. Он там хитро трафик делит. И смотрит в днс.

Как удалить дубликаты в DNS и сделать динамическое обновление DNS через DHCP в Windows 2016

Решили настроить динамическое обновление dns через DHCP.

Сначала создали учётку srv.dnsupd для доступа dns. И добавили её в группу DnsUpdateProxy.

Настройка DNS.

Как удалить дубликаты в DNS и сделать динамическое обновление DNS через DHCP в Windows 2016

Включить автоматическую очистку устаревших записей. Оставим по умолчанию 7  дней так как у нас dhcp аренда 8 дней.

  1. Войдите в клиентскую среду и нажмите Пуск > Программы > Администрирование > DNS >  Диспетчер DNS .
  2. Щелкните правой кнопкой мыши соответствующий DNS-сервер и выберите « Установить устаревание / очистку для всех зон» .
  3. Убедитесь, что выбрано Очистить устаревшие записи ресурсов .
  4. Установите интервал без обновления и интервал обновления, чтобы общая продолжительность была равна или меньше срока аренды DHCP, и нажмите кнопку ОК .
  5. Например, если срок аренды DHCP составляет 8 дней , значение по умолчанию для каждого поля может составлять 4 дня или меньше.
  6. Выберите Применить эти параметры к существующим зонам, интегрированным в Active Directory , и нажмите ОК .
  7. Щелкните правой кнопкой мыши соответствующий DNS-сервер и выберите « Очистить записи ресурсов состояния», чтобы начать немедленную очистку .

В заданный период времени сервер выполняет поиск записей DNS и удаляет устаревшую информацию.

 

Как удалить дубликаты в DNS и сделать динамическое обновление DNS через DHCP в Windows 2016
Также обратите внимание, что рекомендуется настроить параметры «Интервал без обновления» и «Интервал обновления», меньший, чем период аренды DHCP.
Теперь настраиваем DHCP что бы записи в DNS сами обновлялись.

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

  1. Нажмите « Пуск» , выберите «
    Администрирование» и нажмите «
    DHCP» .
  2. Щелкните правой кнопкой мыши соответствующий DHCP-сервер или область и выберите « Свойства» .
  3. Щелкните DNS .
  4. Enable DNS dynamic updates according to the settings below” — включен по умолчанию, и у вас есть два варианта выбора, как показано ниже
  5. Dynamically update DNS A and PTR records only if requested by the DHCP clients – Это выбор по умолчанию. Этот параметр означает, что ваш DHCP-сервер будет обновлять записи DNS для клиентов только в том случае, если клиенты по какой-либо причине не могут выполнить обновление. Как указано ниже, это может работать некорректно, особенно если клиенты не являются компьютерами под управлением Windows.
  6. Always dynamically update DNS A and PTR records – Теперь вы должны изменить выбор на эту опцию. Что произойдет, так это то, что DHCP-сервер выполнит обновление независимо от того, может это сделать клиент или нет.
  7. Теперь вы также можете заметить, что на той же вкладке в свойствах DHCP-сервера есть несколько других параметров. Приведенное ниже объяснение расскажет вам о функциях каждой опции и о том, что вам нужно с ними делать:
    • Discard A and PTR records when lease is deleted — Как следует из названия, он удалит ранее зарегистрированные записи A и PTR при удалении аренды DHCP для соответствующего клиента. Установите флажок, чтобы включить эту опцию, так как это поможет очистить неиспользуемые записи на DNS-сервере.
    • Dynamically update DNS records for DHCP clients that do not request for updates — Эта опция присутствует только в том случае, если у вас есть очень старая машина или машина не под управлением Windows в качестве DHCP-клиента, который не выполняет динамическое обновление своей собственной записи на DNS-сервере. Установите флажок, чтобы включить эту опцию, и заставьте DHCP-сервер выполнить обновление DNS для них.
    • Disable dynamic updates for PTR records — Когда вы активируете эту опцию, ваш DHCP-сервер будет выполнять только динамическое обновление для записей A. Вам решать, что делать с этой опцией, но в этом примере мы не устанавливаем галочку для этой опции и позволяем DHCP-серверу также управлять записями PTR.
  8. Щелкните ОК .

Со всеми настроенными здесь вещами мы фактически настроили DHCP-сервер на владение всеми его клиентскими записями на DNS-сервере. Однако мы все еще далеки от завершения, поскольку нам нужно сделать несколько дополнительных шагов.

Добавьте DHCP-сервер в группу безопасности DnsUpdateProxy.

В документации пишут :Если DHCP-сервер находится на другом компьютере, чем контроллер домена, убедитесь, что DHCP-сервер включен в группу DnsUpdateProxy в Active Directory . В противном случае DHCP-сервер не сможет обновлять записи на DNS-сервере.
Но у меня так не заработала на 2016 windows. Я добавил в группу еще контролеры домена. Тогда все норм стало.

Как удалить дубликаты в DNS и сделать динамическое обновление DNS через DHCP в Windows 2016

https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ff631099(v=ws.10)?redirectedfrom=MSDN

     Включим также Защита имени DHCP — это функция службы DHCP, которая при использовании с динамической регистрацией DNS не позволяет клиенту DHCP с именем, уже находящимся в зоне домена DNS, регистрировать или перезаписывать существующее имя, которым он не владеет. Эта функция предотвращает спуфинг клиента и сервера и повреждение имен для статически настроенных систем, уже зарегистрированных в DNS. Вы можете включить защиту имени на уровне узла IPv4 или IPv6 или на уровне области. При настройке на уровне области параметры имеют приоритет над параметрами узла IPv4 или IPv6.

Как удалить дубликаты в DNS и сделать динамическое обновление DNS через DHCP в Windows 2016

   Что касается использования группы DnsUpdateProxy, я понимаю, что в эту группу должны входить только DHCP-серверы, а не пользователь динамического обновления DNS. Предполагается, что учетная запись пользователя будет добавлена ​​в конфигурацию DHCP-сервера, а не в группу DnsUpdateProxy.
Группа DnsUpdateProxy предназначена для клиентов DNS. Пользователь не является клиентом, это механизм, используемый клиентом (DHCP-сервером) для динамического обновления DNS, когда включены только безопасные обновления. Клиент остается сервером DHCP.
Когда DHCP-сервер находится на контроллере домена, помимо того, что он входит в группу и добавляет пользователя в конфигурацию DHCP, вам также необходимо отключить OpenACLOnProxyUpdates. Если вы этого не делаете, вы добавляете уязвимость, потому что членство в группе DnsUpdateProxy дает слишком много полномочий над записями DNS.
Некоторые школы считают, что DHCP на контроллере домена не должен быть членом DnsUpdateProxy, а только для пользователя обновления DNS должен быть назначен DHCP. Это может быть верно для более старых версий Windows Server, но для 2012R2 и более поздних версий у меня есть чувство из технических документов, что сервер все еще должен быть в группе DnsUpdateProxy, но из-за того, что он является DC, разрешения членства в этой группе открывают уязвимость.

Итак, если у вас есть DHCP на контроллере домена с включенным безопасным динамическим обновлением DNS, вы должны также выполнить эту команду на контроллере домена, на котором работает DHCP, чтобы его DNS не позволял «чужим» обновлениям изменять записи, принадлежащие DHCP:

dnscmd / config / OpenAclOnProxyUpdates 0

Итог — группа DnsUpdateProxy не предназначена для какого-либо пользовательского объекта — она ​​должна использоваться только для объектов DHCP-сервера (клиентов DHCP) и в первую очередь предназначена для «наилучшей практики» размещения вашего DHCP-сервера на сервере без DC, чтобы передать необходимые разрешения для динамического обновления DNS. Добавление пользователя защищенного обновления в эту группу не имеет смысла.

Показать текущее состояние:

dnscmd /info / penACLOnProxyUpdates

Желаемое состояние:

dnscmd /config /OpenAclOnProxyUpdates 0

Вернуться к умолчанию:

dnscmd /config /OpenAclOnProxyUpdates 1

Укажите учетные данные для защиты динамического обновления DNS.

Это применимо, если зона DNS, в которой ваш DHCP-сервер будет регистрировать / обновлять записи, является зоной, интегрированной в Active Directory, которая допускает только безопасные динамические обновления .

Как удалить дубликаты в DNS и сделать динамическое обновление DNS через DHCP в Windows 2016

Вам необходимо указать учетную запись пользователя в свойствах DHCP-сервера . Откройте вкладку « Дополнительно » в свойствах DHCP-сервера и нажмите кнопку « Учетные данные» .

Как удалить дубликаты в DNS и сделать динамическое обновление DNS через DHCP в Windows 2016

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

Поиск одинаковых записей с одним IP

#Import the Active Directory Module
import-module activedirectory

#Define an empty array to store computers with duplicate IP address registrations in DNS
$duplicate_comp = @()

#Get all computers in the current Active Directory domain along with the IPv4 address
#The IPv4 address is not a property on the computer account so a DNS lookup is performed
#The list of computers is sorted based on IPv4 address and assigned to the variable $comp
$comp = get-adcomputer -filter * -properties ipv4address | sort-object -property ipv4address

#For each computer object returned, assign just a sorted list of all
#of the IPv4 addresses for each computer to $sorted_ipv4
$sorted_ipv4 = $comp | foreach {$_.ipv4address} | sort-object

#For each computer object returned, assign just a sorted, unique list
#of all of the IPv4 addresses for each computer to $unique_ipv4
$unique_ipv4 = $comp | foreach {$_.ipv4address} | sort-object | get-unique

#compare $unique_ipv4 to $sorted_ipv4 and assign just the additional
#IPv4 addresses in $sorted_ipv4 to $duplicate_ipv4
$duplicate_ipv4 = Compare-object -referenceobject $unique_ipv4 -differenceobject $sorted_ipv4 | foreach {$_.inputobject}

#For each instance in $duplicate_ipv4 and for each instance
#in $comp, compare $duplicate_ipv4 to $comp If they are equal, assign
#the computer object to array $duplicate_comp
foreach ($duplicate_inst in $duplicate_ipv4)
{
    foreach ($comp_inst in $comp)
    {
        if (!($duplicate_inst.compareto($comp_inst.ipv4address)))
        {
            $duplicate_comp = $duplicate_comp + $comp_inst
        }
    }
}

#Pipe all of the duplicate computers to a formatted table
$duplicate_comp | ft name,ipv4address -a

 

Similar Posts: