摘要

  • RFC 9907 是 2026 年 3 月发布的 BCP 216,废止 RFC 8407,并更新 RFC 8126;它为包含 YANG 数据模型的规范(包括 IANA 维护的模块)提供作者和审阅者指南。
  • 关键点不是让工具接受一段语法,而是让文档说明模块的边界、命名、版本归属、数据存储语义、示例范围、安全影响及注册表权威。
  • YANG 数据模型是描述管理数据、状态和操作的抽象;模块是承载并实现该模型的一个具体代码组件。二者不能在审阅中混为一谈。

一个模块可以通过 YANG 1.1 的语法检查,却仍然留下实际操作的分歧。例如,文档若没有解释配置数据与操作状态怎样对应 NMDA 数据存储,读者可能无法判断某个节点应在预期配置数据树、运行状态数据树还是其他数据树中观察。RFC 9907 因而要求作者和审阅者同时检查语言、文档和运维语义,而不是把解析成功当作完成证明。

规范模块是代码组件,必须以 CODE BEGINSCODE ENDS 标签清楚分隔。发布模块名必须唯一;规范的 IETF 模块以 ietf- 开头,示例模块应使用 example-。示例用于解释结构或用法,但不是规范性模块,不能被审阅者默认为必须实现的协议对象。

模块头部也属于控制面。模块描述应包含当前 IETF Trust 版权声明,并指向 YANG Parameters 注册表;凡不由所导入模块覆盖的外部引用,应放在 reference 语句中。每个已发布的模块修订都需要 revision 语句,其引用必须标明包含该模块的文档。这样,从 RFC 中抽出的代码才有可追溯的版本归属,而不是脱离上下文的代码片段。

RFC 9907 还把 IANA 维护的 YANG 模块放回注册表程序之内。注册表政策是权威来源;不能通过随意编辑生成的模块文本来代替规定的注册、更新或审阅步骤。生成文本是表示,注册表规则才是决定谁能提出变更、变更如何记录和模块如何保持一致的治理依据。这是 RFC 8126 的一般 IANA 考虑事项在 YANG 模块场景中的具体加强,而不是一个新的线协议。

作者应在安全分析中说明模型暴露的数据、状态或操作可能带来的访问控制、完整性、机密性和资源影响。审阅者则要追问:语义是否能在 NMDA 术语中被准确理解?例子是否明确标为例示?版本引用是否指向实际承载模块的 RFC?IANA 考虑事项是否给出了明确、可执行的注册表过程?这些问题不能由一个“能解析”结论替代。

来源