首页> 中国专利> 一种BGP对等体之间的路由信息更新方法、设备及介质

一种BGP对等体之间的路由信息更新方法、设备及介质

摘要

本申请公开了一种BGP对等体之间的路由信息更新方法、设备及介质,方法包括:在BGP对等体之间建立BGP会话时,第一BGP设备启动预先设置的路由通告定时器;获取路由通告队列,通过路由通告定时器扫描路由通告队列,确定待发送至第二BGP设备的路由信息;其中,第一BGP设备与第一BGP设备为BGP对等体;对路由信息进行封装,生成BGP Update报文;根据BGP Update报文生成路由更新信息,将路由更新信息发送至第二BGP设备。本申请实施例能够通过定时器定时轮询的方法有效避免路由震荡导致的BGP对等体之间路由信息的频繁更新交互,减少环境内的BGP Update报文数量,减少路由震荡时链路带宽的浪费和设备CPU的占用,提高了BGP对等体之间的路由信息更新效率。

著录项

  • 公开/公告号CN113852560A

    专利类型发明专利

  • 公开/公告日2021-12-28

    原文格式PDF

  • 申请/专利权人 浪潮思科网络科技有限公司;

    申请/专利号CN202111220078.0

  • 发明设计人 方震;向荣;张婵;

    申请日2021-10-20

  • 分类号H04L12/801(20130101);H04L12/751(20130101);H04L12/755(20130101);H04L29/08(20060101);

  • 代理机构11716 北京君慧知识产权代理事务所(普通合伙);

  • 代理人肖鹏

  • 地址 250101 山东省济南市高新区浪潮路1036号S01-6楼

  • 入库时间 2023-06-19 13:26:15

说明书

技术领域

本申请涉及通信技术领域,尤其涉及一种BGP对等体之间的路由信息更新方法、设备及介质。

背景技术

BGP(Border Gateway Protocol,边界网关协议)BGP是运行于TCP(TransmissionControl Protocol,传输控制协议)上的一种自治系统的路由协议。BGP的主旨是提供一种域间路由选择系统,确保自主系统只能够无环地交换路由选择信息,BGP路由器交换有关前往目标网络的路径信息。

但是,大规模组网环境中,路由震荡会导致设备频繁的发送BGP Update报文,从而在组网环境中,充斥着大量的BGP报文浪费网络带宽、占用设备CUP,严重时会出现业务流量不通,网络不稳定,导致BGP对等体之间的路由信息更新效率低。

发明内容

本申请实施例提供一种BGP对等体之间的路由信息更新方法、设备及介质,用于解决BGP对等体之间的路由信息更新效率低的问题。

本申请实施例采用下述技术方案:

一方面,本申请实施例提供了一种BGP对等体之间的路由信息更新方法,该方法包括:在BGP对等体之间建立BGP会话时,第一BGP设备启动预先设置的路由通告定时器;获取路由通告队列,通过所述路由通告定时器扫描所述路由通告队列,确定待发送至第二BGP设备的路由信息;其中,所述第一BGP设备与所述第一BGP设备为BGP对等体;对所述路由信息进行封装,生成BGP Update报文;根据所述BGP Update报文生成路由更新信息,将所述路由更新信息发送至所述第二BGP设备。

一个示例中,所述获取所述路由通告队列,具体包括:获取来自于第三BGP设备的路由信息;所述第一BGP设备与所述第三BGP设备为BGP对等体;将所述路由信息按照协议族类型存储至不同的工作队列;根据若干所述工作队列,生成所述路由通告队列。

一个示例中,所述获取来自于第三BGP设备的路由信息之后,所述方法还包括:将来自于所述第三BGP设备的路由信息中的若干路由逐条添加至路由表;在所述路由表中,对所述若干路由进行属性处理,以及进行路由最优选择,将所述若干路由存储至路由信息表。

一个示例中,所述通过所述路由通告定时器扫描所述路由通告队列,确定待发送至第二BGP设备的路由信息,具体包括:在所述路由通告定时器超过设定的时长时,向BGP状态机发送更新命令,以判断所述BGP状态机的工作状态;若所述BGP状态机的工作状态是建立状态,则触发BGP路由通告事件;基于所述BGP路由通告事件,遍历所述路由通告队列,确定待发送至第二BGP设备的路由信息。

一个示例中,所述对所述路由信息进行封装,生成BGP Update报文,具体包括:基于第一路由信息,触发BGP路由通告流程;在执行所述BGP路由通告流程时,根据所述第一路由信息封装所述BGP Update报文的头部、路由属性信息以及网络层可达信息,并在所述路由通告队列中清除所述第一路由信息;确定所述路由通告队列中的第二路由信息;所述第二路由信息与所述第一路由信息的属性相同;将所述第二路由信息的前缀与长度封装在所述网络层可达信息,以将属性相同的路由封装成同一所述BGP Update报文;在所述路由通告队列中清除所述第二路由信息,将所述BGP Update报文存储至设定的队列缓存区。

一个示例中,所述根据所述BGP Update报文生成路由更新信息,具体包括:在所述队列缓存区中,通过套接字socket将所述BGPUpdate报文发送至内核协议栈;在所述内核协议栈中,将所述BGP Update报文生成路由更新信息;通过传输控制协议TCP连接,将所述路由更新信息发送至所述第二BGP设备。

一个示例中,所述在所述队列缓存区中,通过socket将所述BGPUpdate报文发送至内核协议栈,具体包括:判断所述路由通告队列中的路由信息是否被清除为空;若是,则在所述队列缓存区中,通过socket将所述BGPUpdate报文发送至内核协议栈;若否,则判断所述队列缓存区中的所述BGPUpdate报文的数量是否超过预设阈值;若是,则在所述队列缓存区中,通过socket将所述BGPUpdate报文发送至内核协议栈。

一个示例中,所述获取路由通告队列之后,所述方法还包括:通过所述路由通告定时器扫描所述路由通告队列,确定不存在待发送至所述第二BGP设备的路由信息;重启所述路由通告定时器;所述将所述路由更新信息发送至所述第二BGP设备之后,所述方法还包括:重启所述路由通告定时器。

另一方面,本申请实施例提供了一种BGP对等体之间的路由信息更新设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:在BGP对等体之间建立BGP会话时,第一BGP设备启动预先设置的路由通告定时器;获取路由通告队列,通过所述路由通告定时器扫描所述路由通告队列,确定待发送至第二BGP设备的路由信息;其中,所述第一BGP设备与所述第一BGP设备为BGP对等体;对所述路由信息进行封装,生成BGP Update报文;根据所述BGP Update报文生成路由更新信息,将所述路由更新信息发送至所述第二BGP设备。

另一方面,本申请实施例提供了一种BGP对等体之间的路由信息更新非易失性计算机存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令设置为:在BGP对等体之间建立BGP会话时,第一BGP设备启动预先设置的路由通告定时器;获取路由通告队列,通过所述路由通告定时器扫描所述路由通告队列,确定待发送至第二BGP设备的路由信息;其中,所述第一BGP设备与所述第一BGP设备为BGP对等体;对所述路由信息进行封装,生成BGP Update报文;根据所述BGP Update报文生成路由更新信息,将所述路由更新信息发送至所述第二BGP设备。

本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:

本申请实施例在生成向BGP对等体发送的BGP Update报文时,首先预设设置路由通告定时器,并获取路由通告队列,从而通过启动路由通告定时器,扫描路由通告队列,确定待发送至第二BGP设备的路由信息,然后才对路由信息进行封装,生成BGP Update报文,发送给对等体的路由并不是实时发送,能够通过定时器定时轮询的方法有效避免路由震荡导致的BGP对等体之间路由信息的频繁更新交互,减少环境内的BGP Update报文数量,减少路由震荡时链路带宽的浪费和设备CPU的占用,提高了BGP对等体之间的路由信息更新效率,并且能够灵活配置BGP对等体之间的路由信息更新的时间间隔,网络部署更灵活。

附图说明

为了更清楚地说明本申请的技术方案,下面将结合附图来对本申请的部分实施例进行详细说明,附图中:

图1为本申请实施例提供的一种BGP对等体之间的路由信息更新方法的流程示意图;

图2为本申请实施例提供的一种BGP对等体之间的路由信息更新设备的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合具体实施例及相应的附图对本申请的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

下面参照附图来对本申请的一些实施例进行详细说明。

图1为本申请实施例提供的一种BGP对等体之间的路由信息更新方法的流程示意图。该方法可以应用于不同的业务领域,比如,互联网金融业务领域、电商业务领域、即时通讯业务领域、公务业务领域等。该流程中的某些输入参数或者中间结果允许人工干预调节,以帮助提高准确性。

图1中的流程可以包括以下步骤:

S101:在BGP对等体之间建立BGP会话时,第一BGP设备启动预先设置的路由通告定时器。

其中,BGP(Border Gateway Protocol,边界网关协议)BGP是运行于TCP(Transmission Control Protocol,传输控制协议)上的一种自治系统的路由协议。BGP的主旨是提供一种域间路由选择系统,确保自主系统只能够无环地交换路由选择信息,BGP路由器交换有关前往目标网络的路径信息。

此外,BGP报文交互中分为Speaker和Peer两种角色。其中,发送BGP报文的设备成为BGP发言者(Speaker),它接收或产生新的报文信息,并发布(Advertise)给其它BGPSpeaker。相互交换报文的Speaker之间互称对等体(Peer)。若干相关的对等体可以构成对等体组(Peer Group)。

此外,BGP Update报文,用于在对等体之间交换路由信息,一条Update报文可以通告一类具有相同路径属性的可达路由,路由是指路由器从一个接口上收到数据包,根据数据包的目的地址进行定向并转发到另一个接口的过程。

具体地,组网中的设备之间建立BGP对等体,本申请实施例为BGP对等体会预先设置路由通告定时器,然后在BGP对等体之间成功建立BGP会话后,BGP对等体能够基于路由通告定时器,通过BGP Update报文进行路由信息交换了,包括要向对等体通告的每条路由信息。

S102:获取路由通告队列,通过路由通告定时器扫描路由通告队列,确定待发送至第二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设备的路由信息,则重启路由通告定时器。

S103:对路由信息进行封装,生成BGP Update报文。

具体地,第一BGP设备若扫描路由通告队列发现有需要发送给第二BGP设备的路由信息,则会触发BGP路由通告流程,在执行BGP路由通告流程时,根据第一路由信息封装BGPUpdate报文的头部、路由属性信息以及网络层可达信息,并在路由通告队列中清除第一路由信息,确定路由通告队列中的第二路由信息,第二路由信息与第一路由信息的属性相同,将第二路由信息的前缀与长度封装在网络层可达信息,以将属性相同的路由封装成同一BGP Update报文,在路由通告队列中清除第二路由信息,将BGP Update报文存储至设定的队列缓存区。

也就是说,BGP Update报文的封装流程是将路由通告队列中的路由信息封装到队列缓存区中,具体包括:第一BGP设备根据读取的路由信息封装报文的头部,路由属性信息和网络层可达信息,之后清除若干工作队列中已经封装的路由信息,并判断若干工作队列中是否存在属性相同的路由,若存在属性相同的路由信息则将该路由的前缀和长度封装在网络层可达信息中,若不存在属性相同的路由信息且工作队列中仍有路由,则继续封装属性不同的BGPUpdate报文。

S104:根据BGP Update报文生成路由更新信息,将路由更新信息发送至第二BGP设备。

具体地,第一BGP设备将封装好的信息发送到内核,再由内核将BGP报文发送给第二BGP设备。

其中,第一BGP设备在队列缓存区中,通过判断路由通告队列中的路由信息是否被清除为空,若是,则在队列缓存区中,通过socket将BGPUpdate报文发送至内核协议栈。

若否,则判断队列缓存区中的BGPUpdate报文的数量是否超过预设阈值,若是,则在队列缓存区中,通过套接字socket将BGPUpdate报文发送至内核协议栈。

最后,在内核协议栈中,将BGP Update报文生成路由更新信息,通过传输控制协议TCP连接,将路由更新信息发送至第二BGP设备。

当路由通告队列中的路由信息全部被发送后,则第一BGP设备将重启路由通告定时器。

即,第一BGP设备并不是有需要发送给对等体的路由信息时立刻触发BGP Update报文的封装流程,而是在一定时间间隔内需要通告给对等体的路由信息可以缓存在路由通告队列中,通过定时器定时扫描路由通告队列封装成一个BGP更新消息发送给对等体,进一步节约链路带宽。

需要说明的是,虽然本申请实施例是参照图1来对步骤S101至步骤S104依次进行介绍说明的,但这并不代表步骤S101至步骤S104必须按照严格的先后顺序执行。本申请实施例之所以按照图1中所示的顺序对步骤S101至步骤S104依次进行介绍说明,是为了方便本领域技术人员理解本申请实施例的技术方案。换句话说,在本申请实施例中,步骤S101至步骤S104之间的先后顺序可以根据实际需要进行适当调整。

通过图1的方法,本申请实施例在生成向BGP对等体发送的BGP Update报文时,首先预设设置路由通告定时器,并获取路由通告队列,从而通过启动路由通告定时器,扫描路由通告队列,确定待发送至第二BGP设备的路由信息,然后才对路由信息进行封装,生成BGPUpdate报文,发送给对等体的路由并不是实时发送,能够通过定时器定时轮询的方法有效避免路由震荡导致的BGP对等体之间路由信息的频繁更新交互,减少环境内的BGP Update报文数量,减少路由震荡时链路带宽的浪费和设备CPU的占用,并且能够灵活配置BGP对等体之间的路由信息更新的时间间隔,网络部署更灵活。

基于同样的思路,本申请的一些实施例还提供了上述方法对应的设备和非易失性计算机存储介质。

图2为本申请实施例提供的一种BGP对等体之间的路由信息更新设备的结构示意图,包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:

在BGP对等体之间建立BGP会话时,第一BGP设备启动预先设置的路由通告定时器;

获取路由通告队列,通过路由通告定时器扫描路由通告队列,确定待发送至第二BGP设备的路由信息;其中,第一BGP设备与第一BGP设备为BGP对等体;

对路由信息进行封装,生成BGP Update报文;

根据BGP Update报文生成路由更新信息,将路由更新信息发送至第二BGP设备。

本申请的一些实施例提供的一种BGP对等体之间的路由信息更新非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:

在BGP对等体之间建立BGP会话时,第一BGP设备启动预先设置的路由通告定时器;

获取路由通告队列,通过路由通告定时器扫描路由通告队列,确定待发送至第二BGP设备的路由信息;其中,第一BGP设备与第一BGP设备为BGP对等体;

对路由信息进行封装,生成BGP Update报文;

根据BGP Update报文生成路由更新信息,将路由更新信息发送至第二BGP设备。

本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备和介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本申请实施例提供的设备和介质与方法是一一对应的,因此,设备和介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述设备和介质的有益技术效果。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请技术原理之内所作的任何修改、等同替换、改进等,均应落入本申请的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号