摘要
- MinRouteAdvertisementIntervalTimer 限制一台 BGP speaker 向一个 peer 通告同一目的地变化的频率;等待期间,本地 Decision Process 仍可继续选择路径。
- 如果计时期间最佳路径多次变化,RFC 4271 要求到期时通告最后选中的路径。邻居得到的是当时最新结果,而不是完整的本地变化时间线。
- 更短间隔提高潜在新鲜度,却可能传播更多中间状态与计算负担;更长间隔压缩抖动,却可能延迟故障、替代和恢复信息。门槛必须按 peer 类型与实际实现验证。
设想一个前缀和两张相邻网络。10:00:00,本地选中路径 A 并向邻居通告。10:00:04,A 失效,B 成为 best。10:00:09,一项策略变化让 C 胜出。本地 RIB 经历了三种现实,对端却可能只听见 A,随后直接听见 C。B 曾经真实影响本地转发,但从未成为对外声明。
这段消失的中间历史,正是 Minimum Route Advertisement Interval(MRAI)的用途。RFC 4271 把它定义为:同一 speaker 向同一 peer 就共同目的地集合发出相邻广告和/或撤回时,必须经过的最小间隔。配置值位于 peer 层面,限速语义则按目的地生效。一个邻接关系获得一个节奏,但无关前缀在逻辑上不必全部串在同一把锁后。
规范没有强迫实现为每个目的地创建一只物理计时器。那样的状态本身可能成为负担。只要某种调度方法能保证最低间隔,并给等待时间设置恒定上限,就可以符合要求。互操作合同关心外部可观察的时间行为,而不是内部数据结构。
MRAI 也不会冻结 Decision Process。新 UPDATE 到来时,本地策略仍会求值;best path 可以连续变化,FIB 也可能跟随。真正等待的是下一次向特定邻居讲述该目的地。RFC 4271 明确规定:计时尚未结束时如果多次选出新路径,到期后应通告最后一次选择。
这是一种时间压缩。对端看见允许发送时的最后状态,看不见产生它的每个中间状态。好处是减少链路上的 UPDATE,也避免邻居为转瞬即逝的选择重复计算。代价是邻居暂时失去一条本可更早使用的信息。少发的一条消息,与晚到的一项事实,是同一件事在两个自治系统里的不同账本。
这种机制源于真实的控制面压力。RFC 4271 把 MRAI 放在“控制路由流量开销”一节,明确列出 UPDATE 带宽与 Decision Process 处理能力。SIGCOMM 1997 的路由不稳定性研究在其交换点数据里观察到远超简单拓扑变化预期的病态更新量。那不是永恒的全球数字,却证明 BGP 消息流可能携带大量不能沉淀为持久可达性的工作。
SIGCOMM 2000 的收敛实验展示了另一面。研究通过被动观察与受控故障注入发现,在当时测量环境中,跨域故障、切换与修复可能耗时数分钟。独立的路径选择与 path exploration 会带来暂时不可达和时延。MRAI 并非唯一原因,历史时长也不能套用到今天;它说明减少消息的机制同样可能延迟分布式知识收敛。
所以,间隔越短并不自动越好。它可能更早暴露替代路径,也可能把每次本地 path exploration 都扩散到下游,让一台设备追求即时披露的愿望,变成许多设备的重复计算。多个 peer 同时触发还会形成峰值,因此 RFC 4271 建议为 MRAI 等计时器加入 jitter,避免同步。
间隔越长也不自动越安全。它能合并噪声,却可能扣住一条有效恢复信息,而对端客户仍在失去可达性。本地也许早已使用 C,对端却还停留在 A 或 A 的撤回上。只有同时规定“处理工作预算”和“信息新鲜度预算”,保护才不会转化为损失。
首个广告的边界必须谨慎。本文不声称每个第一次通告都要等待完整间隔。RFC 4271 描述的是相关连续 UPDATE 之间的最小距离。某次变化是否等待,取决于该目的地上次向该 peer 发言的时间、当前调度状态与实现。脱离平台证据,笼统声称撤回总是加速或总是延迟都不成立。
内部与外部也不等价。RFC 4271 强调 AS 内部需要快速收敛,因此 iBGP 的 MRAI 应短于 eBGP,或者不对发往内部 peer 的路由使用这一过程。这并不要求所有 iBGP 计时都为零,而是承认:若 AS 自己的分发层长期隐藏刚完成的本地选择,它就无法协调使用这些选择。
RFC 建议 eBGP 30 秒、iBGP 5 秒,这两个数字经常被误写成所有网络的默认事实。RFC 4273 的管理对象也重复这些建议,但产品现实具有上下文。Cisco IOS 的相关文档在所述版本里给普通 eBGP 记载 30 秒、iBGP 为 0,而 VRF 内 eBGP 也为 0。其他平台、版本与角色完全可能不同。
配置继承还会制造另一层幻觉。实际值可能来自 address family、neighbor、peer group、neighbor group 或 session group。优先级可能让运营者眼前那一行并非最终生效值。Cisco IOS XR 的运行输出可以直接显示邻居的最小广告运行间隔,这比阅读父模板更接近现实。
但生效值仍不是最终结果。评估 MRAI 需要把同一 NLRI 的本地 best-path 时间、Adj-RIB-Out 变化、发出 UPDATE 的时间、对端收到的时间串起来,再用 FIB 与可达性判断被隐藏的中间状态是否有意义。否则,UPDATE 变少会被误当成路由更健康,即使客户恢复变慢。
它与 Route Flap Damping 的区别不可混淆。Damping 把历史不稳定积累成随时间衰减的 penalty,并可能禁止使用或通告路线。MRAI 不评价路线是否“品行不良”,只控制何时向某个 peer 再次发言。一条路线可以在本地持续被选中,却尚未对外公布;它没有被 damping。
MRAI 也不是存活计时器。HoldTimer 与 Keepalive 判断 BGP 会话是否仍活着,BFD 可以更快发现转发故障。快速发现只会让本地更早选路,不能保证结果绕过出站广告节奏。RFC 7938 提醒大型数据中心设计者在事件传播时间里考虑 MRAI,原因就在这里。
ADD-PATH 改变可说的内容,不会自动改变每句话的时间。它允许同一 NLRI 的多条路径带着 path identifier 共存,减少 best-only 通告隐藏备份的情况。但它不让每个中间选择都值得传递,也不会取消出站调度。可见性与节奏是两项独立控制面。
对等关系因此包含一项不对称的时间委托。发送方决定自己多频繁披露变化,接收方承担知识年龄。接收方不能在计时期间强迫对端发 UPDATE,但可以测量到达间隔、谈判服务期望、分散上游,并决定这段关系能够容忍多少旧知识。
恒路的“最小初始规范”原则为这条边界提供尺度。公共协议需要规定足以互操作并限制开销的时间语义,却不应替不同处理器、拓扑、peer 角色与客户后果的网络设定全球统一数值。未来计时选择仍归本地,因为成本在本地;前提是其外部影响对承担者可见。
“运行代码优先”则提供问责。配置数字只是意图,最终继承、调度器、真实 UPDATE trace、对端观察和包交付才是系统。如果证据表明一只“保护性”计时器延长客户损失,commit 成功不能为它辩护。
这里的数据主权不是拥有路线,而是对本地路由进程何时披露信息的控制;这种控制又受 peering 或 transit 关系所建立的实际依赖约束。发送方可以保护自己的机器,却不能把对端失去的新鲜度说成零成本。只有本地选择与外部后果都可测量,自治才有意义。
三次选择变成一条消息,既不是欺骗,也不是把真相提纯。它是一项调度决定。最后发出的路线只是允许发言时的最新本地答案,不是对稳定未来的认证。领导层首先要把交换说清楚:少一些控制消息,换来更旧的分布式知识。
来源
- RFC 4271:A Border Gateway Protocol 4
- RFC 4273:Definitions of Managed Objects for BGP-4
- RFC 1771:A Border Gateway Protocol 4
- RFC 2914:Congestion Control Principles
- RFC 2439:BGP Route Flap Damping
- RFC 7938:Use of BGP for Routing in Large-Scale Data Centers
- RFC 7911:Advertisement of Multiple Paths in BGP
- SIGCOMM 2000:An Experimental Study of Delayed Internet Routing Convergence
- SIGCOMM 1997:Internet Routing Instability
- Cisco IOS:neighbor advertisement-interval
- Cisco ASR 9000:advertisement-interval
- Heng Lu:Running-Code Primacy
- Heng Lu:Minimum Initial Specification
- Heng Lu:On Data Sovereignty
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
