一种边界网关协议BGP路由的处理方法及装置与流程

文档序号:11842503阅读:239来源:国知局
一种边界网关协议BGP路由的处理方法及装置与流程
本发明涉及通信
技术领域
,特别是涉及一种BGP(BorderGatewayProtocol,边界网关协议)路由的处理方法及装置。
背景技术
:BGP负责本自治区域和外部自治区域之间路由可达信息的交换,且BGP可以实施用户配置的策略。监控服务器负责监控BGP邻居之间的BGP路由。现有技术中的多个监控服务器在监控同一个BGP邻居时,获取该BGP邻居发送的BGP路由时所采取的方法为:路由设备接收到BGP邻居发送的BGP路由,并将BGP路由编辑成BMPRM(BGPMonitoringProtocolRouteMonitoring,路由监控)报文,然后,将BMPRM报文存储到待发送缓冲区,将待发送缓冲区中的BMPRM报文发送至监控服务器,在发送完成后,释放该待发送缓冲区。当需要将BGP路由发送至另一个监控服务器时,则重复上述步骤。随着网络的飞速发展,自治区域间路由信息的交换量越来越大,网络中BGP路由的数量也越来越多。在该种情况下,现有技术在路由设备向监控服务器发送BGP路由时,由于每次都要将BGP路由重新组成BMPRM报文,并反复的申请和释放待发送缓冲区,从而导致处理效率的降低,并加重了系统的负担。针对现有技术中存在的处理效率低、系统负担重的问题,目前尚未提出有效的解决方案。技术实现要素:本发明实施例所要解决的技术问题是提供一种BGP路由的处理方法,以提高BGP路由的处理效率并减轻系统负担。相应的,本发明实施例还提供了一种BGP路由的处理装置,用以保证上述方法的实现及应用。为了解决上述问题,本发明实施例公开了一种BGP路由的处理方法,包括:将接收到的来自BGP邻居的BGP路由封装成BMP报文,其中,BMP报文中携带第一标识信息,第一标识信息与两个或两个以上的监控服务器对应;根据第一标识信息与两个或两个以上的监控服务器之间的对应关系,将BMP报文发送给两个或两个以上的监控服务器。本发明实施例还公开了一种BGP路由的处理装置,包括:封装模块,用于将接收到的来自BGP邻居的BGP路由封装成BMP报文,其中,BMP报文中携带第一标识信息,第一标识信息与两个或两个以上的监控服务器对应;发送模块,用于根据第一标识信息与两个或两个以上的监控服务器之间的对应关系,将BMP报文发送给两个或两个以上的监控服务器。这样,本发明实施例中,通过将接收到的来自BGP邻居的BGP路由封装成BMP报文,其中,BMP报文中携带第一标识信息,第一标识信息与两个或两个以上的监控服务器对应;根据第一标识信息与两个或两个以上的监控服务器之间的对应关系,将BMP报文发送给两个或两个以上的监控服务器,从而提高了BGP路由的处理效率,并且减少了内存的占用,降低了系统负担,提高了资源利用率。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本发明的一种BGP路由的处理方法实施例的步骤流程图;图2是本发明实施例的网络架构图;图3是本发明实施例中的BMP服务器与BMP报文之间的连接示意图;图4是本发明一种BGP路由的处理装置实施例的结构框图;图5是本发明一种BGP路由的处理装置实施例的结构框图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例的核心构思之一在于,提出一种BGP路由的处理方法及装置,以有效地提高BGP路由的处理效率同时降低系统负担。参照图1,示出了本发明的一种BGP路由的处理方法实施例的步骤流程图,具体可以包括如下步骤:步骤101,将接收到的来自BGP邻居的BGP路由封装成BMP报文,其中,BMP报文中携带第一标识信息,第一标识信息与两个或两个以上的监控服务器对应。支持BGP协议的路由设备(例如Corerouter核心路由器)接收同一个BGP邻居发来的至少一个BGP路由,并将该至少一个BGP路由封装成BMP报文。在本发明的一个实施例中,可以对每条BGP路由分别封装,生成多个BMP报文。在另一个实施例中,也可以将多条BGP路由分装成一个BMP报文,具体封装方法可根据缓存大小以及用户设定进行封装,本发明对此不做限定。在本发明的实施例中,在封装BMP报文的过程中,向封装包中添加第一标识信息,该第一标识信息与两个或两个以上的监控服务器对应。其中,所述两个或两个以上的监控服务器均监控同一个BGP邻居。也就是说,监控同一个BGP邻居的两个或两个以上数量的监控服务器均与BMP报文中的第一标识信息对应。在本发明的另一个实施例中,也可以在BMP报文封装完成之后,向封装后的BMP报文中添加第一标识信息,本发明对此不做限定。此外,由于同一个BGP邻居可能存在大量的BGP路由,在根据需求将大量的BGP路由进行封装后,将得到与该BGP邻居对应的多个BMP报文。在本发明的一个实施例中,可以将多个BMP报文作为一个整体,向该整体中添加第一标识信息。在本发明的另一个实施例中,也可以向每个BMP报文中添加第一标识信息。步骤102,根据第一标识信息与两个或两个以上的监控服务器之间的对应关系,将BMP报文发送给两个或两个以上的监控服务器。具体的,BGP路由设备通过检测第一标识信息与监控服务器之间的对应关系,从而能够确定接收BMP报文的目标监控服务器。在本发明的实施例中,与第一标识信息对应的所有监控服务器称为目标监控服务器。BGP路由设备将BMP报文发送给所有目标监控服务器。综上所述,本发明实施例提供的技术方案,通过将接收到的来自BGP邻居的BGP路由封装成BMP报文,其中,BMP报文中携带第一标识信息,第一标识信息与两个或两个以上的监控服务器对应;根据第一标识信息与两个或两个以上的监控服务器之间的对应关系,将BMP报文发送给两个或两个以上的监控服务器,从而提高了BGP路由的处理效率,并且减少了内存的占用,降低了系统负担,提高了资源利用率。在本发明的一个优选的实施例中,BMP报文中还携带有第二标识信息,该第二标识信息与第一标识信息对应,并且第二标识信息用于识别BMP报文是否被发送。具体的,在通过第一标识信息确定待接收BMP报文的目标监控服务器之后,BGP路由设备还能够通过与第一标识信息对应的第二标识信息识别BMP报文是否发送给所有目标监控服务器。在本发明的一个优选的实施例中,通过第二标识信息识别BMP报文是否被发送的步骤,具体可以包括:检测第二标识信息是否包括预定数值;若包括预定数值,则确定BMP报文已发送给监控服务器。具体的,BGP路由设备每成功向一个目标监控服务器发送BMP报文成功之后,会将第二标识信息进行修改,具体修改方法将在下面的实施例中进行详细阐述。并且,BGP路由设备在向所有目标监控服务器发送BMP报文的过程中,将实时检测第二标识信息的状态,当检测到第二标识信息为预定数值时,则确定BMP以成功发送给所有目标监控服务器。在本发明的一个优选的实施例中,BGP路由的处理方法还包括:若识别到BMP报文已发送给监控服务器,释放BMP报文。具体的,若BGP路由设备识别到BMP报文已发送给所有目标监控服务器,则释放该BMP报文。在本发明的一个优选的实施例中,BMP报文中还携带指针,指针指向下一个接收到的来自BGP邻居的BGP路由封装成的BMP报文。具体的,封装后的BMP报文中还携带有指针,该指针用于指向下一个新生成的BMP报文。在本发明的实施例中,通过该指针使BMP报文按照生成顺序构成报文链,每个新生成的BMP报文都位于报文链尾部,等待发送。本领域普通技术人员须知,BMP报文中的指针仅指向同源BMP报文,也就是说,报文链中的所有BMP报文中的BGP路由均来自同一个BGP邻居。为了更好的理解本发明的BGP路由的处理方法,下面以具体实施例进行详细阐述。参照图2,示出了本发明实施例的BGP路由的处理方法的网络架构图。在图2中包括多个监控服务器分别为BMP1、BMP2、BMP3……BMPN以及路由设备A、路由设备B,BMP1-N与路由设备B(核心路由器)进行通信连接,并且,路由设备A与路由设备B建立BGP邻居。在每个路由设备上设置BMP(BGPMonitoringProtocol)特性,使路由设备能够与监控服务器进行通信,从而使监控服务器可以对装置上的BGP会话的运行状态进行实时监控,包括对等体关系的建立与解除以及路由信息等。本领域普通技术人员须知,本发明的实施例中所列举的数值仅为更好的说明本发明的技术方案,本发明对此不做限定。在业务开始之前,由用户对BMP1-N的监控对象进行配置,在本实施例中,指定BMP1-3监控路由设备A。即,BMP1-3均负责监控路由设备B接收到的来自邻居路由设备A的所有路由。在配置完成之后,路由设备B在本地存储中将建立监控列表,并将BMP1-3与路由设备A的对应关系记录在监控列表中。在本实施例中,监控列表中的内容如表1所示:监控对象监控对象端口号监控服务器名称监控服务器端口号路由设备A1BMP12路由设备A1BMP23路由设备A1BMP34表1路由设备B接收来自BGP邻居(路由设备A)报文,该邻居报文中携带有路由设备A的路由。路由设备B将接收到的报文进行解析,解析出路由信息表等信息并存储到内存中。路由设备B检测本地存储的监控列表,并根据该监控列表确定BMP1-3监控路由设备A。路由设备B将路由设备A发来的BGP路由进行封装,封装成BMP报文,并且向封装后的BMP报文中添加指针和第一标识信息,在本实施例中,以一条BGP路由封装成一个BMP报文,并且每个BMP报文中携带第一标识信息以及指针进行举例。在业务处理过程中,路由设备B将持续接收到路由设备A发来的多条BGP路由,路由设备B将每条BGP路由封装成BMP报文,并按照BGP路由的接收顺序,将前一个接收到的BGP路由对应的BMP报文中的指针指向下一个接收到的BGP路由对应的BMP报文中,从而按照BGP路由的接收顺序构成一BMP报文链。在本实施例中,报文链称为BMP打包组,即将生成的所有BMP报文打包成一组。此外当该指针为空时,即表示该指针对应的BMP报文为最后生成的BMP报文,位于报文链的末尾。在本发明的实施例中,BMP报文中携带的第一标识信息与BMP1-3对应,用于标识与BMP1-3之间的连接数。在本发明的一个实施例中,第一标识信息可以为多个标识信息,多个标识信息与BMP1-3一一对应,从而通过多个标识信息表示连接数。举例说明:多个标识信息可以为FLAG[1]、FLAG[2]、FLAG[3]并且FLAG[1]、FLAG[2]、FLAG[3]分别对应BMP1、BMP2、BMP3。BMP报文中携带的第二标识信息与第一标识信息对应,用于识别BMP报文是否发送给BMP1-3。举例说明:第一标识信息中的FLAG[1]所对应的第二标识信息为0时,则表示BMP报文已发送至BMP1。而当第二标识信息为1时,则表示需要向BMP1发送BMP报文。在本发明的另一个实施例中,第一标识信息还可以直接表示连接数。举例说明:BMP1-3所对应的第一标识信息为FLAG[3]。此时,第一标识信息FLAG[3]所对应的第二标识信息的数值等于连接数,即3。在本实施例中,BMP报文每发送给一个监控服务器,则第二标识信息中的数值减1。即,当BMP报文发送给BMP1后,该BMP报文中的第二标识信息将变为2。在本实施例中,路由设备B在发送位于BMP打包组首位的BMP报文时,检测到BMP1-3所对应的Flag[1]、Flag[2]、Flag[3]中的数值均为1。在其他实施例中,如果出现BMP与路由设备B连接中断等问题时,则将BMP服务器所对应的第一标识信息所对应的第二标识信息修改为0。如图3所示,BMP1服务器与BMP打包组首位的BMP报文建立连接。其中,该连接通过预设数据结构建立,并且预设数据结构中包括连接指针,该连接指针用于指向需要传输的BMP报文。其中,当该连接指针为空时,表示当前没有需要传输的BMP报文,即BMP打包组中的最后一个BMP报文已传输完毕,没有需要进行传输的BMP报文。如果连接指针不为空,则该连接需要继续传输BMP打包组中位于首位的报文。在预设数据结构中的连接指针不为空的情况下,路由设备B向BMP1发送位于BMP打包组首位的BMP报文1,BMP1将该报文写入TCP缓冲区。在本发明的实施例中,TCP缓冲区具有长度限制,如果BMP报文长度超过TCP缓冲区的长度限制,则结束该BMP1的BGP路由传输。在BMP1将位于首位的BMP报文1成功写入TCP缓冲区之后,路由设备B将BMP1所对应的第一标识信息Flag[1]所对应的第二标识信息的数值修改为0,表示BMP报文1已向该Flag[1]对应的BMP1发送成功。然后,将发送成功的BMP1服务器中的连接指针指向BMP打包组中的下一个BMP报文2。路由设备B实时检测BMP报文1中的第二标识信息是否全部为预定数值,即为0。如果全部为0,则表示位于首位的BMP报文1向所有需要获取该BMP报文的BMP服务器发送成功。如果BMP报文的第二标识信息中存在数值为1的第二标识信息,则说明该第二标识信息所对应的BMP服务器未完成与BMP报文1之间的传输。当路由设备B检测到BMP报文1中的第一标识信息所对应的第二标识信息均为预定数值,即为0时,释放该数据结构及BMP报文1,则此时,BMP报文2即为BMP打包组中位于首位的数据结构,重复上述发送步骤,直至所有BMP连接中的连接指针为空。综上所述,本发明实施例提供的技术方案,通过将接收到的来自BGP邻居的BGP路由封装成BMP报文,其中,BMP报文中携带第一标识信息,第一标识信息与两个或两个以上的监控服务器对应;根据第一标识信息与两个或两个以上的监控服务器之间的对应关系,将BMP报文发送给两个或两个以上的监控服务器。,从而极大程度上减少了组包次数,提高了BGP路由的处理效率,同时减少了内存的占用,降低了系统负担,提高了资源利用率。基于与上述方法同样的发明构思,本发明实施例还提供一种BGP路由的处理装置,应用在BGP路由设备中。该BGP路由的处理装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在的路由设备的处理器,读取非易失性存储器中对应的计算机程序指令形成的。从硬件层面而言,除了处理器、非易失性存储器外,路由设备还可以包括其他硬件,如负责处理报文的转发芯片、网络接口、内存等;从硬件结构上来讲,该路由设备还可能是分布式设备,可能包括多个接口卡,以便在硬件层面进行报文处理的扩展参照图4,示出了本发明一种BGP路由的处理装置实施例的结构框图,具体可以包括如下模块:封装模块41,用于将接收到的来自BGP邻居的BGP路由封装成BMP报文,其中,BMP报文中携带第一标识信息,第一标识信息与两个或两个以上的监控服务器对应。发送模块42,用于根据第一标识信息与两个或两个以上的监控服务器之间的对应关系,将BMP报文发送给两个或两个以上的监控服务器。参照图5,在本发明的一个优选的实施例中,在图4的基础上,装置还包括:检测模块51,用于检测第二标识信息是否包括预定数值。确定模块52,用于若包括预定数值,则确定BMP已发送给监控服务器。以及,释放模块53,用于若识别到BMP报文已成功发送给监控服务器,释放BMP报文。综上所述,本发明实施例提供的BGP路由的处理装置,通过将接收到的来自BGP邻居的BGP路由封装成BMP报文,其中,BMP报文中携带第一标识信息,第一标识信息与两个或两个以上的监控服务器对应;根据第一标识信息与两个或两个以上的监控服务器之间的对应关系,将BMP报文发送给两个或两个以上的监控服务器,从而极大程度上减少了BGP路由的组包次数,提高了BGP路由的处理效率,同时减少了内存的占用,降低了系统负担,提高了资源利用率。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本发明实施例是参照根据本发明实施例的方法、终端装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端装置的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端装置的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端装置以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理终端装置上,使得在计算机或其他可编程终端装置上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端装置上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端装置中还存在另外的相同要素。以上对本发明所提供的一种BGP路由的处理方法和装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1