首页/网络/网络排障速查/CDN CNAME 链排查
DNS 与解析排查46 条

CDN CNAME 链排查

接入 CDN 的域名通常 CNAME 到厂商域名再套多级调度:链上任何一跳异常都会表现为『解析到错误节点/超时』,逐跳验证是最稳的排查方式。

网络排障速查网络更新于 2026-10-13

CDN 的解析链路长什么样

接入 CDN 的域名通常不直接返回源站地址,而是先 CNAME 到厂商的调度域名,再由厂商的全局负载均衡按访问者的地域、运营商和节点健康度返回一台就近边缘节点的地址。链路上可能还有多级 CNAME,任何一跳异常或调度返回错误地域,现象都是「解析到不合适的节点」甚至超时。因此排查思路是逐跳验证整条链,而不是只看最终那个 A 记录。

基本信息

接入方式CNAME 接入最常见,NS 接入把整区交给厂商
链路特征多级 CNAME,TTL 通常很短(几十秒),便于快速调度
调度依据地域、运营商、节点负载与健康状态
影响调度的因素递归位置与 EDNS 客户端子网信息
排查工具dig 的 +short、+trace 与指定服务器查询

典型使用场景

  • 用户反馈访问到错误地域:确认调度结果与预期节点范围是否一致
  • 切换 CDN 厂商后仍解析到旧节点:核对 CNAME 链与本地缓存
  • 回源异常:先直连源站验证,再判断是回源配置还是边缘问题
  • 对比不同解析器结果:观察是否存在调度差异与解析污染
  • 验证证书与 SNI:确认回源域名与证书匹配

追踪 CNAME 链

追踪 CNAME 链
dig +short www.example.com CNAME        # 一级别名
dig +short www.example.com              # 完整链加最终 A 记录
dig +trace www.example.com | tail -30   # 看调度在哪一层发生变化
dig +short www.example.com @8.8.8.8     # 与本地结果对比,观察调度差异
dig +short www.example.com @223.5.5.5   # 换国内公共 DNS 再比一次
curl -sS -o /dev/null -w '%{remote_ip}\n' https://www.example.com/   # 实际连接到的节点

排查点与判据

排查点判据处置
CNAME 链是否完整末端能解析出 A 或 AAAA修正别名配置或等待 TTL 生效
调度地域是否正确返回节点归属与访问者地域一致核对调度策略与源站分组
节点是否健康连接成功率与首字节耗时正常向 CDN 厂商提工单并附证据
源站是否可用直连源站带 Host 头能正常响应修源站,而不是继续查 DNS
本地缓存是否陈旧清缓存后结果变化核对 TTL 与终端缓存策略
CDN 常见排查点:源站回源是否正常(用 curl 指定 Host 直连源站)、调度是否给到了错误地域、边缘节点本机缓存是否命中;用不同网段的递归服务器查询可以观察调度变化。
CDN 的 TTL 通常很短,切换后仍访问到旧节点,多半是本地或运营商递归的缓存未过期,也可能是长连接与连接池仍指向旧地址。

易错点

  • 本地解析出就近节点就假设全球一致:不同运营商与地区的调度结果本就不同
  • 排查回源问题只盯 DNS,忘记直连源站验证,导致方向跑偏
  • 忽略应用侧 DNS 缓存:JVM 与部分运行时默认缓存解析结果,改 DNS 后不重启不生效
  • 把 TTL 改长以图省事:调度失效期间无法摘除故障节点,故障影响时间成倍增加

数据来源与参考

  • CDN 架构实践(CNAME 接入模型)
  • RFC 7871(ECS 调度)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌