DNS TTL 在链式 CNAME 配置中如何工作?

DNS TTL 在链式 CNAME 配置中如何工作?

我的 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

记录TTLCNAME工作方式与其他记录没有任何不同。

让我们想象一个递归解析器,上面的例子就是这样。然后它用以下内容填充缓存:

  • 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 查询来获取该数据并将其缓存。

相关内容