怎样辨别服务器是否采用BGP线路,从谷歌宕机事

作者: 澳门金莎娱乐网站  发布:2019-11-21

译者注:本文中提到CloudFlare是一家总部位于美国旧金山的内容分发网络(CDN)服务公司,由Project Honey Pot项目的三位前开发人员成立于2009年。2011年10月被华尔街日报评为最具创新精神的网络科技公司。

BGP协议的最主要功能在于控制路由的传播和选择最佳路由的路径。中国电信、中国联通、中国移动,以及一些大型第三方IDC服务提供商都具有中国互联网信息中心颁发的AS号。全国各大网络运营商的部分高质量自有网络,多数都是使用BGP协议,相互广播IP来实现各个自治域之间的多线互联。

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

  时下,运营商和第三方IDC服务提供商广泛采用BGP协议来实现AS(自治域)之间的互联,这已经成为解决当前国内南北互联互通问题的首要方法。

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

图片 1

问题排查

然而近年来,在用户在选择服务器托管或者租用服务器时,经常会见到所谓BGP双线接入这样的宣传口号。但是用户在实际的使用过程中又感受不到属于真正BGP网络的那种低延迟以及跨网络访问的体验,那么,这种所谓BGP双线是真正意义上的BGP线路么?

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

  其实,一般中小型数据中心所谓BGP双线是一种双IP双线路接入方式,即在服务器上设置一个联通或者电信IP,通过路由设备判断数据包经过电信网络,还是联通网络来发送。此方案可以在一定程度上提高联通用户与电信用户的跨网访问速度,解决单IP双线接入方式需要在服务器上设置路由的问题,但是由于采用联通或电信的IP地址,因而用户发送请求数据包时,服务器不会自动判别最好的路由。所以这种解决方案只是一种过渡形式的折中解决方案,被称为静态BGP线路。也就是说,当静态BGP中的网络结构发生变化,运营商是无法在第一时间自动调整网络设置以保障用户的体验度。而动态BGP可根据设定的寻路协议第一时间自动优化网络结构,以保持客户使用的网络持续稳定、高效。所以,动态BGP网络被称为真正意义上的BGP。

dig trace google.com

  一、BGP线路和普通线路的本质区别

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

  一个自治系统的经典定义是在一个管理机构控制之下的一组路由器,它使用IGP和普通度量值向其他自治系统转发报文。在BGP中使用自治系统这个术语是为了强调这样一个事实:一个自治系统的管理对于其他自治系统而言是提供一个统一的内部选路计划,它为那些通过它可以到达的网络提供了一个一致的描述。BGP协议是不同自治系统路由器之间进行通信的外部网关协议,作为EGP替代品。BGP系统之间交换网络的可达到信息。这些信息包括数据到达这些网络所必须经过的自治系统AS中的所有路径,通过这些信息构造自治系统链接图,然后根据全局BGP路由表,避免环路,选择最优路径。

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

  真正的BGP线路机房,均通过互联网AS(自治系统)之间的互联,这是因为BGP协议是一种在自治系统之间动态交换路由信息的协议,也就是所谓的动态BGP。

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

  二、怎样辨别服务器是否采用BGP线路?

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

  首先,了解IDC企业是否取得了AS号等硬性条件,这是BGP线路的最基本要求。其次,可以利用各种站长工具对于服务器的IP段分地区进行测试,测试结果有很高的可参考性。再次,就是在日常的使用中,BGP线路在跨网访问的时候速度的提升是很明显的,用户很容易感知到。使用BGP协议互联后,网络运营商的所有骨干路由设备将会判断到IDC机房IP段的互联最佳路由,以保证不同网络运营商用户的高速访问。

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

  用户在选择BGP机房时,一定应注意服务提供商是否符合运营BGP机房的“硬条件”——即拥有CNNIC或APNIC颁布的AS号,以及向其申请并通过BGP协议广播的IP段。如果不具备上述条件,那么提供商的网络服务往往无法到达低延迟、高度冗余的要求。即便如此用户也应该对符合上述条件的服务提供商的线路进行详细的测试,以便能够摸清其线路质量的真实情况。例如宇众网络,作为CNNIC/APNIC会员单位,拥有AS自治号,拥有大量IP段资源,其自营SonderCloud(SDC)数据中心,接入中国电信、中国联通、PCCW Global、NTT等优质国际线路,采用BGP协议智能切换,并直接接驳电信CN2专线直连大陆,使大陆客户群均享极速网络连接体验。

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

  简言之,国内号称BGP双线或者多线的IDC服务提供商大部分都是不符合上述条件的。因此有BGP线路需求的用户需要对当前的市场现状有比较清晰的认识,进一步说明就是真正的BGP双线/多线服务提供商在国内是比较有限的。

;; connection timed out; no servers could be reached

  站在行业的层面讲,期待更多的IDC服务提供商能够为广大用户提供真正的BGP线路服务,从而搭建更加快捷、稳定的商用网络环境,为互联网基础服务行业的发展做出贡献。

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

企业QQ:2850293174  杨生

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

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声明了一个错误的网络路由。

本文由金沙澳门官网发布于澳门金莎娱乐网站,转载请注明出处:怎样辨别服务器是否采用BGP线路,从谷歌宕机事

关键词: 金沙澳门官网