摘要

  • draft-ietf-idr-bgpls-inter-as-topology-ext-46 定义新的 Inter-AS Link NLRI 及远端 AS、ASBR 描述符,使 BGP-LS 消费者能够关联互联两端的通告。
  • “完整链路”是派生结果:它依赖 IGP 或本地配置的来源、BGP-LS 出口策略、标识符一致性、时间边界和控制器的匹配规则。
  • 领导层若要让这条边进入路径控制,就应保存双边关联凭证;链路存活、容量、路径下发和真实转发必须另行举证。

控制器收到的不是一条线

BGP-LS 可以分别把两个 IGP 域的节点、链路和前缀送给控制器,域内视图很完整,域间却仍有缺口。原因并不神秘:IGP 通常不在跨 AS 链路上运行。边界路由器知道自己连向谁,控制器却缺少一种专门的 BGP-LS 表达,把两个域真正缝在一起。

rev46 提出 NLRI 类型 7,并定义 Remote AS Number、IPv4 Remote ASBR ID 和 IPv6 Remote ASBR ID 三个描述符。信息可以来自 RFC 5392 所述的 OSPF Inter-AS TE 通告,也可以来自 RFC 9346 的 IS-IS Inter-AS Reachability,再按照 RFC 9552 的框架投射到 BGP-LS。

关键动作不是“接收”,而是“关联”。草案明确说,一条跨 AS 链路通常由两端分别学到的信息表示。消费者比较本端与远端 AS、ASBR 标识符、BGP-LS Instance Identifier,以及存在时的接口地址或链路标识符。匹配成功,图里出现一条完整的边;匹配失败,控制器看到的是未配对或不完整链路。

因此,链路并没有一个从物理世界自动附着到报文里的全球唯一身份。它是控制器依据两份视角相反的陈述作出的判断。

相同格式背后可以是不同权威

主流程从 IGP 开始。ASBR 在 OSPF 或 IS-IS 内发布跨域信息,BGP-LS speaker 接收并编码,进出口策略决定消费者最终能看到什么。每一步都可能独立成功,却仍让另一端消失。

草案还给出另一种来源:兼任 BGP-LS speaker 的 ASBR 可以根据直连接口或静态路由直接生成 NLRI,Protocol-ID 标为 Direct 或 Static configuration。控制器再用 AS 号和地址把两端对齐。

这意味着两份外形兼容的通告,运营血统可以完全不同。一端随着 LSA 更新、泛洪和撤回;另一端可能只随人工配置变更。一端有 IGP 的传播历史,另一端有配置提交记录。若拓扑数据库只保留最终几个描述符,就把来源差异抹成了同一种“事实”。

最小关联凭证应为每一端保存:收到的通告引用或摘要、源协议、BGP-LS 实例、本端与远端 AS/ASBR、用于消歧的接口字段、到达时间、年龄和撤回状态。随后再记录采用的匹配规则、策略版本和结论。

这份凭证是本文的治理建议,不是草案要求。它不是要建立中央拓扑登记局,而是让一个本地推断能够被复核。

从线缆到业务,中间至少有九张收据

跨域互联存在并被正确配置,是第一层。IGP 或本地配置描述它,是第二层。BGP-LS speaker 收到状态并构造 NLRI,是第三层。策略允许它到达消费者,是第四层。消费者能解析字段,是第五层。两端被判为一对,是第六层。该边进入某个拓扑快照,是第七层。路径被计算并下发,是第八层。数据包实际经过目标互联并达成业务指标,才是第九层。

上一层的绿色状态不能替下一层作证。IANA 分配共同码点,只说明实现者有共同编号;语法有效,只说明字节可以解释;两端字段匹配,只说明它们满足某条规则。它们都不能证明链路此刻可用、容量仍准确、路径已安装或业务已完成。

rev46 是 2026 年 9 月 29 日发布的 IDR 工作组活跃 Internet-Draft,不是 RFC。冻结证据包没有提供公开部署、互操作测试或实测转发结果。IANA BGP-LS 注册表 的早期分配支持开发,并不认证整条运营链。

单边缺失不是噪声,而是一个状态

新扩展允许渐进部署,不要求一个 AS 内所有路由器同时升级。真正需要支持它的是相关信息的起源设备、导出它的 BGP-LS speaker 和消费它的控制器。这降低了部署门槛,也让单边可见成为正常故障模式。

一端可能缺少远端标识符;一条出口策略可能只过滤一个通告;一场会话抖动可能让更新延迟;一端已撤回而另一端仍保留;两边都认为自己描述同一根链路,字段却无法被现有规则配对。

草案给出的排障顺序非常有价值:先确认两个 ASBR 的源信息,再检查 OSPF/IS-IS 通告,确认 BGP-LS speaker 是否收到并导出,比较远近端标识符,最后检查策略。它还鼓励实现公开“是否完成关联”。

运营界面不应再把这一切压成 link=true。至少应区分已配对、孤立、冲突、过期、撤回中和不支持。不完整链路本身就是证据:它可能指向策略边界、版本断层或时间竞争。

数据库里的同时,不一定是网络里的同时

关联还需要时间边界。假设 A 端通告 09:00 到达,B 端 09:04 到达。09:02,A 已更换远端标识符并撤回旧记录,但撤回消息延迟。09:04,数据库里可能仍有两条互相匹配的旧新记录,虽然它们从未在真实网络中同时成立。

草案没有规定统一的老化窗口或撤回处理,这是合理的:不同网络对稳定性和黑洞风险有不同取舍。但自由意味着责任归消费者。控制器必须说明允许多大的时间差、单边记录保留多久、撤回后是立即删除还是降低置信度,以及哪个拓扑快照消费了这次配对。

“两端一致”应当表示它们在声明的时间窗口内共同有效,而不只是数据库里恰好还躺着两行可匹配记录。

敏感拓扑仍可以被审计

草案主要面向同一管理实体控制多个 AS 的场景,例如骨干、城域和数据中心之间的受控环境。它警告,接口地址、远端 ASBR 和互联属性属于关键网络信息,应限制在受控域内,或者在离开之前过滤。

可审计不等于公开。关联凭证可以使用内部稳定引用或摘要,按角色授权,并设置有限保留期。共同的最低要求只是让获准审计者能够重建:控制器为何把这两份输入提升成一条边。

即使凭证完整,它证明的仍是地图决策,不是业务结果。RFC 8735 的多域流量工程场景说明了控制器为何需要跨域视图来计算路径。路径计算之后还有下发、收敛、转发与性能。地图不能借用数据包的权威,数据包也不能倒推当时的关联理由。

让运行代码有机会推翻地图

Running Code Primary 所要求的测试不应停在解码 NLRI。给两个独立实现依次输入:一致的双边记录、冲突的远端 ASBR、单边过滤、乱序更新、延迟撤回,以及静态来源与 IGP 来源的组合。比较它们何时建边、降级、删除与恢复,更要比较各自留下的理由。

两个控制器画出同一条线,却用了不同的时间窗口或冲突处理策略,平时看似互操作,故障时就会分叉。

Minimum Initial Specification 提供了合适尺度:共享的不是完整控制器,而是能够比较的最少证据——两端输入、来源、匹配规则、时间边界和结论。本地仍可选择数据库、修复流程和路径策略。

于是,“控制器发现一条跨 AS 链路”要被改写为:控制器在这个时间窗口内收到这两份有来源的陈述,按这条规则完成关联,没有留下未解决冲突,并把结果纳入这个拓扑快照。至于路径是否下发、流量是否经过,要看下一张凭证。

这句话不如地图上的线简洁,却终于足以承担自动化。

来源

  1. BGP-LS Inter-AS Topology Retrieval rev46
  2. 草案历史
  3. RFC 9552
  4. RFC 5392
  5. RFC 9346
  6. IANA BGP-LS Parameters
  7. Lu Heng:Minimum Initial Specification
  8. Lu Heng:On Reality Layers
  9. Lu Heng:Running Code Primary
  10. rev46 HTML
  11. rev46 纯文本
  12. rev45→rev46 官方差异
  13. RFC 7426:SDN 术语
  14. RFC 9086:BGP-LS Egress Peer Engineering