权威服务器、解析器和客户端之间的记录 DNS TTL 不同

权威服务器、解析器和客户端之间的记录 DNS TTL 不同

这是我的情况:

  • 我有一个办公室,通过 VPN 隧道连接到 AWS 以访问一些 EC2 实例。
  • 办公室计算机通过 VPN 隧道使用 AWS Route 53 来解析私有托管区域。
  • 私有托管区域包含位于办公室的资产的 A 记录。打印机、应用程序服务器等。
  • 办公室工作站配置为使用 AWS DNS 服务器的内部地址(在具有 EC2 实例的子网中)。

一切都解决得很好。

现在,为了应对 VPN 隧道中断以及 AWS DNS 服务器的可达性中断,我将内部资产的 DNS 记录配置为 TTL 为 432,000 秒,即 5 天。基本上,这给了我 5 天的时间重新建立 VPN 隧道,否则办公室工作站将无法按名称解析内部资产。

但是,我注意到了以下行为,并想知道这对于解析器和(Windows 10)客户端来说是否“正常”?

  • 查询权威服务器显示 TTL 为 432,000
  • 查询解析器显示 TTL 为 86,400
  • 查询客户端(例如ipconfig /displaydns)也显示 86,400(减少,这是正常行为)。

我尝试更改 TTL,看来 Windows 客户端会尊重任何小于或等于 86,400 的 TTL 值。

为什么权威服务器级别的记录 TTL 为 432,000 不会传播到解析器,进而传播到客户端?我是否误解了 TTL 工作原理的一些基本原理?

先谢谢了!

答案1

好的,在为问题添加更多背景的过程中,我最终解决了这个问题。

对于那些偶然发现此问题的人来说,对于 Windows 客户端,为了增加默认 TTL 86,400 秒(1 天),只需MaxCacheTtl在以下键下创建一个名为的 DWORD 注册表项:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNSCache\参数

然后,输入您希望客户端缓存并重新启动的最大 TTL 值(十进制)。根据 @EsaJokinen 的评论,如果您愿意,您可以将其设置为 2147483647。

相关内容