这是我的情况:
- 我有一个办公室,通过 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。