摘要

  • ADD-PATH 允许一个 BGP speaker 为同一前缀通告多条路径,新通告不再自动覆盖旧通告。
  • Path Identifier 由发送方本地分配,本身没有含义;两个编号不是两条独立网络路径的证明。
  • 能力按方向和 AFI/SAFI 协商,路径选择、FIB 安装与物理多样性仍是不同决策。
  • 韧性结论需要逐前缀收据,把通告连接到出口、上游、设施、共享风险、FIB 和实际切换测试。

设想路由反射器面板为同一客户前缀显示两条记录。Path Identifier 不同,ADD-PATH 能力是绿色,变更单便写下“已有两条冗余路径”。一次传输故障却同时撤掉两条记录。它们是不同通告,但最终经过同一台边缘路由器、同一个上游交接点和同一条城域线路。

这是一个假设性的操作轨迹,并非对某家网络事故的陈述。它只说明:在路由表里数出两行,不等于完成拓扑审计。

ADD-PATH 真正保留的内容

RFC 7911 扩展了 BGP,使 speaker 能够为同一地址前缀或 NLRI 通告多条路径,而不会让每次新通告自动替换上一条。协议在 NLRI 前增加四字节 Path Identifier,键因此变成“前缀加标识符”。

标识符由分配它的 speaker 在本地决定。路由被重新通告时,新 speaker 会生成自己的标识符,接收方不应从数值推断任何语义。因此,17 和 29 不能被翻译成“两家运营商”“两个站点”或“两条管道”。它们区分一段会话里的通告,却不描述下面的物理依赖。

协商也有方向和范围。对于某个 AFI/SAFI,speaker 表明自己能够接收多路径、发送多路径或两者兼有。只有发送方与接收方声明的角色互相匹配,才使用多路径编码。一条笼统的“ADD-PATH 已开启”资产记录,可能掩盖某个地址族、方向或会话并未实际启用。

RFC 7911 说额外路径可以提供潜在的替代或备用选择,也可能改善收敛或缓解振荡。“潜在”正是边界:规范没有规定选择哪些路径通告,不保证接收方把每条路径装进 FIB,也不证明流量可以在它们之间切换。

表面多样性如何收缩成同一风险

RFC 6774 把多路径分发与收敛、可达性恢复和负载均衡联系起来。它同时把多样性——包括不同 peer 之间的多样性——视作需要选择和传播的属性,而不是出现两行记录就自动得到的结果。

两条通告的 AS_PATH 可以不同,却共用同一台路由器、板卡、光传输系统或机房。两个对等地址可以属于同一家上游,并穿过同一条租用线路。两个 next hop 可能递归解析到同一 IGP 邻接。即使外部路由确实不同,经过策略和最佳路径处理后,也可能落到同一个转发出口。

部分部署还会制造断点:一段会话保留多条路由,下一台反射器或边缘设备却只输出一条。控制平面重启后,Path Identifier 可能改变;不知道此前能力交换的抓包甚至可能被错误解码。因此,证据必须写明会话、AFI/SAFI、方向和观测点。

RIB 记录不是转发结果

对于每个前缀,应记录收到哪些路由、哪些符合策略、哪条成为最佳或备用、next hop 如何解析,以及哪些条目进入 RIB 和 FIB。随后把每个候选连接到出口路由器、上游 ASN、设施、线路和共享风险组。

最后还要观测流量。一次受控撤回或故障演练应记录检测时间、重选、FIB 转换、丢包区间和恢复后的真实路径。没有这份记录,ADD-PATH 只能证明协议携带了更多候选,不能证明网络拥有独立逃生通道。