BGP路由处理方法、装置和BGP设备与流程

文档序号:12729490阅读:342来源:国知局
BGP路由处理方法、装置和BGP设备与流程

本发明涉及通信技术领域,特别涉及一种BGP(Border Gateway Protocol,边界网关协议)路由处理方法、装置和BGP设备。



背景技术:

边界网关协议BGP是一种既可以用于不同AS(Autonomous System,自治系统)之间,又可以用于同一AS内部的动态路由协议。当前使用的BGP版本是BGP-4,BGP-4作为Internet外部路由协议标准,被ISP(Internet Service Provider,互联网服务提供商)广泛应用。

一台BGP设备工作时,当其收到上游邻居发送过来的一条路由后,其主要做两件事情:一是把本设备学习到的动态路由协议中最优的路由下刷给驱动来指导流量转发,二是把本设备学习到的动态路由协议中最优的路由向邻居通告。理想情况下,为保证流量不丢失,需要在最优路由下刷给驱动成功后,再将该最优路由通告给邻居。在实际应用中,严格按照理想情况会降低设备的整体性能和效率,为了提高设备的性能和效率,不会等待路由下刷驱动成功后再将路由通告给邻居,但是,这样就容易出现先将最优路由通告给邻居,后下刷驱动的情况,在流量切换的过程中就会出现流量已经被引到该最优路由上,但下刷驱动还未成功,暂时还不能转发的情况,会导致短暂的流量中断。



技术实现要素:

本发明提供的一种边界网关协议BGP路由处理方法、装置和BGP设备,以解决流量回切过程中出现的短暂的流量中断问题。

依据本发明的一个方面,提供了一种边界网关协议BGP路由处理方法,所述方法包括:

BGP协议模块在向网络接口驱动下发最优路由时,对下发的最优路由进行唯一性标识;

网络接口驱动在将BGP协议模块下发的最优路由成功下刷到网络接口硬件后,记录当前最优路由的标识信息,并执行第一信令触发条件的判断;

当满足第一信令触发条件时,所述网络接口驱动向BGP协议模块发送第一信令,否则不发送所述第一信令;所述第一信令用于通告已下刷成功的最优路由的标识信息;

所述BGP协议模块根据接收到的所述第一信令,将所述第一信令通告的已下刷成功的最优路由的标识信息对应的最优路由通告给邻居。

可选地,所述方法还包括:

所述BGP协议模块将下发给网络接口驱动的最优路由连同其标识信息缓存在一数据结构中;

所述BGP协议模块在收到所述网络接口驱动发送的所述第一信令且将所述第一信令通告的已下刷成功的最优路由通告给邻居后,将已通告给邻居的最优路由连同其标识信息从所述数据结构中删除。

可选地,所述第一信令触发条件基于成功下刷的最优路由的数量阈值和/或计时时间阈值来设置。

可选地,当成功下刷的最优路由的数量达到预设的数量阈值时,触发发送所述第一信令;或

当距前一次触发发送所述第一信令后的间隔时间达到预设的时间阈值时,触发发送所述第一信令;或

当成功下刷的最优路由的数量达到预设的数量阈值或距前一次触发发送所述第一信令后的间隔时间达到预设的时间阈值时,触发发送所述第一信令。

可选地,所述对下发的最优路由进行唯一性标识包括:通过一全局的序列号对下发的最优路由进行唯一性标识,该全局的序列号按预设步长进行累加;

所述第一信令通告的已下刷成功的最优路由的标识信息包含最后一个已下刷成功的最优路由的序列号;

所述BGP协议模块根据接收到的所述第一信令,将所述第一信令通告的已下刷成功的最优路由的标识信息对应的最优路由通告给邻居包括:所述BGP协议模块根据接收到的所述第一信令,将所述第一信令通告的最后一个已下刷成功的最优路由的序列号以及其之前的序列号对应的所有最优路由生成BGP更新报文通告给邻居。

依据本发明的另一个方面,提供了一种边界网关协议BGP路由处理装置,所述装置包括BGP协议模块和网络接口驱动,

所述BGP协议模块,用于在向所述网络接口驱动下发最优路由时,对下发的最优路由进行唯一性标识;以及接收所述网络接口驱动发送的第一信令,并根据接收到的所述第一信令,将所述第一信令通告的所述网络接口驱动已下刷成功的最优路由的标识信息对应的最优路由通告给邻居;

所述网络接口驱动,用于在将所述BGP协议模块下发的最优路由成功下刷到网络接口硬件后,记录当前最优路由的标识信息,并执行第一信令触发条件的判断;当满足第一信令触发条件时,向所述BGP协议模块发送第一信令,否则不发送所述第一信令;所述第一信令用于通告已下刷成功的最优路由的标识信息。

可选地,所述BGP协议模块,还用于将下发给所述网络接口驱动的最优路由连同其标识信息缓存在所述数据结构中;在收到所述网络接口驱动发送的所述第一信令且将所述第一信令通告的已下刷成功的最优路由通告给邻居后,将已通告给邻居的最优路由连同其标识信息从所述数据结构中删除。

可选地,所述第一信令触发条件基于成功下刷的最优路由的数量阈值和/或计时时间阈值来设置;包括如下三种情形:

当成功下刷的最优路由的数量达到预设的数量阈值时,触发发送所述第一信令;或

当距前一次触发发送所述第一信令后的间隔时间达到预设的时间阈值时,触发发送所述第一信令;或

当成功下刷的最优路由的数量达到预设的数量阈值或距前一次触发发送所述第一信令后的间隔时间达到预设的时间阈值时,触发发送所述第一信令。

可选地,所述BGP协议模块对下发的最优路由进行唯一性标识包括:通过一全局的序列号对下发的最优路由进行唯一性标识,该全局的序列号按预设步长进行累加;

所述网络接口驱动向所述BGP协议模块发送的第一信令中包含最后一个已下刷成功的最优路由的序列号;

所述BGP协议模块,具体用于根据接收到的所述第一信令,将所述第一信令通告的最后一个下刷成功的最优路由的序列号以及其之前的序列号对应的所有最优路由生成BGP更新报文通告给邻居。

依据本发明的又一个方面,提供了一种BGP设备,所述BGP设备包括上述的边界网关协议BGP路由处理装置。

本发明的有益效果是:

BGP设备的BGP协议层与网络接口驱动层之间采用异步方式向网络接口硬件层下刷最优路由,保证了BGP路由处理的下刷驱动时序和通告时序,防止流量回切过程中出现的短暂的流量中断问题;只有当满足预设触发条件时,网络接口驱动才向BGP协议模块通告已下刷成功的最优路由的标识信息,可降低网络接口驱动反向通知BGP协议模块的频度和报文的长度,避免系统资源的消耗,防止系统被阻塞,同时尽可能的减少对现有网络的冲击以及尽快的完成流量的切换。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

图1为BGP路由处理的理想时序图;

图2为BGP路由处理异常时序图;

图3为BGP路由处理应用在组网的示意图;

图4为BGP路由处理应用在组网时的BGP邻居故障示意图;

图5为BGP路由处理应用在组网时的BGP邻居故障恢复后流量不通示意图;

图6为路由延迟发送机制的示意图;

图7为本发明一个实施例提供的一种BGP路由处理方法的流程示意图;

图8为本发明一个实施例提供的一种BGP路由处理装置的功能结构示意图;

图9为本发明一个实施例提供的一种BGP设备的硬件结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

理想情况下,为保证流量不丢失,BGP路由处理时需要在最优路由下刷给驱动成功后,再将该最优路由通告给邻居。图1为BGP路由处理理想时序图。如图1所示,当一台设备BGP协议收到大量的路由时,理想情况下,下刷给驱动和通告路由应该按照如图1所示的时序进行,即下刷驱动成功后,再通告给邻居路由,以保证流量不丢失。但是,目前的主流厂商为了保持BGP设备具有较高的性能,并不会等待下刷驱动成功后再进行路由通告。这样就会导致某些情况下(如路由量比较大,调度不均匀,或者上、下游设备CPU负载不均或处理性能差异),先把最优路由通告给对端,后下刷驱动表项的情况出现。图2为BGP路由处理异常时序图。如图2所示,路由3已经通告出去,但是还没有下刷驱动,这时如果BGP设备收到路由3的流量就会导致流量不通。

上述情况如果在一些特定的组网应用中出现,就可能出现短暂的流量中断。图3为BGP路由处理应用在组网的示意图。如图3所示,图3中实线表示相邻的两台设备建立了BGP邻居关系。RTA上的路由通过RTA—>RTC—>RTD—>RTE和RTA—>RTB—>RTE两条路径发布给RTE。在RTE上,从RTA上发布过来的路由有两份,假设通过RTB学习来的路由比通过邻居RTD学习来的路由具有更高的优先级,后者是前者的备份。图4为BGP路由处理应用在组网时的BGP邻居故障示意图。如图4所示,如果RTA和RTB之间的BGP邻居发生故障,则RTB需要向RTE通告这部分路由的撤销消息。RTE收到这些路由的撤销消息后,重新优选,选择从RTD学来的路由,把流量切换到RTA—>RTC—>RTD—>RTE的链路上。图5为BGP路由处理应用在组网时的BGP邻居故障恢复后流量不通示意图。如图5所示,如果RTA和RTB的邻居关系恢复了,则RTA重新把路由通告到RTB,再由RTB通告给RTE,由于在RTE上从RTB上学来的路由更优,所以流量回切到RTB上。但如果在RTB上出现先通告路由,后下刷驱动的情况,在流量切换的过程中就会出现流量已经被引到RTB,但RTB暂时还不能转发的情况,导致短暂的流量中断。

为满足既能保证系统的性能,又能保证BGP路由处理的理想时序的要求,容易想到的是同步处理方法,即单纯的路由延迟发送机制。在图5所示的应用中,如果在RTB上进行延迟发送,在延迟的时间内RTB可以完成下刷过程,就可以实现RTB先下刷驱动,RTE后收到路由的理想时序,这样就能够保证RTE过来的流量不丢失。图6为路由延迟发送机制的示意图。但是,在单纯的延迟发送机制下,如果没有备份链路,假设每台设备都采用延迟发送机制(假设延迟5秒发送),则RTE实际延迟了15秒才收到路由,这个延迟时间受到中间经过的设备的影响,设备越多,延迟的时间越长。还可想到的是异步处理方法,即在形成备份或者等价的设备(如图3中RTE)的上游设备(如图3中RTB和RTD)上,配置一条命令,命令里面带两个参数,一个是初次发布新路由时的路由策略,一个是再次用原始属性发布路由的延迟等待时间。虽然可以在一定程度上解决图6中的问题,但是上游设备需要前后发送两份路由,当路由量很大的时候,在网络中会生成大量的BGP报文,对网络造成负担;而且后一份路由延迟一段时间发送,会延缓流量切换的时机,无法满足另一些特定场景的需求。

综上所述,BGP路由能够按照图1中所示的理想时序来处理则不会产生流量中断的问题。但是,如果BGP路由下刷给驱动采用同步的处理方式来保证图1中的时序,会因为同步导致系统被阻塞,从而降低整个系统的性能;如果BGP路由下刷给驱动采用异步的处理方式,在每次下刷成功后驱动反向通知BGP该路由,再让BGP向邻居设备发送路由,则驱动反向通知会大量的消耗系统资源,从而降低整个系统的性能。

基于上述思考,提出了本发明的技术方案。本发明的设计构思是:BGP设备的BGP协议层与网络接口驱动层之间仍采用异步方式向网络接口硬件层下刷最优路由,但在BGP协议模块向网络接口驱动下发最优路由时,对下发的最优路由进行唯一性标识,网络接口驱动在每一次下刷网络接口硬件后,记录当前的标识信息,只有当满足预设触发条件时,网络接口驱动才向BGP协议模块通告已下刷成功的最优路由的标识信息,然后由BGP协议模块将通告的已下刷成功的最优路由的标识信息对应的最优路由通告给邻居。为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

参见图7,为本发明实施例提供的一种BGP路由处理方法的流程示意图。如图7所示,该方法包括:

步骤S710,BGP协议模块在向网络接口驱动下发最优路由时,对下发的最优路由进行唯一性标识。

本发明对进行唯一性标识的标识方法不做具体限定,例如可以采用序列号,也可以采用非序列号的其他标识,只要能保证每个下发的最优路由的标识的唯一性即可。

步骤S720,网络接口驱动在将BGP协议模块下发的最优路由成功下刷到网络接口硬件后,记录当前最优路由的标识信息,并执行第一信令触发条件的判断。

为了保证BGP路由处理的下刷驱动时序和通告时序,防止流量回切过程中出现的短暂的流量中断问题,需要在网络接口驱动将BGP协议模块下发的最优路由成功下刷到网络接口硬件后,再将该下发的最优路由通告给邻居,但是,如上文提出的问题,如果最优路由每次下刷硬件成功后,网络接口驱动都反向通知BGP该路由,则驱动反向通知会大量的消耗系统资源,从而降低整个系统的性能。所以本实施例设定了第一信令触发条件,当最优路由成功下刷到网络接口硬件后,记录当前最优路由的标识信息,并执行第一信令触发条件的判断,只有满足第一信令触发条件的时候,网络接口驱动才会反向通知BGP协议模块。

需要说明的是,这里的第一信令触发条件可以根据方案的整体需求进行设定。第一信令触发条件可以是仅基于下发成功的最优路由的数量设定,例如,下刷硬件成功的最优路由的数量达到预设数量阈值;或者,仅基于时间设定,例如,当距前一次触发发送第一信令后的间隔时间达到预设的时间阈值;或者,既基于下发成功的最优路由的数量又基于时间设定,从两个方面限定第一信令触发条件,只要两者满足其一,均视为满足第一信令触发条件。

步骤S730,当满足第一信令触发条件时,网络接口驱动向BGP协议模块发送第一信令,否则不发送第一信令;这里的第一信令用于通告已下刷成功的最优路由的标识信息。

只有当满足第一信令触发条件时,网络接口驱动才进行反向通知,这样可减少网络接口驱动反向通知的频度,降低网络接口驱动和BGP协议模块之间的交互次数,而且这里的第一信令只用于通告已经下刷成功的最优路由的标识信息,也可以减少报文长度。

步骤S740,BGP协议模块根据接收到的第一信令,将第一信令通告的已下刷成功的最优路由的标识信息对应的最优路由通告给邻居。

BGP协议模块只有在接收到网络接口驱动发送的第一信令后,才会将第一信令通告的已下刷成功的最优路由的标识信息对应的最优路由通告给邻居。这样可以满足下发的最优路由是在下刷网络接口硬件成功后,才通告给邻居,保证BGP路由处理的理想时序,避免流量回切过程中出现的流量暂时中断的问题,也在一定程度上减少了网络负担,降低对网络的冲击,保证流量切换的快速及时。

综上,本发明通过为下发的最优路由进行唯一性标识,在BGP协议模块下刷路由给网络接口驱动时附加上该唯一性标识信息,并采用异步处理方式,保证下发的最优路由是在下刷网络接口硬件成功后才通告给邻居,保证了BGP路由处理的下刷驱动时序和通告时序,还可降低网络接口驱动反向通知BGP协议模块的频度和报文的长度,避免系统资源的消耗,防止系统被阻塞。

在本发明的一个实施例中,为了便于BGP协议模块在接收到网络接口驱动发送的第一信令后,可以及时、快速地查找到与第一信令中已经成功下刷网络接口硬件的最优路由的标识信息对应的最优路由,图7所示的方法还包括:

BGP协议模块将下发给网络接口驱动的最优路由连同其标识信息缓存在一数据结构中,例如,链表、堆栈、数组、树等,这里不做具体限定,只要能在该数据结构上实现私有数据存储及查询功能即可。

同时为了保证上述数据结构的空间资源的可用性,图7所示的方法还包括:当BGP协议模块在收到网络接口驱动发送的第一信令且将第一信令通告的已下刷成功的最优路由通告给邻居后,将已通告给邻居的最优路由连同其标识信息从数据结构中删除。

在本发明的一个实施例中,图7所示方法的步骤S720中的第一信令触发条件基于成功下刷的最优路由的数量阈值和/或计时时间阈值来设置。其中,数量阈值和时间阈值可以根据驱动的缓存空间大小、下刷路由的效率等因素综合考虑来设定,本案不做具体限定。

例如,数量阈值可以设定为M个,M为大于等于2的正整数,当成功下刷的最优路由的数量达到M个后,即认为满足第一信令触发条件,触发发送第一信令;时间阈值可以设定为1秒,当距前一次触发发送第一信令后的间隔时间达到1秒时,即认为满足第一信令触发条件,触发发送第一信令。

具体地,该第一信令触发条件可以有以下三种情况来进行具体实施:

(1)第一信令触发条件仅为当成功下刷的最优路由的数量达到预设的数量阈值时,触发发送第一信令。

(2)第一信令触发条件仅为当距前一次触发发送第一信令后的间隔时间达到预设的时间阈值时,触发发送第一信令。

(3)第一信令触发条件为当成功下刷的最优路由的数量达到预设的数量阈值或距前一次触发发送第一信令后的间隔时间达到预设的时间阈值时,触发发送第一信令。

在本发明的一个实施例中,采用序列号的方式给下发的每条最优路由标识一个唯一的序列号,且该序列号按预设步长进行累加,当预设步长为1时,可以是连续的数字,当预设步长大于1时,例如2或3时,也可以是非连续的数字。具体地,步骤S710中的对下发的最优路由进行唯一性标识包括:通过一全局的序列号对下发的最优路由进行唯一性标识,该全局的序列号按预设步长进行累加。例如,BGP协议模块每下发一条最优路由时,将序列号的值加1。具体为,当前序列号为0,当BGP协议模块下发一条最优路由,序列号变为1,将序列号1作为此次下发的最优路由的标识;当BGP协议模块又下发一条最优路由,序列号变为2,将序列号2作为此次下发的最优路由的标识。通过设定全局序列号,并将序列号按预设步长进行累加的方式对下发的最优路由进行标识,能够保证下发的最优路由的标识唯一性。考虑到序列号溢出的问题,可以设置足够大位数并在设备每次启动时将序列号初始化为0,或在序列号快要溢出时,在已下刷成功的路由发送给邻居成功后,对序列号进行同步复位处理。

在上述例子中,第一信令通告的已下刷成功的最优路由的标识信息可以是仅包含最后一个已下刷成功的最优路由的序列号,当然也可以包含每一个已下刷成功的最优路由的序列号。

为了进一步缩短报文的长度,第一信令通告的已下刷成功的最优路由的标识信息仅包含最后一个已下刷成功的最优路由的序列号。那么,当BGP协议模块接收到仅包含最后一个已下刷成功的最优路由的序列号的第一信令后,因为序列号是每个下发的最优路由的唯一标识,BGP协议模块根据第一信令可以唯一确定需要发送给邻居的最优路由,会将第一信令通告的最后一个下刷成功的最优路由的序列号以及其之前的序列号对应的所有最优路由生成BGP更新报文通告给邻居。因此上述步骤S740中BGP协议模块根据接收到的第一信令,将第一信令通告的已下刷成功的最优路由的标识信息对应的最优路由通告给邻居包括:BGP协议模块根据接收到的第一信令,将第一信令通告的最后一个已下刷成功的最优路由的序列号以及其之前的序列号对应的所有最优路由生成BGP更新报文通告给邻居。

在本发明的一个具体的实施例中,BGP路由处理方法如下:

A、BGP协议模块在向网络接口驱动下发最优路由时,对下发的最优路由配置一全局的序列号;

B、BGP协议模块每下发一条最优路由时,将序列号的值加1,并将加1后的序列号与最优路由下刷给网络接口驱动,同时将加1后的序列号与下发的最优路由对应缓存在一数据结构中。

C、网络接口驱动在将BGP协议模块下发的最优路由成功下刷到网络接口硬件后,记录当前最优路由的序列号,并判断是否满足第一信令触发条件,若不满足则不发送第一信令,若满足则将当前序列号包含在第一信令信息里发送给BGP协议模块。

这里的触发条件可以是,网络接口驱动下刷网络接口硬件成功后记录的当前的最优路由的序列号与前一次上送时记录的序列号之差达到预定数量阈值。例如,预定数量间隔为2,即每隔2个序列号,若记录的当前的序列号为5,前一次上送时记录的序列号为4,5-4=1不满足预定数量间隔2,则驱动不发送第一信令;若驱动当前的序列号为6,前一次上送时记录的序列号为4,6-4=2满足预定数量间隔2,则驱动将序列号6发送给BGP协议模块。

这里的触发条件还可以是,距前一次触发发送第一信令后的间隔时间达到预设的时间阈值,本实施例可以通过定时器进行基于时间的触发条件的判断。例如,预设的时间阈值为1秒,前一次触发发送第一信令的时间是13:00:00,那么当在13:00:01的时候,触发发送第一信令。

优选地,这里的触发条件还可以是上述两种触发条件的合并,只要两者满足其一,均可认为满足第一信令触发条件,触发发送第一信令。

D、BGP协议模块根据接收到的第一信令,将数据结构中的第一信令通告的最后一个已下刷成功的最优路由的序列号以及其之前的序列号对应的所有最优路由生成BGP更新报文通告给邻居。

下面再通过一个具体例子说明本发明的BGP路由处理方法。场景为:采用全局序列号(初始值为0)对下发的最优路由进行唯一性标识,第一信令触发条件为预设的时间阈值是1秒以及预设的数量阈值为2。其中BGP路由处理步骤为:

(1)启动定时器,计时开始。在第1秒,BGP协议模块下发最优路由1,将全局序列号加1,因为全局序列号初始值为0,所以此时全局序列号为1,BGP协议模块将该序列号1以及最优路由1下刷给网络接口驱动并将序列号1和该路由挂到待发送链表上。

(2)在第1秒,BGP协议模块又下发最优路由2,将全局的序列号再加1,此时全局序列号为2,BGP协议模块将该序列号2以及最优路由2下刷给驱动并将该序列号2和路由挂到待发送链表上。

(3)网络接口驱动接收到序列号1和最优路由1,下刷硬件成功后记录当前的序列号为1,判断是否满足第一信令触发条件。因为当前判断的序列号是1,不满足预设的数量阈值2的触发条件,则此时无需向BGP协议模块发送第一信令。

(4)网络接口驱动收到最优路由2,下刷网络接口硬件成功后记录当前的序列号为2,判断是否满足第一信令触发条件。此时判断发现序列号2满足预设的数量阈值2的触发条件,则向BGP协议模块发送包含序列号2的第一信令;第一信令发送后定时器清零,重新开始计时。

(5)BGP协议模块收到网络接口驱动上送的序列号2,将该序列号2以及其之前的序列号1和与序列号1和2对应的所有最优路由从待发送链表中摘除,即清空待发送链表,并将摘除的最优路由1和最优路由2生成BGP更新报文发送给各个邻居。

(6)在第2秒和第3秒,虽然BGP协议模块未收到任何最优路由,但定时器仍会计时并在达到预定时间后自动清零;在第4秒,定时器重新开始计时,BGP协议模块下发最优路由3,将全局的序列号加1,此时全局序列号为3,BGP将该序列号3以及最优路由3下刷给网络接口驱动,并将该序列号3和该最优路由挂到待发送链表上;

(7)网络接口驱动收到最优路由3,下刷硬件成功后记录当前的序列号为3,判断是否满足第一信令触发条件。因为当前判断的序列号是3,不满足预设的数量阈值2(即3-2不等于2)的触发条件,则此时无需向BGP协议模块发送第一信令。

(8)当定时器达到1秒时,网络接口驱动仍然没有接收到新的最优路由信息,虽然此时未满足预设的数量阈值2的触发条件,但满足了定时器达到1秒的触发条件,则仍向BGP协议模块发送包含序列号3的第一信令。

(9)BGP协议模块收到网络接口驱动通知的序列号3,将该序列号3及其之前的序列号对应的所有最优路由(此时只有最优路由3,因为最优路由1和最优路由2之前已经被摘除)从待发送链表中摘除,并生成BGP更新报文发送给各个邻居。

需要说明的是,在第1秒中网络接口驱动向BGP协议模块发送第一信令时,定时器已经重新开始计时,但是,在第2秒和第3秒网络接口驱动均没有接收到新的最优路由,则在定时器计时到1秒后,网络接口驱动可以进行判断,其判断出最新记录的序列号2已经发送给BGP协议模块,这时即使定时器达到预定时间,网络接口驱动也可以不做处理。或者,在定时器计时到1秒后,网络接口驱动可将最后一次记录的序列号发送给BGP协议模块,BGP协议模块判断待发送链表里没有待发送的最优路由,则不进行处理。定时器计时达到预定时间后,都会清零重新开始计时。

与前述方法相对应,本发明还提供了一种BGP路由处理装置,该装置可应用于BGP设备中。

请参考图8,从功能结构上划分,BGP路由处理装置80可包括:BGP协议模块810和网络接口驱动820。

BGP协议模块810,用于在向网络接口驱动820下发最优路由时,对下发的最优路由进行唯一性标识;以及接收网络接口驱动820发送的第一信令,并根据接收到的第一信令,将第一信令通告的网络接口驱动已下刷成功的最优路由的标识信息对应的最优路由通告给邻居;

网络接口驱动820,用于在将BGP协议模块810下发的最优路由成功下刷到网络接口硬件后,记录当前最优路由的标识信息,并执行第一信令触发条件的判断;当满足第一信令触发条件时,向BGP协议模块810发送第一信令,否则不发送第一信令;第一信令用于通告已下刷成功的最优路由的标识信息。

需要说明的是,本发明中的BGP协议模块可以完成的功能除本案限定的功能外,还包括BGP协议中规定的BGP协议功能。

在本发明的一个实施例中,BGP协议模块810,还用于将下发给网络接口驱动的最优路由连同其标识信息缓存在一数据结构中;在收到网络接口驱动820发送的第一信令且将第一信令通告的已下刷成功的最优路由通告给邻居后,将已通告给邻居的最优路由连同其标识信息从数据结构中删除。

在本发明的一个实施例中,第一信令触发条件基于成功下刷的最优路由的数量阈值和/或计时时间阈值来设置。包括如下三种情形:

当成功下刷的最优路由的数量达到预设的数量阈值时,触发发送第一信令;或

当距前一次触发发送第一信令后的间隔时间达到预设的时间阈值时,触发发送第一信令;或

当成功下刷的最优路由的数量达到预设的数量阈值或距前一次触发发送第一信令后的间隔时间达到预设的时间阈值时,触发发送第一信令。

在本发明的一个实施例中,BGP协议模块对下发的最优路由进行唯一性标识包括:通过一全局的序列号对下发的最优路由进行唯一性标识,该全局的序列号按预设步长进行累加;网络接口驱动820向BGP协议模块810发送的第一信令中包含最后一个已下刷成功的最优路由的序列号;

BGP协议模块810,具体用于根据接收到的第一信令,将第一信令通告的最后一个已下刷成功的最优路由的序列号以及其之前的序列号对应的所有最优路由生成BGP更新报文通告给邻居。

对于BGP路由处理装置实施例而言,由于基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的BGP路由处理装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

参见图9,为本发明一个实施例提供的一种BGP设备的硬件结构示意图。如图9所示,该BGP设备90包括如图8所示的BGP路由处理装置80。

本发明提供的BGP路由处理装置80可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,可通过处理器10将非易失性存储器50中与BGP路由处理装置80对应的机器可执行指令读取到内存40中运行。从硬件层面而言,除了图9所示的处理器10、内部总线20、网络接口30、内存40、以及非易失性存储器50之外,根据该BGP设备的实际功能,还可以包括其他硬件,对此不再赘述。

在不同的实施例中,所述非易失性存储器50可以是:存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、DVD等),或者类似的存储介质,或者它们的组合。所述内存40可以是:RAM(Radom AccessMemory,随机存取存储器)、易失存储器、非易失性存储器、闪存。

进一步,非易失性存储器50和内存40作为机器可读存储介质,其上可存储由处理器10执行的BGP路由处理装置80对应的机器可执行指令。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

综上所述,根据本发明的技术方案,BGP协议模块在向网络接口驱动下发最优路由时,对下发的最优路由进行唯一性标识;网络接口驱动在将BGP协议模块下发的最优路由成功下刷到网络接口硬件后,记录当前最优路由的标识信息,并执行第一信令触发条件的判断;当只有满足第一信令触发条件时,网络接口驱动才向BGP协议模块发送第一信令,并非每一条路由下刷驱动成功后都发送第一信令,可减少反向通知的频度,而且这里的第一信令只用于通告已经下刷成功的最优路由的标识信息,可减少报文长度;BGP协议模块根据接收到的第一信令,将第一信令通告的已下刷成功的最优路由的标识信息对应的最优路由通告给邻居。可见,BGP设备的BGP协议层与网络接口驱动层之间采用异步方式向网络接口硬件层下刷最优路由,保证了BGP路由处理的下刷驱动时序和通告时序,防止流量回切过程中出现的短暂的流量中断问题;只有当满足预设触发条件时,网络接口驱动才向BGP协议模块通告已下刷成功的最优路由的标识信息,可降低网络接口驱动反向通知BGP协议模块的频度和报文的长度,避免系统资源的消耗,防止系统被阻塞,同时尽可能的减少对现有网络的冲击以及尽快的完成流量的切换。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1