Очистка устаревших записей на DNS серверах Active Directory

Для автоматический очистки устаревших DNS записей в Active Directory используются две специальные возможности службы DNS Windows Server: Aging и Scavenging .

  • DNS Aging – позволяет определить DNS записи, которые считаются устаревшими
  • DNS Scavenging – непосредственно удаление старых DNS записей

В DNS на Windows Server есть два тип записей – динамические и статические. У динамических записей есть параметр time stamp (время последнего обновления записи). Активные Windows клиенты обновляют timestamp в своих записях при загрузке или раз в 24 часа. С помощью этого параметра DNS сервер может определить записи, которые давно не обновлялись, а значит не использовались.

Откройте консоль управления DNS сервером на контроллере домена AD ( dnsmgmt.msc ) и в меню View включите опцию Advanced .

Показать расширенные свойства в консоли DNS

Разверните зону прямую просмотра вашего домена (Forward Lookup Zone). Как вы видите, среди записей DNS зоны есть статические записи (static) и динамические (со временем в поле timestamp).

Статические и динамически записи в DNS AD

Статические DNS записи автоматически не очищаются. Такие записи создаются администратором, или в их настройках отключена опция Delete this record them it becomes stale .

Внимательно изучите динамические записи в зоне. Для всех DNS записей, которые не нужно удалять, отключите эту опцию в свойствах. Тип записи должен измениться на static.

Проверьте, что для всех серверов, сетевого оборудования, сервисов используются статические записи. Сделать DNS записи статическими: отключить Delete this record them it becomes stale

Автоматически будут очищаться только динамические DNS записи.

По умолчанию динамическая очистка старых записей в Windows Server DNS отключена.

Откройте свойства вашей DNS зоны и нажмите на кнопку Aging на вкладке General .

  1. Включите опцию Scavenge stale resource records .
  2. Параметр No-refresh interval определяет в течении какого срока timestamp DNS записи нельзя обновлять (позволяет снизить нагрузку на DNS и уменьшить репликацию). При этом, если у компьютера сменилось имя , DNS запись будет успешно обновлена.
  3. Параметр Refresh Interval – период, в течении которого timestamp записи может быть обновлен.

Значение No-refresh interval должно составлять половину от срока аренды IP адреса (Lease Time) на вашем DHCP сервере . Например, если DNS сервер выдает IP адреса на 12 дней, укажите здесь 6. В данном случае динамическая DNS запись будет считаться устаревшей и подлежать очистке механизмом Scavenging через 12 дней неактивности.

Настройки устаревания DNS записей в Windows Server

Настройки Aging можно применить ко всем primary DNS зонам на DC, если щелкнуть по DNS серверу и выбрать Set Aging/Scavenging for All Zones .

Set Aging/Scavenging for All Zones

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

Рекомендуем перед первым запуском очистки экспортировать информацию о ресурсных записях в DNS зоне в CSV файл с помощью PowerShell. Это позволит в случае необходимости пересоздать критические DNS записи:

Get-DnsServerResourceRecord -ZoneName 'contoso.com' | Select-Object hostname, timestamp, recordtype, @{Name='RecordData';Expression={$_.RecordData.ipv4address}}| Export-CSV -Csv "C:PSbackupDNSrecords.csv" -NoTypeInformation

Перейдите на вкладку Advanced в свойствах DNS сервера.

Включите опцию Enable automatic scavenging of state records и укажите через сколько дней после того, как DNS запись признана устаревшей механизмом Aging, ее нужно удалить (по умолчанию 7 дней). После этого механизм Scavenging будет автоматически удалять старые DNS записи раз в сутки.

Включить автоматическую очистку старых DNS записей в AD

Чтобы выполнить очистку немедленно, щелкните правой кнопкой по DNS серверу и выберите Scavenging Stale Resource Records . Или выполните команду:

Start-DnsServerScavenging -Verbose

Запустить очистку устаревши DNS записей

Текущие настройки очистки записей на DNS сервере и время последней очистки можно получить с помощью PowerShell:

Get-DnsServerScavenging

NoRefreshInterval : 7.00:00:00_x000D_RefreshInterval : 7.00:00:00_x000D_ScavengingInterval : 7.00:00:00_x000D_ScavengingState : False_x000D_LastScavengeTime : 4/2/2024 6:02:37 AM

Get-DnsServerScavenging

Чаще всего в AD используются интегрированные DNS зоны, которые автоматически реплицируются между серверами (классический PRIMARY DNS сервер для таких зон отсутствует). Поэтому вам достаточно настроить параметры очистки старых записей на любом из контроллеров домена (кроме RODC ). Если такой контроллер домена будет удален или выведен из эксплуатации , настройки нужно повторить на другом DC.
EnglishRussianUkrainian