如何在 Active Directory 中设置 DNS 老化和清理

Jacki

过时的记录不应属于您的 Active Directory DNS。手动检查每个区域中的 DNS 记录并删除旧的 DNS 记录不是您应该做的。相反,启用 DNS 老化和清理来自动为您完成此操作。在本文中,您将了解如何在 Active Directory 中设置 DNS 老化和清理。

DNS 老化和清理是 Microsoft 的一项功能,可识别并删除过时的 DNS 资源。

另请阅读:配置 DNS 清理以清理 AD 中过时的 DNS 记录

DNS 记录的年龄是服务器的最后时间戳与当前时间之间的差值。 DNS 清理使用此值来检查是否需要删除记录。识别出符合条件的陈旧资源记录后,它将继续从 DNS 服务器中删除它们。

笔记:默认情况下不启用 DNS 老化和清理功能。

如何配置 DNS 老化和清理

要在 Active Directory 中设置 DNS 老化和清理,请执行以下步骤:

重要的:仅在主 DNS 服务器上进行此项设置。不要在所有 DNS 服务器上都设置它。如果主 DNS 服务器离线,则必须在另一台 DNS 服务器上配置 DNS 老化和清理。

步骤 1. 启用高级视图

  1. 开始DNS管理器
  2. 单击菜单中的看法
  3. 启用先进的环境

高级设置将允许您访问在后续步骤中默认隐藏的多个项目。

步骤 2. 更新 DNS 记录

如果 DNS 记录具有静态地址,则不会通过 DNS 老化和清理将其删除。浏览 DNS 管理器中的记录,并根据需要将时间戳更新为静态。

重要的:过时的静态 DNS 记录将不是scavenge,并且只有过时的动态 DNS 记录才会自动清除。

  1. 单击
  2. 穿过DNS记录

在此示例中,EX01-2019 主机 (A) 记录显示为动态地址,一旦要清除,它将删除该记录。但我们不希望这样,我们必须将其更改为静止的

  1. 右键单击一个记录并选择特性
  1. 清除当该记录过时时删除该记录
  2. 点击好的

笔记:如果您没有看到“当该记录过时时删除该记录”复选框,则表示您没有启用先进的在上一步中设置。

  1. 刷新窗口并检查时间戳
  2. 验证记录是否更改为静态

在我们的示例中,一个记录EX01-2019 显示为静态。

现在您已经查看了所有记录并根据需要进行了编辑,一切都已为下一步做好准备。

步骤 3. 备份 DNS 记录

出于备份目的,最好将所有 DNS 记录导出到 CSV 文件。如果记录被删除并且您必须在 Windows DNS 中添加记录,您可以轻松地在 CSV 文件中查找该记录。

运行下面的 PowerShell 脚本将所有 DNS 服务器区域记录保存到 CSV 文件。

$Report = [System.Collections.Generic.List[Object]]::new()
$zones = Get-DnsServerZone
foreach ($zone in $zones) {
    $zoneInfo = Get-DnsServerResourceRecord -ZoneName $zone.ZoneName
    foreach ($info in $zoneInfo) {
        $timestamp = if ($info.Timestamp) { $info.Timestamp } else { "static" }
        $timetolive = $info.TimeToLive.TotalSeconds
        $recordData = switch ($info.RecordType) {
            'A' { $info.RecordData.IPv4Address }
            'CNAME' { $info.RecordData.HostnameAlias }
            'NS' { $info.RecordData.NameServer }
            'SOA' { "[$($info.RecordData.SerialNumber)] $($info.RecordData.PrimaryServer), $($info.RecordData.ResponsiblePerson)" }
            'SRV' { $info.RecordData.DomainName }
            'PTR' { $info.RecordData.PtrDomainName }
            'MX' { $info.RecordData.MailExchange }
            'AAAA' { $info.RecordData.IPv6Address }
            'TXT' { $info.RecordData.DescriptiveText }
            default { $null }
        }
        $ReportLine = [PSCustomObject]@{
            Name       = $zone.ZoneName
            Hostname   = $info.Hostname
            Type       = $info.RecordType
            Data       = $recordData
            Timestamp  = $timestamp
            TimeToLive = $timetolive
        }
        $Report.Add($ReportLine)
    }
}
$Report | Export-Csv "C:tempAllDNSZonesRecords.csv" -NoTypeInformation -Encoding utf8

步骤 4. 启用 DNS 老化

  1. 转到要启用 DNS 老化和清理的区域
  2. 右键单击
  3. 点击特性
  1. 在常规选项卡上,单击老化
  1. 使能够清除陈旧的资源记录
  2. 指定无刷新间隔
  3. 指定刷新间隔

笔记:要了解为两个间隔设置的时间,请检查您的 DHCP 租约并将其除以二。如果数量不均匀,请将无刷新间隔设置为低于刷新间隔。

例如,如果您的 DHCP 租约是 8 天,您希望将无刷新间隔和刷新间隔都设置为4天。如果您的 DHCP 租约是 7 天,您需要将 no-refresh 设置为3天和刷新间隔4天

  1. 好的两次

步骤 5. 启用 DNS 清理

  1. 右键单击DNS服务器
  2. 点击特性
  1. 前往先进的选项卡
  2. 选择复选框启用自动清除过时记录
  3. 保持开启状态7天
  4. 点击好的

就是这样!

结论

您学习了如何在 Active Directory 中配置 DNS 老化和清理。这是一项出色的 DNS 功能设置,因此它将清理 DNS 中旧的和未使用的记录。请记住,只有动态 IP 地址才会被删除(如果适用),而静态 IP 地址不会被删除。您必须手动执行此操作,或使用 Remove-DNSRecords PowerShell 脚本自动执行任务。

您喜欢这篇文章吗?您可能还喜欢更改 Windows Server 中 DNS 记录的 TTL。不要忘记关注我们并分享这篇文章。