CNAME 展平是什么
按 DNS 规范,区域顶点(如 example.com 本身)必须存在 SOA 与 NS 记录,因此不能写成标准的 CNAME。但把裸域接到 CDN 之类的目标上又很常见,于是托管商提供了「展平」能力:对外仍然返回 A 或 AAAA 记录,内部去解析你填写的目标别名,并在目标地址变化时自动跟进。不同厂商叫法不同,如展平、ALIAS、ANAME。
基本信息
| 要解决的问题 | 顶点必须存在 SOA 与 NS,不能直接写 CNAME |
|---|---|
| 常见叫法 | 展平、ALIAS、ANAME,取决于厂商 |
| 对外表现 | 返回目标解析之后的地址记录 |
| 目标变更跟进 | 由托管商按自身策略动态解析 |
| 自建权威 | 一般不支持该特性 |
配置与验证思路
配置与验证思路
dig +short example.com A # 展平后对外应是地址记录,而非 CNAME
dig +short example.com CNAME # 正常情况下应为空
dig example.com SOA +short # 顶点仍应保有 SOA
dig example.com NS +short # 与 NS 记录并存三种做法对照
| 做法 | 适用位置 | 代价 |
|---|---|---|
| 标准 CNAME | 子域名 | 简单直接,但不能用于顶点 |
| 展平与 ALIAS | 顶点 | 跟随目标变化有延迟,效果取决于厂商 |
| 固定地址记录 | 任意位置 | 目标地址变化时需人工更新 |
典型使用场景
- 裸域接 CDN:主域名本身也要走加速与防护
- 主域名统一入口:避免把访问引导到子域名
- 多环境切换:把顶点指向不同目标以实现切流
- 迁移演练:确认展平记录切换后解析与证书都仍然正确
- 排查解析异常:判断顶点返回的是展平结果还是被误配成了 CNAME
展平本质上是托管商在解析时动态求值,因此目标地址变化的跟进延迟取决于服务商与缓存时长;不同厂商在这条链路上的行为差异较大,切换服务商或调整 TTL 前应先在测试域名上验证,避免在正式流量上直接试。