5月20日发生BGP更新消息配置错误导致全球互联网路由不稳定事故

摘要:

据网络技术博客 Benjojo 发布的消息,2025 年 5 月 20 日 07:00 (UTC+0000,下同) 发生一起因 BGP 协议配置错误导致的全球互联网路由不稳定事件,这起时间影响大约 100 个 AS 自治系统,受影响比较严重的包括埃隆马斯克的星链、字节跳动、迪士尼、UpCloud、Zscaler 等。

事件概述:

5 月 20 日早上 7 点,一个错误的 BGP 消息被传播并触发两个主要 BGP 系统 (运行在 Juniper 和 Arista 设备上的软件) 的异常行为,这导致多个互联网连接的 BGP 会话自动关闭,造成互联网路由出现不稳定例如数据传输路径频繁变化,某些网络可能短暂失去连接导致用户无法访问网站或应用程序。

错误原因:

研究人员通过监控 BGP 数据的工具 bgp.tools 发现问题根源是一个普通的 BGP 更新消息,这条消息涉及 / 16 网络前缀 (用于自定义网络地址范围的方式),但这条消息包含不寻常且损坏的 BGP Prefix-SID 属性。

BGP Prefix-SID 属性通常只在内部网络 (这里的内部网络指的是互联网公司自己的 AS 自治系统) 中使用,该属性帮助网络管理员控制数据在内部网络的传输路径,可以定义数据如何在单一网络内到达目的地。而 BGP Prefix-SID 出现在全球互联网 BGP 更新中非常罕见,更糟糕的是这条消息的 BGP Prefix-SID 属性内部数据全部都是 0x00 也就是无效数据。

109150.png

不同网络设备对这条消息的反应:

正常情况下部分设备例如运行 IOS-XR 的思科设备或者诺基亚 SR-OS 设备遵循 RFC7606 BGP 错误容忍标准,可以直接过滤这条错误消息,因此运行这些设备的网络没有受到影响。

而运行瞻博网络 (Juniper 设备,使用 JunOS 系统) 没有正确过滤掉这条错误消息并且继续传播,Arista 设备 (运行 EOS 系统) 在接收这条错误消息 (可能来自于瞻博设备) 后会自动重置与对方的连接,导致网络中断。

许多互联网骨干网络使用瞻博网络的设备导致这次错误被广泛传播,影响连接到瞻博网络的 Arista 设备,此次网络中断可能持续了 10 分钟。

谁发送了错误消息:

根据 bgp.tools 的存档数据,研究人员发现几个可能的 AS 自治系统与此次错误有关,这些网络是:

  • AS9304 香港和记环球电讯

  • AS135338 Starcloud Information Limited

  • AS151326 DCConnect Communication Pte. Ltd.

  • AS138077 PT Abhinawa Sumberdaya Asia,印尼

进一步分析发现 AS151326 和 AS138077 的路由中没有这个错误属性,说明问题可能出在 AS9304 和 AS135338,其中 bgp.tools 已经从 AS151326 和 AS138077 中捕获受影响的前缀路由,这意味着 BGP Prefix-SID 属性可能是在数据传输中途被某个中间网络添加的。

也就是说发送 AS151326 和 AS138077 发送的消息没有问题,发送的消息经过 AS9304 或 AS135338 时被错误添加了 BGP Prefix-SID 属性而且包含无效数据,不过现在无法确定到底是哪家公司添加的错误数据。

由于和记环球电讯的 AS9034 位于大量互联网交换机上,这进一步加剧了错误消息带来的影响,错误消息还被发送到通常运行 bird 的 IX 路由服务器,bird 并不支持 BGP SID 属性,于是错误消息未经过过滤就会发送到许多 TB 级别的互联网交换机,这导致混乱蔓延到互联网传输会话之外的领域。

哪些网络受到影响:

目前很难确定到底哪些网络受到影响,不过事后观察此事件发生时互联网路由的剧烈变化,研究人员估计大约有 100 个网络受影响,其中高可信度受影响的网络包括:

  • SpaceX Starlink AS14593:星链卫星互联网

  • Zscaler AS62044/AS53813:一家云安全公司

  • Bytedance AS396986:字节跳动

  • 迪士尼全球服务 AS23344:迪士尼的网络服务

  • Nagasaki Cable Media Inc AS10000:长崎有线媒体,一家日本有线电视网络

  • UpCloud AS202053:云计算服务

  • Netskope AS55256:网络安全服务

  • Teleguam Holdings AS9246:关岛电信

正常情况下 bgp.tools 每秒接收 2 万~3 万条 BGP 消息,但在此次事件发生期间,平均 10 秒内每秒收到的消息高达 15 万条,这表明互联网路由出现严重的混乱。

为什么会出现这种问题:

1.JunOS 系统:瞻博网络设备虽然有错误容忍设置,但只检查消息的部分内容,允许损坏的数据继续传播给其他网络。

2.Arista 的 EOS 系统:在收到错误消息时直接重置连接,而不是忽略或过滤,导致网络中断。

3. 这也证明了 BGP 系统的脆弱性,没人知道这条错误 BGP 消息到底是怎么发出来的,但错误消息被大范围传播。

结束语:

此次事件虽然持续时间较短,但也暴露了互联网基础设施在错误处理上的不足,即便只存在 10 分钟的影响,放在全球范围内也是个严重的网络事故。

作者呼吁网络设备制造商需要改进 BGP 错误处理机制加强错误过滤,鼓励更多网络运营商与 bgp.tools 分享数据以便更快发现和解决此类问题。

我们在FebBox(https://www.febbox.com/cnbeta) 开通了新的频道,更好阅读体验,更及时更新提醒,欢迎前来阅览和打赏。
查看评论
created by ceallan