CN108965120B - 路由通告方法、装置、通信设备及存储介质 - Google Patents
路由通告方法、装置、通信设备及存储介质 Download PDFInfo
- Publication number
- CN108965120B CN108965120B CN201810675197.7A CN201810675197A CN108965120B CN 108965120 B CN108965120 B CN 108965120B CN 201810675197 A CN201810675197 A CN 201810675197A CN 108965120 B CN108965120 B CN 108965120B
- Authority
- CN
- China
- Prior art keywords
- discrete
- routes
- attributes
- path
- sub
- 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.)
- Active
Links
Images
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/28—Routing or path finding of packets in data switching networks using route fault recovery
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供一种路由通告方法、装置、通信设备及存储介质,涉及通信技术领域。路由通告方法包括:根据发布的至少两条离散路由生成一条更新报文,在该更新报文中携带所述至少两条离散路由各个前缀的离散属性;发送所述更新报文,以实现对所述至少两条离散路由的合并发送;其中,所述至少两条离散路由的路径属性中存在不同的子路径属性字段,所述更新报文中携带的离散属性包括所述至少两条离散路由中不同的子路径属性字段。从而实现离散路由的合并发送。
Description
技术领域
本公开涉及通信技术领域,具体而言,涉及一种路由通告方法、装置、通信设备及存储介质。
背景技术
边界网关协议(Border Gateway Protocol,BGP)是一种用于自治系统(Autonomous System,AS)之间的动态路由协议,用于在不同的AS之间交换路由信息,为处于不同AS中的通信设备之间进行路由信息通信提供保障。BGP邻居间相互学习的路由通过更新报文(UPDATE报文)来传递。
发明内容
有鉴于此,本公开提供一种路由通告方法、装置、通信设备及存储介质。
第一方面,本公开提供了一种路由通告方法,包括:
根据发布的至少两条离散路由生成一条更新报文,在该更新报文中携带所述至少两条离散路由各个前缀的离散属性;
发送所述更新报文,以实现对所述至少两条离散路由的合并发送;
其中,所述至少两条离散路由的路径属性中存在不同的子路径属性字段,所述更新报文中携带的离散属性包括所述至少两条离散路由中不同的子路径属性字段。
可选地,根据发布的至少两条离散路由生成一条更新报文,在该更新报文中携带所述至少两条离散路由各个前缀的离散属性的步骤,包括:
在更新报文的字段中新增预设字段;
在所述预设字段中对所述至少两条离散路由各个前缀的离散属性进行统一打包分组。
可选地,所述更新报文为Update报文,所述预设字段为类型-长度-值TLV格式;
在所述预设字段中对所述至少两条离散路由各个前缀的离散属性进行统一打包分组的步骤,包括:
将所述预设字段中的值扩展为多个值的类型-长度格式,其中,所述多个值与所述至少两条离散路由分别对应。
可选地,根据发布的至少两条离散路由生成一条更新报文的步骤,包括:
获得发布的各离散路由的子路径属性种类;
根据预设种类子路径属性不同的至少两条离散路由生成一条更新报文。
可选地,所述方法还包括:
接收到更新报文后,判断该更新报文中是否携带有至少两条离散路由各个前缀的离散属性,若携带有至少两条离散路由各个前缀的离散属性,解析该更新报文,以得到至少两条离散路由的实际属性和前缀。
第二方面,本公开提供一种路由通告装置,包括:
协商处理模块,用于根据发布的至少两条离散路由生成一条更新报文,在该更新报文中携带所述至少两条离散路由各个前缀的离散属性;
报文发送模块,用于发送所述更新报文,以实现对所述至少两条离散路由的合并发送;
其中,所述至少两条离散路由的路径属性中存在不同的子路径属性字段,所述更新报文中携带的离散属性包括所述至少两条离散路由中不同的子路径属性字段。
可选地,所述协商处理模块用于在更新报文的字段中新增预设字段,在所述预设字段中对所述至少两条离散路由各个前缀的离散属性进行统一打包分组。
可选地,所述更新报文为Update报文,所述预设字段为类型-长度-值TLV格式,所述协商处理模块用于将所述预设字段中的值扩展为多个值的类型-长度格式,其中,所述多个值与所述至少两条离散路由分别对应。
第三方面,本公开提供一种通信设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的路由通告方法。
第四方面,本公开提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,所述计算机程序运行时控制所述计算机可读存储介质所在通信设备执行上述的路由通告方法。
本公开提供的路由通告方法、装置、通信设备及存储介质,巧妙地设计了合并发送机制,在进行路由信息发布过程中,根据发布的至少两条离散路由生成一条更新报文,在该更新报文中携带至少两条离散路由各个前缀的离散属性,通过发送所生成的一条更新报文即可实现对至少两条离散路由的合并发送,从而有效避免了资源浪费。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本公开提供的一种应用场景示意图。
图2为本公开提供的一种通信设备的方框示意图。
图3为本公开提供的一种路由通告方法的流程示意图。
图4为本公开提供的图3中步骤S12的一种示意性流程示意图。
图5为本公开提供的图3中步骤S12的另一种示意性流程示意图。
图6为本公开提供的一种路由通告装置的方框示意图。
图标:10-通信设备;11-存储器;12-处理器;13-网络模块;20-路由通告装置;21-协商处理模块;22-报文发送模块。
具体实施方式
当不同的AS之间需要交换路由信息时,每个AS须指定一个运行BGP的节点,来代表AS与其他的AS交换路由信息。这个节点可以是一个主机,例如可以为路由器、交换机等通信设备来执行BGP。
两个AS中利用BGP交换路由信息的路由器也被称为边界网关(Border Gateway)或边界路由器(Border Router)。两个AS的BGP邻居关系协商完成后,两个AS的BGP互为BGP邻居。如图1所示,示出了两个AS分别通过通信设备A和通信设备B组网,并在通信设备A和通信设备B之间部署BGP的应用场景。
BGP邻居间相互学习的路由通过更新报文(Update报文)来传递。一个Update报文包含路径属性和更新前缀,其中,所有更新前缀都公用一个路径属性。路径属性中往往包含多个种类繁多的子路径属性,如Origin、AS-path、Next-hop、Med、Local-pref、Atomic-aggregate、Aggregator、Originator-id、Cluster-list、多协议可达信息、多协议不可达信息、4字节As-path、4字节Aggregator、Community、Ext-community属性等。
经研究发现,BGP发送路径属性相同的非离散路由的Update报文时,各非离散路由的路径属性完全相同只是更新前缀不同,对这些非离散路由的Update报文可以进行组大包发送,共用一个路径属性,在多协议可达NLRI(Network Layer ReachabilityInformation)字段中同时携带多个不同的前缀,从而只需要通过一个Update报文就可以同时通告多条非离散路由。
然而,对于路径属性存在不同的离散路由,两条路由之间只要路径属性中的任一个子路径属性字段不同,则这俩条离散路由须分开组小包发送,单独发送各自的Update报文。采用该种方式,当存在大量携带多种子路径属性的BGP离散路由时,通常这些离散路由中大部分子路径属性是相同的,只有个别子路径属性不同。这种情况下也将各离散路由分开组小包,每个离散路由采用单独的Update报文发送,每个Update报文中都要将彼此相同的子路径属性重新通告一遍,造成了资源的浪费,进而影响发送效率。
基于上述研究,本公开提供了一种路由通告方法、装置、通信设备及存储介质,根据发布的至少两条离散路由生成一条更新报文,在该更新报文中携带至少两条离散路由各个前缀的离散属性,通过发送所生成的一条更新报文实现对至少两条离散路由的合并发送,从而有效避免了资源浪费,在节省网络资源的同时提升通信效率。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
下面将结合本公开中附图,对本公开中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
如图2所示,是本公开提供的通信设备10的一种方框示意图。本公开中的通信设备10可以为路由器、交换机等具有通信功能的设备,该通信设备10支持BGP,能够与其他同样支持BGP的通信设备10实现BGP部署,完成BGP邻居关系协商。如图2所示,通信设备10包括:存储器11、处理器12、网络模块13及路由通告装置20。
所述存储器11、处理器12以及网络模块13相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。存储器11中存储有路由通告装置20,所述路由通告装置20包括至少一个可以软件或固件(firmware)的形式存储于所述存储器11中的软件功能模块,所述处理器12通过运行存储在存储器11内的软件程序以及模块,如本公开中的路由通告装置20,从而执行各种功能应用以及数据处理,即实现本公开中的路由通告方法。
其中,所述存储器11可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器11用于存储程序,所述处理器12在接收到执行指令后,执行所述程序。
所述处理器12可能是一种集成电路芯片,具有数据的处理能力。上述的处理器12可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等。可以实现或者执行本公开中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
网络模块13用于通过网络建立通信设备10与外部通信终端之间的通信连接,实现网络信号及数据的收发操作。上述网络信号可包括无线信号或者有线信号。
可以理解,图2所示的结构仅为示意,通信设备10还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。图2中所示的各组件可以采用硬件、软件或其组合实现。
在上述基础上,本公开还提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,所述计算机程序运行时控制所述计算机可读存储介质所在通信设备10执行下述路由通告方法。
请结合参阅图3,本公开提供一种路由通告方法,用于实现边界网关协议BGP离散路由的合并发送。该方法可以由图1所示场景中任一通信设备执行,该通信设备的实现结构如图2所示。
所述方法包括以下步骤。
步骤S12,根据发布的至少两条离散路由生成一条更新报文,在该更新报文中携带所述至少两条离散路由各个前缀的离散属性。
其中,至少两条离散路由的路径属性中存在不同的子路径属性字段,包括存在一个不同的子路径属性字段、两个不同的子路径属性字段、三个不同的子路径属性字段等。所述更新报文中携带的离散属性包括所述至少两条离散路由中不同的子路径属性字段。
通过该步骤,将至少两条离散路由中不同的子路径属性字段携带在了同一更新报文中,无需如现有技术般,将每个离散路由通过单独的Update报文分别发送。采用本公开中的方案,在更新报文中携带的离散属性包括所述至少两条离散路由中不同的子路径属性字段的基础上,可以将至少两条离散路由中相同的子路径属性字段统一携带在更新报文的原子路径属性中,无需在更新报文中对各离散路由彼此相同的子路径属性重新通告一遍,从而实现对各离散路由的合并,进而避免资源的浪费,提升发送效率。
根据发布的至少两条离散路由生成一条更新报文的方式有多种,例如:请结合参阅图4,可以通过以下步骤实现。
步骤S121,在更新报文的字段中新增预设字段。
步骤S122,在所述预设字段中对所述至少两条离散路由各个前缀的离散属性进行统一打包分组。
本公开中根据发布的至少两条离散路由生成一条更新报文的方式可以为:在更新报文的路径属性字段中新增一种子路径属性字段作为新增预设字段,将该新增的子路径属性字段作为离散属性,用以统一携带各离散路由各个前缀的离散属性。通过新增预设字段携带各离散路由各个前缀的离散属性,使得各离散路由间相同的子路径属性字段可以统一携带在更新报文的原子路径属性中。
作为一种可选实现方式,预设字段可以为类型-长度-值TLV(Tag-Length-Value)格式。相应地,在所述预设字段中对所述至少两条离散路由各个前缀的离散属性进行统一打包分组的步骤可以包括:将所述预设字段中的值扩展为多个值的类型-长度格式,其中,所述多个值与所述至少两条离散路由分别对应。
又例如:请结合参阅图5,可以通过以下步骤生成更新报文。
步骤S123,获得发布的各离散路由的子路径属性种类。
步骤S124,根据预设种类子路径属性不同的至少两条离散路由生成一条更新报文。
鉴于子路径属性的种类较多,包括Origin、AS-path、Next-hop、Med、Local-pref、Atomic-aggregate、Aggregator、Originator-id、Cluster-list、多协议可达信息、多协议不可达信息、4字节As-path、4字节Aggregator、Community、Ext-community属性等。根据实际需求,根据发布的至少两条离散路由生成一条更新报文的方式可以为:根据仅预设种类子路径属性不同的至少两条离散路由生成一条更新报文。例如,在需要尽可能确保路由传递可靠性的场景下,可以将一种或者两种子路径属性设置为预设种类子路径属性,从而仅对该一种或者两种子路径属性不同、其他子路径属性相同的离散路由进行打包。应当理解,在其他场景下,例如在需要尽可能减少资源浪费,提高发送效率的场景下,可以将更多种子路径属性设置为预设种类子路径属性,从而对更多离散路由进行打包。又例如,还可以指定某几种子路径属性不同的至少两条离散路由不能合并,而其他子路径属性不同的至少两条离散路由可以合并等。
应当理解,还可以通过其他方式根据发布的至少两条离散路由生成一条更新报文,本公开对此不作限制。
步骤S13,发送所述更新报文,以实现对所述至少两条离散路由的合并发送。
根据至少两条离散路由生成的一条更新报文中,既携带了至少两条离散路由中不同的子路径属性字段,又携带了至少两条离散路由中相同的子路径属性字段,通过对该更新报文的发送,便可实现对至少两条离散路由的合并发送。
为满足不同应用场景下的实际需求,在执行步骤S12和步骤S13之前,BGP邻居间可以协商是否支持合并发送离散路由。例如,在图1所示场景中,通信设备A可以与通信设备B进行是否支持合并发送离散路由能力的协商,协商方式可以包括:若通信设备A支持合并发送离散路由,那么,通信设备A与通信设备B进行协议报文交互,通信设备A根据通信设备B发送的协议报文判断通信设备B是否支持解析合并发送的离散路由,若通信设备B支持解析合并发送的离散路由,那么判定通信设备A和通信设备B之间支持合并发送离散路由。
又例如,可以根据通信设备A和通信设备B的BGP邻居间的Open报文中是否包括标识支持合并发送离散路由的字段判断BGP邻居间是否支持合并发送离散路由,若包括支持合并发送离散路由的字段,判定BGP邻居间支持合并发送离散路由,若不包括支持合并发送离散路由的字段,判定BGP邻居间不支持合并发送离散路由。应当理解,BGP邻居间还可以通过其他方式协商是否支持合并发送离散路由,本公开对此不作限制。
若分析得出通信设备A和通信设备B之间支持合并发送离散路由,那么通信设备A可以执行步骤S12和步骤S13,从而实现与通信设备B之间的离散路由合并发送。相应地,若分析得出通信设备A和通信设备B之间不支持合并发送离散路由,那么通信设备A将各离散路由通过各更新报文分别发送至通信设备B。
通过上述方式,由BGP邻居间彼此协商是否支持打包发送离散路由,针对支持打包发送离散路由能力的BGP邻居,在BGP更新报文中的路径属性字段中新增一种子路径属性字段作为离散属性,用来统一携带各离散路由各前缀的离散属性,各离散路由相同的子路径属性仍携带在原子路径属性中,从而实现对支持合并发送离散路由的BGP邻居间离散路由的合并发送,进而节省网络资源,提高发送效率。而对于不支持合并发送离散路由的邻居仍按原BGP发包流程处理,将各离散路由通过各更新报文分别进行发送,实现了和BGP离散路由合并发送方式的兼容。满足各种应用场景下路由的发送需求。
与能够对至少两条离散路由进行合并发送类似,通信设备10亦可以在接收到更新报文后,判断该更新报文中是否携带有至少两条离散路由各个前缀的离散属性,若携带有至少两条离散路由各个前缀的离散属性,解析该更新报文,以得到至少两条离散路由的实际属性和前缀。
其中,BGP邻居间可以对是否支持合并发送离散路由,以及是否支持解析携带有至少两条离散路由各个前缀的离散属性的更新报文分别进行协商。例如,在图1所示场景中,经协商,通信设备A和通信设备B可以均支持合并发送离散路由和解析携带有至少两条离散路由各个前缀的离散属性的更新报文。又例如,经协商,通信设备A可以仅支持合并发送离散路由,而通信设备B仅支持解析携带有至少两条离散路由各个前缀的离散属性的更新报文。又例如,通信设备A可以仅支持解析携带有至少两条离散路由各个前缀的离散属性的更新报文,通信设备B可以支持合并发送离散路由和解析携带有至少两条离散路由各个前缀的离散属性的更新报文。为了实现BGP邻居间对是否支持合并发送离散路由,以及是否支持解析携带有至少两条离散路由各个前缀的离散属性的更新报文分别进行协商,相应地,可以Open报文中对是否支持合并发送离散路由,以及是否支持解析携带有至少两条离散路由各个前缀的离散属性的更新报文分别进行标识。
此外,BGP邻居间也可以对是否支持合并发送离散路由,以及是否支持解析携带有至少两条离散路由各个前缀的离散属性的更新报文统一进行协商。例如,在图1所示场景中,经协商,通信设备A和通信设备B支持合并发送离散路由,那么,可以默认通信设备A和通信设备B均支持解析携带有至少两条离散路由各个前缀的离散属性的更新报文。本实施例对此不作限制。为了实现BGP邻居间对是否支持合并发送离散路由,以及是否支持解析携带有至少两条离散路由各个前缀的离散属性的更新报文统一进行协商,相应地,可以Open报文中对是否支持合并发送离散路由,以及是否支持解析携带有至少两条离散路由各个前缀的离散属性的更新报文统一进行标识。
在上述基础上,为了更为清楚地阐述本公开的实现架构和工作原理,现以下述具体场景为例对本公开的实现流程进行举例说明,应当理解,该举例仅为示意性的可选实现方式,而非对本公开的限制。
请返回参阅图1,假设两个AS分别通过通信设备A和通信设备B组网,并在通信设备A和通信设备B之间部署有BGP。通信设备A和通信设备B的BGP互为BGP邻居,BGP邻居间根据Open报文识别是否支持合并发送离散路由。在通信设备A和通信设备B的BGP协商支持合并发送离散路由的场景下,通信设备A和通信设备B在发送至对方的Update报文的路径属性字段中新增一种子路径属性DISPERSE(Type Code 255)字段作为新增预设字段,将该新增的子路径属性字段作为离散属性,用以统一携带通信设备A和通信设备B之间各离散路由各个前缀的离散属性。预设字段为TLV格式。在该场景下,若通信设备A需要向通信设备B发布至少两条离散路由,实现流程可以如下。
通信设备A向通信设备B发送BGP Open报文。
本公开列举了其中一种标识支持合并发送离散路由的Open报文的格式,该Open报文中的可选参数Optional Parameters中的Parm Type=2时,宣称BGP支持的能力OptionalParameters。
Parm Type=2时,Parameter Value中的Capability code用来对应各种BGP支持的能力,其值128~255RFC可以规定是私有使用code。本公开中,定义Capability code=128标识离散路由打包能力(上述合并发送离散路由能力),用于离散路由打包能力协商。
Value中包含AFI(Address Family Identifier)/SAFI(Subsequent AddressFamily)字段,用来标识协商能力的BGP地址族,包含Send和Receive字段,通过Send字段标识是否支持离散路由打包发送能力,通过Receive字段标识是否支持离散路由解析接收能力(对于携带有至少两条离散路由各个前缀的离散属性的Update报文的解析能力)。
对协商了离散打包能力的邻居发送打包后的更新报文。对不支持离散打包能力的邻居仍按原发包流程处理。
若通信设备A向通信设备B发送的Open报文中包括支持离散路由打包发送能力的字段,则说明通信设备A和通信设备B的BGP支持合并发送离散路由。在该种情况下,若通信设备A的BGP向通信设备B的BGP发布两条离散路由,则根据发布的两条离散路由生成一条Update报文。
根据发布的两条离散路由生成一条Update报文的方式包括:在Path Attributes(后简称Path Attr)中新增一种可选子路径属性DISPERSE(Type Code 255)字段作为离散属性,通信设备A发布两条离散路由时,对各个路由前缀的离散属性在DISPERSE字段中进行统一打包分组,通信设备B接收到通信设备A发送的Update报文,解析Update报文,即可正确处理得到DISPERSE字段对应的实际属性和前缀。
假设通信设备A的BGP向通信设备B的BGP发布的两条离散路由如下:
路由1.1.1.1/32,Update报文构成如下:
Path Attr
ORIGIN(Type 1)Length:xx Value:IGP(0)
AS(Type 2)Length:xx Value:100 101
NextHop(Type 3)Length:xx Value:100.1.1.1
LocalPref(Type 5)Length:xx Value:100
ExtCom(Type 16)Length:xx Value:1:1 1:2
NLRI
1.1.1.1/32
路由2.2.2.2/32,Update报文构成如下:
Path Attr
ORIGIN(Type 1)Length:xx Value:IGP(0)
AS(Type 2)Length:xx Value:100 101
NextHop(Type 3)Length:xx Value:100.1.1.1
LocalPref(Type 5)Length:xx Value:100
ExtCom(Type 16)Length:xx Value:1:3 1:4
NLRI
2.2.2.2/32
分析可知,两条离散路由的ExtCom子路径属性不同,按原有方案,需针对两条路由分别发送两条Update报文。而采用本公开中的方案,可以对各个路由前缀的离散属性在DISPERSE字段中进行统一打包分组。本公开列举一种根据发布的上述两条离散路由生成的Update报文,如下所示。
Path Attr
ORIGIN(Type 1)Length:xx Value:IGP(0)
AS(Type 2)Length:xx Value:100 101
NextHop(Type 3)Length:xx Value:100.1.1.1
LocalPref(Type 5)Length:xx Value:100
DISPERSE(Type 255)Length:xx Value:[Type16Lenth:xx(Length:xx Value:1:11:2)(Length:xx Value:1:3 1:4)]
NLRI
1.1.1.1/32
2.2.2.2/32
其中,DISPERSE字段采用TLV格式,DISPERSE字段属性值中可以包含一个或多个其他子路径属性。包含的子路径属性值格式同原正常子路径属性的TLV格式,但将原正常子路径属性的Value字段扩展成多个Value的LV(Length+Value)格式,和NLRI中的路由一一对应。如上例中1:1和1:2对应1.1.1.1/32,1:3和1:4对应2.2.2.2/32。
鉴于每一个子路径属性需要和NLRI中的前缀依次对应,DISPERSE中每一个Type子路径属性中的LV结构数目理论上不大于NLRI中携带的前缀数。
考虑到某些路由可能不携带某种子路径属性,为了使得携带某种子路径属性的路由和不携带某种子路径属性的路由可以一起打包发送,DISPERSE中每一个Type子路径属性中的LV结构数目可以小于NLRI中携带的前缀数,若NLRI中存在位置靠后没有匹配上子路径属性的前缀路由,表征该路由不携带该子路径属性。如下所示:
DISPERSE(Type 255)Length:A Value:[Type16Lenth:B(Length:C Value:1:1 1:2)][Type5Length:D(Length:0)(Length:E Value:100)]
NLRI
1.1.1.1/32
2.2.2.2/32
该DISPERSE中,Type16中只有一个LV结构,对应1.1.1.1/32,即路由1.1.1.1/32携带扩展属性1:1 1:2;路由2.2.2.2/32不携带扩展属性。
Type 5中第一个LV结构中Length=0,表明该LV结构对应的路由1.1.1.1/32不携带Local Pref属性,第二个LV结构对应2.2.2.2/32,表明路由2.2.2.2/32携带属性LocalPref 100。
通过这种匹配方式,可以实现各种组合情况下携带某种路径属性和不携带某种路径属性的路由的打包发送。
理论上同一个Type属性字段不会既出现在DISPERSE中同时又正常出现在Pathattr中。考虑到在通信设备A和通信设备B遭受攻击或者通信出错时,同一个Type属性字段可能会同时出现在DISPERSE中和Path attr中,在该种情况下,以Path attr中携带的值为准,忽略DISPERSE属性,以确保通信正常进行。
类似地,通信设备B需向通信设备A发布至少两条离散路由时,实现原理与上述类似,本公开不作赘述。
通过上述路由通告方法,BGP邻居间彼此协商是否支持打包发送离散路由,通过在Update报文中的路径属性字段中新增一种子路径属性DISPERSE(Type Code 255)字段作为离散属性,用来统一携带各个路由前缀的离散属性,相同子路径属性仍携带在原子路径属性中,从而实现离散路由的合并发送,有效节省BGP路由消息的通告内容,提高BGP路由通告效率,达到节省网络资源及提高通信效率的目的。在BGP邻居之间协商彼此是否支持打包离散路由后,对不支持打包离散路由能力的邻居仍按原BGP发包流程处理,和BGP原有实现方式实现兼容,满足各种应用需求。
请参阅图6,本公开还提供一种路由通告装置20,用于实现边界网关协议BGP离散路由的合并发送,所述路由通告装置20包括协商处理模块21和报文发送模块22。
其中,协商处理模块21用于根据发布的至少两条离散路由生成一条更新报文,在该更新报文中携带所述至少两条离散路由各个前缀的离散属性。
关于协商处理模块21的实现方式可以参阅图3中步骤S12的相关描述,在此不作赘述。
报文发送模块22用于发送所述更新报文,以实现对所述至少两条离散路由的合并发送。
关于报文发送模块22的实现方式可以参阅图3中步骤S13的相关描述,在此不作赘述。
其中,所述至少两条离散路由的路径属性中存在不同的子路径属性字段,所述更新报文中携带的离散属性包括所述至少两条离散路由中不同的子路径属性字段。
可选地,所述协商处理模块用于在更新报文的字段中新增预设字段,在所述预设字段中对所述至少两条离散路由各个前缀的离散属性进行统一打包分组。
可选地,所述更新报文为Update报文,所述预设字段为类型-长度-值TLV格式,所述协商处理模块用于将所述预设字段中的值扩展为多个值的类型-长度格式,其中,所述多个值与所述至少两条离散路由分别对应。
本公开中的路由通告方法、装置、通信设备及存储介质,扩展了一种BGP能力,对协商了BGP离散路由打包能力的邻居采取离散路由打包发送,不支持离散路由打包能力的邻居仍按原有流程处理,在节省网络资源,提高通信效率的同时,实现了和原有实现方式的兼容。
在本公开所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本公开的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本公开各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,通信设备,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本公开的可选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (8)
1.一种路由通告方法,其特征在于,包括:
根据发布的至少两条离散路由生成一条更新报文,在该更新报文中携带所述至少两条离散路由各个前缀的离散属性;
发送所述更新报文,以实现对所述至少两条离散路由的合并发送;
其中,所述至少两条离散路由的路径属性中存在不同的子路径属性字段,所述更新报文中携带的离散属性包括所述至少两条离散路由中不同的子路径属性字段;
根据发布的至少两条离散路由生成一条更新报文,在该更新报文中携带所述至少两条离散路由各个前缀的离散属性的步骤,包括:
在更新报文的路径属性字段中新增一种子路径属性字段作为新增预设字段,将新增的所述子路径属性字段作为离散属性,用以统一携带各离散路由各个前缀的离散属性;
在所述预设字段中对所述至少两条离散路由各个前缀的离散属性进行统一打包分组。
2.根据权利要求1所述的路由通告方法,其特征在于,所述更新报文为Update报文,所述预设字段为类型-长度-值TLV格式;
在所述预设字段中对所述至少两条离散路由各个前缀的离散属性进行统一打包分组的步骤,包括:
将所述预设字段中的值扩展为多个值的类型-长度格式,其中,所述多个值与所述至少两条离散路由分别对应。
3.根据权利要求1所述的路由通告方法,其特征在于,根据发布的至少两条离散路由生成一条更新报文的步骤,包括:
获得发布的各离散路由的子路径属性种类;
根据预设种类子路径属性不同的至少两条离散路由生成一条更新报文。
4.根据权利要求1至3任一项所述的路由通告方法,其特征在于,所述方法还包括:
接收到更新报文后,判断该更新报文中是否携带有至少两条离散路由各个前缀的离散属性,若携带有至少两条离散路由各个前缀的离散属性,解析该更新报文,以得到至少两条离散路由的实际属性和前缀。
5.一种路由通告装置,其特征在于,包括:
协商处理模块,用于根据发布的至少两条离散路由生成一条更新报文,在该更新报文中携带所述至少两条离散路由各个前缀的离散属性;
报文发送模块,用于发送所述更新报文,以实现对所述至少两条离散路由的合并发送;
其中,所述至少两条离散路由的路径属性中存在不同的子路径属性字段,所述更新报文中携带的离散属性包括所述至少两条离散路由中不同的子路径属性字段;
根据发布的至少两条离散路由生成一条更新报文,在该更新报文中携带所述至少两条离散路由各个前缀的离散属性的步骤,包括:
在更新报文的路径属性字段中新增一种子路径属性字段作为新增预设字段,将新增的所述子路径属性字段作为离散属性,用以统一携带各离散路由各个前缀的离散属性;
在所述预设字段中对所述至少两条离散路由各个前缀的离散属性进行统一打包分组。
6.根据权利要求5所述的路由通告装置,其特征在于,所述更新报文为Update报文,所述预设字段为类型-长度-值TLV格式,所述协商处理模块用于将所述预设字段中的值扩展为多个值的类型-长度格式,其中,所述多个值与所述至少两条离散路由分别对应。
7.一种通信设备,其特征在于,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1至4任一项所述的路由通告方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机程序,所述计算机程序运行时控制所述计算机可读存储介质所在通信设备执行权利要求1至4任一项所述的路由通告方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810675197.7A CN108965120B (zh) | 2018-06-26 | 2018-06-26 | 路由通告方法、装置、通信设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810675197.7A CN108965120B (zh) | 2018-06-26 | 2018-06-26 | 路由通告方法、装置、通信设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108965120A CN108965120A (zh) | 2018-12-07 |
CN108965120B true CN108965120B (zh) | 2021-03-09 |
Family
ID=64487320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810675197.7A Active CN108965120B (zh) | 2018-06-26 | 2018-06-26 | 路由通告方法、装置、通信设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108965120B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111726290B (zh) * | 2020-07-23 | 2021-12-17 | 迈普通信技术股份有限公司 | 路由控制方法、装置、边界网关及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104243303A (zh) * | 2014-09-25 | 2014-12-24 | 杭州华三通信技术有限公司 | 一种自治系统环路组网中发送更新报文的方法和装置 |
CN104486228A (zh) * | 2014-12-25 | 2015-04-01 | 杭州华三通信技术有限公司 | 一种路由更新的方法及路由更新装置 |
CN105763468A (zh) * | 2016-03-31 | 2016-07-13 | 杭州华三通信技术有限公司 | 一种bgp更新报文的传输方法和装置 |
CN107612650A (zh) * | 2017-08-10 | 2018-01-19 | 国家电网公司 | 报文处理方法及系统 |
CN108390822A (zh) * | 2018-03-13 | 2018-08-10 | 新华三技术有限公司 | 路由发布方法和装置 |
-
2018
- 2018-06-26 CN CN201810675197.7A patent/CN108965120B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104243303A (zh) * | 2014-09-25 | 2014-12-24 | 杭州华三通信技术有限公司 | 一种自治系统环路组网中发送更新报文的方法和装置 |
CN104486228A (zh) * | 2014-12-25 | 2015-04-01 | 杭州华三通信技术有限公司 | 一种路由更新的方法及路由更新装置 |
CN105763468A (zh) * | 2016-03-31 | 2016-07-13 | 杭州华三通信技术有限公司 | 一种bgp更新报文的传输方法和装置 |
CN107612650A (zh) * | 2017-08-10 | 2018-01-19 | 国家电网公司 | 报文处理方法及系统 |
CN108390822A (zh) * | 2018-03-13 | 2018-08-10 | 新华三技术有限公司 | 路由发布方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108965120A (zh) | 2018-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2011024B1 (en) | Network element discovery using a network routine protocol | |
US9253220B2 (en) | Method and apparatus for the fast detection of connectivity loss between devices in a network | |
EP2731313A1 (en) | Distributed cluster processing system and message processing method thereof | |
CN111598564B (zh) | 区块链节点连接建立方法、装置及设备 | |
CN112868214B (zh) | 分组内的协调负载转移oam记录 | |
WO2022078415A1 (zh) | 报文转发方法以及网络设备 | |
US10432503B1 (en) | Distribution of prefixes in a network | |
EP3484107B1 (en) | Parameter notification and obtaining methods and devices, and storage medium | |
CN115102900A (zh) | 报文转发方法、系统、存储介质及电子装置 | |
EP3188408B1 (en) | Method and apparatus for determining network topology, and centralized network state information storage device | |
EP2991288B1 (en) | Method and device for determining next hop and distributing routing information | |
WO2022028216A1 (zh) | 网络层可达信息传输方法、系统、装置以及网络设备 | |
CN112910704B (zh) | 一种支持动态自适应网络配置的局域网系统、方法和装置 | |
CN108965120B (zh) | 路由通告方法、装置、通信设备及存储介质 | |
CN112367255B (zh) | 一种bfd会话处理方法、装置、存储介质及路由设备 | |
CN116560853A (zh) | 一种基于bgp流规则通告算力信息的方法及系统 | |
CN108390822B (zh) | 路由发布方法和装置 | |
CN107547411B (zh) | 一种路由处理方法、装置、电子设备及机器可读存储介质 | |
WO2022088685A1 (zh) | 一种语义名称获取方法、装置、设备及存储介质 | |
CN104702505A (zh) | 一种报文传输方法和节点 | |
KR20190039596A (ko) | Sfc 네트워크에서 토폴로지 정보를 동기화하기 위한 방법, 및 라우팅 네트워크 엘리먼트 | |
US7418519B1 (en) | Technique for prefix limit exchange for route advertisement | |
US10164863B2 (en) | Inter-chassis peer and method used therein | |
WO2022228410A1 (zh) | 一种路由信息的处理方法及装置 | |
WO2023169364A1 (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 |