我的 DNS 配置如下所示:
www.example.com 600 IN CNAME prod.myzone.l2.company.example
prod.myzone.l2.company.example 600 IN CNAME ssl-endpoint-12345.hostcorp.example
ssl-endpoint-12345.hostcorp.example 60 IN A 192.0.2.4
因此,链中的前两个 CNAME 记录的 TTL 为 10 分钟,最后一个 A 记录的 TTL 为 1 分钟
CNAMEprod.myzone.l2.company.example
在多个端点之间进行区域负载平衡,如果我的 DNS 提供商确定当前端点不健康,则会自动更新。因此,我希望prod.myzone.l2.company.example
尽快将更改传播到 CNAME。
如果我想减少客户端在prod.myzone.l2.company.example
发生变化时看到的整体 TTL,是否仅减少记录的 TTL 就足够了prod.myzone.l2.company.example
,还是我也需要减少记录上的 TTL www.example.com
?
答案1
记录TTL
的CNAME
工作方式与其他记录没有任何不同。
让我们想象一个递归解析器,上面的例子就是这样。然后它用以下内容填充缓存:
www.example.com CNAME
有效期 600 秒prod.myzone.l2.company.example CNAME
有效期 600 秒ssl-endpoint-12345.hostcorp.example A
有效期 60 秒
如果有人稍后ssl-endpoint-12345.hostcorp.example A
直接查询,则适用 60 秒 TTL。
但是如果查询来自www.example.com
,那么解析器将看到它没有记录A
,但是有 CNAME,然后重用以上所有内容。
上述操作之后的 66 秒(例如)www.example.com
仍然在解析器缓存中,但ssl-endpoint-12345.hostcorp.example A
不再存在,因此解析器必须执行新的 DNS 查询来获取该数据并将其缓存。