摘要

  • 2019 年 3 月发布的最佳现行实践 RFC 8552 描述了域名下方的下划线分支:通用 DNS 记录类型不变,记录所在位置限定其在父域中的用途;最靠近 DNS 根的下划线标签属于全局范围。
  • IANA 登记表 对“记录类型+全局标签”这一对组合查重。专家审查检查定义是否清楚、组合是否唯一;更低层的标签由占用该全局分支的规范自行定义。
  • 同期的 RFC 8553 更新此前各自命名的规范,并让 SRV、URI 的命名模板接入统一登记;它保留既有软件与运行实践。表格说明谁取得了命名位置,权威 DNS 区和客户端查询才能说明某项服务实际如何使用它。

TXT 装得下数据,装不下全部语义

DNS 的基础规则不替域名的每一段文字指定含义,也不限制某种资源记录只能摆在一种名字下面。这份自由让新协议可以借用 TXT、SRV 或 URI,不必每提出一项功能就申请新记录类型。麻烦也由此而来:如果大家都把自己的数据塞在父域同一节点,客户端取得一组 TXT 后,还得从不相干的内容里猜出属于自己的指令。

RFC 8552 用位置解决混杂。一个协议把记录放在父域下面的特定分支,例如 _name.example.org。这些数据仍针对 example.org,但查询那条分支就能取到该协议要解释的记录集。DNS 包并未换格式,记录类型也没有改名。变的是名字提供的上下文。

开头那个下划线还把属性位置与普通主机标签区分开来。RFC 8552 引用的主机命名规则不把这样的标签当作正常主机名。协议因而可以在父域下面放一层“关于这个域的属性”,不必假装那里又有一台叫作 name 的机器。它是在原有 DNS 树里划出解释范围,而不是发明第二套 DNS。

较早的一条路径是服务定位。RFC 2782 于 2000 年 2 月定义 SRV 记录的 _Service._Proto.Name 形式,用前缀避开自然出现的主机标签。DNS 服务发现规范 后来也沿用这一约定。这些规范告诉客户端如何找服务。2019 年的新问题是:越来越多互不相干的规范自己占用全局下划线位置,谁来防止同一个位置被重复赋予含义?

抢手的是最外层那格

一个分支可以有不止一个下划线标签。最靠近 DNS 根的那个是全局标签,下面的细分名字归其范围内的协议管理。全局标签是不同设计者都会碰到的入口。某个协议可以在自己的分支里安排许多小格子,却不能悄悄把与另一规范相同的“全局标签+记录类型”组合用于不相容的规则。

RFC 8552 因此设立 IANA 的 “全局范围下划线 DNS 节点名”登记表。表中列出 RR 类型、节点名、引用文件。防撞的键是一对:记录类型与全局下划线标签。两项服务可以使用相同记录类型,只要全局标签不同;同一标签配不同记录类型也可分开登记。登记防的是相同组合的第二份定义,不是禁止所有下划线,也不是收走每个协议内部的所有子标签。

新条目走专家审查。审查者看材料是否足够清楚、这个组合是否已经被占。RFC 明确把协议整体技术质量的判断留在这项审查之外。抢到一个干净的位置,不能证明服务设计优秀,也不能证明域名运营者已经在权威区里发布了相应数据。它只让不同作者在共同入口处别撞车。

从今天的 IANA DNS 参数表,读者可以顺着全局标签找到引用规范。想知道其下层标签怎么排,要继续读那份规范;想知道某个具体域名有没有发布记录,要查其权威 DNS。登记、规范、实际区文件分别回答不同的问题。拿一张登记截图去替代实时查询,会把故障排查带错楼层。

先有住户,后有门牌管理员

下划线分支早于统一登记。早期 RFC 允许各自的协议定义标签,当时没有单一表格供作者查重。2019 年与 RFC 8552 同时发布的 RFC 8553 整理了这批旧文档,让读者知道新增的统一登记在哪里,并修正 SRV 与 URI 的命名模板,使后来全局标签的分配回到同一流程。

这次修订刻意不拆现有系统。RFC 8553 明说保留已经运行的软件和运营实践。没有因一张新表出现就要求所有权威区改名,也没有改掉 DNS 数据包的结构。变化发生在未来的命名申领和旧规范与新登记之间的衔接。这是把管理手续接到已有技术习惯上,而非拿手续重置网络。

这里也能看出与既有 SRV 历史报道的边界。SRV 讲的是客户端怎样知道服务在哪台服务器,怎样选端口和目标;RFC 8552/8553 讲的是多套协议共用 DNS 树时,谁可以给最外层的属性标签赋义。前者解决“去哪儿”,后者解决“这格到底是谁的”。同一个小小的下划线出现在两段历史中,担保的事情却不同。

IANA 的管理也停在必要边界。全局标签以下如何细分,由对应协议的规范负责;域名运营者决定是否发布记录;客户端决定怎样解释有效答案。登记只协调最容易产生跨协议冲突的那一对组合。划得够窄,才能让每个参与者拿出适合自己那一段的证据。

官方原始文件证明命名惯例、防撞键和旧规范的更新。若要说某一项具名服务确实采用了它,还缺带日期的权威区快照以及客户端对正确名称和记录类型发出的查询。登记表给出规则的地址,区数据与客户端行为才给出现场答案。