摘要

  • IESG 批准的新扩展允许 BGP-LS 为二层聚合下的一条物理成员通告 SR-MPLS PeerAdj SID 或 SRv6 End.X SID。
  • 通告可以表达“成员为 up、SID 已编程”这一时点事实,却不能证明实时容量、流量结果、包序安全、MC-LAG 无环或最终操作权限。

一个逻辑接口下面的物理选择

BGP 会话可以建立在 LAG 上,对三层仍只表现为一条逻辑邻接。原有 PeerAdj SID 把报文交给聚合接口,再由其负载算法选择成员。控制器能选择逻辑出口,却不能明确指定其中一条物理链路。

2026 年 8 月 6 日获批的草案补上这一层。父 BGP-LS Link NLRI 继续标识聚合;每个 L2 Bundle Member Attributes TLV 标识一条成员,并且只携带与它对应的 SR-MPLS PeerAdj SID 或 SRv6 End.X SID。逻辑整体和物理组成因此不会被一个编号吞并。

通告成员 TLV 意味着设备报告该成员处于运行状态;同时通告 SID,还意味着该 SID 有效且已为这条成员编程。这是控制面在某个时间作出的陈述,不是带宽预留,也不是数据面交付保证。

撤回决定陈述能活多久

SID 变化、失效或被管理禁用时,设备必须更新通告;成员故障或退出聚合时,必须撤回整个成员 TLV。只保存新增、不可靠处理撤回的数据库,会把已经失效的动作继续包装成拓扑。

为抑制短暂抖动,实现可以设置 hold-off timer,暂不发布中间状态。一旦链路稳定为 down 或被移除,撤回不能继续拖延。这意味着消费者必须记录 speaker、会话、接收时间、状态年龄和预期撤回,而不是只保存一个绿色 up。

缺少成员 SID 也不等于物理成员不存在。运营者可以按 peer、会话类型或路由策略过滤,也可以只发布父聚合 SID。不可见有时是披露政策,不是资源事实。

精确选路会消耗均衡与顺序

聚合原本具有自然分担能力。把多个流固定到同一条“看起来最空”的成员,可能让它拥塞,而其他成员闲置。草案把成员利用率监测和重新分配交给控制器或策略引擎;协议只提供可选的动作对象。

包序也不会由 SID 自动保护。成员时延不同,逐包分担或者在报文仍在途时搬迁同一流,都可能产生乱序。稳定的五元组或其他流不变量应让同一流保持在同一成员,但故障切换仍需观察接收端结果。

因此审计记录要把 SID、策略版本、流分类器与成员利用率、队列、丢包、时延、实际出口计数和回退结果连接起来。命令下发成功只能证明控制器发出了意图。

可信域不能替代授权

成员拓扑和 PeerAdj SID 必须留在可信 SR 域,或者受信任的对等域之间,并用 BGP 过滤限制传播。认证和过滤能缩小信息边界,却不能决定某个业务是否可以占用稀缺成员。

MC-LAG 的范围限制尤其清楚:草案不定义多机箱防环,只假设下层 L2/LAG 已经提供无环转发。即使 SID 完全准确,缺少这一证明时,控制器仍没有安全使用它的依据。

最小而有效的设计保留分工:路由器报告成员与指令,遥测报告容量和损失,控制器提出分配,策略作出授权,数据面证明结果,运营者拥有回退。标准化共同语言,不把最终决定交给中间账本。

把运行代码当作成熟度证据

获批草案记录了两项由贡献者提供的实现信息,同时明确说明这些资料没有经过独立验证,不构成 IETF 对厂商或产品的背书,也不是完整实现目录。这一限制本身就是采购和上线判断的一部分。

运行代码可以证明成员标识、TLV 嵌套和 SID 编程能够落地,并把实现经验带回标准过程。它不能证明另一台生产设备上的版本会及时撤回,升级后仍保持父聚合与成员映射,或者控制器已经接入所需的实时遥测。

采用方仍要按版本验证 capability,观察新增、更新、撤回和抖动,执行数据面金丝雀,并证明可以退回父聚合 SID。可实现性减少技术不确定性,却不替承担拥塞和中断损失的一方作出投产决定。

还要把两种数据面分别验收。SR-MPLS 在成员 TLV 下携带 PeerAdj SID;SRv6 使用 End.X SID,并可能按自身规则携带 SID 结构信息。它们表达相同的成员边界,不代表编码、编程、可观测性和故障模式完全相同。

本地测试应逐一完成通告、转发确认、受控加载、状态变化、更新或撤回,以及退回父聚合 SID。只有整个循环都留下证据,功能存在才可能成为生产准入依据。

来源