摘要

  • Intra-Area-TE-LSA 设置 U-bit;即使路由器不认识该 LS 类型,也必须在既定区域范围内继续泛洪。传播回执不能替代语义支持回执。
  • Link State ID 只是管理多个 TE-LSA 的任意值,没有拓扑含义。OSPFv3 链路识别依靠 Neighbor Router ID 与 Neighbor Interface ID 的组合,并由地址集合等证据辅助。

绿色只证明消息走过

设想一次升级后,控制平面监控显示所有节点都收到相同序列号与校验和的 LSA。团队据此宣布 TE 扩展已经覆盖整个区域。

其中一台旧路由器其实不认识这个 LS 类型。它继续泛洪,是因为 RFC 5329 设置了 U-bit;它做对了。另一台认识 LSA 外壳,却忽略了未知的嵌套 TLV;它也按规则处理。第三台能解析全部字段,但区域级 TE 广告开关仍是默认关闭。第四台生成了 TE 数据库,却没有让当前路径计算使用这一版本。

这些状态可以同时成立。泛洪回执说明分发链没有断;识别回执说明软件知道这种类型;解析回执说明具体 TLV 进入了本地语义;配置回执说明功能获得启用;消费回执说明某次决策真正使用了它。把五层压成一个 supported=true,会让兼容性机制反过来掩盖兼容性差异。

任意编号不能担任拓扑主键

RFC 5329 明确说明,Intra-Area-TE-LSA 的 Link State ID 用于维护多个 TE-LSA,是任意值,不具有拓扑意义。

如果资产系统用 Advertising Router 加 Link State ID 作为链路主键,源路由器只要重新分组 TLV 或在重启后改用另一组编号,仪表盘就会制造链路删除与新建。真实邻接可能没有任何变化,变化的是封装策略。

OSPFv3 的 Neighbor ID sub-TLV 必须在每个 Link TLV 中恰好出现一次。它包含 Neighbor Interface ID 和 Neighbor Router ID。前者保留接口上下文,后者保留协议邻居身份。两者是组合证据,不是可以任选其一的重复字段。

并行链路暴露被省略的那一半

两个路由器之间可以有多条并行链路。它们共享 Router ID,Interface ID 却不同。只存 Router ID 会把两条链路合并,随后把属性差异误报成同一链路的抖动。

本地与远端 IPv6 地址 sub-TLV 可进一步区分并行链路,且可携带多个全局地址;不得放入链路本地地址。但远端地址字段可以不发送,在多接入网络上还可以是 ::。

因此“没有远端地址”只表示这次 LSA 没提供该证据,不能证明没有邻居、没有接口或只有一条链路。数据模型至少要区分未出现、显式零值、因规则忽略、未观察到和禁止出现。缺证时应降低置信度,而不是自动补齐一个看似完整的答案。

OSPFv2 的熟悉字段在这里没有权力

OSPFv2 的 TE 扩展使用 Link ID 识别链路另一端,其含义随网络类型变化。OSPFv3 不再用相同方式依赖 IPv4 接口地址。RFC 5329 要求改用 Neighbor ID;旧 Link ID 不应发送,收到后必须忽略。

迁移工具如果仍展示 Link ID,却不展示“已忽略”决定,就创造了一个影子权威。这个值可能格式正确,甚至恰好能和库存中的某个地址对上,但它不控制 OSPFv3 的链路解释。

正确做法不是删除其存在。原始 TLV 是互操作异常的证据,应保留;同时必须保留解析器为何不采用它。保存证据与授予权力是两件事。

重复字段的第一项才是决定项

Neighbor ID 必须恰好一次出现。RFC 5329 定义的其他 sub-TLV 不应重复;如有重复,第一项之后的实例被忽略。常见的字典化解析却采用“后写覆盖前写”,刚好把规范倒过来。

线上的顺序因此属于决策证据。需要保存每个实例的类型、长度、位置、填充和处置结果。TLV 按四字节对齐,但填充不计入 Length;丢掉原始边界后,不同实现的解析差异很难复原。

被忽略的第二项并非垃圾。它可能来自编码缺陷、版本过渡或恶意构造。规范只决定谁生效,不替运维判断成因。

稳定地址不是在线心跳

Router IPv6 Address TLV 宣告稳定、可路由的 IPv6 地址;路由器可达时,该地址应当可达。它不能是链路本地地址,并且在支持该扩展的源路由器所发 TE-LSA 中恰好出现一次。

“应当可达”描述地址用途,不是一次探测结果。LSDB 中存在、路由表有前缀、Ping 成功、管理会话建立、应用交易完成分别是不同回执。故障分析应把它们排成时间线,而不是让其中任意一项替代其余事实。

注册号也不是部署证明

IANA 登记 function code 10 以及相关 TLV 编号,解决的是编码协调。它不证明某台设备实现了扩展,更不证明配置已开启。

RFC 5329 的管理面说明区域级 TE 广告默认关闭;接口级禁用项只有在区域开启时才有意义,且有自己的默认值。二进制中有代码、配置中有一行、线路上有 LSA、消费者实际使用,是四种不同证据。

来源与证据边界

这些来源证明规范语义、发布历史和编号登记,不证明当前部署、厂商实现、配置、在线邻接、TE 数据库、实际路径、资源预留、转发结果或用户影响。