摘要

  • Route Flap Damping 根据前缀近期的变化历史累积并衰减罚值;超过本地阈值后,路由可以被抑制。
  • 抑制能说明一台路由器为何停止使用或通告该路由,却不能识别故障、意图或其他观察者看到的更新历史。
  • 重新使用只说明本地罚值已衰减到可再次考虑路由的阈值以下。恢复还需要原因、修复、可用转发、流量测试与稳定观察期。

安静可能是观察者制造的

设想一条接入电路在通断之间反复切换。客户前缀被撤回、重新通告,又再次撤回。NOC 起初能看到每次变化;随后图表突然平坦,一台边缘路由器上的路由消失,事故记录便写下“网络已经稳定”。

物理故障其实仍在继续。只是这台路由器的罚值越过了抑制阈值,不再接受或传播该前缀。图表的平静是真实的,但它同时描述了观察者的动作与源头的状态。

RFC 2439 设计 Route Flap Damping,是为了控制不稳定性传播并减少重复 BGP 变化带来的处理负担。算法在路由发生变化时提高稳定性度量,并让它随时间衰减;超过抑制边界后,不稳定路由可以暂时停止使用或通告。

它回答的是一个有限问题:按照这台设备收到的事件和当前参数,现在是否应接受、使用或通告这条路由?它不解释事件发生的原因。原因可能是边缘电路质量不佳、路由器重启、自动化循环、维护、起源策略变化,或者人为制造的虚假抖动。

RFC 2439 明确承认,未来稳定性无法被准确预测;近期历史只是一种估计。因此,罚值是按时间加权的变化摘要,不是故障代码。

同一前缀可以有多个本地事实

抑制是本地行为。两台路由器可能收到不同的更新序列,也可能采用不同的罚值增量、抑制阈值、复用阈值、半衰期与最长抑制时间。一台设备已经抑制时,另一台仍可能选择并通告该前缀。

RFC 7196 解释了这种差异为何重要。旧参数可能严重惩罚连接丰富的站点,因为拓扑会放大更新数量;文档还指出,当时不存在统一的默认值共识。它建议较激进但破坏性更低的阈值不低于 6,000,保守值不低于 12,000。RFC 7454 同样建议采用调整后的 IETF 与 RIPE 指南。

所以,“前缀被抑制”如果没有观察设备、策略、参数版本、原始事件序列和时间,就不是完整证据。即使字段齐全,它也证明本地抑制,而非远端故障诊断。

复用事件不是维修回执

被抑制路由的罚值会继续衰减。低于复用阈值后,设备可以重新考虑该路由。这项变化能证明本地计数器在某个时间越过了配置边界,但阈值不会携带维修对象。

它没有说明接口是否被更换、策略循环是否结束或攻击者是否失去访问权,也没有证明路由最终被选中、写入 FIB 或成功承载报文。RFC 4271 区分接收路由、本地选择和对外通告;数据平面还包含更多环节。

RFC 7196 提出的“只计算、不抑制”模式允许运营者在不移除可达性的情况下把罚值模型与原始更新流对照。这能帮助判断改善到底来自变化减少,还是来自过滤器把路由藏了起来。

来源