摘要

  • 当 255 个八位组容不下一个 IS-IS 对象时,RFC 9885 允许多个同类型、同键的 TLV 共同表达它;每一段必须能够独立解析,接收方则必须忽略顺序和 LSP 分片位置,合并所有内容。
  • 新增的 Type 30 能力子 TLV 不列出具体码点,而且明确只供信息参考;协议不得因为看到它就改变发送或接收行为。
  • 因此,启用权不在这个信号里。变更委员会需要的是覆盖所有接收者、软件版本和相关码点的外部证据矩阵,以及可验证的回退路径。

变更会上最危险的表格,往往不是一片红色的表格,而是一片绿色的表格。

资产系统显示所有路由器都通告了 MP-TLV 能力。计划中的流量工程对象即将超过单个 TLV 的容量。自动化平台于是给出一个看似自然的结论:既然能力都在,就可以打开生成功能。问题在于,这一列没有回答某台边缘设备是否能正确处理即将使用的那个码点。

RFC 9885 处理的是一个真实的容量边界。IS-IS 的 Type 和 Length 字段各占一个八位组,因此单个 TLV 的 Value 最多容纳 255 个八位组。网络规模增长,新型流量工程属性不断加入,一个逻辑对象可能再也塞不进这只旧容器。RFC 将多个 TLV 出现次数明确为默认扩展方法,前提是原有规范没有另行规定。

但 MP-TLV 不是把任意字节流随手切开。多个部分只有在 TLV 类型相同、并且适用时对象键也相同时,才属于同一个逻辑对象。键的定义仍由原 TLV 规范负责。每一部分必须单独可解析;一个子 TLV 或任何完整数据单元不得横跨两个部分。越界切割会产生无效编码。

接收方重组的是语义

支持该机制的接收方必须接受所有部分中的信息。哪个部分先到、位于同一个 LSP 还是不同 LSP 分片、在 IIH 中排在何处,都不应改变结果。接收方按照逻辑连接后的内容处理它们,重复出现的键只是维持对象身份。

顺序不重要,不代表矛盾不重要。以可达性 TLV 为例,度量值可以位于固定部分,却不属于对象键。如果各部分重复的非键值彼此冲突,结果就是错误。原本只能出现一次的子 TLV 若携带多个不一致值,也同样出错。若定义该 TLV 的规范没有给出专门规则,接收方采用编号最低 LSP 中第一次出现的值;在 IIH 内,则采用第一次出现的值。

RFC 还故意让发送纪律和接收容错不对称。接收方不能因为两个各 100 字节的部分原本能装进一个 TLV,就拒绝它们;发送方却不应在内容尚未超过 255 个八位组时主动拆分。若只是当前 LSP 放不下,而完整 TLV 仍满足自身上限,优先做法是把整个 TLV 移到另一个 LSP。

这不是格式洁癖。宽容接收使已有网络不因不必要的拆分立刻失效;克制发送则避免无故扩大互操作风险。监控系统若只记下“已接受”,仍然丢掉了发送者是否遵守更窄义务这一层事实。

Type 30 是提示,不是握手

部分部署会把问题从编码提升为转发风险。不支持 MP-TLV 的路由器可能只选择一次出现并忽略其余部分。被忽略的若是约束路径计算所需的链路属性,不同路由器就会依据不同的拓扑事实计算。RFC 明确指出,结果可能包括意外转发、环路、丢包,而且往往难以诊断。

为帮助运营者识别这种状态,RFC 在 IS-IS Router CAPABILITY TLV 中注册 Type 30、Length 0 的子 TLV,用于表示对那些旧规范只隐含支持多段处理的码点具备 MP-TLV 支持。承载它的能力 TLV 按 IS-IS 层级生效。

关键限制紧跟在信号之后:这个通告只供信息使用。IS-IS 实现不得根据这些通告改变自己发送什么,也不得改变如何处理收到的信息。它不是协商,不是同意,更不是协议内部的安全开关。

它甚至没有逐码点字段。规范假定实现若支持,就覆盖相关码点;但规范同时承认,现实产品可能只为特定部署场景实现了少数码点。一个看似全局的信号,无法关闭这张逐码点的空白表。

IANA 新增的 MP 栏又属于另一层。Y 表示协议规则允许该码点采用 MP-TLV 程序。它不是设备遥测,不能证明某个二进制版本支持它,不能证明本地已经启用,更不能证明某个区域内所有接收者具有相同语义。

启用凭证必须来自协议之外

RFC 建议发送实现提供逐码点的启用和禁用控制。如果支持禁用,实现必须记录两类事件:在禁用时收到 MP-TLV,以及本地生成 LSP 时需要 MP-TLV 却处于禁用状态。日志提供调查入口,并不会自动批准变更。

运营者在启用之前,要确认所有会收到这些通告的实现都能按规则解释相关部分。所需证据至少包含设备角色、层级、平台、已安装镜像、具体码点、原始样本、解析结果、路径计算差异和回退测试。IS-IS 认证仍然重要,但来源和完整性正确的内容仍可能被旧接收者误解。认证事实不等于语义能力。

这正是运行代码优先的现实版本。标准登记表说明机制能否适用;设备通告说明它做出过一项概括声明;真正决定风险的,是将要计算并安装路由的那个确切二进制如何处理每一部分。

来源