东亚银行、岚图汽车带你解锁 AIGC 时代的数字化人才培养各赛道新模式! 了解详情
写点什么

史上最大服务中断事故复盘:全球互联网流量下降 3.5% 只因一次配置错误?

  • 2020-09-08
  • 本文字数:2697 字

    阅读完需:约 9 分钟

史上最大服务中断事故复盘:全球互联网流量下降3.5%只因一次配置错误?

近日,美国互联网服务提供商 CenturyLink 因数据中心的错误配置导致多个网站受到影响。据了解,这次事故是 BGP 路由配置错误引起的连锁反应,受到影响的服务包括 Cloudflare、AWS、Garmin、Steam、Discord 和 Blizzard 等。



Twitter 用户吐槽服务中断


在此次事故中受到严重影响的 Cloudflare 表示:“CenturyLink 的向外传播问题导致全球互联网流量下降了 3.5%,这将是有史以来最大的互联网中断之一。”最终,CenturyLink 花了 7 个小时才解决了这个问题。


为什么会出现这次事故呢?Cloudflare 官方博客发布了文章来复盘此次事故,下面我们就一起来看看吧。

服务器上的错误数量激增,服务开始大面积出现问题

当天上午 10:03(世界标准时间),Cloudflare 监管系统开始观察到客户原始服务器上的错误数量有所增加。结果显示为“错误 552”,代表从 Cloudflare 网络连接、到客户托管应用程序的各个位置,开始大面积出现问题。


除 CenturyLink/Level (3) 之外,Cloudflare 还同时与其他众多大型网络服务供应商保持对接。在发现某一家网络服务供应商的设施错误量增加时,系统会自动尝试经由其他供应商访问客户的应用程序。凭借这种故障转移机制,即使某家供应商遭遇问题,一般也可以继续正常路由流量。



Cloudflare 接入的各家网络供应商


因此,当 522 错误数量开始增加的几秒钟之后,Cloudflare 的系统开始自动将流量由 CenturyLink/Level (3) 重新路由至其他备用网络供应商处,包括 Cogent、NTT、GTT、Telia 以及 Tata。



上图为 Cloudflare 网络与所对接的各网络服务供应商之间的六条核心一级主干网络之间的流量。红色部分代表 CenturyLink/Level (3) 流量,该流量在故障期间降至接近于零。



上图为故障事件发生期间网络上出现的总计 522 错误数量。10:03 起,急剧上升的部分为 CenturyLink/Level (3) 网络错误数量。当时,自动化系统立即开始重新路由并将流量均衡至其他各网络服务供应商处。通过此举,错误数量减少了一半,随后又通过针对新路径的优化而进一步降低至峰值水平的 25%。


在 10:03 至 10:11 期间,系统自动在 48 座城市中禁用了 CenturyLink/Level (3),并通过其他网络服务供应商重新路由流量。为了防止级联故障,系统在转移流量之前会考虑到其他服务供应商的网络传输容量。正因为如此,自动化故障转移并非在各个位置同步进行。与此同时,Cloudflare 团队又采取其他手动缓解措施,保证将错误数量再减少 5%。

那么,问题可能源自何处?

事故发生的真正原因可能只有 CenturyLink/Level(3) 发布最终取证报告之后才能明确,但通过 BGP 公告中的线索以及中断期间的影响传播,我们可以做出推测。BGP 是指边界网关协议,即互联网上的各路由器如何相互通报其后的 IP 地址,及其接收传输流量的具体方式。


从 10:04 开始,互联网上出现了大量 BGP 更新。BGP 更新,代表着由路由器发出的、原有路由已经发生更改或不再可用的指示信号。在正常情况下,互联网上每 15 分钟会出现 1.5 MB 到 2 MB 大小的 BGP 更新流量。但在事件开始之后,BGP 更新的规模激增至每 15 分钟超过 26 MB,而且在此次故障期间始终保持在较高水平。



资料来源:http://archive.routeviews.org/bgpdata/2020.08/UPDATES/


这些更新表明,CenturyLink/Level(3) 主干网内部的 BGP 路由很不稳定。问题是,这种不稳定从何而来?通过 CenturyLink/Level(3) 状态更新中的一点线索,加上一项 flowspec 更新中显露的端倪,我们似乎可以做出大胆猜测。


在 CenturyLink/Level(3) 的更新通报中,提到引发此次问题的根源在于错误的 Flowspec 规则。那么 Flowspec 是什么?它是 BGP 的扩展,允许使用 BGP 在网络之内甚至是网络之间轻松分发防火墙规则。Flowspec 是一款功能强大的工具,可以帮助用户几乎即时在整个网络之上高效推送规则。在尝试快速对网络攻击等事件做出响应时,这种推送能力当然非常重要;但在另一方面,如果出现了错误,那么这些错误也将被快速传播到网络中的各个角落。


Cloudflare 的发展历程中也曾使用 Flowspec 推送防火墙规则,借此缓解例如大型网络层 DDoS 攻击等极端事件。但是在 7 年前,Cloudflare 遭遇到由 Flowspec 造成的停机,于是决定不再亲自使用 Flowspec。


我们推测 CenturyLink/Level(3) 到底经历了什么。一种可能的情况是,他们发出了 Flowspec 命令,尝试阻止针对当前网络的攻击或其他滥用行为。状态报告表明,Flowspec 规则阻止了 BGP 本体的正常发布。现在无法知悉 CenturyLink/Level(3) 到底编写了怎样的 Flowspec 规则,唯一可以肯定的就是这是一条 Juniper 格式的规则,会阻止其网络上的所有 BGP 通信。


route DISCARD-BGP {match {protocol tcp;destination-port 179;}then discard;}
复制代码


另外,在此次事件中,全局 BGP 更新始终保持在较高水平的原因仍旧是个谜。如果说 Flowspec 规则阻止了 BGP,那么更新公告刚开始会有所增加,而后又逐步恢复正常才对。


一种可能的解释是,有问题的 Flowspec 规则正好接上了一条长长的 BGP 更新清单的结尾。如果情况真是如此,那么 CenturyLink/Level(3) 网络中的每个路由器都将接收到 Flowspec 规则,进而开始阻止 BGP 更新,也就是停止接收规则。各中山路将重新启动,遍历所有 BGP 规则,直到再次运行到存在问题的 Flowspec 规则为止——这时,BGP 将再次被丢弃,后续 Flowspec 规则无法正常接收。整个循环一次又一次重复,而每过一轮周期,CenturyLink/Level(3) 网络中的 BGP 更新队列都会持续增加。这个问题有可能已经导致路由器的内存与 CPU 发生过载,并给在线网络恢复带来一系列额外的挑战。

为什么修复时间这么长?

Cloudflare 的服务中断问题是在四个小时之后才得到解决的,为什么这次修复时间这么长?


首先,出现故障的原因不明,Cloudflare 只是依据故障事件作出了相关的推测,可能是由于 Flowspec 以及大量 BGP 更新给其路由器带来了巨大负担,导致 CenturyLink/Level(3) 运营人员难以登录设备接口。所以,在 CenturyLink/Level(3) 的请求下,其他几家一级网络供应商也纷纷采取行动,取消各方之间的对等网络。这一做法限制了 CenturyLink/Level(3) 网络接收到的 BGP 公告数量,帮助他们争取到了宝贵的时间窗口。


其次,存在问题的 Flowspec 规则可能并非由 CenturyLink/Level(3) 发布,而是来自他们的某位客户。目前不少网络服务供应商都允许 Flowspec 对等传播。对于希望阻止攻击流量的下游客户来说,这无疑是一种强大的工具;但一旦出现问题,对违规 Flowspec 规则的追踪也变得更加困难。


最后一点是 CenturyLink/Level(3) 拥有极为庞大且复杂的网络体系,因此故障可以说是一刻不停地出现。


相关链接:


https://blog.cloudflare.com/analysis-of-todays-centurylink-level-3-outage/


2020-09-08 14:151950

评论

发布
暂无评论
发现更多内容

音色逼真、韵律自然的AI人声克隆限时福利!

阿里云视频云

云计算 视频云

UltraCompare 23 for Mac文件比较工具

展初云

Mac 文件对比工具 UltraCompare

Red Giant Trapcode Suite for Mac中文版 红巨星粒子插件

加油,小妞!

红巨星粒子插件 Red Giant Trapcode Suite

Mac看图软件:XnViewMP for Mac

加油,小妞!

看图软件 XnViewMP

2023 CCHIO | 共襄盛会,为肿瘤防治创新发展贡献觅健力量

联营汇聚

做好数据治理,推动国有企业数据资产化加速落地!

用友BIP

数据治理 数据资产入表

协同办公零代码领先实践之企业用品管理

用友BIP

协同办公

数据库系统概述之常用数据库

小齐写代码

简单的剪贴板工具 PasteNow中文激活版

胖墩儿不胖y

Mac软件 剪切板工具 剪切板软件

Trapcode Suite for Mac(红巨星粒子插件) 2024.0.2激活版

展初云

Mac 3D粒子插件 红巨星粒子插件 Red Giant Trapcode Suite

PasteNow for mac(剪贴板工具)

展初云

Mac软件 剪切板工具

和小伙伴们仔细梳理一下 Spring 国际化吧!从用法到源码!

江南一点雨

Java spring

2024广州国际热流道系统及应用技术展览会

吹吹晚风

提升编程效率:软件工程师必备的10个Git命令

南城FE

git 前端 软件工程 后端 代码

2024深圳国际触控面板及技术展览会

吹吹晚风

第八期 |《实时洞察 智能运营一用友企业绩效管理白皮书》解读

用友BIP

企业绩效

服务器如何搭建虚拟主机

Geek_f19a80

服务器

app小程序开发的重点在哪里?|企业软件定制网站建设

Geek_16d138

小程序开发 软件定制 app定制开发

iOS信号量造成线程优先级反转 | 京东云技术团队

京东科技开发者

ios 优先级反转 企业号11月PK榜 ios信号

PDF转Word,1行Python代码就够了,免费用

程序员晚枫

Python PDF word 自动化办公

2024深圳国际电子薄膜开关及面板展览会

吹吹晚风

测试人员在 Scrum 中的角色是什么?

敏捷开发

项目管理 Scrum 敏捷开发 自动化测试 bug管理

发挥云计算潜力:Amazon Lightsail 与 Amazon EC2 的综述

亚马逊云科技 (Amazon Web Services)

云计算 API Amazon EC2 VPS Amazon Lightsail

Vue3设计思想及响应式源码剖析 | 京东物流技术团队

京东科技开发者

Vue 前端 源码阅读 VUE 3.0 源码 企业号11月PK榜

2024深圳国际新能源汽车功率半导体技术展览会

吹吹晚风

如何打破资产盘点壁垒,用友BIP资产云来支招!

用友BIP

资产盘点

史上最大服务中断事故复盘:全球互联网流量下降3.5%只因一次配置错误?_服务革新_核子可乐_InfoQ精选文章