CN108390822A - 路由发布方法和装置 - Google Patents
路由发布方法和装置 Download PDFInfo
- Publication number
- CN108390822A CN108390822A CN201810205305.4A CN201810205305A CN108390822A CN 108390822 A CN108390822 A CN 108390822A CN 201810205305 A CN201810205305 A CN 201810205305A CN 108390822 A CN108390822 A CN 108390822A
- Authority
- CN
- China
- Prior art keywords
- bgp
- routes
- routing
- group
- update messages
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/14—Routing performance; Theoretical aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/26—Route discovery packet
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了路由发布方法和装置,本申请中,并不局限将路由属性完全相同的BGP路由携带在同一个UPDATE报文中发布出去,还可以将属性差异不大的BGP路由携带在同一个UPDATE报文中发布出去,这能够减少UPDATE报文发包次数,更快地把大量BGP路由发布出去,提高了BGP路由发布效率,也提高了BGP的收敛性能。
Description
技术领域
本申请涉及网络通信技术,特别涉及路由发布方法和装置。
背景技术
网络设备在监测到本设备与对端设备之间的BGP(Border Gateway Protocol,边界网关协议)邻居成功建立时通过BGP邻居发布本地最优BGP路由,之后,只发布路由属性发生变化的最优BGP路由。
其中,网络设备在发布BGP路由时,会将路由属性完全相同的BGP路由携带在同一个UPDATE(更新)报文中发布出去,这可以减少UPDATE报文发包次数,更快地把大量BGP路由发送出去,提高了BGP的收敛性能。
BGP路由的路由属性适用于进行路由的控制和传播,包括但不限于以下属性参数:BGP路由团体路由属性、BGP路由本地优先级、BGP路由COST(成本)等。在很多场景下不同BGP路由的路由属性会存在差异,而路由属性存在差异的不同BGP路由是无法携带到同一个UPDATE报文中进行发布,这导致BGP路由发布效率低。
发明内容
本申请提供了路由发布方法和装置,以提高BGP路由发布效率。
本申请提供的技术方案包括:
一种路由发布方法,该方法应用于网络设备,包括:
在发布边界网关协议BGP路由时,检查本地待发布的至少M个BGP路由组中BGP路由数量是否均小于指定门限值,同一BGP路由组中的BGP路由具有相同路由属性,不同BGP路由组中的BGP路由具有不同路由属性;M大于1且小于或等于本地待发布的所有BGP路由组的总数量L;
在检查结果为是时,从BGP路由数量小于指定门限值的所有BGP路由组中选取至少两个不同BGP路由组中的BGP路由携带在同一个UPDATE报文中发布,选取的至少两个不同BGP路由组中的BGP路由具有的路由属性差异最小;
其中,所述指定门限值小于UPDATE报文允许容纳的BGP路由数量N。
一种路由发布装置,该装置应用于网络设备,包括:
检查单元,用于在发布边界网关协议BGP路由时,检查本地待发布的至少M个BGP路由组中BGP路由数量是否均小于指定门限值,同一BGP路由组中的BGP路由具有相同路由属性,不同BGP路由组中的BGP路由具有不同路由属性;M大于1且小于或等于本地待发布的所有BGP路由组的总数量L;
路由单元,用于在所述检查单元的检查结果为是时,从BGP路由数量小于指定门限值的所有BGP路由组中选取至少两个不同BGP路由组中的BGP路由携带在同一个UPDATE报文中发布,选取的至少两个不同BGP路由组中的BGP路由具有的路由属性差异最小;
其中,所述指定门限值小于UPDATE报文允许容纳的BGP路由数量N。
由以上技术方案可以看出,本申请中,并不局限将路由属性完全相同的BGP路由携带在同一个UPDATE报文中发布出去,还可以将属性差异不大的BGP路由携带在同一个UPDATE报文中发布出去,这能够减少UPDATE报文发包次数,更快地把大量BGP路由发布出去,提高了BGP路由发布效率,也提高了BGP的收敛性能。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1为本申请提供的路由发布方法流程图;
图2为本申请提供的选取至少两个不同BGP路由组中的BGP路由携带在同一个UPDATE报文中发布的流程图;
图3为本申请提供的对端设备收到第一UPDATE报文的处理流程图;
图4为本申请提供的收到对端设备发布的第二UPDATE报文的处理流程图;
图5为本申请提供的BGP路由组中BGP路由数量大于或等于指定门限值时的处理流程图;
图6为本申请提供的装置结构示意图。
具体实施方式
本申请提供的路由发布方法,并不局限将路由属性完全相同的BGP路由携带在同一个UPDATE报文中发布出去,还可以将属性差异不大的BGP路由携带在同一个UPDATE报文中发布出去,这能够减少UPDATE报文发包次数,更快地把大量BGP路由发布出去,提高了BGP路由发布效率,也提高了BGP的收敛性能。
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述:
参见图1,图1为本申请提供的路由发布方法流程图。该方法应用于运行BGP的网络设备。
如图1所示,该流程可包括以下步骤:
步骤101,在发布BGP路由时,检查本地待发布的至少M个BGP路由组中BGP路由数量是否均小于指定门限值,如果是,执行步骤102。
在本申请中,为快速、高效发布相同路由属性的BGP路由,网络设备会将待发布的BGP路由按照路由属性进行分组,相同路由属性的BGP路由处于同一BGP路由组,而不同路由属性的BGP路由处于不同BGP路由组。需要说明的是,在本申请中,这里的BGP路由组可以是链表、hash(哈希)表等各种存储结构。
步骤102,从BGP路由数量小于指定门限值的所有BGP路由组中选取至少两个不同BGP路由组中的BGP路由携带在同一个UPDATE报文中发布,选取的至少两个不同BGP路由组中的BGP路由具有的路由属性差异最小。
这里,指定门限值远远小于UPDATE报文允许容纳的BGP路由数量N。在应用中,UPDATE报文的最大长度为4096,而UPDATE报文中路由属性占用500个字节,基于此,N依赖于UPDATE报文中路由属性占用的字节数、以及UPDATE报文的最大长度决定。
至于路由属性差异最小,下文会进行解释,这里暂不赘述。
至此,完成图1所示流程。
可以看出,本申请中,选取至少两个不同BGP路由组(BGP路由数量小于指定门限值)中路由属性差异最小的BGP路由携带在同一个UPDATE报文中发布,这能够减少UPDATE报文发包次数,更快地把大量BGP路由发布出去,提高了BGP路由发布效率,也提高了BGP的收敛性能。
在本申请中,为了实现上述步骤102中将路由属性差异最小的BGP路由携带在同一个UPDATE报文中发布,一种实现方式是默认所有设备都支持如下路由发布能力:将路由属性不同的BGP路由携带在同一个UPDATE报文中发布的能力。
作为一个实施例,另一种实现方式是:本设备与对端设备协商是否支持上述路由发布能力。只有在本设备与对端设备协商均支持上述路由发布能力时,才执行步骤102。换言之,在执行上述步骤102之前,需要本设备与对端设备先协商支持上述路由发布能力。作为一个实施例,本设备与对端设备协商支持上述路由发布能力包括:在成功建立本设备与对端设备之间的BGP邻居时,将本设备具有的上述路由发布能力通知给对端设备(相当于能力协商);接收对端设备在成功建立与本设备之间的BGP邻居时通知的上述路由发布能力。需要说明的是,若本设备或对端设备不支持上述路由发布能力,则本设备在发布路由时可按照现有路由发布方式发布路由。
在一个例子中,将本设备具有的上述路由发布能力通知给对端设备可通过UPDATE报文实现。
其中,为了通过UPDATE报文将本设备具有的路由发布能力通知给对端设备,则需要对UPDATE报文进行改进,具体为:
在UPDATE报文中额外增加一个能力属性字段,该能力属性字段用于携带支持上述路由发布能力的标识。需要说明的是,该能力属性字段在UPDATE报文的位置本申请并不具体限定,其可设置在UPDATE报文的最后,也可设置在UPDATE报文的首部,或者指定位置等。
在一个例子中,由于这里的UPDATE报文仅是用于通知路由发布能力,并非用于发布路由,所以UPDATE报文原本携带的路径属性字段(Path Attribute)、标准路由前缀字段(Network Layer Reachability Information)为空或者默认值即可。
另外,本申请中,为了实现至少两个不同BGP路由组中的BGP路由携带在同一个UPDATE报文中发布,本申请还对UPDATE报文进行了扩展,扩展出了扩展路由信息字段。该扩展路由信息字段是相对于UPDATE报文已有的路由信息字段(称为标准路由信息字段)而命名的。扩展路由信息字段可以有多个,具体是依赖于同一个UPDATE报文承载的BGP路由组的数量。
基于如上描述的扩展路由信息字段,下面对本申请提供的步骤102中选取至少两个不同BGP路由组中的BGP路由携带在同一个UPDATE报文中发布进行描述:
参见图2,图2为本申请提供的选取至少两个不同BGP路由组中的BGP路由携带在同一个UPDATE报文中发布的流程图。如图2所示,该流程可包括以下步骤:
步骤201,将待发布的第一BGP路由组中BGP路由的第一路由属性、以及路由前缀信息携带在UPDATE报文(记为第一UPDATE报文)的标准路由信息字段。
结合BGP定义的UPDATE报文的格式,则本步骤201中,将待发布的第一BGP路由组中BGP路由的第一路由属性、以及路由前缀信息携带在第一UPDATE报文的标准路由信息字段包括:
将待发布的第一BGP路由组中BGP路由的第一路由属性、路由前缀信息分别携带在第一UPDATE报文的标准路由属性字段(Path Attribute)、标准路由前缀字段(NetworkLayer Reachability Information)。
需要说明的是,在本申请中,第一BGP路由组是指待发布的任一BGP路由组,其是为便于描述而进行的命名。第一路由属性是指第一BGP路由组中BGP路由具有的路由属性(为便于描述而进行的命名),其包括但不限于以下属性参数值:路由Cost、路由优先级等。
步骤202,删除第一BGP路由组,并从待发布的BGP路由数量小于指定门限值的各BGP路由组中查找第二BGP路由组,第二BGP路由组中BGP路由具有的第二路由属性与第一路由属性差异最小。
需要说明的是,本申请中,若存在多个BGP路由组中BGP路由具有的路由属性与第一路由属性差异最小,则可随机选择其中一个作为第二BGP路由组。这里,第二BGP路由组是为便于与第一BGP路由组区分而进行的命名。
在一个例子中,第二路由属性与第一路由属性差异最小是指:第一路由属性包含的所有属性参数是第二路由属性包含的所有属性参数的子集。其中,第一路由属性与第二路由属性包含的同一属性参数的取值相同或不同。
比如,第一路由属性包含两类属性参数:团体属性、本地优先级;第二路由属性包含三类属性参数:团体属性、本地优先级、路径Cost,第一路由属性包含的两类属性参数是第二路由属性包含的三类属性参数的子集,则认为第二路由属性与第一路由属性差异最小。第一路由属性包含的团体属性的取值与第二路由属性包含的团体属性的取值相同或不同;第一路由属性包含的本地优先级的取值与第二路由属性包含的本地优先级的取值相同或不同。
步骤203,在第一UPDATE报文扩展与第二BGP路由组对应的扩展路由信息字段。
步骤204,若第一UPDATE报文足以容纳第二BGP路由组中的所有BGP路由,则执行步骤205,若第一UPDATE报文仅容纳第二BGP路由组中的L条BGP路由,则执行步骤206。
步骤205,将第三路由属性、以及第二BGP路由组中BGP路由的路由前缀信息携带在与第二BGP路由组对应的扩展路由信息字段,删除第二BGP路由组;检查第一UPDATE报文是否已满,若否,返回步骤202,若是,发布第一UPDATE报文。
这里,第三路由属性包括:第二路由属性内的指定属性参数。这里的指定属性参数是指:针对第二路由属性内的属性参数,若第一路由属性不包含该属性参数,则认为该属性参数为指定属性参数;若第一路由属性包含该属性参数,但该属性参数取值不同,也认为该属性参数为指定属性参数。仍以第一路由属性包含两类属性参数:团体属性、本地优先级;第二路由属性包含三类属性参数:团体属性、本地优先级、路径Cost为例,假如第一路由属性中的团体属性与第二路由属性中的团体属性取值相同,第一路由属性中的本地优先级与第二路由属性中的本地优先级取值不同,则上述第三路由属性包括:第二路由属性中的本地优先级、第二路由属性中的路径Cost。
这里的扩展路由信息字段(记为ExtPrefix)主要包括:扩展路由属性字段(Ext-Path Attribute)、扩展路由前缀字段(Ext-Network Layer Reachability Information)。基于此,这里的将第三路由属性、以及第二BGP路由组中BGP路由的路由前缀信息携带在与第二BGP路由组对应的扩展路由信息字段可包括:
将第三路由属性、以及第二BGP路由组中BGP路由的路由前缀信息携带在与第二BGP路由组对应的扩展路由属性字段、扩展路由前缀字段。
需要说明的是,为遵循BGP定义的UPDATE报文的格式,在本申请中,扩展路由信息字段(ExtPrefix)还可以进一步包括:
标识字段(Flag),为1字节,如果ExtPrefix总长度大于1字节则为0x90否则为0x10(遵循RFC4271);
类型字段(Type),为1字节,定义为200,目前BGP最新RFC已分配到16,这样不容易冲突;
ExtPrefix总长度字段(totallen),长度大于255时占用2字节(flag为0x90),否则占用1字节(flag为0x10);
扩展属性长度(Length)字段,记为Length1,为2字节,表示扩展路由属性字段中属性的总长度;
扩展路由长度(Length)字段,记为Length2,为2字节,表示扩展路由前缀字段中路由前缀信息的总长度。
另外,本步骤205中,检查第一UPDATE报文是否已满,若未满,则表示第一UPDATE报文还可以继续承载BGP路由,此时可返回步骤202,实现了第一UPDATE报文同时可承载至少三个不同BGP路由中的BGP路由发布。反之,若第一UPDATE报文已满,则可以直接发布第一UPDATE,实现了第一UPDATE报文同时可承载两个不同BGP路由中的BGP路由发布。最终实现了至少两个不同BGP路由组中的BGP路由携带在同一个UPDATE报文中发布。
步骤206,将第三路由属性、以及第二BGP路由组中L条BGP路由的路由前缀信息携带在与第二BGP路由组对应的扩展路由信息字段,发布第一UPDATE报文。
基于步骤205中扩展路由信息字段的描述,本步骤206中将第三路由属性、以及第二BGP路由组中L条BGP路由的路由前缀信息携带在与第二BGP路由组对应的扩展路由信息字段可包括:
将第三路由属性、以及第二BGP路由组中L条BGP路由的路由前缀信息携带在与第二BGP路由组对应的扩展路由属性字段、扩展路由前缀字段。
通过步骤206,实现了第一UPDATE报文同时可承载两个不同BGP路由中的BGP路由发布。最终实现了至少两个不同BGP路由组中的BGP路由携带在同一个UPDATE报文中发布。
至此,通过步骤201至步骤206即可实现选取至少两个不同BGP路由组中的BGP路由携带在同一个UPDATE报文中发布。通过反复执行图2所示流程,则最终能够实现所有待发布的BGP路由均成功发布。
本申请中,当网络设备按照图2所示流程将第一UPDATE报文发布后,对端设备会收到第一UPDATE报文,当对端收到第一UPDATE报文时,执行图3所示流程:
参见图3,图3为本申请提供的对端设备收到第一UPDATE报文的处理流程图。如图3所示,该流程可包括以下步骤:
步骤301,接收第一UPDATE报文。
步骤302,从第一UPDATE报文的标准路由信息字段中解析出第一路由属性。
步骤303,针对第一UPDATE报文的每一扩展路由信息字段,从该扩展路由信息字段中解析出第三路由属性,依据所述第三路由属性、第一路由属性、以及该扩展路由信息字段中的路由前缀信息生成BGP路由。
基于图2所示流程,最终至少两个不同BGP路由组中的BGP路由携带在同一个UPDATE报文中发布,以三个不同BGP路由组中的BGP路由携带在同一个UPDATE报文(比如第一UPDATE报文)中发布为例,则基于图2所示流程可以看出,第一UPDATE报文此时会有两个扩展路由信息字段,不同扩展路由信息字段携带的路由属性、前缀信息不同,则本申请需要针对每一扩展路由信息字段进行处理。其中,在针对每一扩展路由信息字段进行处理时,需要借助标准路由信息字段。具体地,如步骤303所述,针对每一扩展路由信息字段,先从该扩展路由信息字段中解析出第三路由属性(如上描述),之后,依据第三路由属性、标准路由信息字段携带的第一路由属性、以及该扩展路由信息字段中的路由前缀信息生成BGP路由。
在一个例子中,依据第三路由属性、标准路由信息字段携带的第一路由属性、以及该扩展路由信息字段中的路由前缀信息生成BGP路由可包括:
步骤a1,从第一路由属性中获取如下属性参数:与第三路由属性中各个属性参数不同;举例:假如第一路由属性包含两类属性参数:团体属性、本地优先级,第三路由属性包括:第二路由属性中的本地优先级、第二路由属性中的路径Cost,则本步骤a1获取的属性参数为第一路由属性中的团体属性。
步骤a2,依据获取的属性参数、第三路由属性以及该扩展路由信息字段中的路由前缀信息生成BGP路由。
步骤a2具体为:将获取的属性参数、第三路由属性组合在一起,基于如上对获取的属性参数、第三路由属性的描述,则这里将获取的属性参数、第三路由属性组合在一起就得到上述第二BGP路由组中BGP路由的路由属性(即上述的第二路由属性),如此,在得到第二路由属性后,很容易依据该扩展路由信息字段中的路由前缀信息生成第二BGP路由组中BGP路由。
至此,完成图3所示流程。
同样,网络设备也会收到对端设备按照图2所示流程发布的UPDATE报文(记为第二UPDATE报文),当收到对端设备发布的第二UPDATE报文后,执行图4所示流程:
参见图4,图4为本申请提供的收到对端设备发布的第二UPDATE报文的处理流程图。如图4所示,该流程可包括以下步骤:
步骤401,接收第二UPDATE报文。
步骤402,从第二UPDATE报文的标准路由信息字段中解析出第四路由属性。
步骤403,针对第二UPDATE报文的每一扩展路由信息字段,从该扩展路由信息字段中解析出第五路由属性,依据所述第五路由属性、第四路由属性、以及该扩展路由信息字段中的路由前缀信息生成BGP路由。
图4所示流程类似图3,这里不再赘述。
至此,完成图4所示流程。
需要说明的是,在本申请中,若上述步骤102的检查结果为否,则此种情况下,作为一个实施例,本申请提供了图5所示的流程。
参见图5,图5为本申请提供的BGP路由组中BGP路由数量大于或等于指定门限值时的处理流程图。如图5所示,该流程可包括以下步骤:
步骤501,针对BGP路由数量大于或等于指定门限值的每一BGP路由组(记为第三BGP路由组),比较第三BGP路由组中BGP路由数量与N,若第三BGP路由组中BGP路由数量小于或等于UPDATE报文允许容纳的BGP路由数量N,则执行步骤502,若第三BGP路由组中BGP路由数量大于所述N,则执行步骤503。
步骤502,将第三BGP路由组中各BGP路由携带在同一个UPDATE报文中发布,并删除第三BGP路由组。
步骤503,将第三BGP路由组中N条BGP路由携带在同一个UPDATE报文中发布,并从第三BGP路由组中删除发布的该N条BGP路由,判断第三BGP路由组剩余BGP路由的BGP路由数量是否小于指定门限值,若是,返回上述图1所示流程中的步骤101,若否,返回步骤501中比较BGP路由组中BGP路由数量与N的操作。
通过图5所示流程可以看出,在本申请中,对于BGP路由数量大于或等于指定门限值的BGP路由组(诸如第三BGP路由组),则优先将同一BGP路由组(BGP路由数量大于或等于指定门限值的BGP路由组,诸如第三BGP路由组)的BGP路由携带在同一个UPDATE报文中发布。而通过反复执行
图5所示流程,最终待发布的各BGP路由组中BGP路由数量均小于指定门限值,之后,返回执行图1所示流程。
以上对本申请提供的方法进行了描述,下面对本申请提供的装置进行描述:
参见图6,图6为本申请提供的装置结构图,该装置应用于网络设备,包括:
检查单元,用于在发布边界网关协议BGP路由时,检查本地待发布的至少M个BGP路由组中BGP路由数量是否均小于指定门限值,同一BGP路由组中的BGP路由具有相同路由属性,不同BGP路由组中的BGP路由具有不同路由属性;M大于1且小于或等于本地待发布的所有BGP路由组的总数量L;
路由单元,用于在所述检查单元的检查结果为是时,从BGP路由数量小于指定门限值的所有BGP路由组中选取至少两个不同BGP路由组中的BGP路由携带在同一个UPDATE报文中发布,选取的至少两个不同BGP路由组中的BGP路由具有的路由属性差异最小;
其中,所述指定门限值小于UPDATE报文允许容纳的BGP路由数量N。
作为一个实施例,所述路由单元还用于在所述检查单元的检查结果为否时,进一步用于:
针对BGP路由数量大于或等于指定门限值的每一BGP路由组,
比较该BGP路由组中BGP路由数量与N;
若该BGP路由组中BGP路由数量小于或等于所述N,则将该BGP路由组中各BGP路由携带在同一个UPDATE报文中发布,并删除该BGP路由组;
若该BGP路由组中BGP路由数量大于所述N,则将该BGP路由组中N条BGP路由携带在同一个UPDATE报文中发布,并从该BGP路由组中删除发布的该N条BGP路由,判断该BGP路由组剩余BGP路由的BGP路由数量是否小于指定门限值,若是,返回检查本地待发布的至少M个BGP路由组中BGP路由数量是否均小于指定门限值,若否,返回比较该BGP路由组中BGP路由数量与N。
作为一个实施例,所述路由单元还用于在从BGP路由数量小于指定门限值的所有BGP路由组中选取至少两个不同BGP路由组中的BGP路由携带在同一个UPDATE报文中发布之前,进一步用于:
在成功建立本设备与对端设备之间的BGP邻居时,将本设备具有的路由发布能力通知给所述对端设备,所述路由发布能力是指将路由属性不同的BGP路由携带在同一个UPDATE报文中发布的能力;
接收对端设备在成功建立与本设备之间的BGP邻居时通知的所述路由发布能力。
作为一个实施例,所述路由单元从BGP路由数量小于指定门限值的所有BGP路由组中选取至少两个不同BGP路由组中的BGP路由携带在同一个UPDATE报文中发布包括:
将待发布的第一BGP路由组中BGP路由的第一路由属性、以及路由前缀信息携带在第一UPDATE报文的标准路由信息字段,第一BGP路由组为BGP路由数量小于指定门限值的任一BGP路由组;删除第一BGP路由组;
从待发布的BGP路由数量小于指定门限值的各BGP路由组中查找第二BGP路由组,第二BGP路由组中BGP路由具有的第二路由属性与第一路由属性差异最小;
在第一UPDATE报文扩展与第二BGP路由组对应的扩展路由信息字段;
若第一UPDATE报文足以容纳第二BGP路由组中的所有BGP路由,则将第三路由属性、以及第二BGP路由组中BGP路由的路由前缀信息携带在与第二BGP路由组对应的扩展路由信息字段,删除第二BGP路由组;检查第一UPDATE报文是否已满,若否,返回查找第二BGP路由组的操作,若是,发布第一UPDATE报文;所述第三路由属性包括:所述第二路由属性中与所述第一路由属性不同的属性参数值;
若第一UPDATE报文仅容纳第二BGP路由组中的L条BGP路由,则将第二路由属性、以及第二BGP路由组中L条BGP路由的路由前缀信息携带在与第二BGP路由组对应的扩展路由信息字段,发布第一UPDATE报文。
作为一个实施例,所述路由单元进一步用于:
接收对端设备发布的第二UPDATE报文;
从第二UPDATE报文的标准路由信息字段中解析出第四路由属性;
针对第二UPDATE报文的每一扩展路由信息字段,从该扩展路由信息字段中解析出第五路由属性;
依据所述第五路由属性、所述第四路由属性、以及该扩展路由信息字段中的路由前缀信息生成BGP路由。
至此,完成图6所示的装置结构描述。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种路由发布方法,其特征在于,该方法应用于网络设备,包括:
在发布边界网关协议BGP路由时,检查本地待发布的至少M个BGP路由组中BGP路由数量是否均小于指定门限值,同一BGP路由组中的BGP路由具有相同路由属性,不同BGP路由组中的BGP路由具有不同路由属性;M大于1且小于或等于本地待发布的所有BGP路由组的总数量L;
在检查结果为是时,从BGP路由数量小于指定门限值的所有BGP路由组中选取至少两个不同BGP路由组中的BGP路由携带在同一个UPDATE报文中发布,选取的至少两个不同BGP路由组中的BGP路由具有的路由属性差异最小;
其中,所述指定门限值小于UPDATE报文允许容纳的BGP路由数量N。
2.根据权利要求1所述的方法,其特征在于,在检查结果为否时,该方法进一步包括:
针对BGP路由数量大于或等于指定门限值的每一BGP路由组,
比较该BGP路由组中BGP路由数量与N;
若该BGP路由组中BGP路由数量小于或等于所述N,则将该BGP路由组中各BGP路由携带在同一个UPDATE报文中发布,并删除该BGP路由组;
若该BGP路由组中BGP路由数量大于所述N,则将该BGP路由组中N条BGP路由携带在同一个UPDATE报文中发布,并从该BGP路由组中删除发布的该N条BGP路由,判断该BGP路由组剩余BGP路由的BGP路由数量是否小于指定门限值,若是,返回检查本地待发布的至少M个BGP路由组中BGP路由数量是否均小于指定门限值,若否,返回比较该BGP路由组中BGP路由数量与N。
3.根据权利要求1所述的方法,其特征在于,在所述从BGP路由数量小于指定门限值的所有BGP路由组中选取至少两个不同BGP路由组中的BGP路由携带在同一个UPDATE报文中发布之前,该方法进一步包括:
在成功建立本设备与对端设备之间的BGP邻居时,将本设备具有的路由发布能力通知给所述对端设备,所述路由发布能力是指将路由属性不同的BGP路由携带在同一个UPDATE报文中发布的能力;
接收对端设备在成功建立与本设备之间的BGP邻居时通知的所述路由发布能力。
4.根据权利要求1至3任一所述的方法,其特征在于,所述从BGP路由数量小于指定门限值的所有BGP路由组中选取至少两个不同BGP路由组中的BGP路由携带在同一个UPDATE报文中发布包括:
将待发布的第一BGP路由组中BGP路由的第一路由属性、以及路由前缀信息携带在第一UPDATE报文的标准路由信息字段,第一BGP路由组为BGP路由数量小于指定门限值的任一BGP路由组;删除第一BGP路由组;
从待发布的BGP路由数量小于指定门限值的各BGP路由组中查找第二BGP路由组,第二BGP路由组中BGP路由具有的第二路由属性与第一路由属性差异最小;
在第一UPDATE报文扩展与第二BGP路由组对应的扩展路由信息字段;
若第一UPDATE报文足以容纳第二BGP路由组中的所有BGP路由,则将第三路由属性、以及第二BGP路由组中BGP路由的路由前缀信息携带在与第二BGP路由组对应的扩展路由信息字段,删除第二BGP路由组;检查第一UPDATE报文是否已满,若否,返回查找第二BGP路由组的操作,若是,发布第一UPDATE报文;所述第三路由属性包括:所述第二路由属性中与所述第一路由属性不同的属性参数值;
若第一UPDATE报文仅容纳第二BGP路由组中的L条BGP路由,则将第二路由属性、以及第二BGP路由组中L条BGP路由的路由前缀信息携带在与第二BGP路由组对应的扩展路由信息字段,发布第一UPDATE报文。
5.根据权利要求4所述的方法,其特征在于,该方法进一步包括:
接收对端设备发布的第二UPDATE报文;
从第二UPDATE报文的标准路由信息字段中解析出第四路由属性;
针对第二UPDATE报文的每一扩展路由信息字段,从该扩展路由信息字段中解析出第五路由属性;
依据所述第五路由属性、获取的属性参数、以及该扩展路由信息字段中的路由前缀信息生成BGP路由。
6.一种路由发布装置,其特征在于,该装置应用于网络设备,包括:
检查单元,用于在发布边界网关协议BGP路由时,检查本地待发布的至少M个BGP路由组中BGP路由数量是否均小于指定门限值,同一BGP路由组中的BGP路由具有相同路由属性,不同BGP路由组中的BGP路由具有不同路由属性;M大于1且小于或等于本地待发布的所有BGP路由组的总数量L;
路由单元,用于在所述检查单元的检查结果为是时,从BGP路由数量小于指定门限值的所有BGP路由组中选取至少两个不同BGP路由组中的BGP路由携带在同一个UPDATE报文中发布,选取的至少两个不同BGP路由组中的BGP路由具有的路由属性差异最小;
其中,所述指定门限值小于UPDATE报文允许容纳的BGP路由数量N。
7.根据权利要求6所述的装置,其特征在于,所述路由单元还用于在所述检查单元的检查结果为否时,进一步用于:
针对BGP路由数量大于或等于指定门限值的每一BGP路由组,
比较该BGP路由组中BGP路由数量与N;
若该BGP路由组中BGP路由数量小于或等于所述N,则将该BGP路由组中各BGP路由携带在同一个UPDATE报文中发布,并删除该BGP路由组;
若该BGP路由组中BGP路由数量大于所述N,则将该BGP路由组中N条BGP路由携带在同一个UPDATE报文中发布,并从该BGP路由组中删除发布的该N条BGP路由,判断该BGP路由组剩余BGP路由的BGP路由数量是否小于指定门限值,若是,返回检查本地待发布的至少M个BGP路由组中BGP路由数量是否均小于指定门限值,若否,返回比较该BGP路由组中BGP路由数量与N。
8.根据权利要求6所述的装置,其特征在于,所述路由单元还用于在从BGP路由数量小于指定门限值的所有BGP路由组中选取至少两个不同BGP路由组中的BGP路由携带在同一个UPDATE报文中发布之前,进一步用于:
在成功建立本设备与对端设备之间的BGP邻居时,将本设备具有的路由发布能力通知给所述对端设备,所述路由发布能力是指将路由属性不同的BGP路由携带在同一个UPDATE报文中发布的能力;
接收对端设备在成功建立与本设备之间的BGP邻居时通知的所述路由发布能力。
9.根据权利要求6至8任一所述的装置,其特征在于,所述路由单元从BGP路由数量小于指定门限值的所有BGP路由组中选取至少两个不同BGP路由组中的BGP路由携带在同一个UPDATE报文中发布包括:
将待发布的第一BGP路由组中BGP路由的第一路由属性、以及路由前缀信息携带在第一UPDATE报文的标准路由信息字段,第一BGP路由组为BGP路由数量小于指定门限值的任一BGP路由组;删除第一BGP路由组;
从待发布的BGP路由数量小于指定门限值的各BGP路由组中查找第二BGP路由组,第二BGP路由组中BGP路由具有的第二路由属性与第一路由属性差异最小;
在第一UPDATE报文扩展与第二BGP路由组对应的扩展路由信息字段;
若第一UPDATE报文足以容纳第二BGP路由组中的所有BGP路由,则将第三路由属性、以及第二BGP路由组中BGP路由的路由前缀信息携带在与第二BGP路由组对应的扩展路由信息字段,删除第二BGP路由组;检查第一UPDATE报文是否已满,若否,返回查找第二BGP路由组的操作,若是,发布第一UPDATE报文;所述第三路由属性包括:所述第二路由属性中与所述第一路由属性不同的属性参数值;
若第一UPDATE报文仅容纳第二BGP路由组中的L条BGP路由,则将第二路由属性、以及第二BGP路由组中L条BGP路由的路由前缀信息携带在与第二BGP路由组对应的扩展路由信息字段,发布第一UPDATE报文。
10.根据权利要求9所述的装置,其特征在于,所述路由单元进一步用于:
接收对端设备发布的第二UPDATE报文;
从第二UPDATE报文的标准路由信息字段中解析出第四路由属性;
针对第二UPDATE报文的每一扩展路由信息字段,从该扩展路由信息字段中解析出第五路由属性;
依据所述第五路由属性、所述第四路由属性、以及该扩展路由信息字段中的路由前缀信息生成BGP路由。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810205305.4A CN108390822B (zh) | 2018-03-13 | 2018-03-13 | 路由发布方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810205305.4A CN108390822B (zh) | 2018-03-13 | 2018-03-13 | 路由发布方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108390822A true CN108390822A (zh) | 2018-08-10 |
CN108390822B CN108390822B (zh) | 2021-01-26 |
Family
ID=63067560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810205305.4A Active CN108390822B (zh) | 2018-03-13 | 2018-03-13 | 路由发布方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108390822B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108965120A (zh) * | 2018-06-26 | 2018-12-07 | 新华三技术有限公司合肥分公司 | 路由通告方法、装置、通信设备及存储介质 |
WO2022127154A1 (zh) * | 2020-12-15 | 2022-06-23 | 华为技术有限公司 | 一种路由通告的方法及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1886154A1 (en) * | 2005-05-10 | 2008-02-13 | Cisco Technology, Inc. | Method of determining transit costs across autonomous systems |
CN101471940A (zh) * | 2007-12-28 | 2009-07-01 | 华为技术有限公司 | 一种边界网关协议路由同步的方法、系统及装置 |
CN103944822A (zh) * | 2013-01-21 | 2014-07-23 | 杭州华三通信技术有限公司 | Bgp路由通告方法和装置及bgp路由维护方法和装置 |
CN104486228A (zh) * | 2014-12-25 | 2015-04-01 | 杭州华三通信技术有限公司 | 一种路由更新的方法及路由更新装置 |
CN105763468A (zh) * | 2016-03-31 | 2016-07-13 | 杭州华三通信技术有限公司 | 一种bgp更新报文的传输方法和装置 |
-
2018
- 2018-03-13 CN CN201810205305.4A patent/CN108390822B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1886154A1 (en) * | 2005-05-10 | 2008-02-13 | Cisco Technology, Inc. | Method of determining transit costs across autonomous systems |
CN101471940A (zh) * | 2007-12-28 | 2009-07-01 | 华为技术有限公司 | 一种边界网关协议路由同步的方法、系统及装置 |
CN103944822A (zh) * | 2013-01-21 | 2014-07-23 | 杭州华三通信技术有限公司 | Bgp路由通告方法和装置及bgp路由维护方法和装置 |
CN104486228A (zh) * | 2014-12-25 | 2015-04-01 | 杭州华三通信技术有限公司 | 一种路由更新的方法及路由更新装置 |
CN105763468A (zh) * | 2016-03-31 | 2016-07-13 | 杭州华三通信技术有限公司 | 一种bgp更新报文的传输方法和装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108965120A (zh) * | 2018-06-26 | 2018-12-07 | 新华三技术有限公司合肥分公司 | 路由通告方法、装置、通信设备及存储介质 |
CN108965120B (zh) * | 2018-06-26 | 2021-03-09 | 新华三技术有限公司合肥分公司 | 路由通告方法、装置、通信设备及存储介质 |
WO2022127154A1 (zh) * | 2020-12-15 | 2022-06-23 | 华为技术有限公司 | 一种路由通告的方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108390822B (zh) | 2021-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104348757B (zh) | 一种流表交互方法、交换机及系统 | |
CN105991437B (zh) | 报文转发处理方法、装置、控制器及路由转发设备 | |
WO2018032961A1 (zh) | 一种管理信息的方法,装置及系统 | |
CN103259726B (zh) | 存储和发送mac地址表项的方法、设备及系统 | |
CN102857491A (zh) | 集管理方案 | |
CN106921572B (zh) | 一种传播QoS策略的方法、装置及系统 | |
EP3310010B1 (en) | Method for allocating global label, method for acquiring global label and related device | |
WO2011016882A1 (en) | Method and system to enable a hybrid routing protocol | |
CN108111413A (zh) | 叠加网络的路由方法、系统及设备 | |
CN106254265A (zh) | 处理报文的方法、装置和系统 | |
CN108390822A (zh) | 路由发布方法和装置 | |
WO2011015106A1 (zh) | 用于上行传输流模板的管理方法和装置 | |
CN109729011B (zh) | 流量转发方法、装置和计算机可读存储介质 | |
CN104243303B (zh) | 一种自治系统环路组网中发送更新报文的方法和装置 | |
CN104969521B (zh) | 数据发送处理方法及路由器 | |
CN111464440A (zh) | 一种通信方法及装置 | |
JP2016129272A (ja) | 無線メッシュネットワークでのパケットメッセージ送信による通信機器からのメッセージ確認および/またはデータ収集の方法と、汎用プラットフォームの作成に利用可能な確認およびデータ収集を行う方法 | |
CN105072043B (zh) | Mesh网络路由协议中的客户端声明过程优化方法 | |
Abid et al. | Merging of DHT‐based logical networks in MANETs | |
CN106230983A (zh) | 一种控制装置及方法 | |
CN108965122B (zh) | 路由选路方法、设备及计算机可读存储介质 | |
CN108989173A (zh) | 一种报文传输的方法及装置 | |
CN108123871B (zh) | 等价多路径ecmp处理方法及装置 | |
CN104394081B (zh) | 一种数据处理方法及装置 | |
CN104468356B (zh) | 一种多目的节点的消息转发方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |