dig +short old-api.example.com dig +short old-api.example.com @223.5.5.5 dig old-api.example.com | grep -E 'Query time|SERVER'
机房迁移把 A 记录从 10.20.1.8 改成 10.30.2.9,权威解析立即生效,办公网内有 30 多台机器访问还是打到旧地址,报 connection timed out。dig 公网解析是新 IP,本机 dig 还是旧的。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。
追下去是这么回事:TTL 之前设的是 86400,递归服务器会一直缓存到过期。办公网还有一层本地 DNS 转发,缓存时间不受权威端控制。
围绕「机房切换 DNS 缓存」排查时,命令行跑一遍比在面板里点十次有用,面板会替你做掉不少隐式操作。权限不要一口气开到最大,先加到够用再往上试,范围小才好收。
把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。
处理上按这个顺序:迁移前一周把 TTL 降到 300 并等旧记录自然过期;切换后逐个递归服务器 dig 确认缓存已刷新;对内部 DNS 转发器执行缓存清理 或者临时改 hosts 应急;把客户端连接超时和重试调短 避免卡在旧地址上。
确认没问题再收工,办公网内 dig 返回新 IP,业务侧连接超时告警清零,切换窗口里不再出现失败请求。
