域名切换与 TTL 准备是什么
域名切换通过修改解析记录把流量引向新入口,动作本身只有一步,难点在生效时间:解析记录改动后要等各级递归缓存过期才全量生效,所以切换前要先下调 TTL。回滚同样受 TTL 约束,窗口规划里必须把两次缓存等待都算进去。切换后要用多个公共 DNS 抽查,确认各地解析指向一致。
基本信息
| TTL 准备 | 提前 24-48 小时下调(如 300 秒或更低) |
|---|---|
| 切换动作 | 修改解析指向新入口,等待生效并抽查各地解析 |
| 验证 | 多地解析抽查 + 业务域名连通性检查 |
| 回滚约束 | 回滚同样要等 TTL 过期,窗口里要预留 |
| 收尾 | 确认流量归零后把 TTL 调回合理值 |
典型使用场景
- 应用迁移到新集群,用解析切换减少停机时间
- 灰度发布:先切部分线路或部分地域的流量
- 故障时快速把域名指向备用站点
- 下线旧入口前确认没有流量残留
- 更换 CDN 或负载均衡入口时的平滑过渡
切换前后的解析核对
切换前后的解析核对
dig +short app.example.com @8.8.8.8 # 公共 DNS 抽查
dig +short app.example.com @223.5.5.5
dig app.example.com @8.8.8.8 | grep -E '^app|Query time' # 观察 TTL 与耗时
# 切换前记录各地基线,切换后按同一组 DNS 复测并记录生效时间阶段与判定
| 阶段 | 动作 | 判定标准 |
|---|---|---|
| 准备 | 把 TTL 下调到 300 秒或更低 | 原 TTL 周期已过,改动才会真正生效 |
| 切换 | 修改记录指向新入口 | 新旧地址按计划过渡,无解析错误 |
| 观察 | 多公共 DNS 抽查 | 各地解析一致,旧地址流量逐步归零 |
| 回滚 | 改回原记录 | 回滚同样要等 TTL 过期,需提前预留时间 |
| 收尾 | TTL 调回常态值 | 旧入口流量归零且确认无长尾连接 |
TTL 下调后要留足生效时间:旧的较长 TTL 会继续存在于各级缓存,改动后应至少等待一个原 TTL 周期再执行切换。
只查本地解析容易误判:运营商缓存与海外递归服务器生效时间不同,抽查要覆盖多地并记录生效时间点。