Для автоматический очистки устаревших 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
А какие параметры необходимо установить, если люди работают каждый день (и выходные) с 7 до 17 часов?
будут удаляться только неактивные записи, а не все подряд
а если у сотрудника отпуск, продолжительностью 30 календарных дней, то. я так понимаю, через 7 дней запись о его ПК очистится из ДНС!
IP у него динамический, значит будет новый IP адресс?
из DNS пропадет запись о соответствии имени и ip адреса, если через месяц он получит новый ip, то при правильной настройке dhcp сервера в DNS для ПК создастся новая запись.
Добрый день, что подразумевается под правильной настройкой DHCP? У меня дхцп на микротике а днс на контроллере домена. Какие настройки нужны для корректной работы связки?
У меня нет опыта с dhcp на микротике.
Ваши клиенты с динамическим IP адресами, выданными Microtic, региструют свои записи в зоне на Windows DNS? При продлении IP timestamp записей обновляютя?
Можно ли удалить обратную зону DNS, точнее записи (в папке зона обратного просмотра),чтобы они заново создались. не повлияет ли удаление на работу сети?
Ни как не мог нормально настроить удаление старых записей в винде до прочтения данной заметки.
Спасибо!
добрый день
статья актуальна на сегодняшний день?
как время Scavenging должно стыковаться со временем аренды адреса на DHCP?
Scavenging к примеру 7 дней, а аренда 8.
Статья актуально. За это время принципы очистки старых записей не изменились.
Вы правы, могут быть проблемы, когда срок DCHP аренды 8 дней, а очистка DNS на 7 день.
Проще всего выравнять эти значения, устанвите период очистки DNS равным сроку DHCP аренды.
_https://docs.microsoft.com/en-us/archive/blogs/askpfe/how-dns-scavenging-and-the-dhcp-lease-duration-relate
Как инициировать принудительную очистку? После настройки автоочистки, нажимаю правой кнопокй на сервере, жму удалить устаревшие записи. Но в зоне прямого просмотра все равно висят старые записи с меткой чуть ли не прошлого года
Возможно автоочистка dns не применяется к ранее созданным динамическим записям? Что у них в свойствах, не проверяли? А у свежих записей?
У меня было то же самое!
Мне помогла вот эта статья — https://docs.microsoft.com/ru-ru/troubleshoot/windows-server/networking/records-arent-deleted
Добрый день, а что на счет записей сделанных вручную? например я развернул несколько сайтов, и руками добавил записи типа site.domain.local??? она не удалится?
Удаляются только динамические записи с меткой времени у ваших записей есть она?
Да, она есть, но меня смущает настройка в зонах. Есть два варианта
No-refresh interval и Refresh interval. не могу понять чем они отличаются.
Без установки галочки в свойствах ДНС сервера «Разрешить автоматическое удаление устаревших записей» очистка не будет работать, даже если прописаны интервалы блокирования и обновления в свойствах зон?
Подскажите пожалуйста, я заметил что настройка не реплицируется между несколькими контроллерами в сети с ролью DNS. Получается, что данную настройку нужно производить на каждом сервере DNS?
Эта настройка конкретного DNS сервера. Она не реплицируется.
А вот это очень важно.
зашел на статические записи, нет Delete this record them it becomes stale галочки
права домен админа,
может где то включать надо что то?
Скорее всего не включена Advanced в меню view
Добрый день! Продублирую вопрос:
«Без установки галочки в свойствах ДНС сервера «Разрешить автоматическое удаление устаревших записей» очистка не будет работать, даже если прописаны интервалы блокирования и обновления в свойствах зон?»
Нашел ответ в вашей статье, невнимательно прочитал. Но есть еще вопрос. Вы пишите:
«После этого механизм Scavenging будет автоматически удалять старые DNS записи раз в сутки.» Как это понимать, можно подробнее?.
Насколько я понимаю, что если выставлен Refresh Interval и No-refresh interval, то это означает, что процесс очистки будет выполняться каждые 7 дней для проверки всех подходящих устаревших записей и их удаления с DNS-сервера. Проще говоря через 7 дней будут удалены подходящие под условия записи, а не каждый день.
Refresh Interval по сути задает как скоро записи будут считаться устаревшими.
Попытался найти частоту запуска самой очистки в документации, но не нашел. Наверно только экспериментальым путем можно узнать. Возможно насчет раз в день я и ошибался.