摘要

  • draft-hi-ccamp-cmis-control-yang-04于2026年9月9日发布,目前是处于I-D Exists状态的个人提交Internet-Draft,并非CCAMP工作组文档、RFC或已经部署的标准。
  • 新增的“Control Handover”章节规定:把页面加入remote-write-allowed-pages,等于把该页写入控制权交给远程系统;移除页面则撤销授权,主机NOS必须恢复本地配置。
  • 同一修订明确不规定多步CMIS操作的原子性与互斥。若一组命令在撤销时只执行了一部分,协议没有一个共同状态证明远程写方已经停止、主机可以安全恢复自主控制。
  • Daniel Kade建议在撤销与主机接管之间设置一个本地、按页面范围运行的静默状态机。这是部署层分析,不是IETF要求,并且只应保留本地验证安全交接所需的最少事实。

这次修订把白名单变成了控制权分配

第04版不可变文本标注日期为2026年9月9日。Datatracker API记录确认当前修订号为04、到期日为2027年3月13日,状态为Active与I-D Exists。它仍是个人提交,没有RFC stream,也没有负责的Area Director。文首所写的Standards Track只是目标,不代表CCAMP已经采纳。

草案处理的是可插拔相干光模块的管理空档。CMIS在模块内提供标准页面,也允许厂商定义自有页面。路由器的NOS可以管理已经抽象化的功能;远程光控制器或本机第三方应用则可能要使用厂商特有能力,或使用NOS暂时没有实现的标准功能。新YANG模块为这些系统提供寄存器级的读取、写入、action、RPC与监控接口。

第04版为这条低层通路增加了边界。它强调原始页面访问只是抽象模型的补充,不是替代品;部署应先从实验室、开通和排障开始,生产环境先以只读与监控为主,只有特定页面与操作经过预先验证后才开放写入。

更重要的是,它首次专门规定控制权交接。页面出现在remote-write-allowed-pages中,远程系统就取得该页面的写控制。授权期间,主机NOS不得自行修改这些寄存器;安全干预是例外,例如关闭发射器,事后主机应通知远程系统。

页面从列表中移除,写授权随即被撤销。主机NOS必须重新施加本地配置,覆盖远程值,或按模型规定恢复默认值。撤销对治理变更之后发起的操作生效;已经在途、但尚未应用的远程写入应被拒绝。

所以,这不是普通的访问控制开关。它同时决定谁拥有某块设备状态、谁可以在紧急时越过边界,以及权力返回时设备应当变成什么样。

列表里的一个删除动作,由此变成了硬件上的一次交权。

权限可以瞬间变化,设备状态却可能仍在途中

难点藏在“尚未应用”四个字里。单次写入或许有明确完成点,多步光学操作则可能先选页面,再写参数,最后触发生效;一项操作也可能横跨数个相关页面。若撤销发生在中途,系统需要区分四种情况:从未开始、完整完成、已取消,以及部分效果存在但无法确定最终状态。

第04版没有假装提供答案。安全章节明确说,文档不定义主机NOS与远程系统之间多步CMIS操作的原子性或互斥;相关协调由运营者负责,属于草案范围之外。

承认边界是优点,却不能把边界当成交接完成。白名单能够阻止下一条远程请求,不能单独证明上一条操作已经停止、部分写入已经回退,也不能证明主机以设备可接受的顺序重放了本地配置。权限变更是一个时间点,硬件收敛可能是一段过程。

草案对写入后果的描述解释了为什么这一点重要。某些寄存器可以改变输出功率与频率,错误设置可能干扰其他正在工作的波长。Lower Memory含有主机管理标志与页面选择寄存器,因此绝不允许远程写入。用于固件管理的CDB页面9Fh至AFh也不得进入远程写白名单,因为它们可以启动固件更新,把一次错误授权变成持久性风险。这些禁止项划出了正确的硬边界,但对“原本允许、后来被打断”的操作仍需要终态。

最后一位读者也可能改变事实

部分CMIS寄存器采用clear-on-read语义:第一次读取会把事件清除。远程控制器先读,主机可能再也看不到;主机先读,控制器同样会失去线索。第04版把双方同时使用已委托页面称为委托设计错误,并规定在委托期间,读取这些页面及处理clear-on-read效果的责任属于远程系统。

控制权归还时,证据保管也必须一并移交。主机不能为了确认状态而无意间抹掉尚未传递的事件,也不能把空寄存器解释为“从未发生”,因为远程侧可能已经消费。交接事实因此至少要说明最后负责读取的一方,或明确记录该证据无法保存。

RFC 8341通过NACM限制NETCONF与RESTCONF中的用户、操作和数据节点。第04版解释了它为何仍需页面级规则:NACM不能根据RPC或action输入参数的值来决定权限,例如目标CMIS页面号。两层控制互相补充,但都不是用于证明两个写方已经完成无重叠切换的事务屏障。

在撤销与自主接管之间加入静默屏障

不必为此建立新的中央事务服务。运营者可以使用四个本地状态,再保留一个紧急分支。

REMOTE_ACTIVE记录控制器身份、设备或接口、页面集合与治理配置版本,说明远程写入在哪个范围内有效。撤销后先进入QUIESCING:拒绝新远程操作,把每一项在途工作标记为完成、取消或不确定;多步序列必须拥有一个整体终态,不能只看最后一次传输回应来猜。

随后进入HOST_RECONCILING。主机按照已声明顺序重新施加本地配置,处理clear-on-read证据的归属,并检查与本次页面相关的本地安全约束:页面选择、发射器状态、频率、功率和链路状态。只有验证通过,才进入HOST_ACTIVE,恢复NOS自主控制。

SAFETY_OVERRIDE应保持为独立分支。紧急风险可以让主机立即关闭发射器,无需等普通队列清空;但这次越权应可见,说明影响范围,在可能时通知控制器,并最终进入协调阶段。紧急权力可以打断正常所有权,不能悄悄改写谁做了什么。

最小记录不需要泄露寄存器内容:模块或草案版本与摘要、设备/接口/页面集、当前控制者、治理版本、切换时间、过渡状态、在途操作处置、可用时的最后已接受操作ID、本地配置版本、clear-on-read保管方、安全干预、协调结果与责任运营者。厂商秘密、私有拓扑和可被利用的细节仍留在管理域内。

这符合Heng Lu的最小初始规范原则:共同层只保留共享安全与状态转换所必需的确定性规则,把厂商语义和运营政策留在本地。《政策之镜》提供另一条约束:自动化行动之后,触发规则、行使权力者与结果仍应可以还原。这个状态机是我的建议,不是草案或上述文章的要求。

新版更谨慎,但还没有实现证据

第04版增加了多项合理限制。未过滤或过于频繁的页面内存读取可能压满速度较低、由主机关键管理任务共享的内部总线,因此草案建议使用定向操作、过滤、大小上限和速率限制。平台还可以施加比运营者白名单更严格的限制,只是如何向控制器公布这些限制要留到后续修订。

新增的实现状态章节目前只有尚未填写的模板字段。IETF 126的CCAMP会议记录记下了与会者关于运营者反馈、实现依赖、与抽象模型重叠以及是否应采用Experimental定位的问题。这些是会议发言,不是工作组共识或状态决定。

现有来源不能证明发生过竞争、故障、光路干扰、恶意固件写入或产品缺陷。它们能证明的更窄:第04版已经规定页面控制权怎样授予和撤回,也要求主机恢复本地值,同时明确把多步互斥留给运营者。在投入生产前,运营者需要一个可本地验证的时刻,证明远程写方已经静默、主机状态已经重新有效。

来源