从谷歌宕机事件认识互联网工作原理

今天,谷歌服务器经历了短暂的宕机事件,持续大概27分钟,对部分地区的互联网用户造成了影响。此次事件的原因深究起来需要进入互联网络那深邃的、黑暗的角落。我是CloudFlare公司的一名网络工程师,在帮助谷歌从此次宕机中恢复回来提供了一臂之力。下面就是事情发生的过程。

大约在太平洋标准时间2012年11月5号下午6:24分/时间标准时间2012年11月6号凌晨2:24分,CloudFlare的员工发现谷歌的服务中断了。我们使用谷歌的电子邮件等服务,所以,当它的服务不正常时,办公室的人会很快发现。我在网络技术小组工作,因此我立刻接上网络查看是什么情况——是局部区域问题还是全球问题。

问题排查

我很快就意识到,所有谷歌的服务我们都不能连接上——甚至包括连接 8.8.8.8,谷歌的公共DNS服务器——于是,我从追查DNS开始。

dig +trace google.com

下面是我在探测Google.com的域名服务器时得到的回复:

google.com. 172800 IN NS ns2.google.com.

google.com. 172800 IN NS ns1.google.com.

google.com. 172800 IN NS ns3.google.com.

google.com. 172800 IN NS ns4.google.com.

;; Received 164 bytes from 192.12.94.30#53(e.gtld-servers.net) in 152 ms

;; connection timed out; no servers could be reached

无法探测到任何服务器的结果证明确实有什么地方出了问题。尤其是,这意味着从我们的办公室将连接不到任何的谷歌DNS服务器。

我开始网络层查找问题,看看是否是在这个通信层出了问题。

PING 216.239.32.10 (216.239.32.10): 56 data bytes

Request timeout for icmp_seq 0

92 bytes from 1-1-15.edge2-eqx-sin.moratelindo.co.id (202.43.176.217): Time to live exceeded

这里出现了奇怪的信息。通常,我们不应该在谷歌的路由信息中看到一个印度尼西亚的网络服务提供商(Moratel)的名字。我立即进入一个CloudFlare的路由器中查看发生了什么事。与此同时,Twitter上世界其它地方的报告显示了我们并不是唯一遇到问题的地方。

互联网路由

为了理解是出了什么问题,你需要知道一些互联网是如何工作的基础知识。整个互联网是由很多的网络组成,这些网络被称为是“自治系统(AS)”。每个网络都有一个唯一的数字来标志自己,被称为AS号。CloudFlare的AS号是13335,谷歌的AS号是15169。各个网络通过一种叫做边缘网关协议(BGP)的技术互相连接。边缘网关协议被称为是互联网的粘合剂——由它来声明哪个IP地址属于哪个网络,由它来建立从某个自治网络到另外一个自治网络的路由。一个互联网“路由”跟这个词的表意完全一样:由一个自治网络里的IP地址到另外一个自治网络里的另一个IP地址的路径。

边缘网关协议是基于一个相互信任的体制。各个网络基于信任的原则告诉其它网络哪个IP地址属于哪个网络。当你发送一个数据包,或发送一个穿越网络的请求,你的网络服务提供商会联系它的上游提供商或对等提供商,询问它们从你的网络服务提供商到网络目的地,哪条路线最近。

不幸的是,如果当一个网络发出声明说某个IP地址或某个网络在它的内部,而事实不是这样,如果它的上游网络或对等网络信任了它,那么,这个数据包最终将会迷路丢失。这里发生的就是这个问题。

我查看了边缘网关协议传递的谷歌IP的路由地址,路由指向了Moratel (23947),一个印度尼西亚的网络服务提供商。我们的办公室在加利福尼亚,离谷歌的数据中心并不远,数据包绝不应该经过印度尼西亚。很有可能是,Moratel声明了一个错误的网络路由。

当时我看到的边缘网关协议发来的路由是:

p>tom@edge01.sfo01> show route 216.239.34.10

inet.0: 422168 destinations, 422168 routes (422154 active, 0 holddown, 14 hidden)

+ = Active Route, - = Last Active, * = Both

216.239.34.0/24 *[BGP/170] 00:15:47, MED 18, localpref 100

AS path: 4436 3491 23947 15169 I

> to 69.22.153.1 via ge-1/0/9.0

我查看了其它路由,比如谷歌的公共DNS,它同样被劫持到了相同的(不正确的)路径:

inet.0: 422196 destinations, 422196 routes (422182 active, 0 holddown, 14 hidden)

+ = Active Route, - = Last Active, * = Both

8.8.8.0/24 *[BGP/170] 00:27:02, MED 18, localpref 100

AS path: 4436 3491 23947 15169 I

> to 69.22.153.1 via ge-1/0/9.0

tom@edge01.sfo01> show route 8.8.8.8

路由泄漏

像这样的问题在行业内被认为是起源于“路由泄漏”,不是正常的,而是“泄漏”出来的路由。这种事情并不是没有先例。谷歌之前曾遭受过类似的宕机事件,当时推测是巴基斯坦为了禁止YouTube上的一个视频,巴基斯坦国家ISP删除了YouTube网站的路由信息。不幸的是,他们的这种做法被传递到了外部,巴基斯坦电信公司的上游提供商——电讯盈科(PCCW)信任了巴基斯坦电信公司的做法,把这种路由方式传递到了整个互联网。这个事件导致了YouTube网站大约2个小时不能访问。

今天发生的事情属于类似情况。在Moratel公司的某个人很可能是“胖手指”,输错了互联网路由。而电讯盈科,Moratel公司的上游提供商,信任了Moratel公司传递给他们的路由。很快,这错误的路由就传到了整个互联网。在边缘网关协议这种信任模式中,与其说这是恶意的行为,不如说这是误操作或失误。

修复

解决方案就是让Moratel公司停止声明错误的路由。作为一个网络工程师,尤其是像CloudFlare这样的大网络公司里工作的工程师,很大一部分工作就是和其它世界各地的网络工程师保持联络。当探明问题后,我联系到了Moratel公司的一位同事,告诉他发生了什么事。他大概在太平洋标准时间下午6:50分/世界标准时间凌晨2:50分修复了这个问题。3分钟后,路由恢复了正常,谷歌的服务重新可以工作了。

从网络传输图上观察,我估计全球整个互联网用户的3-5%收到了此次宕机事故的影响。重灾区是香港,因为那是电讯盈科的总部。如果你所处的地区在当时无法访问谷歌的服务,你现在应该知道是什么原因了。

构建更好的互联网

我说这些就是想让大家知道我们的互联网上如何在一个相互信任的机制下建立起来的。今天的事故说明,即使你是一个像谷歌这样的大公司,外部你无法掌控的因素也会影响到你的用户,让他们无法访问你,所以,一个网络技术小组是非常必要的,由他们来监控路由,管理你与世界的联系。CloudFlare公司每天的工作就是确保客户得到最佳的路由。我们照看互联网上的所有网站,确保他们的以最快传输速度提供服务。今天的事情只是我们工作内容的一个小片段。

时间: 2024-12-03 08:12:08

从谷歌宕机事件认识互联网工作原理的相关文章

谷歌宕机致全球互联网流量雪崩40%

人类社会的运转,似乎已经离不开强大的谷歌,谷歌对于全球互联网的运营,影响有多重要?美国时间8月16日下午,谷歌发生了五分钟的宕机事故,第三方专业公司的统计显示,在这个"黑色五分钟"内,全球互联网的访问流量,雪崩了40%.     谷歌这次宕机,发生在下午3点50分到3点55分之间.该公司表示,故障涉及了网络搜索.YouTube视频.Gmail.云存储等多项服务,各产品中断时间从1分钟到5分钟不等.迄今,谷歌不愿意披露宕机事故的具体原因.       根据第三方网络流量统计公司GoSqu

打错一个字母瘫痪半个互联网!亚马逊 S3 宕机事件缘由

2月28号,号称「亚马逊AWS最稳定」的云存储服务S3出现"超高错误率"的宕机事件. 接着,半个互联网都跟着瘫痪了. 一个字母造成的血案 AWS在昨天给出了确切的解释:一名程序员在调试系统的时候,运行了一条原本打算删除少量服务器的脚本,结果输错了一个字母,导致大量服务器被删.为了修复这个错误,亚马逊不得不重启整个系统(在此之前已经几年都没有重启过了),最终导致了震惊全球的Amazon S3宕机4个小时事件. 我想这名程序猿当时的表情应该是这样的 曾经有人计算过,AWS每宕机一分钟,对亚

从AWS宕机事件说开去,热闹看完该学会什么?

编者按:本文来自微信公众号"InfoQ"(ID:infoqchina),作者木环,编辑小智:36氪经授权发布. 上周二,因为一条错误指令导致的AWS 宕机事件,影响了大量流行的网站和服务.此事件对用户来说,是服务的中断:对AWS来说,是巨额的损失:对旁观者来说,是宝贵的经验. 想象一下:一个工作日的上午,你使用的云服务的可用性瞬间从平均水平跌至0:丢包率则上升到100%.作为一名用户,你会做出怎样的判断?这应该不是著名的DDoS攻击,因为在遭遇DDoS攻击时,丢包率与可用性是随着时间推

谁之过?盘点2015年上半年IT宕机事件

在互联网已经成功"挟持"我们的现在,假如未来某天早晨起床后发现,网络瘫痪,服务器宕机,我们早已习惯了的"秩序"轰然倒塌,那会是何种场景?   人始终有种不满足的心态,希望身边的一切都是完美的,但现实却总不能如愿.就像服务器,谁也不敢说能够达到100%的可靠性.然后人们就去追求99.9999%,追求99.999%,要求每年的宕机时间要少于在5.26分钟. 2015已过半,在这半年内,全球共发生了多少起宕机事件,已无法统计,但是,我们仍然希望举出我们所熟知的例子,来&q

如何降低数据中心宕机事件的影响

大多数人在生活或工作领域中都不希望出现连接中断的情况,尤其是在以数字生活方式为主的今天,所以数据中心基础设施变得越来越重要.对于许多消费者来说,他们希望自己的数字产品和服务能保持正常工作,所以当发生宕机事件时,他们就会开始抱怨甚至投诉. 以最近的航空数据中心宕机事件为例,如美国达美航空.西南航空和英国航空公司,由于一个简单的电气故障或不当的维修程序,导致服务器遭到灾难性损坏,航空公司损失数亿美元,数以万计的乘客被滞留在全球各地的机场. 这些大规模的宕机事件总能成为新闻头条,而且数据中心宕机事件比

微信出现宕机事件 谁为宕机买单

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 当微信开始成为人们移动互联网一款重要的沟通工具后,微信的宕机事件不时的发生,据最新消息,在本月22日出现的宕机事件影响的范围最为广泛,超过四成的用户不能够登录微信,这让很多用户非常郁闷,作为一款重要的通讯软件,没有实现和QQ这样的安全稳定性是腾讯之过还是电信运营商之过呢. QQ多元化服务器保证其稳定性 为什么QQ从出生之日后,特别是在发展壮大

微信“宕机”事件,暴露出微信发展过程中的某些问题

微信"宕机"事件,暴露出微信发展过程中的某些问题,比如腾讯应对危机反应速度太慢.尽管该事件对微信没造成太大的影响,但对微信团队而言,借助于这次的事件好好总结一下是应该的,毕竟快跑之后也应该喘口气. 最近发生的微信"宕机"事件无疑是微信自诞生以来最为严重的一次"危机事件",腾讯官方的解释是"市政道路建设导致网络光缆被挖断所致",然而业界对这种说法并不认可,腾讯也未对外界的质疑进行一一解释,当然,外界的说法只是猜测而已,具体原因估

诸多网站遭遇宕机事件

过去的一周,诸多网站遭遇宕机事件,并引发了的较大损失. 特别上周五,谷歌一度宕机,不仅损失数十万美元,而且也引发了全球网络流量暴跌40%:而微软的Outlook.com也宕机三天,为此微软还发布声明向用户道歉:此外,<纽约时报>网站也在上周遭遇宕机. 今天,亚马逊也未能避免"宕机"厄运. 诸多消息称,亚马逊网站今天宕机约30分钟,从美国东部时间8月19日下午2点45分开始,有用户率先发现了亚马逊网站出现宕机,大约在20多分钟后又恢复正常.此次宕机让亚马逊每分钟损失近6.7万

微信“宕机”事件:应急能力遭外界质疑

摘要: 查看最新行情 作者:王易见 微信"宕机"事件,暴露出微信发展过程中的某些问题,比如腾讯应对危机反应速度太慢.尽管该事件对微信没造成太大的影响,但对微信团队而言,借助 查看最新行情 作者:王易见 微信"宕机"事件,暴露出微信发展过程中的某些问题,比如腾讯应对危机反应速度太慢.尽管该事件对微信没造成太大的影响,但对微信团队而言,借助于这次的事件好好总结一下是应该的,毕竟快跑之后也应该喘口气. 最近发生的微信"宕机"事件无疑是微信自诞生以来最为