摘要

  • RFC 7313 把路由刷新变成有起止标记的对账窗口:BoRR 将指定 AFI/SAFI 下来自该对端的路由标为陈旧,重放的条目替换旧副本,EoRR 只清除仍然陈旧的部分。
  • 只有收到对端宣告的 Enhanced Route Refresh Capability 后才能采用这套流程。它保留会话,但不验证路由真伪,也不保证暂存的陈旧状态无害。

没有终点的重放,无法证明什么已经缺失

RFC 2918 允许 BGP 发言者请求对端重新宣告 Adj-RIB-Out,从而不必为了让某些策略变化生效而重置会话。但普通刷新没有明确事务边界。接收方看见 UPDATE 陆续到达,却无法从协议本身判断完整重放何时结束,也无法确认某条没有出现的路由是否真的已经撤回。

遗漏撤回正是这种歧义最危险的地方。旧路由可能继续留在本地 RIB,而新收到的路径看起来都正常。没有关闭信号,运营者只能离线比较状态、凭沉默推断结束,或中断邻接后重新建立。RFC 7313 用有界序列替代这种猜测。

发言者先宣告能力代码 70。执行增强刷新时,发送方在重放前发出 BoRR,并在重新宣告刷新开始时存在的完整 Adj-RIB-Out 后发出 EoRR。标记并不证明路由正确;它们只确定核对从何时开始,以及何时可以把“未再次出现”转化为处置依据。

BoRR 让旧状态待核,EoRR 关闭处置权

接收 BoRR 后,接收方把指定 AFI/SAFI 中来自该对端的所有路由标为陈旧,但不立刻删除。重放到达时,新条目替换相应旧条目。EoRR 到达后,仍带陈旧标记的路由立即被清除。会话和其他地址族不在这一动作范围内。

这是强而窄的权力。只有在协商过的范围和已声明的窗口内,接收方才能把“未再出现”解释为撤回。能力宣告表明对端理解这些子类型和流程,不代表允许接收方改变对端策略、接受不应接受的路径,或跨地址族扩大清理。

实现还可以设置本地可配置的陈旧路由保留上限。如果 EoRR 始终不到,计时结束时可以删除剩余旧路由。这个上限防止临时状态永久化,但 RFC 没有给出普遍安全的时长。连续性与确定性之间的取舍由运营者负责。

不断线只是转移成本

直接受益者是需要在线修复路由状态的控制平面。有效路径可在刷新期间继续存在,遗漏撤回能被揭示,无关目的地也不用承担整条邻接重收敛的代价。

成本并未消失。发送方要重放该地址族起始时的完整 Adj-RIB-Out;接收方要保存暂时陈旧的状态、处理重放,并区分重放流量与实时变化。上限太长,可能继续使用已经不正确的路由;上限太短,可能在延迟 EoRR 到达前误删仍有用的路径。机制减少重置冲击,却不消除不确定性。

与 Graceful Restart 的顺序也受约束。同一 AFI/SAFI 的 End-of-RIB 之前不得发送 BoRR;若接收方已收到对端的 Graceful Restart 能力,就必须忽略过早的 BoRR。一个恢复机制不能在另一个机制尚未结束陈旧状态阶段时抢先授权清理。

畸形标记不会获得隐含权力

长度不正确的子类型 1 或 2 消息会触发 ROUTE-REFRESH Message Error 代码 7、子代码 1。除 0、1、2 以外的子类型必须忽略,并应记录错误。没有对应 BoRR 的 EoRR 也可以忽略并记录。未知或畸形控制消息不能悄悄取得删除路由的权限。

证据与边界

RFC 7313 支撑能力、标记、陈旧路由生命周期、超时、Graceful Restart 顺序及错误处置事实。RFC 2918、4271、4724、5492 给出基础机制,IANA 确认代码 70。把这些规则解释为委托式运营权力属于分析。资料没有证明任何具名运营商已经部署,也没有规定统一安全时限,更不保证重放路由真实或所有不一致都能修复。

来源