DNS:清理:如果使用 DNSCMD 手动禁用记录,则不会删除记录

本文提供了一个解决方案,用于解决在 Windows DNS Server 上启用 Scaveng 以删除区域中的某些旧记录和过时记录的问题。

原始 KB 数: 2791165

现象

你可能会发现自己在 Windows DNS Server 上启用 Scaveng 以消除区域中的一些旧记录和过时记录。

配置适合环境的清理周期和老化(无刷新和刷新间隔),并等待清理周期删除记录。

你注意到,清理周期运行,但不删除带有旧时间戳的记录。
你决定等待另一个清理周期运行,但仍不会删除记录。

原因

你可能会遇到这种情况: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 地址(如果不是你配置 Scaveng 的服务器 IP 地址,则需要更改该地址。 若要更改区域的 Scavenging 服务器,请运行以下命令:

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

其中 <,当前 DNS 服务器的 IP 是配置 Scavenging 的 DNS 服务器的> IP 地址。

详细信息

以下命令重置所有清理服务器设置,并删除手动指定的服务器。

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

注意

通过清理删除过时记录的最长时间是(无刷新间隔 + 刷新间隔 + 清理周期间隔)。