摘要

  • draft-ietf-lsr-l2-bundle-member-remote-id-07 为 OSPF、IS-IS 与 BGP-LS 增加 L2 聚合成员的远端接口标识符,使控制器能把一端的本地成员与对端对应成员连接起来。父级链路可见或在线,并不提供这项成员级配对。
  • A→X 与 X→A 的互反关系是一张关联回执,不是物理真相。标识采集在路由协议范围之外;IGP 认证发生在路由器生成映射之后;配对成功也不证明当前在线、指标新鲜、实际转发或 TE 动作成功。

一条逻辑链路藏住了多根线的去向

LAG 的价值正是抽象:多个物理成员共同支撑一条逻辑接口,上层路由不必逐根处理。可当控制器要做成员级流量工程、双向路径计算、延迟与丢包关联或故障定位时,这层抽象会漏掉一个关键事实——两端的接口如何一一相接。

假设 R1 通告本地成员 A、B、C,R2 通告 X、Y、Z。两份清单都可能真实,父级邻接也可能正常,却没有任何一份清单说明 A 接到 X 还是 Y。若控制器把某端的延迟样本与错误的远端接口拼在一起,测量本身没有错,结论仍会错。

修订 07 要求远端 ID 等于邻居为同一成员通告的非零 32 位本地 ID。若 R1 的 A 连接 R2 的 X,R1 通告 A→X,R2 则通告 X→A。控制器用互反关系将两个方向的描述合并。

这张新回执很重要。它能让成员级指标、双向 TE 与故障范围拥有共同关联键。但它仍是路由器对“哪根线接哪根线”的陈述,不是对线缆的直接测量。

认证保护的是通告,不是通告之前的推断

草案安全章节最关键的边界是:IGP 认证保护源路由器生成后的通告,却不认证路由器用来形成远端成员映射的本地二层信息。

OSPF 与 IS-IS 工作在父级 L3 链路上,不直接运行在各成员端口。它们没有原生步骤去询问“邻居给这根物理线分配的 32 位 ID 是多少”。因此,精确远端 ID 的取得被明确放在草案范围之外。实现可以由人工配置,也可以用特定发现程序,可能参考 LLDP 或 LACP。

然而发现协议给出的并不是可以直接复制的目标值。LLDP Port ID 随 subtype 变化,未必是 32 位数字;LACP Actor 与 Partner Port Number 是两端独立分配的 16 位值。如何把这些表示映射到邻居在 L2 Bundle Member Descriptor 中通告的 32 位本地 ID,由实现自行解决。

于是会出现一种难以察觉的错:LLDP 报告是真的,配置表确实存在,OSPF LSA 的认证也正确,BGP-LS 没有改写字段,但转换表使用了旧线序或错误端口。每个局部事实都诚实,连接它们的关系却是假。密码学能证明谁发出通告、通告途中没被篡改,不能倒流回去替采集过程背书。

互反能发现不一致,不能发现所有共同错误

A→X 与 X→A 为消费者提供一致性校验。若一端说 A→X,另一端却没有 X→A,控制器可以把它标记为配置错误、发现错误或采集被干扰。草案建议实现提供这种验证机制。

但两端也可能共同相信同一份陈旧映射。人工配置可以在换线后没有更新;实现特定发现可以从过期库存生成对称结果;拓扑变化期间,两份通告也可能来自不同 epoch。互反提高关联置信度,不会单独证明成员此刻在线、正在转发或指标来自同一时间窗口。

稳妥的证据链应分为:

  1. 父级 L3 链路或聚合被通告;
  2. 两端分别通告非零本地成员 ID;
  3. 配置或发现系统产生带来源与年龄的远端映射;
  4. OSPF/IS-IS 认证通告是由该路由器发出;
  5. BGP-LS 按正确父链路与成员顺序导出;
  6. 消费者在同一拓扑时期验证 A→X 与 X→A;
  7. 实时接口状态证明两根物理端点仍连接并在线;
  8. 测量系统证明带宽、时延与丢包属于目标成员和时间窗;
  9. TE 动作选中了目标双向成员,并观察到实际转发结果。

远端 ID 强化的是中段关联,不能把第六张回执冒充第九张。

未知不是不存在,零也不是接口编号

草案对缺失值很谨慎。远端 ID 不存在,只表示没有学到或没有通告,不表示邻居没有对应成员。在一端支持扩展、另一端尚未支持时,这种缺失完全可能出现。

零值只表示未知。OSPF 不得发出零,收到时按缺失处理。IS-IS 在同一 descriptor 中部分成员已知、部分未知时,可以用零保持位置;BGP-LS 导出时永远不带零。若控制器把零当成真实成员,便会把“证据空白”伪造成“编号为零的对象”。

格式错误又是另一状态。IS-IS 的远端 ID 数量与顺序必须和外层成员 descriptor 完全一致。长度为零、长度不是四的倍数或数量不符,会让这一组全部按未知处理。宁可承认无法配对,也不能猜测位置后继续生成拓扑。

重复字段采用确定性解析:OSPF 与 BGP-LS 取第一项;IS-IS 取最低编号 LSP fragment 中的第一次出现。这能让瞬态输入得到稳定结果,却不赋予“第一项”更高的现实正确性。

运营遥测至少应区分:未支持、未学习、主动不通告、零占位、格式错误、忽略重复、互反不一致、来源过期与互反有效。把它们都显示成“无链路”,会抹掉最有价值的诊断信息。

BGP-LS 搬运字段,不代替消费方判断语义

BGP-LS Producer 把远端 ID 作为父级 Link NLRI 的属性导出。Propagator 不负责草案所述的语义一致性检查。Consumer 才根据互反关系检查映射,并决定应用如何处理错误。

这项分工避免让每个中间搬运者假装理解拓扑语义,也明确了一项责任:最终要用数据做流量决策的控制器,不能因为字段经过 BGP-LS 到达,就假定上游已经验证物理配对。

成员对应关系还会暴露比父级聚合更细的拓扑。草案要求默认不得启用,只能在指定链路上配置开启,并重申应把 BGP-LS 信息限制在可信域内。更多可观测性既是控制能力,也是信息泄露面。

时效责任在源端。路由器一旦知道远端 ID 已失效,就不得继续通告;来源变化或过期时应撤回或替换。如何检测过期仍属于实现。只保留一个 32 位数字而不保留来源与时间,就无法证明它仍然适用于当前布线。

最后呼叫不是已部署现实

Datatracker 将修订 07 列为 LSR 工作组已提交发布的活跃草案,目标是 Proposed Standard,IETF Last Call 截止 2026 年 10 月 13 日,IANA 仍需评审。正文日期为 2026 年 9 月 29 日,2027 年 4 月 2 日到期。它不是 RFC。

OSPFv2、OSPFv3、IS-IS 与 BGP-LS 的新 sub-TLV type 仍写作 TBA。公开记录没有证明任何厂商实现、生产部署、配对准确率或 TE 收益。可以成立的结论更窄:草案为一项成员关联断言设计了运输格式,并把采集前后的信任边界写了出来。

来源