利用IP和BGP为Internet连通性排错

也许你对网络数据流量穿过Internet的路径没多大兴趣--直到CFO赶上了链接上的麻烦,没法和合做伙伴的网站创建链接。而在一年前,他天天都能自如的使用这个网站。CFO今天须要访问这个网站,因此你充满热情的去作排错的工做。你试着本身登录这个网站,可是失败了。你电话联系管理这个网站的公司(你很幸运,这不老是不可能的),而后公司给你的答复是在他们那一端没有出任何问题。如今,你会对数据如何从你的位置传送到这个网站、数据包如何选择路径以及问题会出在哪里更加感兴趣了吧? 正则表达式

固然,你能够联系你的网络服务提供商而后获得"咱们会作进一步调查"的答复。可是若是你无法给CFO一个解释,你将会受到责备。你最后能作的事情就是简单的说:"咱们彷佛是惟一碰到这个问题的公司,咱们的网络服务提供商正在调查中,可能要很多时间,我并不知道网络服务提供商何时才能给咱们反馈。" 数据库

信息流量怎样从A节点到达B节点呢?能够从两种角度来看这个问题:一个是从IP的观点,另外一个是从BGP的观点。若是你已经开始管理本身的BGP自治域系统,这篇文章可能不是为你所做。然而,若是你有初级的或者中级的TCP/IP知识,并且又对Internet路由机制感兴趣的话,请继续读下去。 服务器

IP的观点网络

IP的观点被直接的和BGP的观点进行对比。有层出不穷的工具能够进行IP通讯的追踪。你可使用内嵌在Windows和Linux/UNIX命令行里的标准traceroute命令;你还可使用专门的工具,例如AnologX的免费工具--HyperTrace来进行更快速灵活的追踪;还有一种选择是Visualware的VisualRoute工具,它能图形化的显示你在Internet上的IP通讯路径。你可使用它的一个试用版来追踪世界各地的Internet路由。 ide

此外,还有一种途径,你能够访问Traceroute.org 以从这个网站踪Internet上数以万计的IP路径。将这个服务和本地的标准Traceroute相结合在网络排错中是至关有用的。 工具

BGP的观点网站

从BGP的观点,追踪通信有一点点的复杂。首先,你应该明白BGP是一个基于Internet的路由选择协议。BGP是一种距离矢量型的路由协议。和咱们所熟知的基于跳数来选择最佳路由路径的RIP协议相似,BGP依靠最短的自治域系统(AS)路径来选择最佳路由。BGP的路由区域是由自治域系统号(ASN)来标示的。美国Internet数字注册机构(ARIN)除了管理IP地址的分配之外,一样也管理自治域系统号的分配。 .net

更多关于BGP计算机网络

若是你对BGP不甚了了,我强烈建议你阅读Internet Routing Architectures这本书(这本书的初版已经有了清华大学的影印版,第二版也由人民邮电出版社引进并翻译),它是BGP方面的权威参考书。 命令行

所以,你能够用IP工具来观察在哪一个地方可能出现了通讯失效。可是若是只是简单的IP地址失效该怎么处理呢?若是你想标示致使这个问题的网络服务提供商呢?若是你想了解这是Internet路由的问题仍是因为路由表的错误而致使你的WEB请求返回被发送到其余地方(而不是返回给你)了呢?深刻BGP能够回答这些问题。

要开始这些工做,你首先须要知道你在Internet上的公共IP地址。你应该可以从多种来源得到这个信息。若是你知道本身的自治域系统号,那将一样是很是有用的。若是没有的话,你必须很快的寻找出来。若是你位于一个更大型的站点,你会拥有本身的自治域系统号。或者你是和我同样用DSL 链接到网络服务提供商的。那样,你的IP地址会止于网络服务提供商的自治域系统号。利用你的公共IP地址,登录Traceroute.org。你将能从两种类型的来源里找到不少的BGP信息。

 

首先,这里有窥镜服务器。这些是运行着能够为你在BGP路由器上实施命令的软件的网络服务器。尽管有一些只能让你运行ping和traceroute命令,但其余的能让你运行BGP命令。Traceroute.org上有成百上千可用的窥镜服务器。利用这些服务器能够简化工做,由于这些服务是基于WEB的并且限制在了一部分命令上。图A展现了一个由BBC提供的窥镜服务器。

图A

注意当我选择BGP并键入IP地址后,当我点击提交按钮,我获得了图B里的输出。

图B

若是你以前历来没有看到过BGP的输出信息,那么图B里的数据可能会令你很是头大,不过你只须要该知道寻找什么。看看第2行,它告诉咱们从这个网络(BBC)到个人网络只有一条可用的路径。这是很是重要的,由于通常在个人网络和其余网络之间都会有多条路径。接着它显示了这个路由器会选择的通往你的自治域系统(引导至你的网络)的路径。第5行表示了"6461 23215"。

这些数字意味着什么?从源地址到目标地址,BGP路径被列出。因此,开头的(在这里是BBC网络,自治域系统号没有显示出来)首先通往6461号的自治域系统,而后是23215号自治域系统。个人IP地址(我最早输入的IP地址)位于这个自治域系统内。

谁是运营这些自治域系统的提供商?让咱们去ARIN的网站看看。在ARIN的网站,在主页里的寻找表单里输入6461。你会发现BBC网络首先穿过纽约White Plains的Abovenet Communications 。在那里它进入23215的自治域系统。若是咱们再次进入ARIN作一次数据库查询,咱们会看到自治域系统号是23215的网络是Megapath Networks,来自个人DSL线路从属的网络服务提供商。所以,来自BBC的通讯首先通过Abovenet,而后进入Megapath。这是一该简单的例子,可是你能够用一样的方法来检测任何的网络之间的通信

若是你有兴趣更深刻的了解BGP,你能够检验的第二种类型的来源,即TELNET可达的BGP路由服务器。他们是真正的BGP路由器,有完整的路由表,你登录后能经过它们来对BGP命令作一些限制。你要再一次去Traceroute.org 了,点击路由服务器,你会获得大约20个路由服务器的列表,每个均可用TELNET链接。

被列出的最好的路由服务器是Oregon-ix.net Route Server,可以容易的登录从而运行BGP命令。它包含了大约36个BGP对等体,超过80000条的BGP路径,和超过129000个网络的条目。利用路由服务器上的举例信息,我能够运行下面的命令

show ip bgp 64.32.205.237

而后获得列表A所示的输出结果。

就像你看到的那样,这个路由器有52条路径通往个人IP地址所在的自治域系统。其中26号路径是最佳路由(基于BGP的度量值)。你一样能够利用自治域系统号作一个BGP的正则表达式,以下:

show ip bgp regexp 23215$

这个正则表达式寻找23215号自治域系统中全部基于BGP的IP网络,我不能列出全部的输出由于有成百上千条那么长,不过列表B是这个列表的一个删节。 基本上,这个路由器有上百条所给自治域系统号的网络条目。这个命令可能在BGP路径排错中,特别是当你的自治域系统发布了更少的路由表的时候很是受用。想获取每条命令的具体做用描述,请求助于Cisco系统公司网站上的配置BGP和 BGP命令参考。更多关于BGP如何工做、BGP配置和运用BGP的显示命令的信息,请参考如下连接:

  • TechRepublic: "How to use BGP to achieve Internet Redundancy"
  • Internet Traffic Report
  • Joe's BGP Page
  • Cisco: BGP Technical Tips
  • Cisco: Internetworking Technology Overview-Border Gateway Protocol (BGP)
  • Cisco: Configuring BGP
  • Cisco: Command Reference for BGP
  • Cisco: BGP Frequently Asked Questions
  • Cisco: Using Regular Expressions in BGP
  • Cisco: BGP Case Studies

    下降失效级别

    因为Internet 是世界上最复杂的计算机网络,被数以千计的网络运营商所管理,寻求问题的解决会变得十分困难且受到时间的限制。下次你须要一些Internet 排错工具,你也许可以灵活的运用这些实例和步骤来查明问题的真相并更迅速的解决它。或者你就可能要告诉你的网络服务提供商问题出在哪里并寻求更快速的解决。

  • 相关文章
    相关标签/搜索