2019年7月3日星期三

Cloudflare大规模网络故障

  7月2日晚,提供CDN服务、DNS等服务的知名网站Cloudflare在全球许多地区出现网络错误,使用Cloudflare服务网站的有可能出现"502网关错误"(502 Bad Gateway)等情况,受互联网基础设施服务提供商Cloudflare故障影响,有许多网站遭遇了宕机,访问时提示502网关错误。

  事后,Cloudflare 首席执行官Matthew Prince表示,本轮宕机事件并非黑客DDOS攻击所引发,而是服务器超载了。"由于 Cloudflare Web Application Firewall(WAF)服务中的一个 bug 导致,这个错误让 CPU 的使用率大幅攀升,导致主系统和备份系统出现了崩溃,并让用户网站碰到了 502 错误;因此,Cloudflare暂时关闭了部分 WAF 的功能,解决了导致问题的 bug,并且重新将 WAF 服务上线。"

  Cloudflare在官方博客也解释了整个事件的来龙去脉,博客全文如下:

  Cloudflare全球大规模502错误事件说明:由于软件部署不当导致服务中断

  北京时间7月2号21点52分左右开始持续约30分钟,全球访问CloudFlare站点的用户收到了502错误,这些错误是由于Cloudflare网络上的CPU使用率急剧上升造成的。此CPU峰值是由于上线了错误配置引起的。在回滚配置完成重启后,服务恢复正常运行,所有使用CloudFlare的域名恢复正常流量水平。

  这不是一次攻击事件(不是一些人推测的那样),我们对这起事件的发生感到非常抱歉。内部团队正在开会,CTO(John Graham-Cumming)写了宕机分析这是如何发生的,以及后续如何防止这种情况再次发生。

  此次全局中断的具体原因:发生在常规部署更新新的CloudFlare WAF管理的规则期间,在CloudFlare Web应用程序防火墙(WAF)中部署了配置错误的规则,其中一个规则包含有一个正则表达式,导致节点100%CPU占用。

  因为WAF规则是由自动化测试套件在模拟模式下进行,它顺利通过了测试,并被一次性同步推送全球CDN节点上应用部署,因此导致全球集群机器上的CPU峰值达到100%。这100%的CPU峰值最终导致了大量用户访问时看到的502错误。在最糟糕的时候,覆盖了总体流量的82%。

  这样的事件对客户造成了巨大的伤害,已有的自动化测试过程的不完善,我们持续审查和改进已有测试-部署过程,以避免将来发生这样的事件。