`
up2pu
  • 浏览: 218599 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【翻译】为什么今天谷歌无法访问以及互联网工作原理

阅读更多
原文地址:http://blog.cloudflare.com/why-google-went-offline-today-and-a-bit-about

为什么今天谷歌无法访问以及互联网工作原理

今天,部分谷歌服务出现故障长达27分钟。问题原因比较复杂,涉及到互联网隐蔽的角落。我是CloudFlare的网络工程师,在帮助谷歌回复服务中发挥了一些作用。下面我就讲讲都发生了什么。

太平洋时间下午6:24 / 通用协调时间 02:24(太平洋时间2012.11.5 / 通用协调时 2012.11.6) ,CloudFlare员工宣布谷歌服务无法访问。我们使用谷歌的邮件应用,所以当我们无法访问服务时,很快发现这个问题。我是网络工程组的,所以马上开始检查是本地问题,还是谷歌服务问题。

解决问题过程
我迅速意识到已经无法访问谷歌所有的服务,甚至谷歌的公共DNS服务器8.8.8.8,所以我开始检查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,谷歌的是15169。网络由Border Gateway Protocol(BGP)互联。BGP是互联网胶水——负责管理哪个IP属于哪个网络以及建立一个AS到另外一个AS的路由。互联网路由就像它听起来的那样:一个AS的IP地址到另外一个AS的IP地址之间的路径。

BGP是一个高可靠的系统。每个网络都相信对方说的IP,以及它们背后的网络。当你通过网络发送一个数据包或者一个请求时,你的ISP连接到它的上层提供者找到一条到目的网络的最短路径。

不幸的是,如果一个网络把一个不属于它的IP或者网络声明为它自己的,并且它的上层服务信任它,那么路由就会出现错误。这里出现的就是这个错误。

我检查了谷歌IP地址的BGP路由。路由经过Moratel(23947),一个马来西亚ISP。我查看的是从加利福尼亚出发的路由,谷歌的数据中心离我们办公室不远,所以数据包不应该经过马来西亚。最可能的原因就是Moratel声明了一个不属于它的网络。
BGP路由如下:
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,也是同样的错误路径:
tom@edge01.sfo01> show route 8.8.8.8 

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


路由泄露
这种情况业界叫做“路由泄露”,路由在正常路径泄露了。这不是没有发生过。谷歌原来也经历过类似的事情,巴基斯坦宣布审查YouTube上的视频内容,巴基斯坦国家ISP不再对服务IP提供路由。不幸的是,他们把空路由泄露了出去。巴基斯坦电信的上层服务商PCCW信任巴基斯坦电信发送的内容,然后路由就在网络上传播开了。结果是,YouTube两个小时无法访问。

今天的情况类似。Moratel的某个人修改了互联网路由。它的上层服务商PCCW信任Moratel发送的路由信息。然后,错误的路由信息迅速蔓延。这不太可能是蓄意的,但却是BGP信任模型可能由错误配置导致失败的证据。

解决方案
解决方案就是让Moratel停止声明错误的路由。作为一个网络工程师,尤其是像CloudFlare这样的大网络,与世界各地其他网络工程师都有联系。当我指出这个问题时,我联系了Moratel的同事,让他们知道发生了什么。他在太平洋时间下午6:50 / 通用协调时间2:50修复了该问题。三分钟后,路由恢复正常,谷歌服务也恢复正常。

通过查看节点地图,我估计3-5%的网民受到了影响。影响最严重的是香港,在那里PCCW是主要提供商。如果你在那段时间无法访问谷歌服务,现在你知道为什么了。

构建更好的互联网
这些都是互联网是一个基于信任系统的遗留问题。今天的事件表明,即使你像谷歌一样强大,你无法控制的因素也会影响用户访问你的网站。所以,组建一个网络工程师团队监控路由和管理连接是非常重要的。CloudFlare每天保证我们的客户得到最优的路由。我们检测我们网络上所有网站以保证获得尽可能快的传输服务。

更新:太平洋时间 11月6日 11:00 星期二
Moratel说是异常的硬件故障导致的。这不是故意的。在检测硬件故障的同时,Moratel立即关闭了与谷歌连接的BGP节点。
0
2
分享到:
评论

相关推荐

    云计算的原理分析.docx

    云计算的原理分析 微软推出了Windows Live SkyDrive,并已经在互联网上全面进行测试,虽然容量仅仅为500MB,但是毕竟是免费的,使用的人数量极为可观。 随着网络的日益普及,"网络存储"这样的服务也日益深入人心,...

    基于android的学生信息管理系统计算机毕业设计论文

    手机终端上,让手机能够通过移动网以及互联网访问 Web 网站并处理各种各样的业务。 因此,智能手机的应用软件及其需要的服务将有广阔的发展前景。 在如今这个智能手 机系统群雄纷争的时候,2008 年 Google 推出了一...

    基于Android平台的3G气象软件设计与实现.doc

    为了让智能手机用户能够随时随地查询互联网所提供的服务,一种高效的办法就是将应用系统的功能拓展到手机终端上,让手机能够通过移动网以及互联网访问Web网站并处理各种各样的业务。因此,智能手机的应用软件及其...

    基于MVC的JavaScript.Web富应用开发

    互联网的工作原理和上面的过程很类似。不同的是,现实世界中由街道连接起来的楼房和公 寓,在互联网世界中被路由器和网线连接起来的计算机所取代。每一台计算机都有一个唯一的地 址,让网络可以定位到它。 多个公寓...

    iTechPoll for Google Slides-crx插件

    工作原理1.创建新的Google幻灯片演示文稿或打开现有的演示文稿。 2.登录到您的iTechPoll帐户。 3.提出您想问听众的问题。 4.在您的Google幻灯片演示文稿中插入民意测验问题。 5.邀请访问者访问您独特的网页来加入...

    电子商务与云计算的关系.docx

    云计算的原理 云计算是采用庞大分散的计算机客户端进行计算,取代原本在本地计算机或者远程服务器展开计算的旧方法,使得企业能根据自身需求访问数据中心,这样计算能力就能像商品一样通过互联网渠道进行流通 从形式...

    计算机前沿技术--云计算.doc

    "云计算"带来的就是这样一种变革——由谷歌、IBM这样的专业网络公司来搭建计算机 存储、运算中心,用户通过一根网线借助浏览器就可以很方便的访问,把"云"做为资料 存储以及应用服务的中心。 (一)原理: 云计算...

    [详细完整版]云计算文档.doc

    云计算的基本原理是, 通过使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器中,企业数据 中心的运行将更与互联网相似。这使得企业能够将资源切换到需要的应用上,根据需求 访问计算机和存储系统。 2...

    搜索引擎实验报告.docx

    随着计算机的普及以及信息工程的日益发展,从网上获取信息已经成为人们的日常生活和工作一个重要途径,互联网如今已成为一个资源不断丰富的平台,整个互联网逐渐成为一个信息量超大的资源存储空间。 因此怎样有效而...

    hover-paywalls-browser-extension:Hover是开放源代码的浏览器扩展程序,可绕过付费墙并阻止广告

    在此处了解其工作原理: : 安装 本地下载: 谷歌浏览器 以下载此。 解压缩该文件,您应该有一个名为hover-extension-master的文件夹。 在Chrome浏览器中,转到扩展程序页面( chrome://extensions )。 启用...

    大数据技术初探.docx

    MapReduce的工作原理是先分后合的数据处理方式。Map即"分解",把海量数据分割成若干部分,分给多台处理器并行处理;Reduce即"合并",把各台处理器处理后的结果进行汇总操作,以得到最终结果。用户只需要提供自己的...

    物联网与云计算的联系与发展.pdf

    云计算这个概念产生的背景, 也至少有两个因素, 一是存在用户对大规模计算能力的 需求,比如随着社交类、视频类访问量的激速增长,如何有效地为如此巨大的用户群体服 务,让他们参与时能够享受方便、快捷的服务,...

    asp.net知识库

    为ASP.NET封装的SQL数据库访问类 DataTable.Select方法的性能问题 .NET 2.0里使用强类型数据创建多层应用 ADO.NET实用经验无保留曝光 有了System.Data.IDataReader,一切皆成数据 理解DataSet的数据缓存机制 存储过程...

    Android智能手机天气预报系统设计及实现

    摘要:在分析讨论Android 应用系统设计原理的基础上,提出了Android 智能手机天气实况预报系统用户界面以及获取并解析城市列表数据的设计方法,给出了在用户界面上呈现列表数据的设计过程,实现了一个简单的Android ...

    消费电子中的Android智能手机天气预报系统设计及实现

    摘要:在分析讨论Android 应用系统设计原理的基础上,提出了Android 智能手机天气实况预报系统用户界面以及获取并解析城市列表数据的设计方法,给出了在用户界面上呈现列表数据的设计过程,实现了一个简单的Android ...

    Net Usage Item-crx插件

    该扩展程序的工作原理是自动登录到ISP的使用情况页面并提取您的每月使用情况信息。 您需要将用户名和密码提供给您的ISPs Web门户。 有关支持的ISP的完整列表,请访问netusage网站。 权限说明:*您所有网站上的数据都...

    净使用物品「Net Usage Item」-crx插件

    谷歌Chrome的互联网使用扩展。 净使用情况是一个小部件,可让您知道还剩多少互联网使用配额。它主要支持澳大利亚的ISP,而在这些情况下,您通常会受到每月下载量的限制。该扩展程序的工作原理是自动登录到ISP的使用...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    综上所述,“认我测”在线认证检测系统,率先填补了认证检测领域移动端的空缺,提供了Web浏览器+移动端的双端访问模式,给用户提供了多种访问途径,真正实现了用户和检测机构的随时随地在线下单检测。 关键词:...

    话语:社区讨论的平台。 免费,开放,简单

    如果您熟悉Rails的工作原理,并且可以轻松设置自己的环境,则还可以尝试《 ,该主要针对Ubuntu和macOS环境。 在开始之前,请确保您具有以下最低版本: , , 。 如果您遇到问题,请先参阅我们的《 !建立话语如果您...

    JAVA上百实例源码以及开源项目源代码

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

Global site tag (gtag.js) - Google Analytics