我们正在尝试将一组选定服务器的 TTL 设置为一个较低的值(1 分钟)。这是比较容易的部分,并且已经手动完成。但是,我担心如果记录因某种原因变得陈旧/被清除,或者服务器更新它并将 TTL 重置回默认值,会发生什么,所以我想让这个更持久。我有几个问题...
SOA 下的最小默认 TTL 值在 Windows 中如何发挥作用?另一篇帖子,其中提到该值的规范行为已发生改变。这也适用于 Windows 吗?
我目前的最小默认 TTL 值设置为 10 分钟,但客户端注册的所有 A 记录的 TTL 都设置为 20 分钟。在 Windows 下,每个记录的 TTL 是如何设置的?客户端是否请求一个值,还是由 DNS 服务器确定?无论是哪种情况,它是如何更改的?
答案1
正如 Celada 所述,SOA 中的最小默认 TTL 似乎就是失败的 DNS 查询被缓存的时间。
每条记录的 20 分钟 TTL 与此无关,由客户端在动态更新其自身记录时设置(默认为 20 分钟)。
DefaultRegistrationTTL
可以通过设置名为( 的 DWORD 来更改默认值 20 分钟HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
(该值应以秒为单位。无需重新启动即可生效,但如果您希望立即更新新的 TTL,则需要ipconfig /registerdns
在更改后运行。
答案2
严格从基于 Windows 的 DNS 来说,SOA GUI 上显示的“最小默认 TTL”是所有在创建时未指定其自身 TTL 的记录的默认 TTL,绝大多数 Windows 机器记录都是这种情况。Bigbio2002 提到的注册表是在客户端设置的,很少有公司会费心去触碰它。
此参数很可能也用作负缓存的 TTL - 我尚未找到官方文档,但这是合乎逻辑的 - 负结果不能有自己的 TTL,它必须使用区域中的默认 TTL