TTL 改成 60 秒,为什么还不生效
准备切 IP,提前把 DNS 的 TTL 从 3600 改成 60,结果切完一半用户还在访问旧地址,持续了快一小时。
原因:改 TTL 这个动作本身也要等旧 TTL 过期才传播。记录在递归缓存里还带着 3600 秒的过期时间,你改成 60 的那一刻,它们不会更新。
正确顺序是提前一天把 TTL 降到 60,等旧缓存过期(最多 3600 秒),再切换。切换完成后可以把 TTL 调回 3600,减少解析压力。
另外注意 dig 默认查的是递归缓存,+trace 或者直接问权威服务器才能看到真实记录。排查时用 dig @8.8.8.8 和 dig @<权威NS> 对比,能立刻发现是缓存还是配置。