首页/网络/协议速查/DNAME 记录(子树重定向)
DNS 与域名解析60 条

DNAME 记录(子树重定向)

把整个子域的查询重定向到另一棵树:与 CNAME(单名)不同,DNAME 作用于「该节点以下的所有名字」。

协议速查网络更新于 2026-10-13

DNAME 是什么

DNAME(TYPE 39)做子树重定向:把「该节点之下的所有名字」整体映射到另一棵树下(RFC 6672)。查询 a.old.example.com 时,权威会合成 CNAME 指向 a.new.example.net。它比逐条 CNAME 更适合整域迁移,但节点自身(old.example.com 本身)并不受影响。

基本信息

类型DNAME(TYPE 39)
作用整棵子树的重命名与迁移
规范RFC 6672
行为对子孙名字合成 CNAME 指向目标树
作用边界不影响 owner 名字自身
典型用途品牌或域名迁移、多子域批量改向

典型使用场景

  • 品牌或域名迁移:整棵子树换到新域名
  • 大规模子域重构:避免逐条维护大量 CNAME
  • 排障:理解解析结果里为何出现意料之外的 CNAME
  • DNSSEC 场景:确认签名范围与合成行为的影响
  • 迁移规划:评估哪些名字需要额外补 CNAME
  • 教学演示:对比 DNAME 与 CNAME 的作用范围差异

配置与验证

配置与验证
# 配置示例(BIND 风格区域文件)
old.example.com.  IN DNAME new.example.net.
# 查询 a.old.example.com 会得到合成的 CNAME a.new.example.net
dig +noall +answer a.old.example.com A

# 节点自身不受 DNAME 影响,需要单独配置
# old.example.com.  IN CNAME new.example.net.

DNAME 与相关记录

记录作用范围典型用途
CNAME单个名字单条别名
DNAME该节点下的整棵子树整域迁移
NS把子区委托给其他权威子区托管
HTTPS 与 SVCB单个服务名端点声明
DNAME 不作用于 owner 名字本身:若还希望 old.example.com 也指向新域名,需要额外加一条 CNAME。
与 DNSSEC 配合时要注意签名对象与合成结果的验证路径,迁移前应在测试区验证。
合成的 CNAME 由权威动态生成,不占用额外记录空间,因此比逐条 CNAME 更易维护。
解析器对重定向链有长度限制,DNAME 与 CNAME 叠加层数过多会导致解析失败。
DNAME 只在配置它的权威侧生效;若新域名也需要反向映射,需要另一条 DNAME 或逐条配置。
查询 DNAME 节点本身时,返回的是 DNAME 记录而不是合成结果,客户端需要按规范自行完成子树映射。
迁移结束后若旧域名仍要保留可用性,DNAME 更适合长期保留;反之则应规划下线时间点,避免留下无人维护的重定向。

易错点

  • 期望 DNAME 同时覆盖节点自身,结果旧域名的根名字解析失败:需额外配 CNAME
  • 链式 DNAME 与 CNAME 过长会超出解析器的处理深度,出现解析失败
  • 迁移期两层重定向叠加不当,会让部分解析器拿到环状引用
  • 在 DNSSEC 区域改 DNAME 目标后忘记重签,验证会失败
  • 把 DNAME 当批量别名使用却不检查目标树下是否有同名记录,会得到 NXDOMAIN

数据来源与参考

  • RFC 6672 DNAME

相关工具

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