Bgp会话变更方法及设备的制作方法
【专利摘要】本发明提供了一种BGP会话变更的方法,应用于已经建立会话连接的路由器上,该方法包括以下步骤:本端路由器和对端路由器建立BGP会话连接,并协商出HoldTime初始值;在需要修改会话HoldTime时,向对端路由器发送携带有新配置的HoldTime的请求更改会话HoldTime的报文,并等待对端路由器的回复报文;在接收到对端路由器回复的确认报文后,根据对端路由器的HoldTime和本地新配置的HoldTime协商出新的HoldTime并使用新的HoldTime值更新KeepAlive发送间隔。本发明可动态修改BGP会话KeepAlive定时器,在修改时不用断开邻居,原有业务也不会被中断,从而增强BGP会话的稳定性。
【专利说明】BGP会话变更方法及设备
【技术领域】
[0001]本发明涉及通信【技术领域】,尤其涉及一种BGP会话变更方法及设备。
【背景技术】
[0002]BGP边界网关协议(Border Gateway Protocol)是一种用于边界网络设备之间的动态路由协议。BGP-4适用于分布式结构,并支持无类域间路由CIDR(ClasslessInter-DomainRouting),利用BGP还可以实施用户配置的策略。建立了 BGP会话连接的路由设备被称作对等体(peers), BGP还使用保活(KeepAlive)报文来监视BGP会话的连接,即需要在设备间周期性地发送BGP KeepAlive报文,保持设备间的邻居关系。
[0003]BGP工作流程如下:首先,在要建立BGP会话的路由器之间建立TCP (传输管理协议)会话连接,然后通过交换Open报文信息来确定连接参数,如运行版本等;建立对等体连接关系后,最开始的路由信息交换将包括所有的BGP路由,也就是交换BGP表中所有的条目;初始化交换完成以后,只有当路由条目发生改变或者失效的时候,才会发出增量的触发性的路由更新,路由更新都是由UpDate消息来完成,UpDate包含了发送者可到达的目的列表和路由属性;当没有路由更新传送时,BGP会话用KeepAlive消息来验证连接的可用性,由于KeepAlive包很小,这也可以大量节省带宽。在协商发生错误时,BGP会向双方发送NOTIFICATION (通知)消息来通知错误。
[0004]BGP作为一种域间传输协议,被广泛应用于ISP (Internet Service Provider,因特网服务提供商)之间。如图1所示,路由器RTA和路由器RTB建立起BGP邻居关系,在业务发生变化时,可能需要修改BGP会话的保持时间。
[0005]BGP在邻居建立过程中会向对端路由器发送Open报文,Open报文中携带本地配置的会话HoldTime,连接两端的设备根据收到的Open报文中的HoldTime字段和本地配置的会话HoldTime进行协商,取两者的较小者作为实际使用的保持时间,并以协商出来的保持时间的1/3时长时发送KeepAlive报文。现有技术在邻居关系建立后,如需修改会话HoldTime,需要断开邻居,会话则会断开重建,导致之前正常运行的业务中断。
【发明内容】
[0006]有鉴于此,本发明提供一种BGP会话变更方法,应用于已经建立会话连接的路由器上,所述方法包括:
[0007]步骤A、本端路由器和对端路由器建立BGP会话连接,并协商出HoldTime初始值;
[0008]步骤B、在需要修改会话HoldTime时,向对端路由器发送携带有新配置的HoldTime的第一请求更改会话HoldTime的报文,并等待对端路由器的回复报文;
[0009]步骤C、接收对端路由器回复的第一确认报文,所述第一确认报文是对端路由器根据第一请求更改会话HoldTime的报文中携带的新配置的HoldTime和对端路由器本地配置的HoldTime协商出新的HoldTime后发出的。
[0010]步骤D、在接收到对端路由器回复的第一确认报文后,根据对端路由器的HoldTime和本地新配置的HoldTime协商出新的HoldTime。
[0011]进一步地,所述本端路由器接收对端路由器发送的第二请求更改会话HoldTime报文,所述第二请求更改会话HoldTime报文是对端路由器在需要修改会话HoldTime时向所述本端路由器发送的,且携带有所述对端路由器新配置的HoldTime ;
[0012]进一步地,所述本端路由器根据第二请求更改会话HoldTime报文中携带的HoldTime和本地配置的HoldTime协商出新的HoldTime,并向对端路由器回复第二确认报文,以使对端路由器重新协商HoldTime。
[0013]优选地,与对端路由器建立BGP会话连接时,会通过与对端路由器发送Open报文进行交互,需在所述Open报文的特定位置增加一个能力标识,所述能力标识用于表征本路由器支持修改会话HoldTime的能力。
[0014]进一步地,所述本端路由器在协商出新的HoldTime后使用新的HoldTime值更新KeepAlive发送间隔。
[0015]本发明还提供一种BGP会话变更的装置,应用于使能BGP协议的本端路由器上,包括会话建立单元、变更请求单元、变更确认单元、第一协商配置单元,其特征在于:
[0016]会话建立单元,用于和对端路由器建立BGP会话连接,并协商出HoldTime初始值;
[0017]变更请求单元,用于在需要修改会话HoldTime时,向对端路由器发送第一请求更改会话HoldTime的报文,并等待对端路由器的回复报文;
[0018]变更确认单元,用于接收对端路由器回复的第一确认报文,所述第一确认报文是对端路由器根据第一请求更改会话HoldTime的报文中携带的新配置的HoldTime和对端路由器本地配置的HoldTime协商出新的HoldTime后发出的。
[0019]第一协商配置单元,用于在接收到对端路由器回复的第一确认报文后,根据对端路由器的HoldTime和本地新配置的HoldTime协商出新的HoldTime。
[0020]进一步地,还包括第二协商配置单元,用于接收对端路由器发送的第二请求更改会话HoldTime报文,所述第二请求更改会话HoldTime报文是对端路由器在需要修改会话HoldTime时向所述本端路由器发送的,且携带有所述对端路由器新配置的HoldTime ;
[0021]进一步地,所述本端路由器根据第二请求更改会话HoldTime报文中携带的HoldTime和本地配置的HoldTime协商出新的HoldTime,并向对端路由器回复第二确认报文,以使对端路由器重新协商HoldTime。
[0022]优选地,在会话建立单元中与对端路由器建立BGP会话连接时,会通过与对端路由器发送Open报文进行交互,需在所述Open报文的特定位置增加一个能力标识,所述能力标识用于表征本路由器支持修改会话HoldTime的能力。
[0023]进一步地,所述第一协商配置单元和第二协商配置单元,在协商出新的HoldTime后,使用新的HoldTime值更新KeepAlive发送间隔。
[0024]本发明可动态修改BGP会话保活定时器,在已建立的BGP会话中修改会话HoldTime时,不会断开邻居,保证了原有业务不受影响。
【专利附图】
【附图说明】
[0025]图1是现有技术中建立BGP会话连接示意图;[0026]图2是本发明中BGP会话变更的流程框图;
[0027]图3是本发明中BGP会话变更的装置逻辑结构图。
【具体实施方式】
[0028]在建立BGP邻居会话连接后,通常会有新业务的增加或者需要减少原有业务,为了维持业务的正常处理以及避免浪费带宽,则需要相应的增加或者减少会话的保活时间,然而在传统技术中,邻居关系建立之后,如需修改会话HoldTime就要断开邻居,继而会话也会断开重建,导致之前正常运行的业务中断。
[0029]相对于现有技术的处理方式来说,本发明提供一种可动态变更BGP会话的方案,在建立BGP会话连接时,两端设备会先通过Open报文进行交互,根据Open报文的能力标识可判断该设备具备哪些能力,本发明在Open报文的能力字段增加一个能力标识,该能力标识表征对端路由器支持修改会话HoldTime的能力。在两端设备都支持该能力的情况下,不需要断开会话连接,便可动态变更BGP会话的时间,使得BGP在已存在的会话上变更业务能力时修改会话HoldTime也不用断开邻居,保证了之前正常运行的业务不被中断。请参考图3,该装置应用于已经使能BGP协议的路由器上,所述路由器的基本硬件环境包括CPU、内存、非易失性存储器以及其他硬件。该修改BGP会话保活定时器的装置在逻辑上包括:会话建立单元、变更请求单元、变更确认单元以及协商配置单元,请参考图2,该装置在运行过程中执行如下处理流程:
[0030]步骤201,会话建立单元用于本端路由器和对端路由器建立BGP会话连接,并协商出HoldTime初始值;
[0031]步骤202,变更请求单元用于在需要修改会话HoldTime时,向对端路由器发送请求更改会话HoldTime的报文,并等待对端路由器的回复报文;
[0032]步骤203,变更确认单元用于接收对端路由器回复的确认报文,所述确认报文是对端路由器根据请求更改会话HoldTime的报文中携带的新配置的HoldTime和对端路由器本地配置的HoldTime协商出新的HoldTime后发出的。
[0033]步骤204,协商配置单元用于在接收到对端路由器回复的确认报文后,根据对端路由器的HoldTime和本地新配置的HoldTime协商出新的HoldTime。并使用新的HoldTime值更新KeepAlive发送间隔。
[0034]在建立初次会话连接时,两端设备会先通过Open报文进行交互,根据Open报文的能力字段可判断该设备具备哪些能力。首先通过协商Open报文中携带的HoldTime与本地设置的HoldTime,取两者较小值协商出一个HoldTime初始值,在原有业务运行中按照该HoldTime初始值保持会话,并依据HoldTime初始值的1/3时长生成KeepAlive发送间隔。其次根据查找对端路由器发送的Open报文能力字段中的能力标识来确定对端路由器是否支持修改会话HoldTime的能力,如果Open报文中增加了所述能力标识,确定对端设备支持该能力,那么本端路由器将会记录对端路由器的能力值,当再次与对端路由器进行会话连接时就无需再获取该能力值了 ;如Open报文中无所述能力标识,确定对端设备不支持该能力,那么在需修改会话HoldTime时,则要断开已建立会话连接,并按照现有技术进行。
[0035]当两端路由设备已经建立业务连接的基础上,通常还会出现新业务的增加或者原有业务减少的情况。增加新业务时,可能会造成系统负荷增重,连续处理繁忙等问题,此时如不增加HoldTime则很有可能由于业务报文数量太多,导致KeepAlive报文没有在HoldTime内及时到达对端,从而造成会话连接超时终端,针对这种情况则需要相应的增加KeepAlive时间;当需要减少原有业务时,为了使收敛速度增快,也要相应的减少KeepAlive时间。在两端设备均支持该能力的情况下,路由设备的修改端会向对端路由器发送请求修改会话HoldTime的报文请求修改会话HoldTime,该报文的类型值为6,代表该报文为修改会话HoldTime的报文,报文发送完毕后便等待对端路由器的回复报文。在等待的过程中,修改端仍按照修改前的HoldTime保持会话。对端路由器在接收到修改端的请求修改会话HoldTime的报文后,根据报文中携带的HoldTime与本地配置的HoldTime初始值进行协商,取两者较小者作为实际使用的保持时间,并以协商出的保持时间的1/3时长发送KeepAlive报文,同时立刻向修改端回复确认(ACK)报文通知其启动新的HoldTime。并且在本地启动新的会话HoldTime,根据新的会话HoldTime生成新的KeepAlive,进而使用新的会话HoldTime更新本地的KeepAlive发送间隔。修改端收到对端路由器的确认报文后,以防止原会话HoldTime超时,需先重置会话上的KeepAlive时间,同时根据对端路由器的HoldTime时间和本地新配置的HoldTime协商出新的HoldTime,并使用新的HoldTimel/3时长发送KeepAlive报文。此时的KeepAlive按照重置的会话HoldTime重新计算,保证了会话不会因为超时被断开。
[0036]下面以修改端为路由器RTA,接收端为路由器RTB来进一步说明以上实施方式。比如说,在路由器RTA上配置到路由器RTB的BGP会话HoldTime为6秒,在路由器RTB上配置到路由器RTA的BGP会话HoldTime为9秒,在两端路由器建立起BGP会话连接时,根据路由器RTA、路由器RTB的HoldTime取两者较小者协商出生效的HoldTime为6秒,并都以会话HoldTime的1/3时长2秒为间隔发送KeepAlive报文。当增加新业务部署后,需要把会话HoldTime修改为9秒时,首先在发起修改会话HoldTime的路由器RTA上修改到路由器RTB的BGP会话HoldTime为9秒,同时发送类型值为6的请求修改会话HoldTime的报文请求修改HoldTime,并等待路由器RTB的回复确认报文,在收到路由器RTB回复之前,继续以旧的初始值6秒保持会话。路由器RTB收到请求报文后,将本地配置手动设置为新生效的HoldTime9秒,并以保持时间9秒的1/3时长3秒为间隔发送KeepAlive报文,同时回复确认报文,以新的HoldTime9秒与路由器RTA保持BGP会话。路由器RTA收到回复确认报文后,重置与路由器RTB的BGP会话的HoldTime (可当作收到Ke印Alive报文),重新协商出新的HoldTime为9秒,并将本地配置手动设置为新生效的HoldTime9秒,同时以保持时间的1/3时长3秒为间隔发送KeepAlive报文。
[0037]在原有业务减少,需要把生效HoldTime修改为3秒时,首先在路由器RTA上修改发送到路由器RTB的BGP会话HoldTime为3秒,同时发送类型值为6的请求修改会话HoldTime的报文请求修改HoldTime,并等待路由器RTB的回复确认报文,在收到路由器RTB回复之前,继续以旧的初始值6秒保持会话。路由器RTB收到请求报文后,与本地配置的HoldTime进行协商,取两者较小者得出新的生效值HoldTime为3秒,并以保持时间3秒的1/3时长I秒为间隔发送KeepAlive报文,同时回复确认报文,以新的HoldTime3秒与路由器RTA保持BGP会话。路由器RTA收到回复确认报文后,重置与路由器RTB的BGP会话的HoldTime,与本地配置值协商出新的生效HoldTime3秒,同时以保持时间的1/3时长I秒为间隔发送KeepAlive报文。[0038]综上所述,本实施例中所述的系统在已经建立业务连接的基础上进行新增或减少业务时,可动态修改BGP会话KeepAlive定时器,修改时不用断开邻居,原有业务也不会被中断,从而增强BGP会话的稳定性。
[0039]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1.一种BGP会话变更的方法,应用于路由器上,其特征在于,该方法包括以下步骤: 步骤A、本端路由器和对端路由器建立BGP会话连接,并协商出HoldTime初始值; 步骤B、在需要修改会话HoldTime时,向对端路由器发送携带有新配置的HoldTime的第一请求更改会话HoldTime的报文,并等待对端路由器的回复报文; 步骤C、接收对端路由器回复的第一确认报文,所述第一确认报文是对端路由器根据第一请求更改会话HoldTime的报文中携带的新配置的HoldTime和对端路由器本地配置的HoldTime协商出新的HoldTime后发出的。 步骤D、在接收到对端路由器回复的第一确认报文后,根据对端路由器的HoldTime和本地新配置的HoldTime协商出新的HoldTime。
2.如权利要求1所述的方法,其特征在于,还包括: 所述本端路由器接收对端路由器发送的第二请求更改会话HoldTime报文,所述第二请求更改会话HoldTime报文是对端路由器在需要修改会话HoldTime时向所述本端路由器发送的,且携带有所述对端路由器新配置的HoldTime ; 所述本端路由器根据第二请求更改会话HoldTime报文中携带的HoldTime和本地配置的HoldTime协商出新的HoldTime,并向对端路由器回复第二确认报文,以使对端路由器重新协商HoldTime。
3.如权利要求1所述的方法,其特征在于,步骤A中与对端路由器建立BGP会话连接时,通过与对端路由器发送Open报文进行交互,在所述Open报文的特定位置增加一个能力标识,所述能力标识用于表征本路由器支持修改会话HoldTime的能力。
4.如权利要求3所述的方法,其特征在于,进一步包括,本端路由器在修改会话Ho I dT ime时查找Open报文中的能力标识,如果Open报文中增加了所述能力标识,确定对端设备支持该能力,则保存对端路由器的能力值,并等待对端路由器的回复报文;如Open报文中无所述能力标识,确定对端设备不支持该能力,则断开已建立的会话。
5.如权利要求1所述的方法,其特征在于,所述本端路由器在协商出新的HoldTime后进一步包括,使用新的HoldTime值更新KeepAlive发送间隔。
6.一种BGP会话变更的装置,应用于已经使能BGP协议的本端路由器上,包括会话建立单元、变更请求单元、变更确认单元、第一协商配置单元,其特征在于: 会话建立单元,用于和对端路由器建立BGP会话连接,并协商出HoldTime初始值; 变更请求单元,用于在需要修改会话HoldTime时,向对端路由器发送第一请求更改会话HoldTime的报文,并等待对端路由器的回复报文; 变更确认单元,用于接收对端路由器回复的第一确认报文,所述第一确认报文是对端路由器根据第一请求更改会话HoldTime的报文中携带的新配置的HoldTime和对端路由器本地配置的HoldTime协商出新的HoldTime后发出的。 第一协商配置单元,在接收到对端路由器回复的第一确认报文后,根据对端路由器的HoldTime和本地新配置的HoldTime协商出新的HoldTime。
7.如权利要求6所述的装置,其特征在于,还包括: 第二协商配置单元,用于接收对端路由器发送的第二请求更改会话HoldTime报文,所述第二请求更改会话HoldTime报文是对端路由器在需要修改会话HoldTime时向所述本端路由器发送的,且携带有所述对端路由器新配置的HoldTime ;根据第二请求更改会话HoldTime报文中携带的HoldTime和本地配置的HoldTime协商出新的HoldTime,并向对端路由器回复第二确认报文,以使对端路由器重新协商HoldTime。
8.如权利要求6所述的装置,其特征在于,会话建立单元中所述与对端路由器建立BGP会话连接时,会通过与对端路由器发送Open报文进行交互,在所述Open报文的特定位置增加一个能力标识,所述能力标识用于表征本路由器支持修改会话HoldTime的能力。
9.如权利要求8所述的装置,其特征在于,还包括查找单元,用于在修改会话HoldTime时查找Open报文中的能力标识,如果Open报文中增加了所述能力标识,确定对端设备支持该能力,则保存对端路由器的能力值,并等待对端路由器的回复报文;如Open报文中无所述能力标识,确定对端设备不支持该能力,则断开已建立的会话。
10.如权利要求6所述的装置,其特征在于,所述第一协商配置单元和第二协商配置单元,在协商出新的HoldTime后, 进一步使用新的HoldTime值更新KeepAlive发送间隔。
【文档编号】H04L12/757GK103491011SQ201310401379
【公开日】2014年1月1日 申请日期:2013年9月5日 优先权日:2013年9月5日
【发明者】章海锋, 周轶凡 申请人:杭州华三通信技术有限公司