需要帮助了解 Windows DNS、DHCP 和动态 PTR

需要帮助了解 Windows DNS、DHCP 和动态 PTR

我接手了一组运行 AD 支持的 DNS 的 AD 服务器的管理。其中一台运行 DHCP。

对于由此 Windows DHCP 服务器提供服务的 IP 范围,in-addr.arpa 区域由 AD DNS 服务器权威地提供服务,以允许 AD 自身正常运行并允许动态 DNS 正常工作。

对于每个 in-addr.arpa 区域,我还从运行 BIND9 的 unix/linux 名称服务器中提取辅助数据。

我开始频繁在 *nix 服务器的日志中看到类似这样的错误:

Jun  8 13:40:07 ns1 named[6083]: general: warning: '3.37.19.172.in-addr.arpa/PTR/IN': TTL differs in rdataset, adjusting 900 -> 1200

我从技术、DNS角度了解这里发生了什么。3.37.19.172.in-addr.arpa 有 >1 条记录,它们具有不同的 TTL。BIND 正在规范化 TTL 并通知我。我已通过抓取区域的手动 AXFR 确认情况确实如此:

ns1 0 /home/jj33 ># xfer 37.19.172.in-addr.arpa ad-dns | grep '^3\.'                  <
3.37.19.172.in-addr.arpa.       900     IN      PTR     0509-l3-tmbxt.example.ad.
3.37.19.172.in-addr.arpa.       1200    IN      PTR     0402-3p2jf41.example.ad.

查看 Windows DNS 和 DHCP 工具时,根据租用时间来看,0402-3p2jf41.example.ad 很可能已经归还了其租用,或者已经消失并且再也没有回来,从而导致租用过期。0509-l3-tmbxt.example.ad 出现了,获取了 IP,并将其名称插入 3.37.19.172.in-addr.arpa 记录中。

因此,解释完毕后,我有几个问题:

  • 在 DDNS 过程中,谁真正定义反向记录的 TTL?DNS 服务器、DHCP 服务器还是 DHCP 客户端?
  • 为什么不删除过时的 in-addr.arpa 记录?提交新的 DDNS 名称时,DNS 服务器是否应该知道删除现有的 DDNS 名称?
  • 为什么会突然发生这种情况?该系统已经运行多年,以前只发生过几次,并且始终使用同一个 IP 地址。在过去几天里,这种情况已发生多次,并且使用多个 IP。
  • 清理会有帮助吗?我们目前没有启用它。虽然我会研究它的优点,但我不确定它在这种情况下是否有用,因为默认设置似乎是在清理前 7 天。
  • 这种情况是否需要采取行动,或者如果我忽略它,“某事”最终会清除陈旧的记录(我真的非常不想等待神圣的干预,但我们以前没有遇到过这种情况似乎很奇怪)。

除了问题之外,有人可以分享与此问题相关的来之不易的经验吗?谢谢。


更新 1:似乎在每个 RR 级别上,清理功能实际上已打开。它在 DNS 服务器级别打开,在区域级别关闭,现在我打开了高级视图,我可以看到它也为动态插入的记录打开了。因此,这不是清理功能不起作用的问题,而是 7 天滞后加上(显然是新的?)TTL 差异的问题。

更新 2:DHCP 范围还选中了“删除租约时丢弃 A 和 PTR 记录”。这感觉像是 DHCP 服务器的故障,因为原始 PTR 的租约已从 DHCP 服务器上消失……

感谢您到目前为止的回答。我正在消化它们并收集信息,看看我看到的噪音是很多记录每条生成几个日志还是几条记录每条生成很多日志。此外,审核我的 PTR 以查看这种双重记录是否很常见,但我只注意到它,因为 TTL 已经开始不匹配。我倾向于认为这不是清理将解决的问题,但我仍然想了解不同的 TTL 来自何处

答案1

以下是 Microsoft 的一篇文章,介绍了其 DHCP 服务器的动态 DNS 过程:http://technet.microsoft.com/en-us/library/cc787034(WS.10).aspx

W2K 及以上版本的常规行为是客户端请求 DHCP 服务器代表客户端注册 PTR 记录,然后客户端自己注册 A 记录。DHCP 服务器必须注册 A 记录和 PTR 记录(包括无法自行进行 DDNS 注册的 Windows 2000 之前的客户端)。

有一个可选设置,可以让 DHCP 服务器在租约被丢弃时删除 A 和 PTR 记录。但是,如果租约尚未超时,则不会删除这些记录。

您绝对应该老化和清理您的 DDNS 区域。如果您老化和清理,这最终会“清除”。如果您不这样做,就不会清除。

这篇 Microsoft 支持文章解释了如何设置 DHCP 服务器注册的 DNS 资源记录的 TTL 值(最初在修补程序中,现在已内置到操作系统中):http://support.microsoft.com/kb/322989

要更改 DNS 注册中客户端计算机的行为,请查看组策略中的DNS 客户端下的节点网络的子节点管理模板节点计算机配置。在那里,您会发现您可以强制客户端注册其 PTR 记录,而不是由 DHCP 服务器完成(如果您愿意的话),并且您可以在客户端注册的记录上设置 TTL。


我不确定为什么会突然发生这种情况。某些配置必须更改,但我不知道该在哪里更改。开始与您的同事讨论他们可能在 DHCP 服务器配置或客户端动态 DNS 行为的组策略设置中所做的任何更改。

我不能说我见过多个客户端注册相同 PTR 记录的行为。这很奇怪。我必须听从其他人的意见。我会说我的所有反向区域始终集成 AD 并需要安全更新,但我不知道这会对此产生影响。

根据我的经验,只要打开老化和清理功能,就可以大大改善陈旧记录的清除效果。默认的 7 天间隔对我来说效果很好。

答案2

清理此问题的一种快速而肮脏的方法(当您通过实施清理来正确执行此操作时)是删除 Windows 反向区域中的所有记录。 DNS 服务器将在每次客户端下次联系时自动为您正确重新创建它们。

这不是一个建议作为一般做法去做的事情,如果你经常做这种事,你需要修改你管理 DNS 的方式,但它对于清理混乱的反向区域是有好处的(对我有用)。

如果您对这种方法持谨慎态度(我建议您应该这样做),请尝试删除一两个并观察情况如何。

相关内容