摘要

  • RFC 5283 允许 LSR 用覆盖具体 FEC 的聚合 RIB 项完成最长匹配,条件是标签发布邻居也是前往该 FEC 的下一跳;LDP 随后继续发布原来的具体 FEC,而不是聚合前缀。
  • 这个标签只证明某个节点在某个 RIB 版本下作出了局部控制面决定。全路径支持、出口 LER 存活、撤销传播、硬件 LFIB、数据交付和业务结果各有独立收据。

消失的是精确路由,不是 FEC 身份

传统 LDP 处理倾向于要求 Prefix FEC 与 IP RIB 精确匹配。跨 IGP 区域建立 LSP 时,这会迫使运营者把每台 PE 的 loopback 泄漏到所有区域。LSP 有了,区域层次原本要节省的 LSDB、RIB 和 FIB 状态却重新膨胀。

RFC 5283 没有把 /32 FEC 改写成 /24。它只允许查找下一跳时使用覆盖该 /32 的 /24,并检查发布标签的邻居是否为正确下一跳。FEC 若比 RIB 项更宽,则不构成匹配。

节点向上游重新发布的仍是具体 FEC。于是系统同时维护两种真相:标签标识一个具体出口,路由只说明包含该出口的一组地址该往哪个边界走。文章的全部证据边界都来自这两个粒度不能互换。

聚合前缀不是成员存活清单

/24 可以在某个 /32 出口失败后继续有效,因为同一聚合下还有其他成员。聚合回答“这组地址往哪里送”,不回答“其中每一个对象现在是否可用”。

最长匹配也是局部判断。LSR 检查自己的 RIB、下一跳和标签邻居,不会远程探测最终 LER,也不会读取下游硬件或观察客户包。

标签名称越精确,越容易让报表产生过度信心。界面应同时展示 FEC、覆盖它的 RIB 项、两者版本和观察节点,而不是用 /32 的外观掩盖底层 /24 证据的范围。

向后兼容不等于端到端贯通

这项扩展是可选的,应当可配置、默认关闭,并可按前缀启用。旧节点不会因此破坏无关转发,但也不会神奇地让聚合后的具体 FEC 继续向上游传播。

凡使用聚合的区域,相关路径上的每个 LSR 都要实现并启用该规则。任何不支持的节点都会成为 LSP 的终点。控制面可以安全停止,却仍然没有端到端路径。

因此,入口看到标签只证明映射到达入口;不能证明所有区域、所有等价路径或故障切换路径都具备相同能力。能力库存必须和真实拓扑、区域、节点、前缀绑定。

迁移需要一段双重证据期

RFC 5283 允许逐步升级,但切换顺序非常明确:在某区域所有 LSR 都被成功验证之前,ABR 应继续发布具体 loopback。只有完成能力覆盖后,才能撤去具体项,仅保留聚合。

切换前,旧节点仍可依靠精确匹配,新节点也可最长匹配。切换后,遗漏的旧节点会立即失去可用 RIB 证据。过早清理具体路由,会把资产清单错误变成业务中断。

迁移收据要记录区域范围、节点版本、功能开关、按前缀状态、最后一个含具体项的 RIB 版本、第一个仅聚合的版本、FEC 映射、NHLFE/LFIB 和流量验证。“升级工单完成”不是这些状态同时成立的证据。

一个 RIB 事件会推动许多标签

多条具体 FEC 可以依赖同一个聚合项。覆盖前缀出现、消失或更换下一跳时,节点必须重新检查所有属于它的 FEC。

若出现更具体的 RIB 项,只有其中一部分 FEC 可能改用新下一跳。FEC 名称不变,NHLFE 却发生迁移。只统计标签新增与删除的监控看不到这种重绑定。

正确的证据图应连接 RIB 前缀与版本、依赖 FEC 集合、发布邻居、接收标签、本地标签、NHLFE 和硬件确认。否则列表看起来完整,真实出口却已经改变。

FIB 变小不代表 LFIB 变小

RFC 5283 减少的是链路状态和 IP FIB 项。它明确指出具体 LSP 所需的 LFIB 项不会因此减少。聚合优化了一个资源面,没有消除标签状态。

容量报告必须说明是哪张表:LSDB、RIB、FIB、LIB 还是 LFIB。SPF 计算、IP 编程、标签编程与硬件内存各有不同瓶颈。把它们合并成“路由数量下降”,可能只是把压力移到了看不见的位置。

收敛也要分段计时。拓扑计算完成,不等于所有依赖 FEC 都已重算,更不等于 LFIB 已更新或业务已恢复。

出口 LER 故障有自己的时钟

链路、传输节点或 ABR 故障沿用常规收敛。出口 LER 故障不同:它消失后,包含它的聚合路由仍可能存在。

具体不可达性要通过 LDP 有序控制向上游传播,Label Withdraw 逐跳撤去 FEC。RFC 预计这个时间可与 IGP 收敛相近,但承认实现差异。MP-BGP、L3VPN 或其他应用如何消费该信号不在文档范围内。

所以会出现一个合法窗口:聚合路由仍为绿色,上游标签尚未撤销,具体出口已经失效。这不是三条信息必有一条造假,而是它们观察不同对象、不同传播时钟。运维必须显示“撤销进行中”,不能用聚合状态取消出口告警。

控制面专用的具体可达性、LDP 撤销以及边缘 BFD 都能补充证据,但不能被写成聚合路由本身的属性。

标签链完成之后还有数据面

即使所有节点支持规则,仍需证明 LFIB 编程、正确 NHLFE、跨区转发、出口处理、VPN 上下文、回程和应用结果。LSP 控制状态不是客户业务收据。

探针也必须匹配被声明的服务。对基础设施 loopback 的 ping,不能代表另一 VRF、服务类别或返回路径上的业务流。

系统应允许部分结论:聚合存在、局部 FEC 存在、远端能力未知、撤销传播中、硬件未确认、探针无返回。每个结论指向不同责任人和修复动作。

按两种粒度组装收据

至少保留:

  • 具体 FEC、地址族和出口 LER;
  • 所有候选 RIB 项和最终最长匹配;
  • RIB 版本、度量、下一跳和标签邻居;
  • 节点能力与按前缀开关;
  • 接收、本地和重新发布的标签及时间;
  • 每个聚合项的依赖 FEC 集合;
  • NHLFE、LFIB 与硬件确认;
  • 路径经过的区域和 ABR;
  • 具体路由到聚合路由的迁移阶段;
  • Label Withdraw 起点与逐跳进度;
  • BFD 或控制面专用可达性;
  • 上层控制应用的反应;
  • 双向数据观察;以及
  • 运营声明所指的业务结果。

RFC 5283 的价值是让两个粒度合作。可靠运维的责任是让它们保持可辨认,不让聚合替具体出口作证。

Sources