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