摘要
draft-cel-nfsv4-element-registries-00拟为操作、回调操作、状态码、属性以及 ACCESS/OPEN 值建立八个 IANA 注册表,替代“选择作者所知的下一个空闲数值”的临时做法。- 公开分配可以防止同一线缆坐标被协调体系再次占用,却不能证明功能值得标准化、软件已经实现、端点当前支持、请求获得授权,或存储与应用得到预期结果。
数字进入解析器以后
两个团队分别扩展 NFSv4。各自查看现有 RFC 与本地代码,发现同一个操作号似乎空闲。两边都生成 XDR,双方实验客户端与服务器都能互通。单独测试时没有错误。
合并发生后,冲突才变得不可回避。这个整数在一套代码里选择结构 A,在另一套代码里选择结构 B。接收方不能从整数本身恢复发送方参考过哪份草案。即使传输完整、认证成功,解析也可能在第一步就进入不同的语义世界。
《Registries of Network File System Version 4 Protocol Elements》修订版 00 于 2026 年 9 月 25 日提交,将在 2027 年 3 月 29 日到期。Datatracker 将其列为活跃的个人 Internet-Draft,没有工作组采纳、正式文档流、负责 AD 或 IESG 批准。文档页眉提出 Standards Track 目标,并称若获批准将更新 RFC 8178。它目前不是 RFC,也不能证明 IANA 已经建立这些注册表。
RFC 8178 允许在 NFSv4 现有次版本里增加操作码、属性、枚举值和标志位,并禁止删除或复用已经分配的值。但它没有规定新值最初如何取得。修订版 00 描述的实际习惯是:作者选择自己所知最高值之后的下一个数。并行草案让“所知”这个边界失效。
八类值对应八个作用域
提案要求建立 NFSv4 Operations、Callback Operations、Status Codes、fattr4 Attributes、ACCESS Flags、OPEN Share Access Flags、OPEN Result Flags 和 OPEN Delegation Types 八个注册表。
操作号在 nfs_opnum4 中选择 COMPOUND 的参数与结果联合分支。回调操作号在 CB_COMPOUND 中完成另一方向的选择。状态码表示错误或结果。属性号既是 XDR 常量,也是 fattr4 位图的位置。ACCESS 和 OPEN 的位或子字段值改变请求及响应含义。委派类型又选择一个联合分支。
因此,同一个整数可以在不同注册表里合法出现。完整证据必须包含注册表、方向、外层 XDR 类型、次版本适用范围和引用规范;只记录一个裸数字会丢掉命名空间。可是在同一个注册表中,两个含义占用同一值就是协议冲突。
RFC 8276 展示了此前的谨慎做法:扩展属性作者把拟用数值与其掌握的最新协议版本和当前次版本逐一核对,从而支持互操作原型。问题不在于他们不认真,而在于人工视野无法公开锁住另一个尚未被发现的并行草案。
从私有清单变为公共分配
修订版 00 根据已发布 RFC 填充初始表。若提案将来发布,每个表将成为该元素类型的权威分配源。新增元素的文档必须在 IANA Considerations 中请求数值,从分配结果派生 XDR 常量,不得另行写入不同常量。
拟议政策是 Standards Action with Expert Review。Standards Action 保留 RFC 8178 的要求:向现有次版本加入元素,需要 Proposed Standard。专家审查则处理注册请求本身。
专家核对正确的表与方向、最低可用非保留值或属于该文档的早期分配、唯一名称、命名规则、XDR 定义、Versions 范围和引用。草案明确说,专家不评价元素本身的优劣;那属于 IETF 共识。
这个边界让“已注册”不会膨胀成“已认可”。IANA 对坐标分配有权威,标准文本对规范语义有权威,二进制构建对实际表项有事实权威,服务器对授权和执行有控制权,存储与应用对结果有观察权。任何一层都不能替另外几层作证。
临时分配解决标准完成前的空窗
若直到 RFC 发布才给数值,原型仍会被迫猜一个空位。RFC 7120 的早期分配提供了公共办法:规范必须得到充分描述且足够稳定,并存在早期实现需求或冲突风险。IANA 把分配公开标记为临时,通常有效一年,并显示日期。
修订版 00 要求工作组文档在被采纳后应申请早期分配,且不得使用既未正式登记、也未早期分配的值。临时行证明“此时此工作占用了此坐标”,并不证明文档必将成为 RFC。
续期、过期、弃用和可能的重新开放都有各自程序。运行记录必须保存状态与时间,不能仅凭曾经出现过一行就声称当前有效。
不删除是对旧代码的现实判断
提案从最低可用非保留值依次分配,但已分配值永不复用。元素若从全部次版本撤回,行仍然存在;Versions 可以改为 none,引用会加入撤回它的文档。
这不是把过时内容永久当作现行功能。它保留解释历史。标准可以先撤回含义,旧固件、生成的 XDR、分析器和抓包却可能多年后仍出现。若将数字交给第二个含义,旧发送方与新接收方可能在没有明显错误的情况下互相误解。
Versions: 4.1+ 只说明规范适用范围,并不证明所有 4.1 及以后实现都支持。RFC 8178 允许同一次版本有不同有效扩展子集。none 同样不是“世界上没有发送者”的普查结果。
注册表缺项可以证明一个受覆盖值缺少拟议的公开分配权威,却不能证明实验分支、私有补丁或过期实现从未发出它。注册表命中可以证明协调完成,却不能证明正在运行的二进制已经更新。
从坐标到结果的九张凭据
审计需要逐层保留:文档修订与状态;注册行;分配请求、日期和变更权限;精确 XDR 结构与版本范围;源代码、生成表和二进制指纹;端点认识与支持的可选元素;数据包方向、COMPOUND 上下文与原始字节;识别、授权、返回状态和状态转换;最终存储与应用观察。
一张注册行不会升级二进制。正确解析不会授予权限。操作成功码不一定等于稳定存储,更不等于另一个客户端已读到结果。每张凭据回答的都是更窄的问题。
迁移时应扫描源码、生成 XDR、语言绑定、协议分析器、测试夹具、固件与抓包,按“注册表+方向+数值”查找。临时数值改变前必须保存旧构建与流量,并隔离两个含义。未来注册表无法反推旧数据当时使用了哪套表。
证据没有说什么
冻结的十三个来源支持八表提案、并行草案碰撞机制、早期分配、不复用和专家权限边界。它们没有证明已经发生 NFSv4 碰撞、某产品有缺陷、NFSv4 工作组已采纳、IETF 已形成共识、IANA 已执行提案,或存在部署、漏洞与服务事故。
按 Lu Heng 的方法,权威必须被限制在记录能够支持的声明中。注册表可以回答谁在何时、依据何文档占用了一个坐标。只有运行系统的证据才能回答软件如何解释、服务器是否授权,以及应用最终看见了什么。
来源
- Datatracker—修订版 00
- Datatracker—修订历史
- IETF 归档—冻结文本
- RFC 8178—NFSv4 扩展与次版本规则
- RFC 8126—IANA 注意事项指南
- RFC 7120—早期 IANA 分配
- RFC 7530—NFSv4.0
- RFC 7862—NFSv4.2
- RFC 8276—NFSv4 扩展属性
- RFC 8881—NFSv4.1
- Lu Heng—On Authority, Belief, and the Internet’s Addressing System
- Lu Heng—Running-Code Primacy
- Lu Heng—The Stability Fallacy
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
