如何在 Active Directory 中设置 DNS 老化和清理
过时的记录不应属于您的 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. 启用高级视图
- 开始DNS管理器
- 单击菜单中的看法
- 启用先进的环境
高级设置将允许您访问在后续步骤中默认隐藏的多个项目。
步骤 2. 更新 DNS 记录
如果 DNS 记录具有静态地址,则不会通过 DNS 老化和清理将其删除。浏览 DNS 管理器中的记录,并根据需要将时间戳更新为静态。
重要的:过时的静态 DNS 记录将不是scavenge,并且只有过时的动态 DNS 记录才会自动清除。
- 单击区
- 穿过DNS记录
在此示例中,EX01-2019 主机 (A) 记录显示为动态地址,一旦要清除,它将删除该记录。但我们不希望这样,我们必须将其更改为静止的。
- 右键单击一个记录并选择特性。
- 清除当该记录过时时删除该记录
- 点击好的
笔记:如果您没有看到“当该记录过时时删除该记录”复选框,则表示您没有启用先进的在上一步中设置。
- 刷新窗口并检查时间戳
- 验证记录是否更改为静态
在我们的示例中,一个记录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 老化
- 转到要启用 DNS 老化和清理的区域
- 右键单击区
- 点击特性
- 在常规选项卡上,单击老化
- 使能够清除陈旧的资源记录
- 指定无刷新间隔
- 指定刷新间隔
笔记:要了解为两个间隔设置的时间,请检查您的 DHCP 租约并将其除以二。如果数量不均匀,请将无刷新间隔设置为低于刷新间隔。
例如,如果您的 DHCP 租约是 8 天,您希望将无刷新间隔和刷新间隔都设置为4天。如果您的 DHCP 租约是 7 天,您需要将 no-refresh 设置为3天和刷新间隔4天。
- 按好的两次
步骤 5. 启用 DNS 清理
- 右键单击DNS服务器
- 点击特性
- 前往先进的选项卡
- 选择复选框启用自动清除过时记录
- 保持开启状态7天
- 点击好的
就是这样!
结论
您学习了如何在 Active Directory 中配置 DNS 老化和清理。这是一项出色的 DNS 功能设置,因此它将清理 DNS 中旧的和未使用的记录。请记住,只有动态 IP 地址才会被删除(如果适用),而静态 IP 地址不会被删除。您必须手动执行此操作,或使用 Remove-DNSRecords PowerShell 脚本自动执行任务。
您喜欢这篇文章吗?您可能还喜欢更改 Windows Server 中 DNS 记录的 TTL。不要忘记关注我们并分享这篇文章。
