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