当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] DNS 清理 - 您需要了解的一切

作者:精品下载站 日期:2024-12-14 18:55:15 浏览:14 分类:玩电脑

DNS 清理 - 您需要了解的一切


当您的环境中有大量笔记本电脑或其他移动设备来来去去时,陈旧的 DNS 记录必然会发生。过时的 DNS 记录可能会导致名称解析出现问题,因此清理旧的 DNS 记录非常重要,我们可以使用 DNS Scavenging 自动执行此操作。

过时的 DNS 记录是仍指向设备旧 IP 地址的 DNS 记录。例如,当您想要接管设备或在其上部署软件时,这可能会导致问题。要自动清理旧的 DNS 记录,我们需要正确配置 DNS 老化和清理。

在本文中,我们将准备 DNS 记录并配置 DNS 老化和清理。

DNS 清理如何工作?

在正确配置 DNS Scavenging 之前,我们需要了解它的工作原理。清理会从 DNS 服务器中删除陈旧(旧)的 DNS 记录,但它如何知道哪些记录是旧的?这就是 DNS 老化的用武之地。DNS 老化决定了 DNS 记录何时被标记为旧(过时)。

但要正确配置 DNS 老化,我们需要知道我们的 DHCP 租用时间。常见的 DHCP 租用时间为 8 天。这意味着客户端将获得分配 8 天的 IP 地址。 4天后才能续租。这意味着客户端至少 4 天内不会更新 IP 地址。

[玩转系统] DNS 清理 - 您需要了解的一切

DNS 老化

给定了租约时间,我们来看看 DNS Aging。老化是一项识别过时 DNS 记录的功能。它使用 DNS 记录时间戳来计算记录年龄,并使用两个时间间隔来确定记录是否过时:

  • 非刷新间隔 - DNS 记录无法刷新的时间段。

  • 刷新间隔 - 可以刷新记录的时间段。

当我们谈论刷新记录时,我们并不是指更改 DNS 名称或 IP 地址,而是刷新记录时间戳。在非刷新间隔期间时间戳无法更新。这会减少网络上的复制流量,因为 Windows 客户端将尝试每 24 小时更新一次时间戳。

鉴于 DHCP 记录在租用时间的前 50% 期间(在我们的示例中为 4 天)不会更新,我们可以将非刷新间隔设置为 4 天。例如,如果您的 DHCP 租用时间为 7 天,则将非刷新间隔设置为 3 天。

在 DHCP 租用时间的续订期间,我们还可以希望允许刷新 DNS 记录时间戳,因此刷新间隔应与 DHCP 租用时间的剩余天数相匹配:

[玩转系统] DNS 清理 - 您需要了解的一切

如果记录在 8 天后仍未刷新,则该记录将被标记为过时。这表明该记录可以被删除。但如果记录在第 5 天刷新,则新的 8 天周期将再次开始,从非刷新间隔开始。

记录甚至可以在陈旧期间被刷新。如果记录在过时期间尚未被清理服务删除,则仍然可以续订。

[玩转系统] DNS 清理 - 您需要了解的一切

DNS 清理

DNS Scavenging 用于实际清理过时的 DNS 记录。清理是为整个 DNS 服务器配置的,但也需要为每个 DNS 区域启用。清理间隔与非刷新间隔和刷新间隔无关。

这意味着,如果您将清理周期设置为 7 天,那么清理服务将每 7 天运行一次。它不会在 7 天后删除陈旧记录。要了解下一个清理周期何时运行,我们可以使用 PowerShell cmdlet Get-DnsServerScavenging

Get-DnsServerScavenging

# Result
NoRefreshInterval  : 7.00:00:00
RefreshInterval    : 7.00:00:00
ScavengingInterval : 7.00:00:00
ScavengingState    : True
LastScavengeTime   : 4/11/2023 4:27:43 AM

# Or let PowerShell calculate the next day:
$scavange = Get-DnsServerScavenging
(Get-Date($scavange.LastScavengeTime)).AddDays($scavange.ScavengingInterval.days)

# Result
Tuesday, April 18, 2023 4:27:43 AM

从结果中我们可以看到,间隔设置为7天,最后一次清除时间为4月11日。所以4月18日,它将再次运行。

在下面的示例中,我将清理间隔设置为 4 天。我们在这里可以看到,陈旧记录在第 11 天被删除,而不是在 8 天之后(非刷新间隔 + 刷新间隔)。

[玩转系统] DNS 清理 - 您需要了解的一切

第 1 步 - 准备 DNS 记录

在我们的服务器上启用 DNS 老化和清理之前,我们首先需要准备 DNS 记录。因为老化和清理是根据DNS记录的时间戳来完成的。尤其是在较旧的环境中,您有时会看到应该是静态的但具有时间戳的 DNS 记录。

如果这些记录被清理服务删除,则可能无法访问应用程序或服务器。除了检查静态记录外,我们还应该备份/导出 DNS 记录。这样您就可以随时查找旧记录,以防它们被意外删除。

  1. 打开DNS管理器

  2. 导航到您的 DNS 区域

  3. 查找任何应该是静态的但具有时间戳的记录,例如服务器或应用程序

[玩转系统] DNS 清理 - 您需要了解的一切

  1. 右键单击该记录并选择属性

  2. 删除复选框“当该记录过时时删除该记录”

建议

如果您没有看到选项“当记录过时时删除该记录”,那么您需要在 DNS 管理器中启用高级视图点击查看 > 高级

[玩转系统] DNS 清理 - 您需要了解的一切

导出 DNS 记录

接下来,我们要将 DNS 记录导出到 CSV 文件。 DNS管理器中有一个导出功能,但是将记录导出到TXT文件中,该文件更难以阅读。因此,我们将使用 PowerShell 将 DNS 区域导出到 CSV 文件:

Get-DnsServerResourceRecord -ZoneName 'a-d.site' | ForEach {
    [pscustomobject]@{
        HostName   = $_.hostname
        TimeStamp  = $_.timestamp
        RecordType = $_.recordtype
        RecordData = $_.RecordData.IPv4Address.IPAddressToString}
} | Export-Csv "c:\DNSRecords.csv" -NoTypeInformation

如果您有多个 DNS 区域,那么您需要为每个区域运行此命令。

第 2 步 - 启用每个区域的 DNS 老化

检查 DNS 记录后,我们可以配置 DNS 老化。我们需要对每个 DNS 区域执行此操作。在大多数环境中,您只有一个需要此操作的区域,即正向查找区域下的主域名名称。

  1. 右键单击您的 DNS 区域并选择属性

  2. 在常规选项卡上,单击老化

[玩转系统] DNS 清理 - 您需要了解的一切

我们现在可以配置无刷新间隔和刷新间隔。我的 DHCP 租用时间为 8 天,因此将两个间隔都配置为 4 天。如果 DHCP 租约时间为奇数,请确保刷新间隔大于无刷新间隔。例如,如果 DHCP 租用时间为 7 天,则将“无刷新”设置为 3,将“刷新”设置为 4。

笔记

无刷新间隔 + 刷新间隔应等于或小于您的 DHCP 租用时间。其中无刷新间隔等于或小于刷新间隔。
  1. 启用清除陈旧资源记录

  2. 设置无刷新间隔刷新间隔

[玩转系统] DNS 清理 - 您需要了解的一切

第 3 步 - 启用 DNS 清理

为 DNS 区域配置老化后,我们现在可以在服务器上启用 DNS Scavenging。保持清理周期低于 DHCP 租用时间。您甚至可以将其设置为 1 天,但这可能会导致大量复制流量,具体取决于您的环境。

  1. 右键单击您的 DNS 服务器,然后选择属性

  2. 打开高级选项卡

  3. 启用过时记录的自动清理

  4. 例如将清理周期设置为3天

[玩转系统] DNS 清理 - 您需要了解的一切

总结

保持 DNS 记录清理有助于防止网络中的名称解析错误。确保在启用 DNS 老化和清理之前彻底检查 DNS 记录,否则可能会遇到问题。

我希望这篇文章对您有所帮助,如果您有任何疑问,请在下面发表评论。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯