网络服务提供商 Cloudflare 日前发布博客分享关于近期出现的某起边界网关协议 (BGP) 路由泄露的细节,此次路由泄露事件持续 25 分钟、影响 IPv6 流量并导致明显的拥塞、丢包以及大约 12Gbps 的流量丢失。
BGP 系统帮助自治系统 (AS) 在不同网络间路由数据,这些自治系统通过互联网上较小的网络将数据发送到目的地,而此次路由泄露事件由意外的策略配置失误引起,影响 Cloudflare 客户之外的外部网络。
在博客中 Cloudflare 表示:
在 1 月 22 日的路由泄露事件中,我们造成类似的路由泄露,我们从部分同行那里获取路由并将其重新发送到位于美国迈阿密的其他同行和提供商。
根据 RFC7908 中的路由泄露定义,我们在互联网上造成了 3 型(跨对等体泄露)和 4 型(向对等体泄露提供商路由)路由泄露的混合情况,问题发生原因则是策略变更,本来这个策略变更是用于阻止迈阿密发布波哥大的 IPv6 前缀。
由于删除特定前缀列表使得导出策略变得过于宽松,这允许路由类型内部匹配接受所有内部 (iBGP) 的 IPv6 路由器并将其导出到外部。
因此 Cloudflare 在骨干网内部重新分发所有的 IPv6 前缀都符合这个策略,然后自动化系统就将其通告给位于迈阿密的所有 BGP 邻居 (也就是影响这些同行的路由)。

路由泄露可能带来的影响:
当自治系统违反无谷原则(Valley-free Routing),错误将一个对等体或提供商学习到的路由通告给另一个对等体或提供商时就会发生 BGP 路由泄露,也就是流量被发送到原本不应该承载这些流量的网络中。
路由策略本身都是各大提供商精心优化后的结果,将流量发送到本不该承载的网络中就可能导致网络拥塞、丢包或者使用次优路径,而当防火墙过滤器仅允许来自特定提供商的流量通过时,异常的流量就会被完全丢弃。
无谷原则描述了路由应该如何根据网络之间的业务关系进行传播,当这些规则被违反时,流量就会被吸引到无法通过更长或者不稳定的路径中承载。
除了导致网络拥塞、丢包和流量被丢弃外,此类事件还可能存在安全隐患,即导致流量经过未经授权的提供商时可能会被提供商拦截或分析其中的数据包。
Cloudflare 的自我反省:
此次问题出现后不久就被检测到,随后 Cloudflare 工程师手动撤销配置并暂停自动化流程,在 25 分钟内阻止问题造成的影响,之后触发问题的代码更改也被直接撤销。
Cloudflare 称这起事件与 2020 年 7 月发生的另一起 BGP 泄露类似,Cloudflare 将采取措施避免再次出现类似问题,拟议的措施包括增加严格的基于社区的出口保障措施、对策略错误进行 CI/CD 检查、改进早期检测、验证 RFC9234 以及促进 RPKI ASPA 的采用等。