DNS: очистка: записи не удаляются, если очистка вручную отключена с помощью DNSCMD

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

Применяется к: Windows Server 2012 R2
Исходный номер базы знаний: 2791165

Симптомы

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

Вы настраиваете цикл очистки и старение (без обновления и интервал обновления), соответствующие вашей среде, и дождитесь удаления записей в цикле очистки.

Вы заметили, что цикл очистки выполняется, но не удаляет записи со старыми метками времени.
Вы решили дождаться выполнения еще одного цикла очистки, но все равно записи не удаляются.

Причина

Вы можете столкнуться с этим сценарием, когда зона DNS была ранее настроена вручную для очистки на другом сервере (с помощью dnscmd), а затем очистка была отключена в среде, а затем снова включена на другом сервере.

Разрешение

Для рассматриваемой зоны выполните следующую команду:

dnscmd /zoneinfo contoso.com

(Я буду использовать зону как contoso.com например) Вы получите следующий результат:

Zone query result:

Zone info:

                ptr                   = 0000000000327C90
                zone name             = ocntoso.com
                zone type             = 1
                shutdown              = 0
                paused                = 0
                update                = 2
                DS integrated         = 1
                read only zone        = 0
                in DS loading queue   = 0
                currently DS loading  = 0
                data file             = (null)
                using WINS            = 0
                using Nbstat          = 0
                aging                 = 1
                 refresh interval    = 168
                  no refresh          = 168
                  scavenge available  = 3606130
                Zone Masters          NULL IP Array.
                Zone Secondaries   NULL IP Array.
                secure secs           = 3
                directory partition   = AD-Domain     flags 00000015

                zone DN               = DC=contoso.com,cn=MicrosoftDNS,DC=DomainDnsZones,DC=contoso,DC=com          Scavenge Servers

                 Ptr          = 000000000031D480
               MaxCount     = 1

                AddrCount    = 1
                                Server[0] => af=2, salen=16, [sub=0, flag=00000000] p=13568, addr=192.168.1.1

Здесь вы увидите IP-адрес 192.168.1.1. Это IP-адрес сервера, который имеет разрешение на очистку зоны (скорее всего, это может быть сервер, который больше не существует). Если это не IP-адрес сервера, на котором вы настроили очистку, нам нужно изменить его. Чтобы изменить сервер scavenging для зоны, выполните команду:

dnscmd /zoneresetscavengeservers contoso.com <Ip of the current DNS Server>

где <IP-адрес текущего DNS-сервера> — это IP-адрес DNS-сервера, на котором настроена очистка.

Дополнительная информация

Следующая команда сбрасывает все параметры сервера очистки и удаляет указанные вручную серверы.

dnscmd /zoneresetscavengeservers contoso.com (without ip address).

Примечание.

Максимальное время удаления устаревшей записи с помощью очистки— (без интервала обновления + интервал обновления + интервал цикла очистки).