TTL

TTL 表示解析器可以缓存某条记录的最长时间;但它不等于「所有缓存同时过期、所有解析器同时重查、应用绝不额外缓存」。

#type / concept #status / growing #tech / network #protocol / dns

[!info] related notes

TTL

一句话定义

TTL(Time To Live,生存时间) 表示解析器可以缓存某条 DNS 记录多长时间;到期后解析器应重新查询。

核心机制 / 工作原理

anyrouter.top.  300  IN  A  155.102.x.x

300 即 300 秒(5 分钟)。理论上允许缓存 300 秒。

TTL 由权威服务器在记录上设置,沿缓存链传递。较短 TTL 利于快速变更生效(但增加查询量),较长 TTL 减少负载(但变更生效慢)。

最小例子 / 最小场景

把记录 TTL 从 3600 临时调到 60 再改 IP,可以让大部分客户端在 1 分钟内拿到新地址——这是「变更前先降 TTL」的常见运维手法。

边界与易混淆点

TTL 不保证以下任何一条:

  • 所有缓存会同时过期(各层进入缓存的时刻不同)
  • 所有解析器在 TTL 到期同一时刻重查
  • 应用程序绝不额外缓存(浏览器/应用可能无视或延长)
  • TTL 到期后一定立即删除(Serve Stale 允许保留,见 dns-serve-stale
  • 负结果也受 TTL 约束:NXDOMAIN/NODATA 的缓存时长由 SOA 的 NXDOMAIN TTL / minimum 字段控制(见 dns-negative-failure-caching

所以「TTL 到期 ≠ 世界上所有缓存立刻不再使用该答案」。

创建于 2026/7/31 更新于 2026/7/31