摘要

  • RFC 4098 所说的设备收敛,是 DUT 已完成既定测试条件要求的控制平面动作;RFC 7747 所说的 FIB/数据平面收敛,则要等全部 FIB 变更结束,而且测试所覆盖的转发流量都走上新路径。
  • Susan Hares 分别是两份 Informational RFC 的五位署名者之一。她构成一条可核验的人物线索,却不是方法、IETF 共识、厂商实现或运营网络的唯一所有者;每个层次仍需自己的证据。

“新路由已经发出”之后

外部 peer 撤回原有路径,路由器收到 UPDATE。BGP 进程把属性送入 import policy,重新选择 best path,更新 Loc-RIB,再向下游生成公告。对于研究路由进程的人,这条链有明确的起点与终点。

但转发链可能仍在继续。软件把变化交给硬件,FIB 分批改写 next hop;某些前缀先恢复,另一些前缀仍指向旧 adjacency。控制线程已经安静,探针却还可能看到 loss、duplicate 或 out-of-order。把第一条链的终点直接贴到第二条链上,才是“收敛”常见的证据错位。

RFC 4098 为第一条链建立术语。Howard Berkowitz、Elwyn Davies、Susan Hares、Prakash Krishnaswamy 与 Michael Lepp 在 2005 年发布这份文档,用于描述单台 BGP 设备的 eBGP 控制平面收敛。它先把观察范围收窄到路由信息的到达、处理与传播。在特定测试条件下,DUT 完成回应拓扑变化所需的全部控制动作,就可称为控制平面收敛;对于单个前缀的最佳路径变化,向下游 peers 发出新路由是文档给出的完成例子。

这个终点并不虚假。它能回答路由进程多久完成一次被明确定义的工作。RFC 4098 还主动指出,iBGP、由已收敛控制信息启动 forwarding,以及多设备互动需要后续工作。边界写在文档里,不能由报告者悄悄擦掉。

输入集合决定数字在回答什么

测量控制平面之前,还要先问“给了它什么”。RFC 4098 把 route mixture 定义为路由集合的人口结构:AS path 长度、属性、前缀长度的分布,UPDATE 中的 route packing,以及更新到达间隔。整齐、重复的简单路由可以测试某种处理上限;仿照真实流量的混合输入可能更接近另一种运营问题。如何准确建模互联网的实时混合,文档坦承仍是开放研究,而不是用“full table”三个字就能解决。

Policy 也会改变工作量。全部接受的最小策略,与过滤大量前缀、改写属性、触发不同 best-path 结果的策略不是同一实验。Peers 数量、每个 peer 的路由数、churn、flap damping、timer、TCP 参数、认证以及 forwarding traffic 都可能影响时间。

因此,一张只写“收敛 300 ms”的采购表缺少可比较的主语。若两台设备接受的 route mixture、policy、安全功能与 load 不同,数字的先后不等于产品的先后。

第二只表从数据包开始计数

2016 年,Rajiv Papneja、Bill Parise、Susan Hares、David Lee 与 Ilya Varlashkin 发布 RFC 7747。它把 FIB 或数据平面收敛定义为:所有 FIB 变更均已完成,此后所有被转发的流量都采用新提出的路径。文档明确说,节点内部的数据平面收敛不同于控制平面收敛,并把控制平面测试方法排除在自己的范围之外。

“所有流量”有实验边界。它指测试为指定 routes 提供的 traffic,不是互联网每一只 packet。文档围绕单台 BGP DUT 使用三节点或四节点拓扑,覆盖 iBGP、eBGP 与 eBGP multihop。简单拓扑有利于复现,却不能替代生产中的 route reflector、递归解析、隧道、分布式线卡与应用流量。

Tester 在事件发生时持续发包,以观察到的 packet loss 推导 convergence time。于是,连续两个测试包之间的时间成为精度上限。某条 route 每 20 毫秒才收到一个探测包,就不能仅凭内部微秒日志证明其在 2 毫秒内完成外部恢复。采样节奏本身属于结果。

RFC 7747 的报告还分别列出 offered packets、forwarded packets、connectivity loss、convergence loss、乱序与重复,并要求同时完成初始事件和 reversion event 的表格。一次切走很快而切回很慢的实现,不能只取更漂亮的方向。能够离开故障,不等于能够干净地回到正常状态。

条件账本比平均值更重要

要使结果可复现,RFC 7747 要求谨慎设置初态并写清步骤。可选参数应关闭,设置与 BGP timers 应回到默认值,除非测试明确采用其他值。Baseline 使用 minimal policy;额外 policy 必须记录。相同 test case 的每轮 interface media 与 throughput 应保持一致。

报告矩阵很长,因为每一项都可能改变解释:拓扑、事件类型、并行链路、eBGP/iBGP sessions 与 neighbors、每个 peer 的 routes、unique 与 non-unique routes、IGP、route mixture、packing、policy、路由安全能力、packet size、offered load、sampling interval、failure indication、hold time、MRAI、MAOI、keepalive、ConnectRetry,以及 TCP window、MSS 等参数。

Timer 到期与 CPU scheduling 会带来统计波动,所以应多次试验。若把多轮结果平均,所有参数必须相同,且均值应保留试验次数与离散程度。改变认证、timer 或接口之后继续把结果塞进旧序列,不是扩大样本,而是混合问题。

这一条件账本也连接两只表。触发事件需要同一 ID;Adj-RIB-In 说明 BGP 收到什么,policy 结果说明本地允许什么,Loc-RIB 与公告时间说明控制工作何时结束,FIB 记录说明哪些前缀何时被编程,外部 packet sequence 最后说明测试流量何时恢复。图表只有在事件上正确 join 才能比较。

黑盒传统不是 BGP 的替代规范

RFC 7747 借用了 RFC 6412 的 rate-derived method。RFC 6412 与 RFC 6413 面向 link-state IGP 的数据平面收敛,强调从 DUT 外部做 black-box packet measurement,并发展 loss-derived、rate-derived 与 route-specific 方法。它们不是 BGP 的规范要求;在这里贡献的是测量传承:不要让内部进程独自认证自己的外部后果。

更早的 RFC 1242 提供通用 benchmark 术语,RFC 2544 描述 tester 把流量送过 DUT 并核验接收结果的实验框架。它们帮助控制条件,但不会把实验室变成生产网络,也不能让 RFC 2544 本身成为 BGP failover 的证明。

RFC 4271 则规定 BGP 的协议基础:交换 reachability information,通过 UPDATE 操作路由信息,并维护 Adj-RIB-In、Loc-RIB 与 Adj-RIB-Out,在 AS 层面执行 policy。RIB 能说明控制进程知道了什么、选了什么;它没有资格替 FIB 或 packet 讲完剩余故事。

Susan Hares 的位置应当刚好可见

当前 IETF Datatracker 页面识别 Susan Hares,也注明 Sue Hares 这一称呼,并提供公开照片。页面列出她现任 IDR chair、BGP Directorate secretary 等公开职务,也列出包括 RFC 4098 与 RFC 7747 在内的 17 份 RFC。

这份记录支持一个有边界的人物判断:Hares 参与了两项集体工作,使路由控制的完成与转发结果的完成可以分别陈述。它不证明她独自发明两套方法,也不证明 2005 年就预定了 2016 年的路线,更不赋予她对共识、厂商或运营网络的控制权。

共同作者、审阅者与 IETF 社群形成公开方法;厂商实现 RIB/FIB 接口;测试工程师选择 traffic 与 cadence;运营者决定 policy;服务负责人承担 loss。把这些权力分开,恰好与两只表的证据纪律一致。

一份可以重放的收敛记录

完整记录至少保留七件事:可复现的 withdrawal、announcement、link failure 或 reset;收到的 routes 与 attributes;policy 版本与 best-path 原因;控制处理和传播的终点;FIB 分组或逐前缀的变更;外部流量的 loss、duplicate、reordering 与采样精度;以及用相同条件完成的 reversion。

两只表的差距可以很大,也可以小于当前探针的分辨率。后者只能写成“在此 cadence 下未分辨出差距”,不能写成“两个层次同时完成”。测不到是关于仪器的事实,不是关于架构的同一性证明。

如果数据库只有一个 convergence_time 字段,正确做法不是把两个终点压进去,而是修正记录模型。UPDATE 证明 UPDATE,控制日志证明所定义的控制动作,FIB acknowledgement 证明实现承诺的状态,packet probe 证明有限流量在有限频率下的观察。可靠性来自连接,不来自越权。

来源