您当前所在的位置:首页 > 关于我们 > 新闻中心

UCache带宽中心-华为NE路由器资料-基础知识 · 第六回 BGP协议基础

来源:未知 发布时间:2019-01-14

 数通基础系列—BGP协议基础

古人云:温故而知新。前面学了IGP,小编先带大家来回顾一下撒。

    前面我们重点学习了距离矢量路由协议-RIP,以及链路状态路由协议-OSPF。这是两个常见的IGP内部网关路由协议,也就是工作在AS内的路由协议。IGP有如下特点:

l  尽力完成快速收敛,在网络拓扑变更时能迅速响应

l  执行拓扑发现(链路状态路由协议)

l  需要周期性的更新来确保路由选择信息的精确性

l  受同一个管理机构(如一家公司,或一家大型企业的某个部门)的控制及管理

l  采取了共同的路由选择策略

l  提供了优先的策略控制能力

l  具备路由环路避免能力

 

然而,IGP工作的“着眼点”在AS(自治系统)内部。

     它的主要职责就是负责AS内的路由发现和快速收敛,而且其承载的路由前缀就是本AS内的前缀,数量也不会非常庞大。但是如果在一个大型、高冗余性、多宿主的网络中,IGP的能力就非常有限了,尤其是涉及到AS之间交互路由的时候,如果仍然使用IGP,就会非常困难。

                

这里先介绍一下AS的概念,Autonomous system 自治系统,指的是在同一个组织管理下使用相同策略的设备的集合。我们可以简单的将AS理解为一个独立的机构或者企业,例如中国联通。另一个AS的例子是一家大型企业的网络,在网络的规划上将全球各个区域划分为一个个AS:中国区是一个AS,南美区是一个AS以此类推。

不同AS通过AS号区分,AS号取值范围165535,其中6451265535是私有AS号,在组织内部可随意使用。IANA负责AS号的分发,如果要使用公有AS号,需要向IANA申请。

 

BGP,英文为Border Gateway Protocol边界网关协议,是一种距离矢量路由协议,严格的说应该叫路径矢量路由协议,主要用于在AS之间传递路由信息,适用于大规模的网络环境,Internet的骨干网络正是得益于BGP才能承载如此大批量的路由前缀。总的来说,无论是内部网关路由协议,或者外部网关路由协议,最终的目的都是为了实现路由的互通,从而最终实现数据的互通。

都说BGP是个高富帅,它都有哪些特征,你知道么?

l  BGP使用TCP以确保可靠传输,TCP端口号179

l  BGP路由器之间建立TCP连接,这些路由器称为BGP对等体也叫BGP邻居。有两种BGP邻居关系:eBGP邻居关系,以及iBGP邻居关系。BGP的邻居关系可以跨路由器建立,而不像OSPFRIP那样,必须要求直连。

l  BGP对等体在邻居关系建立时交换整个BGP路由表。

l  在邻居关系建立完成后,BGP路由器只发送增量更新或触发更新(不会周期性更新)。

l  BGP具有丰富的路径属性和强大的策略工具。

l  BGP能够承载大批量的路由前缀,用于大规模的网络中。

 

下面,我们来具体认识一下BGP的真身,看看报文长啥样。

                          

BGP报文是被承载在TCP报文之上的,使用端口号179

                

 

看过了报文,继续看看BGP的状态机,很关键的哦~~~

20170418214422403008.png

 

路由很关键的一个属性就是邻居关系,BGP的邻居关系怎么样,我们来一探究竟!

      运行BGP的路由器被称为BGP speakerBGP路由器之间要交互BGP路由,前提是要建立正常的BGP邻居关系。要建立正确的BGP邻居关系,首先BGP对等体之间要先建立TCP的连接,正是由于BGP是承载在TCP之上,因此BGP没有“邻居必须直连”的限制。有两种BGP邻居关系:

Ø  eBGP邻居(External BGP peer):位于不同ASBGP路由器之间的BGP邻接关系。

                        

在上图中,R1R2R3属于一个ASAS号为100R4属于另一个ASAS号为200。由于R3R4分别属于两个不同的AS,因此他们之间建立的BGP邻居关系就是eBGP邻居关系。

建立eBGP邻接关系,必须至少满足两个条件:

l  两个eBGP邻居所属AS号不同

l  Peer命令所指定的IP地址要路由可达,并且TCP连接能够建立

Ø  iBGP邻居关系(Internal BGP peer):位于相同ASBGP路由器之间的BGP邻接关系。

                        

在上图中,R1R2R3属于同一个AS100
AS100内,R1R2R3运行了一个IGP,也就是OSPF,运行OSPF的目的是为了让AS内的路由能够打通。另一方面,R1R3之间建立一个BGP的邻居关系,由于R1R3同属一个AS,因此他们俩之间建立的BGP连接是iBGP的邻居关系。值得注意的是,R2并没有运行BGPR1-R3之间的BGP连接并非直连,这在BGP中是允许的,因为BGP是被承载在TCP之上的。
建立iBGP邻接关系,必须至少满足两个条件:

l  两个IBGP邻居所属AS号相同

l  Peer命令所指定的IP地址要路由可达,并且TCP连接能够建立

 

到了这里也许你会问了,BGP是路径矢量协议,具体是什么意思呢?

                      

 BGP是一个路径矢量路由协议。在某些层面上,它与RIP非常相似,同样更新的是自己的路由表,同样有距离的概念,只不过这里的距离,与RIP的所谓跳数是完全不同的。

BGP在将路由更新给邻居时,会给每条路由粘附许多路径属性(Path Attribute)。BGP定义了丰富的路径属性,使得BGP对路由的操控及策略部署异常的灵活和多样。其中一个非常重要的路径属性就是AS_PATH,称为AS列表,它用于描述一条路由已穿越的AS号。每条BGP路由都必须携带AS_PATH属性。

相比于IGP着眼于AS内,BGP的“心胸”可就开阔得多了,在BGP眼里,一跳,就是一个AS在上图中,AS500内有条路由10.1.1.0/24,这条路由被AS500的边界路由器(在图中未画出)传递给了eBGP邻居R1R3。那么在路由传出AS500的时候,边界路由器会给路由粘附上AS_PATH属性,值为500。现在R1收到了这条路由,又将路由更新给了自己的iBGP邻居R2,由于这条路由没有传出AS100,因此AS_PATH没有发生改变,值依然为500。接下去R2将路由传递给了eBGP邻居R5,由于这时路由要传出AS,因此R2为路由的AS_PATH插入一个100的号码(在列表的前面插入),这样一来R2传递给R5BGP路由10.1.1.0/24AS_PATH属性值就变成了100,500,这是一个列表。那么R5收到这条路由,它就知道,我要去往10.1.1.0/24,是需要先到AS100,然后再到AS500,只需要经过1AS

另一方面,R5也从R4收到了关于10.1.1.0/24BGP路由更新,AS_PATH300 200 500,那么R5就知道,从AS300也能到达10.1.1.0/24,不过需要经过2AS

AS_PATHBGP中是非常重要的路径属性。一方面能够用来作为BGP路由优选的依据,另一方面可用于在AS之间防止路由环路的发生。例如在上图中,R5同时收到两条关于10.1.1.0/24的路由,那么在不考虑其他因素的情况下,R5会优选AS_PATH更短的路由,因为“距离的AS跳数”更少。所以最终优选从R2走。

另外10.1.1.0/24AS500的边界路由器更新给R1后,完全有可能从R2-R5-R4-R3再更新回来,这就形成了路由环路,庆幸的是有AS_PATH这个路径属性,如果AS500的边界路由器发现,eBGP邻居R3更新给它的路由AS_PATH属性值里出现了自己的AS号,也就是AS500,那么它就认为出现了环路,因此将忽略这个路由更新。

 

 

讲到这里,大家对BGP应该有了一定的认识了吧?好啦好啦,今天就先到这里,大家消化一下。小编带大家做个小结:

  • BGP是一个路径矢量路由协议,定义了丰富的路径属性,每条BGP路由都携带者路径属性。
  • AS_PATH是一个非常重要的路径属性,所有的BGP路由都必须携带这个属性。
  • BGP路由器不接受AS_PATH中包含其自身AS号的路由更新,因此AS_PATH可以在AS之间起到环路避免的作用。但是,当路由仅在AS内传递,也就是在iBGP邻居之间传递的时候,AS_PATH是不会发生改变的,因此在AS内部,防止路由环路则需要其他机制来执行:iBGP的水平分割原则(后面的学习课程中,小编会讲解)。
  • BGP的眼中,一跳就是一个AS,而不是像RIP那样一跳是一台路由器。AS_PATH也用于BGP进行路由的优选,在不考虑其他因素的情况下,AS_PATH越短的路由越优先。

-转自华为技术论坛

上一篇:UCache数据中心2019年春节放假通知与假期工作安排!

下一篇:未来己来,ucache助力未来,点燃“双十一”促销活动

Copyright © 2014 官网北京市微网聚力网络科技有限公司版权所有 . All Rights Reserved BGP动态带宽,海外带宽 增值电信业务经营许可证 IDC:京B1-20160057 ISP:B1-20172005 北京ICP备:14025704号 基础电信业务经营许可证 电信固定网传:A2-20172005 京公网安备11010802015990号 Website Design & Power by HE JUN