边界网关协议路由决策方法及装置的制作方法

文档序号:7695533阅读:130来源:国知局

专利名称::边界网关协议路由决策方法及装置的制作方法
技术领域
:本发明涉及通信网络中的路由技术,尤其涉及一种边界网关协议(BGP,BorderGatewayProtocol)^各由决策方法及装置。
背景技术
:BGP是一种用于自治系统间的动态路由协议,其主要作用是在自治系统之间交换网络可达性信息。目前,常用的BGP报文主要包括以下5种初始化(Open)报文、更新(Update)报文、通知(Notification)报文、保持激活(KeepAlive)报文和路由刷新(RouteRefresh)报文。其中,BGPUpdate报文用于在建立BGP连接的两个相邻实体(也称为BGP对等体或邻居)之间传递路由信息,它不仅可以发布可达路由信息,也可以撤销不可达路由信息。当需要发送的路由数目较多,一个BGPUpdate报文装不下时,可以通过多个BGPUpdate净艮文来发送。在现有的BGP协议中,运行BGP协议的设备在收到任何一个邻居发来的BGPUpdate报文后,都会触发路由管理模块(RM,RouteManagement)进行BGP路由决策(RouteDecision)。比如,参见图l所示的网络结构,设备A和设备X、Y、Z建立BGP连接之后,X、Y、Z都会向A发送一个携带路由N的BGPUpdate报文,A在每收到一个BGPUpdate报文后,都会执行BGP路由决策。现有的这种以收到BGPUpdate报文作为路由决策触发条件的做法,存在以下缺点在BGP邻居较多或者网络拓朴不稳定或者路由数目很多需要分多个BGPUpdate报文发送的情况下,设备会收到很多BGPUpdate报文,此时如果以收到BGPUpdate报文作为路由决策的触发条件,则显然会导致设备频繁地进行BGP路由决策,从而占用设备大量的内存和CPU资源,影响设备的转发性能和稳定性。
发明内容有鉴于此,本发明的目的在于提供一种BGP路由决策方法及装置,减少BGP路由决策的资源占用。为达到上述目的,本发明提供的技术方案如下一种边界网关协议BGP路由决策方法,该方法包括-没置一种在BGP路由更新完毕后向邻居发送的BGP决策才艮文,并^:置在BGP邻居建立后启动的决策等待定时器Tl,设备根据邻居发送的BGP决策报文和设置的定时器T1进行BGP路由决策。所述设备根据邻居发送的BGP决策报文和设置的定时器Tl进行BGP路由决策包括a、在定时器Tl超时之前,判断是否收到所有邻居发送的BGP决策报文,如果收到所有,则立即执行BGP路由决策;如果只收到部分,则等待定时器Tl超时后再执行BGP路由决策;如果未收到任何BGP决策报文,则将定时器T1清零并重启,返回执行步骤a。所述执行BGP路由决策后进一步包括将定时器T1清零并重启,然后返回执行步骤a。进一步设置决策间隔定时器T2,所述执行BGP路由决策后进一步包括将定时器T1清零,并启动定时器T2。所述启动定时器T2后进一步包括b、判断在定时器T2超时之前是否收到邻居发送的BGP决策报文,如果收到,则等待定时器T2超时后再执行BGP路由决策,然后将定时器T2清零停止,并重新启动定时器Tl,返回执行步骤a;如果没有收到任何BGP决策报文,则将定时器T2清零停止,并重新启动定时器T1,返回执行步骤3。所述BGP决策报文包括报文头和报文两部分,其中,才艮文头包括标记符Marker、长度Length和类型Type,报文部分包括地址族标识符AFI、保留区域Res.和后继地址族标识符SAFL一种BGP路由决策装置,该装置包括报文接收单元、路由决策单元以及在BGP邻居建立后启动的决策等待定时器T1,其中,才艮文接收单元,用于接收BGP邻居在BGP路由更新完毕后发送的BGP决策报文,并将收到的BGP决策报文发送给路由决策单元;路由决策单元,用于根据收到的BGP决策报文和定时器Tl进行BGP路由决策。所述路由决策单元判断在定时器Tl超时前是否收到所有邻居发送的BGP决策报文,如果收到所有,则立即执行BGP路由决策;如果只收到部分,则等待定时器Tl超时后再执行BGP路由决策;如果未收到任何BGP决策报文,则将定时器T1清零并重启,返回执行所述判断操作。所述路由决策单元在执行BGP路由决策后,进一步将定时器Tl清零重启,并返回执行所述判断操作。该装置进一步包括决策间隔定时器T2;所述路由决策单元进一步用于,在执行BGP路由决策后将定时器Tl清零,并启动定时器T2,然后判断在定时器T2超时之前是否收到邻居发送的BGP决策报文,如果收到,则等待定时器T2超时后再执行BGP路由决策,然后将定时器T2清零停止,并重新启动定时器Tl,返回执行所述判断是否收到所有邻居发送的BGP决策报文的操作;如果没有收到任何BGP决策报文,则将定时器T2清零停止,并重新启动定时器T1,返回执行所述判断是否收到所有邻居发送的BGP决策报文的操作。由此可见,在本发明所提供的技术方案中,BGP路由决策并不是以收到BGPUpdate报文作为触发条件的,而是根据新增的BGP决策报文和设置的决策等待定时器进行的,这样可以避免设备因不断收到BGPUpdate报文而频繁地进行BGP路由决策,从而减少了BGP路由决策对设备内存和CPU资源的占用,保证了设备的转发性能和稳定性。图1为现有技术中的网络结构示意图2为本发明实施例中的BGP路由决策流程图3为本发明实施例中的BGP路由决策装置结构示意图。具体实施例方式为使本发明的目的、技术方案及优点更加清楚明白,下面参照附图并举实施例,对本发明作进一步详细说明。为了克服现有技术中的问题,本发明需要在现有的5种BGP报文基础上增加一种新的BGP报文BGP决策报文。任何一个运行BGP协议的设备在BGP路由更新完毕后即向邻居发送完所有BGPUpdate报文后,都要向邻居发送BGP决策报文,以表示自身路由更新完毕。需要说明的是,在邻居刚建立时,即使没有路由更新,也要向邻居发送一次BGP决策报文;后续过程中,只在每次完成路由更新后发送BGP决策报文,如果没有路由更新,则不发送BGP决策报文。BGP决策报文包括报文头和报文两部分。BGP报文头格式如表1所示,包括标记符(Marker)、长度(Length)和类型(Type),其中,Marker共16个字节,一般为全F;Length表示BGP报文长度,2个字节,大d、一般位于19和4096之间;Type表示BGP报文类型,1个字节,现有的5种BGP才艮文Open、Update、Notification、KeepAlive和RouteRefresh的Type值分别为1、2、3、4、5,为与现有的BGP报文区分,新增BGP决策报文的Type只要不同于已被使用的Type值即可,比如,令BGP决策报文的Type为6。表2示出了BGP决策报文除去BGP报文头后的报文格式,包括地址族标识符(AFI)、保留区域(Res.)和后继地址族标识符(SAFI),其中,AFI和SAFI的长度分别为16位和8位,它们的意义和编码方式与RFC2858中定义的相同,可以扩展支持各个协议,如因特网协议4(IPv4)、因特网协议6(IPv6)、多协议扩展BGP(MBGP)等;Res.长度为8位,发送方将它置为0,接收方忽略该域的信息。<table>tableseeoriginaldocumentpage8</column></row><table>表lBGP报文头格式<image>imageseeoriginaldocumentpage8</image>表2BGP决策报文的报文格式除了新增BGP决策报文之外,本发明还需要设置两个定时器决策等待定时器T1和决策间隔定时器T2,T2的定时时长通常大于Tl,在具体实现时,可以将T2的定时时长设置在分钟级,如2分钟;将Tl的定时时长i殳置在秒级,如10秒,定时器Tl在BGP邻居建立后启动。在本发明中,BGP路由决策并不是在收到BGPUpdate报文便立即执行,而是根据BGP决策报文和定时器T1、T2进行。图2示出了本发明实施例中利用BGP决策报文及定时器Tl、T2进行BGP路由决策的流程图,包括以下步骤步骤201:BGP邻居建立后,i殳备立即启动定时器Tl。对于有多个邻居的情况,设备只在第一个BGP邻居建立后才启动定时器Tl,而不是在每个BGP邻居建立后都启动定时器T1。步骤202:在定时器Tl超时之前,设备判断是否收到所有邻居发送的BGP决策报文,如果收齐所有邻居发送的BGP决策报文,则执行步骤203;如果在定时器Tl超时之前,设备只收到部分邻居发送的BGP决策报文(这种情况可能会在以下场景出现比如,某些邻居一直没有进行路由更新而不发送BGP决策报文,或者邻居发送了BGP决策报文但因网络堵塞导致设备接收不到),则执行步骤204;如果在定时器Tl超时之前,设备没有收到任何邻居发送的BGP决策报文,则执行步骤205。步骤203:设备在收集齐所有邻居发送的BGP决策报文后,立即执行BGP路由决策,并将定时器T1清零停止,同时启动定时器T2,然后执行步骤206。步骤204:设备等待定时器Tl超时后,才执行BGP路由决策,并将定时器Tl清零停止,同时启动定时器T2,然后执行步骤206。步骤205:设备将定时器Tl清零并重新开始计时,返回执行步骤202。步骤206:定时器T2启动后,设备判断在T2超时之前是否收到邻居发送的BGP决策报文,如果收到,则执行步骤207;如果没有收到任何邻居发送的BGP决策报文,则执行步骤208。步骤207:设备在T2超时之前收到邻居发送的BGP决策报文后,不立即进行BGP路由决策,而是将报文保留在本地,等T2超时之后才执行BGP路由决策,同时将T2清零停止,并重新启动定时器T1,返回执行步骤202。步骤208:设备将定时器T2清零停止,并重新启动定时器Tl,返回执行步骤202。需要说明的是,本发明中也可以只设置一个决策等待定时器Tl,在步骤203和204中执行BGP路由决策之后,直接将定时器T1清零并重启,然后返回执行步骤202。在图2所示路由决策过程中,如果设备有新的BGP连接建立,即又有新的BGP邻居向设备发送BGP决策报文,则设备按照图2所示的流程处理收到的BGP决策报文。对于BGP软重启的情况即通过BGPRefresh报文主动请求邻居更新路由的情况,也是按照图2所示流程进行处理。另外需要说明的是,本发明所提供的BGP路由决策方案不仅适用于BGP协议本身,还适用于各种扩展BGP协议,如MBGP、BGP4+等。相应地,本发明还提供了一种BGP路由决策装置,该装置可位于运行BGP协议的设备中。图3示出了该装置的示例性结构,包括报文接收单元、路由决策单元以及在BGP邻居建立后启动的决策等待定时器Tl,其中,报文接收单元,用于接收BGP邻居在BGP路由更新完毕后发送的BGP决策报文,并将收到的BGP决策报文发送给路由决策单元;路由决策单元,用于根据收到的BGP决策报文和定时器Tl进行BGP路由决策。较佳地,所述路由决策单元判断在定时器Tl超时前是否收到所有邻居发送的BGP决策报文,如果收到所有,则立即执行BGP路由决策;如果只收到部分,则等待定时器T1超时后再执行BGP路由决策;如果未收到任何BGP决策报文,则将定时器T1清零并重启,返回执行所述判断操作。较佳地,所述路由决策单元在执行BGP路由决策后,进一步将定时器Tl清零重启,并返回执行所述判断操作。或者,在BGP路由决策装置进一步设置决策间隔定时器T2;所述路由决策单元进一步用于,在执行BGP路由决策后将定时器T1清零,并启动定时器T2,然后判断在定时器T2超时之前是否收到邻居发送的BGP决策报文,如果收到,则等待定时器T2超时后再执行BGP路由决策,然后将定时器T2清零停止,并重新启动定时器T1,返回执行所述判断是否收到所有邻居发送的BGP决策报文的操作;如果没有收到任何BGP决策报文,则将定时器T2清零停止,并重新启动定时器T1,返回执行所述判断是否收到所有邻居发送的BGP决策报文的操作。以上所述对本发明的目的、技术方案和有益效果进行了进一步的详细说明,所应理解的是,以上所述并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。权利要求1、一种边界网关协议BGP路由决策方法,其特征在于,该方法包括设置一种在BGP路由更新完毕后向邻居发送的BGP决策报文,并设置在BGP邻居建立后启动的决策等待定时器T1,设备根据邻居发送的BGP决策报文和设置的定时器T1进行BGP路由决策。2、根据权利要求1所述的方法,其特征在于,所述设备根据邻居发送的BGP决策报文和设置的定时器Tl进行BGP路由决策包括a、在定时器T1超时之前,判断是否收到所有邻居发送的BGP决策报文,如果收到所有,则立即执行BGP路由决策;如果只收到部分,则等待定时器Tl超时后再执行BGP路由决策;如果未收到任何BGP决策寺艮文,则将定时器Tl清零并重启,返回执行步骤a。3、根据权利要求2所述的方法,其特征在于,所述执行BGP路由决策后进一步包括将定时器T1清零并重启,然后返回执行步骤a。4、根据权利要求2所述的方法,其特征在于,进一步设置决策间隔定时器T2,所述执行BGP路由决策后进一步包括将定时器T1清零,并启动定时器T2。5、根据权利要求4所述的方法,其特征在于,所述启动定时器T2后进一步包括b、判断在定时器T2超时之前是否收到邻居发送的BGP决策报文,如果收到,则等待定时器T2超时后再执行BGP路由决策,然后将定时器T2清零停止,并重新启动定时器Tl,返回执行步骤a;如果没有收到任何BGP决策报文,则将定时器T2清零停止,并重新启动定时器Tl,返回执行步骤a。6、根据权利1至5任一项所述的方法,其特征在于,所述BGP决策报文包括报文头和报文两部分,其中,报文头包括标记符Marker、长度Length和类型Type,报文部分包括地址族标识符AFI、保留区域Res.和后继地址族标识符SAFI。7、一种BGP路由决策装置,其特征在于,该装置包括报文接收单元、路由决策单元以及在BGP邻居建立后启动的决策等待定时器Tl,其中,报文接收单元,用于接收BGP邻居在BGP路由更新完毕后发送的BGP决策报文,并将收到的BGP决策报文发送给路由决策单元;路由决策单元,用于根据收到的BGP决策报文和定时器Tl进行BGP路由决策。8、根据权利要求7所述的装置,其特征在于,所述路由决策单元判断在定时器Tl超时前是否收到所有邻居发送的BGP决策报文,如果收到所有,则立即执行BGP路由决策;如果只收到部分,则等待定时器T1超时后再执行BGP路由决策;如果未收到任何BGP决策报文,则将定时器T1清零并重启,返回执行所述判断操作。9、根据权利要求8所述的装置,其特征在于,所述路由决策单元在执行BGP路由决策后,进一步将定时器T1清零重启,并返回执行所述判断操作。10、才艮据权利要求8所述的装置,其特征在于,该装置进一步包括决策间隔定时器T2;所述路由决策单元进一步用于,在执行BGP路由决策后将定时器Tl清零,并启动定时器T2,然后判断在定时器T2超时之前是否收到邻居发送的BGP决策报文,如果收到,则等待定时器T2超时后再执行BGP路由决策,然后将定时器T2清零停止,并重新启动定时器Tl,返回执行所述判断是否收到所有邻居发送的BGP决策报文的操作;如果没有收到任何BGP决策报文,.则将定时器T2清零停止,并重新启动定时器T1,返回执行所述判断是否收到所有邻居发送的BGP决策报文的操作。全文摘要本发明提供了一种边界网关协议BGP路由决策方法,该方法包括设置一种在BGP路由更新完毕后向邻居发送的BGP决策报文,并设置在BGP邻居建立后启动的决策等待定时器T1,设备根据邻居发送的BGP决策报文和设置的定时器T1进行BGP路由决策。另外,本发明还提供了一种BGP路由决策装置。利用本发明所提供的技术方案,能够减少BGP路由决策的资源占用。文档编号H04L12/56GK101304379SQ200810115928公开日2008年11月12日申请日期2008年6月30日优先权日2008年6月30日发明者程锋章申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1