Для автоматический очистки устаревших 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.
Разверните зону прямую просмотра вашего домена (Forward Lookup Zone). Как вы видите, среди записей DNS зоны есть статические записи (static) и динамические (со временем в поле timestamp).
Статические DNS записи автоматически не очищаются. Такие записи создаются администратором, или в их настройках отключена опция Delete this record them it becomes stale.
Внимательно изучите динамические записи в зоне. Для всех DNS записей, которые не нужно удалять, отключите эту опцию в свойствах. Тип записи должен измениться на static.
Проверьте, что для всех серверов, сетевого оборудования, сервисов используются статические записи.
По умолчанию динамическая очистка старых записей в Windows Server DNS отключена.
Откройте свойства вашей DNS зоны и нажмите на кнопку Aging на вкладке General.
- Включите опцию Scavenge stale resource records.
- Параметр No-refresh interval определяет в течении какого срока timestamp DNS записи нельзя обновлять (позволяет снизить нагрузку на DNS и уменьшить репликацию). При этом, если у компьютера сменилось имя, DNS запись будет успешно обновлена.
- Параметр Refresh Interval – период, в течении которого timestamp записи может быть обновлен.
Значение No-refresh interval должно составлять половину от срока аренды IP адреса (Lease Time) на вашем DHCP сервере. Например, если DNS сервер выдает IP адреса на 12 дней, укажите здесь 6. В данном случае динамическая DNS запись будет считаться устаревшей и подлежать очистке механизмом Scavenging через 12 дней неактивности.
Настройки Aging можно применить ко всем primary DNS зонам на DC, если щелкнуть по DNS серверу и выбрать Set Aging/Scavenging for All Zones.
Пока вы только настроили опцию устаревания DNS записей для зоны. Но до тех пор, пока вы не разрешите автоматическую очистку старых записей в настройка DNS сервера, они удаляться не будут.
Get-DnsServerResourceRecord -ZoneName 'contoso.com' | Select-Object hostname, timestamp, recordtype, @{Name='RecordData';Expression={$_.RecordData.ipv4address}}| Export-CSV -Csv "C:\PS\backupDNSrecords.csv" -NoTypeInformation
Перейдите на вкладку Advanced в свойствах DNS сервера.
Включите опцию Enable automatic scavenging of state records и укажите через сколько дней после того, как DNS запись признана устаревшей механизмом Aging, ее нужно удалить (по умолчанию 7 дней). После этого механизм Scavenging будет автоматически удалять старые DNS записи раз в сутки.
Чтобы выполнить очистку немедленно, щелкните правой кнопкой по DNS серверу и выберите Scavenging Stale Resource Records. Или выполните команду:
Start-DnsServerScavenging -Verbose
Текущие настройки очистки записей на DNS сервере и время последней очистки можно получить с помощью PowerShell:
Get-DnsServerScavenging
NoRefreshInterval : 7.00:00:00 RefreshInterval : 7.00:00:00 ScavengingInterval : 7.00:00:00 ScavengingState : False LastScavengeTime : 4/2/2024 6:02:37 AM