新闻中心

EEPW首页 > 测试测量 > 设计应用 > BGP4+协议及一致性测试

BGP4+协议及一致性测试

——
作者:吴英桦时间:2006-07-22来源:中国多媒体通信收藏
一 概述

  下一代互联网将以IPv6为核心技术,IPv6网络的形成是一个渐进的发展过程,这个过程的第一步是穿过IPv4网络的“海洋”连接各个IPv6实验网“孤岛”,第二步是在IPv6商业网络逐步建立的情况下,实现不同运营商IPv6网络的互联,同时实现运营商网络内部不同IPv6自治域之间的互联,通过逐步的互联使网络的规模不断扩大,最终形成统一的IPv6大网。

  支持IPv6的边界网关协议()是支持上述几种互联方式的唯一的IPv6域间路由协议,对于实现IPv6网的互联互通、完成IPv4到IPv6网络技术的平稳过渡起着非常关键的作用。是对BGP4协议的扩展,沿用了RFC1771中规定的BGP4的基本消息格式,增加了RFC2858规定的用于传送IPv6路由信息的扩展属性,并按照RFC1771中的规定对所有IPv6路由进行处理,同时支持RFC1966、RFC1997等协议中规定的BGP路由反射、BGP联盟等扩展功能。

  建立会话连接的两个路由器可以位于一个自治域内,也可以位于不同的自治域边界上,前者构成了两个IBGP4+对等体,后者构成了两个EBGP4+对等体。两个BGP4+对等体之间使用TCP协议建立传输层的连接,本地监听TCP的179端口,在TCP连接之上传送BGP4+协议消息。

  BGP4+协议的内容包含三方面的规定:一是消息传送规程的规定,二是路由处理方面的规定,三是消息格式的规定。下文将就这三方面的规定做简要介绍。此外,由于BGP4+在IPv6网的发展阶段有独特的重要作用,对IP路由器进行BGP4+协议一致性检验是非常必要和重要的,因此本文对一致性的内容也将做简要说明。

二  通信规程

  BGP4+规定了一个简单而高效的通信规程,主要包括连接的建立、保持和断开方面的规定。

  BGP4+对等体向对端发送OPEN消息,其中包含协议版本号、连接保持时间、本地的路由器标识符、认证信息等,对端如果接受这些参数,就回复KEEPALIVE消息确认连接的建立。

  BGP4+会话连接成功地建立之后,路由器可以将需要建立或删除的路由信息通过UPDATE消息传送到对端。如果没有路由信息需要传送,路由器要定期向对端发送KEEPALIVE消息,以便保持连接的激活状态。

  对端路由器收到UPDATE消息后,如果认为路由信息正确,则在完成本地的路由处理后向其他BGP4+对等体转发路由信息;如果认为路由信息有错,则回复一个NOTIFICATION消息报告错误状态。

  BGP4+会话连接的断开存在两种情况,一种是在超过了一个规定的时间后,在既没收到路由也没收到KEEPALIVE消息的情况下自动断开连接;还有一种情况是在收到NOTIFICATION消息后断开连接,终止BGP4+会话关系。 

 
三  路由处理规程

  由于路由信息均通过UPDATE消息传送,因此路由处理方面的规定主要是针对UPDATE消息进行的处理。从下文UPDATE消息的格式上可以看出,随路由一同传来的还有路由的属性,包括路由的来源、经过的自治域、路由的本地优先级、权值等信息,根据这些信息确定路由的有效性,决定是否向本地路由库中添加路由或删除某个路由、是否向其他BGP4+对等体转发路由以及如何转发,随后完成一系列相关动作。路由处理上主要包括下列功能:

  1.路由转发

  路由器收到UPDATE消息后,如果确认路由有效,则在本地的路由表中增加或删除相应路由,同时将路由信息向其他BGP4+对等体转发。如果收到的路由信息来自EBGP4+对等体,则要向其他所有EBGP4+对等体和自治域内的所有的IBGP4+对等体转发路由;如果路由来自IBGP4+对等体,则向所有EBGP4+对等体转发路由,不把路由转发给自治域内的其他任何IBGP4+对等体。

  2.路由选择

  如果路由器收到了两个不同的BGP4+对等体发来的同一条路由,就要选择其中的一条做为本地路由并向其他对等体转发,路由选择遵循如下几条主要原则

  (1)外部对等体发来的路由优于内部对等体发来的路由;

  (2)对于从外部对等体收到的路由,优先选择MULTI-EXIT-DISC值低的路由(应注意此时两条路由应来自同一个外部自治域,否则不具备可比较性);

  (3)对于所有从内部对等体收到的路由,优先选择LOCAL-PREF值高的路由;

  (4)能够根据预先设置的策略优先选择某个路由;

  (5)在所有可比较条件均相同的情况下,根据BGP4+标识符打破平局,选择BGP4+标识符值低的路由。

  3.重叠路由处理

  如果路由器收到了两个不同的BGP4+对等体发来的两条重叠路由,通常要选择更精确(more specific)的路由,即地址前缀更长的路由。

  4.路由聚合

  路由器收到两个不同的BGP4+对等体发来的两条路由后,如果发现两条路由可以聚合,则要将他们聚合起来转发给第三方,同时要在UPDATE消息中对聚合的路由正确地赋予ORIGIN、AS_PATH等路由属性字段的值。

  5.路由传送流量控制

  路由器既要传送BGP4+等控制信息,又要传送用户IP业务流,两类数据的传送和处理是共享线路带宽和节点设备资源的,控制信息的过多传送会影响用户IP业务的质量,因此BGP4+中规定了路由传送的流量控制策略,设置了若干个计时器,保证建立路由的UPDATE消息的传送会间隔一定时间,同时保证删除路由的UPDATE消息立即传送,不受时间间隔约束。

  6.路由反射

  BGP4+协议要求IBGP4+对等体收到来自其他自治域的路由消息后,要转发给本自治域内的所有IBGP4+对等体,这就意味着IGBP4+对等体之间要建立全网状的连接,这对网络的扩展显然是不利的。因此,RFC1966中规定了一个扩展的功能,即将IBGP4+对等体分成若干组,每组选一个路由器做为反射路由器(RR),其他路由器为客户(Client)。

  协议规定,RR之间建立网状连接,组与组之间路由的转发要通过RR;在组内,以RR为核心建立星型连接,client之间路由的传递要通过RR转发,组内这种路由信息的传送方式被形象地比喻为“反射“。通过这种方式保证了路由信息送达所有的IBGP4+对等体,同时避免了所有IBGP4+对等体的全网状连接。RFC1966对主要的处理功能进行了规定。

  7.BGP联盟

  解决IBGP4+自治域内所有对等体全网状互连的另一个方式是使用BGP联盟,即将一个自治域划分为若干子域,使自治域成为多个子域构成的联盟。子域内部的对等体可进行网状互联,子域之间不需要网状互联。联盟对外使用一个统一的AS号,对内为每个子域分配了内部的AS号。同时,在BGP消息中还规定了一个COMMUNITIES属性,利用这个属性的值来控制路由信息传播的范围。RFC1997对相关的路由处理功能进行了规定。

四  消息格式

  BGP消息分为四类,即OPEN、UPDATE、KEEPALIVE和NOTIFICATION,消息功能分别如下

  (1)Open:用于请求建立BGP4+会话连接;

  (2)Update:用于传送建立或删除路由的信息;

  (3)Notification:在出现路由差错时向对端发送通知,同时将出错原因告知对端;

  (4)Keepalive:为保持激活状态而传送的消息,此外建立连接时做Open消息的响应。

  四类消息采用通用的BGP4+消息格式,消息由标签(marker)、消息长度、消息类型、消息体四个部分构成,前三个部分构成了BGP4+消息的通用消息头。

  BGP4+通用消息头中,各个字段的功能如下:

  (1)       Marker – 包含信息接收端可预测值,例如认证信息;

  (2)       Length – 以字节为单位的包括消息头在内的消息总长度;

  (3)       Type – 消息类型代码。“1”为Open消息,“2”为UPDATE消息,“3”为NOTIFICATION消息,“4”为KEEPALIVE。 

 



  1.Open消息格式

  OPEN消息用于发起建立BGP会话连接 

 



  Open消息中各个字段的功能如下:

  (1)       ersion :指明发端路由器使用的协议版本号;

  (2)       My Autonomous System :指明发端路由器的本地AS号;

  (3)       Hold Time :发端路由器建议的保持激活时间;

  (4)       BGP Identifier :发端路由器的标识符;

  (5)       OptParmLen :指明以字节为单位的可选参数字段的长度;

  (6)       Optional Parameters :其中包含一些可选参数,例如认证信息等。
2.UPDATE消息格式

  BGP4+协议中所有的路由信息都是通过UPDATE消息传送的。



 

  UPDATE消息中各个字段的功能如下:

  (1)不可达路由长度:指明删除路由字段的长度,以字节为单位;

  (2)删除路由:其中包含若干需要删除的IPv4路由的地址前缀,如果单纯传送IPv6路由,这一字段可以为空;

  (3)路径属性总长度:指明路径属性字段的长度,以字节为单位;

  (4)路径属性:其中包含与路由相关的参数以及IPv6路由信息;

  (5)网络层可达信息:其中包含若干需要建立的IPv4路由的地址前缀,如果单纯传送IPv6路由,这一字段可以为空。

  BGP4+是对BGP4协议的扩展,不使用BGP4定义的删除路由和网络层可达信息字段来传送路由,IPv6路由及相关的参数均通过路径属性中的字段来传送。路径属性字段中的主要子字段及其功能如下:

  (1)ORIGIN:指明路由的来源,来自自治域内、自治域外,或通过其他途径得到;

  (2)AS_PATH:路由经过的自治域的列表;

  (3)NEXT_HOP:IPv4路由的下一跳地址,如果单纯传送IPv6路由,此字段可以为空;

  (4)MULT_EXIT_DISC(MED):来自自治域外的路由的权值,进行路由选择时,MED值较低的路由被优先选择;

  (5)LOCAL_PREF:本自治域内路由的优选等级,进行路由选择时,此值较高的路由被优先选择;

  (6)ATOMIC_AGGREGATE:如果路由器选择了一个较低精确度(less specific)的路由,而不是选择较高精确度的路由,则传送路由时用这一属性通知其他路由器;

  (7)MP_REACH_NLRI:其中包含若干个需要建立的IPv6路由的地址前缀及其下一跳地址;

  (8)MP_UNREACH_NLRI:其中包含若干个需要删除的IPV6路由的地址前缀。 

 

3.NOTIFICATION消息格式

  Notification消息主要用于发送差错通知。

  消息中各个字段的功能如下:

  (1)Error Code : 错误类型代码;

  (2)Error Subcode :某种错误类型下具体的出错原因的代码;

  (3)Data :包含与出错类型有关的诊断用信息,例如,如果收端路由器发现UPDATE消息中的某个属性类型错误,会将该属性的类型、长度和值复制到Data字段中传送给发端路由器。

  BGP4+中规定的错误类型有如下六种:

  (1)消息头错误 :消息头中的差错包括marker字段出现错误值、Type字段出现未定义的消息类型值、Length字段的值有错等等;

  (2)Open消息错误 :指Open消息中出现了不可识别的协议版本号、AS号、路由器标识符、不可接受的计时器值等等;

  (3)Update消息错误:指UPDATE消息中出现了属性格式错误、属性值不可识别或不合理、缺少了某些必备属性等情况;

  (4)保持激活计时器超时 :指在规定的保持激活时间范围内没收到对端路由器发来的Keepalive消息;

  (5)有限状态机错误:指路由器发现的本地的某些故障状态,此时路由器会主动用Notification消息向对端发送错误通知;

  (6)终止(Cease):路由器在没有任何故障的情况下,主动向对端发送错误类型为Cease的Notification消息,用于断开连接。

  4.KEEPALIVE消息格式

  Keepalive消息用于保持两个路由器BGP4+会话连接的激活状态。该消息只有消息头,没有消息体。路由器上有两个计时器的值与保持激活有关,即keepalive计时器和Hold Time计时器。KeepAlive计时器的缺省值为30秒,发端路由器在没有任何消息需要发送的情况下,必须每隔30秒向对端发送一次keepalive消息,以便保持会话连接的激活状态;Hold Time计时器的缺省值为90秒,收端路由器如果超过90秒还未收到对端发来的keepalive消息,则发送Notification消息断开连接。

  将BGP4+协议对消息格式的规定与对通信规程、路由处理规程的规定相结合,我们可以清楚地看出BGP4+协议的概况。

五  协议一致性

  路由器进行BGP4+的协议一致性,是为了检验不同厂商开发的IPv6路由器支持BGP4+协议的准确性,判断路由器完成的各种处理功能是否符合国际标准的规定。主要包括下列测试内容:

  (1)连接建立功能测试:检验路由器建立BGP4+会话连接的能力;

  (2)UPDATE消息格式:检验传送路由信息的UPDATE消息的格式是否符合BGP4+协议的规定;

  (3)UPDATE消息处理功能测试:检验路由器是否能对UPDATE消息进行正确的处理,完成防止不合理路由的扩散、防止路由循环、正确处理路由权值及选路策略信息等方面的功能;

  (4)路由处理功能测试:检验路由器建立、删除、分发、转发路由以及路由选择、路由聚合、路由传送流量控制等方面的功能是否符合协议的规定;

  (5)差错处理功能测试:检验路由器在发现各种路由信息差错时,能正确地向对端发送NOTIFICATION消息,以便对端了解出错原因并断开连接;

  (6)路由反射功能测试:检验路由器是否支持路由反射功能,客户间的路由是否能够以反射的方式通过RR转发,自治域内路由是否能到达每个IBGP4+对等体;

  (7)COMMUNITY属性处理功能测试:检验路由器是否能支持BGP联盟并有效地控制路由信息的传播范围。

六  结束语

  目前国内6Tnet、Cernet2、IPv6-CJ等实验网络已经建成,中国移动、中国网通等运营商参与的CNGI工程也已经展开,国内IPv6商用网投入了建设,国际上韩国和日本也推出了自己的IPv6商用网。随着IPv6技术的逐步推广,BGP4+协议的应用也会越来越广泛。

  鉴于BGP4+协议对于IPv6网络的互联互通以及IPv4向IPv6技术的平稳过渡具有关键作用,信产部电信研究院标准研究所制定了《支持IPv6的路由协议测试方法——边界网关协议(BGP4+)》行业标准,用于检验IPv6路由器支持BGP4+协议的能力。该行标规定的测试方法已经用于国内一些实验网、商用网的组网设备选型测试以及信产部的IPv6路由器入网检验工作中。






评论


相关推荐

技术专区

关闭