一种BIER报文转发方法及装置转让专利

申请号 : CN202210853698.6

文献号 : CN115314436B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张继鹏董卫东

申请人 : 烽火通信科技股份有限公司南京第三代通信科技有限公司

摘要 :

本申请公开了一种BIER报文转发方法及装置,其特征在于,其包括步骤:在硬件转发层建立面向流的BitString转发表,并使所述BitString转发表包括BIER报文转发所需的复制信息和封装信息;收到BIER报文后根据所述BitString转发表进行报文的集中复制和转发。可简化转发面的实现复杂度,提升转发效率,降低芯片支持的难度。

权利要求 :

1.一种BIER报文转发方法,其特征在于,包括步骤:

在硬件转发层建立面向流的BitString转发表,并使所述BitString转发表包括BIER报文转发所需的复制信息和封装信息;

收到BIER报文后根据所述BitString转发表进行报文的集中复制和转发;

在硬件转发层建立面向流的BitString转发表,并使所述BitString转发表包括BIER报文转发所需的复制信息和封装信息,包括步骤:复制BIER报文并创建所述BitString转发表的前缀信息项,所述前缀信息项包括对应BIER报文业务流的BitString信息;

根据所述BitString信息查找对应BIFT表,并根据所述对应BIFT表建立所述BitString转发表的下一跳信息对象;

建立所述下一跳信息对象与对应BIFT表的依赖关系以及所述下一跳信息对象与对应路由表的对应关系,并根据所述依赖关系和所述对应关系确定所述复制BIER报文的下一跳ARP信息以及下一跳出接口信息;

网络节点故障时,根据所述依赖关系更新所述BitString转发表。

2.如权利要求1所述的BIER报文转发方法,其特征在于,所述根据所述依赖关系更新所述BitString转发表,包括步骤:修改、增加或删除故障相关联的BIFT表的F‑BM数据;

通知所有与修改、增加或删除的BIFT对象建立了依赖关系的BitString转发表进行联动更新。

3.如权利要求2所述的BIER报文转发方法,其特征在于,所述收到BIER报文后根据所述BitString转发表进行报文的集中复制和转发,包括步骤:收到BIER报文后按照精确匹配模式查找对应的BitString转发表,若查找到,则从所述对应的BitString转发表获取对应的复制信息和封装信息,所述封装信息包括所述收到BIER报文的下一跳BitString信息、下一跳sid信息、下一跳ARP信息以及下一跳出接口信息;

根据所获取的复制信息和封装信息对所收到的BIER报文进行集中复制、封装和转发。

4.一种BIER报文转发装置,其特征在于,其包括:

BitString转发表创建模块,其用于在硬件转发层建立面向流的BitString转发表,并使所述BitString转发表包括BIER报文转发所需的复制信息和封装信息;

BIER报文转发模块,其用于收到BIER报文后根据所述BitString转发表进行报文的集中复制和转发;

所述BitString转发表创建模块还用于:

复制BIER报文并创建所述BitString转发表的前缀信息项,所述前缀信息项包括对应BIER报文业务流的BitString信息;

根据所述BitString信息查找对应BIFT表,并根据所述对应BIFT表建立所述BitString转发表的下一跳信息对象;

建立所述下一跳信息对象与对应BIFT表的依赖关系以及所述下一跳信息对象与对应路由表的对应关系,并根据所述依赖关系和所述对应关系确定所述复制BIER报文的下一跳ARP信息以及下一跳出接口信息;

 BitString转发表更新模块,其用于在网络节点故障时,根据所述依赖关系更新所述BitString转发表。

5.如权利要求4所述的BIER报文转发装置,其特征在于, 所述BitString转发表更新模块还用于:修改、增加或删除故障相关联的BIFT表的F‑BM数据;

通知所有与修改、增加或删除的BIFT对象建立了依赖关系的BitString转发表进行联动更新。

6.如权利要求5所述的BIER报文转发装置,其特征在于,所述BIER报文转发模块还用于:收到BIER报文后按照精确匹配模式查找对应的BitString转发表,若查找到,则从所述对应的BitString转发表获取对应的复制信息和封装信息,所述封装信息包括所述收到BIER报文的下一跳BitString信息、下一跳sid信息、下一跳ARP信息以及下一跳出接口信息;

根据所获取的复制信息和封装信息对所收到的BIER报文进行集中复制、封装和转发。

说明书 :

一种BIER报文转发方法及装置

技术领域

[0001] 本申请涉及通信技术领域,尤其涉及一种BIER报文转发方法及装置。

背景技术

[0002] BIER(Bit Index Explicit Replication)是一种基于位索引显式复制的新型组播技术。该技术不需要显式建立组播分发树,也不需要中间节点保存任何组播流状态。具有BIER能力的路由器称之为BFR,即位转发路由器(Bit‑Forwarding Router),BFR组成的域称之为BIER域,组播流量进入和离开BIER域的BFR分别称之为BFIR和BFER。BIER域内的BFR通过运行控制面协议交换BFR的标识、所在BIER子域以及BIER转发能力等信息,并基于这些信息计算生成BIFT,即位索引转发路由表(Bit Index Forwarding Table)。BIFT表由转发位串掩码F‑BM和BFR邻居组成,F‑BM的每一位表示BIER域中唯一一个BFR,该信息由BFR的标识BFR‑id定义。
[0003] 当组播业务流量进入BIER域时,BFIR确定该组播业务的BFER集合,然后将组播报文封装为BIER报文,BIER头中BitString字段的每一位表示一个BFER节点,通过对BitString中相应bit位置1指示该组播流量的BFER集合,BFR查找BIFT表对BIER报文进行BIER转发,当BIER报文达到BFER时,BFER解封装BIER头并对组播报文进行组播路由转发。同时,BIER与IPv4、IPv6、MPLS等传送技术平行的独立转发技术。BIER头中除了标识组播业务BFER集合的BitString字段外,还包含DSCP、TTL、Entropy、OAM、Protocol等字段,可以提供QoS、环路避免、负荷分担、连通性检测、多业务承载等能力。
[0004] 但研究发现,目前主流的BIER报文转发流程存在较多冗余判断、复制不集中等情况,由于处理逻辑复杂,导致芯片处理效率低,芯片实现方案复杂等问题(如在ASIC芯片难以实现)。

发明内容

[0005] 本申请的主要目的在于提供一种BIER报文转发方法及装置,简化转发面的实现复杂度,提升转发效率,降低芯片支持的难度。
[0006] 一方面,本发明实施例提供了一种BIER报文转发方法,其特征在于,包括步骤:
[0007] 在硬件转发层建立面向流的BitString转发表,并使所述BitString转发表包括BIER报文转发所需的复制信息和封装信息;
[0008] 收到BIER报文后根据所述BitString转发表进行报文的集中复制和转发。
[0009] 一些实施例中,在硬件转发层建立面向流的BitString转发表,并使所述BitString转发表包括BIER报文转发所需的复制信息和封装信息,包括步骤:
[0010] 复制BIER报文并创建所述BitString转发表的前缀信息项,所述前缀信息项包括对应BIER报文业务流的BitString信息;
[0011] 根据所述BitString信息查找对应的BIFT表,并根据所述对应BIFT表建立所述BitString转发表的下一跳信息对象;
[0012] 建立所述下一跳信息对象与对应BIFT表的依赖关系以及所述下一跳信息对象与对应路由表的对应关系,并根据所述依赖关系和对应关系确定所述复制BIER报文的下一跳ARP信息以及下一跳出接口信息。
[0013] 一些实施例中,包括步骤:网络节点故障时,根据所述依赖关系更新所述BitString转发表。
[0014] 一些实施例中,所述根据所述依赖关系更新所述BitString转发表,包括步骤:
[0015] 修改、增加或删除故障相关联的BIFT表的F‑BM数据;
[0016] 通知所有与修改、增加或删除的BIFT对象建立了依赖关系的BitString转发表进行联动更新。
[0017] 一些实施例中,所述收到BIER报文后根据所述BitString转发表进行报文的集中复制和转发,包括步骤:
[0018] 收到BIER报文后按照精确匹配模式查找对应的BitString转发表,若查找到,则从所述对应的BitString转发表获取对应的复制信息和封装信息,所述封装信息包括所述收到BIER报文的下一跳BitString信息、下一跳sid信息、下一跳ARP信息以及下一跳出接口信息;
[0019] 根据所获取的复制信息和封装信息对所收到的BIER报文进行集中复制、封装和转发。
[0020] 第二方面,本发明实施例提供一种BIER报文转发装置,其特征在于,其包括:
[0021] BitString转发表创建模块,其用于在硬件转发层建立面向流的BitString转发表,并使所述BitString转发表包括BIER报文转发所需的复制信息和封装信息;
[0022] BIER报文转发模块,其用于收到BIER报文后根据所述BitString转发表进行报文的集中复制和转发。
[0023] 一些实施例中,所述BitString转发表创建模块还用于:
[0024] 复制BIER报文并创建所述BitString转发表的前缀信息项,所述前缀信息项包括对应BIER报文业务流的BitString信息;
[0025] 根据所述BitString信息查找对应的BIFT表,并根据所述对应BIFT表建立所述BitString转发表的下一跳信息对象;
[0026] 建立所述下一跳信息对象与对应BIFT表的依赖关系以及所述下一跳信息对象与对应路由表的对应关系,并根据所述依赖关系和对应关系确定所述复制BIER报文的下一跳ARP信息以及下一跳出接口信息。
[0027] 一些实施例中,还包括:BitString转发表更新模块,其用于在网络节点故障时,根据所述依赖关系更新所述BitString转发表。
[0028] 一些实施例中,所述BitString转发表更新模块还用于:
[0029] 修改、增加或删除故障相关联的BIFT表的F‑BM数据;
[0030] 通知所有与修改、增加或删除的BIFT对象建立了依赖关系的BitString转发表进行联动更新。
[0031] 一些实施例中,所述BIER报文转发模块还用于:
[0032] 收到BIER报文后按照精确匹配模式查找对应的BitString转发表,若查找到,则从所述对应的BitString转发表获取对应的复制信息和封装信息,所述封装信息包括所述收到BIER报文的下一跳BitString信息、下一跳sid信息、下一跳ARP信息以及下一跳出接口信息;
[0033] 根据所获取的复制信息和封装信息对所收到的BIER报文进行集中复制、封装和转发。
[0034] 本申请提供一种BIER报文转发方法及装置,通过在转发层面建立面向流的BitString转发表,并在收到BIER组播报文后,通过该表一次精确匹配,实现集中复制、封装、转发,可简化转发流程,提升转发效率。同时,基于BIFT表和BIER组播报文,学习所述面向流的BitString转发表,以建立一种BitString转发表与BIFT表的依赖关系。当网络故障收敛时,BitString表能够实时联动更新,有效的保障了BitString表的有效性。

附图说明

[0035] 为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0036] 图1为本申请实施例提供的一种BIER报文转发方法的流程示意图;
[0037] 图2为相关技术中bier网络示意图;
[0038] 图3为本申请实施例提供的BIER报文转发流程示意图;
[0039] 图4为本申请实施例提供的BITF表与BitString转发表联动修改示意图;
[0040] 图5为本申请实施例提供的BITF表与BitString转发表联动删除示意图;
[0041] 图6为本申请实施例提供的BITF表与BitString转发表联动增加示意图;
[0042] 图7、8为本申请实施例提供的BIER报文转发装置的示意性框图。
[0043] 本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

[0044] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0045] 附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
[0046] 如图1所示,本申请实施例提供一种BIER报文转发方法,包括步骤:
[0047] S100:在硬件转发层建立面向流的BitString转发表,并使所述BitString转发表包括BIER报文转发所需的复制信息和封装信息;
[0048] S200:收到BIER报文后根据所述BitString转发表进行报文的集中复制和转发。
[0049] 需要说明的是,如图2所示,目前标准组织定义的BIE报文转发流程中,对于一个包括257个支持BIER报文处理的网络,其中有256个BFR节点(PE1,PE2,...PE256代表了256个BFER节点,其ID分别是1,2,...256)。这257个节点直连或者通过非BIER节点相连。如果P2收到一个BIER报文,其中,BitString的256个bit位全部为1时,P2节点会遍历256次,且每一次都会涉及判断以及AND操作等操作,导致在芯片内实现复杂,且效率较低。
[0050] 可以理解的是,步骤S100中复制信息适用于复制报文,封装信息是用于对复制的报文进行封装。根据这些信息可决定该报文向哪些BFER转发。
[0051] 本发明实施例通过在转发层面建立面向流的BitString转发表,并在收到BIER组播报文后,通过该表一次精确匹配,实现集中复制、封装、转发,避免相关技术中相同下一跳邻居的个数比较多,导致一个报文包需要多次查找的问题,可简化转发流程,提升转发效率。
[0052] 一些实施例中,步骤S100包括步骤:
[0053] S110:复制BIER报文并创建所述BitString转发表的前缀信息项,所述前缀信息项包括对应BIER报文业务流的BitString信息;
[0054] S120:根据所述BitString信息查找对应的BIFT表,并根据所述对应BIFT表建立所述BitString转发表的下一跳信息对象;
[0055] S130:建立所述下一跳信息对象与对应BIFT表的依赖关系以及所述下一跳信息对象与对应路由表的对应关系,并根据所述依赖关系和对应关系确定所述复制BIER报文的下一跳ARP信息以及下一跳出接口信息。
[0056] 可以理解的是,BitString转发表结构包括三个部分:前缀信息项(其用于后续报文转发时进行一次性精准匹配,即通过将转发报文的BitString信息与BitString转发表直接匹配。)、下一跳信息对象以及关系信息(关系信息包括下一跳信息对象与对应BIFT表的依赖关系以及与对应路由表的对应关系),其中下一跳信息对象包括下一跳BitString信息和下一跳sid信息。
[0057] 需要说明的是,S120中根据BitString信息查找对应的BIFT表,可通过遍历BitString信息中不为零的bit位,查找每个不为零的bit位对应的BIFT表,从而获取所有该BitString信息相关的BIFT表。遍历结束后向芯片下发创建完成的BitString转发表,即表示该BitString转发表已具备转发该BIER报文所需的复制信息和封装信息。
[0058] 如图3所示,在一个具体的实施例中,建立面向流的BitString转发表的过程如下:
[0059] S031,复制报文,创建前缀信息项,即复制需转发的BIER报文,并根据该报文的业务流BitString建立前缀信息项;
[0060] S032,查找BitString信息第一个不为0的bit位;
[0061] S033,查找对应BIFT表;
[0062] S034,根据BIFT表增加下一跳信息对象;
[0063] S035,建立下一跳信息对象与BIFT表的依赖关系以及与对应路由表的观察关系;
[0064] S036,相关bit位置为0,即相关bit位是指已对应创建前缀信息、下一跳信息对象以及相应依赖关系和观察关系的bit位;
[0065] S037,判断BitString的所有bit位是否全为0,若是则跳转S038,若否则跳转S032;
[0066] S038,将已创建完成的BitString转发表下发芯片。
[0067] 可优选地,当网络节点故障时,根据所述依赖关系更新所述BitString转发表。本发明实施例基于BIFT表和BIER组播报文,创建面向流的BitString转发表,并建立一种BitString转发表与BIFT表的依赖关系。当网络故障收敛时,BitString表能够实时联动更新,有效的保障了BitString表的有效性。
[0068] 一些实施例中,步骤S300包括:
[0069] S310:修改、增加或删除故障相关联的BIFT表的F‑BM数据;
[0070] S320:通知所有与修改、增加或删除的BIFT对象建立了依赖关系的BitString转发表进行联动更新。
[0071] 如图4所示,一个具体的实施例中,BITF表与BitString转发表联动更新的流程包括:当BFR‑ID为1的节点(即节点D)故障后,相关节点(如B节点)根据IGP协议感知,BIFT对象更新数据(将NBR为C对应的FBM数据从0011修改为0010)后,会通知所有与该对象建立依赖关系的BitString转发表刷新(修改与该FBM数据相关联项的下一跳信息,将对应项中的0011修改为0010),每一个BitString的下一跳信息变更后,会联动迭代所有相关的路由表,最终完成整个BitString转发表的联动更新,将更新后的BitString转发表下发B节点对应的芯片。
[0072] 如图5所示,一个具体的实施例中,BITF表与BitString转发表联动更新的流程包括:BFR‑ID为3的节点(即节点E)故障后,相关节点(如B节点)根据IGP协议感知,则删除BIFT对象的FBM数据(将NBR为E对应的FBM数据删除);BIFT对象删除数据后,会通知所有与该对象建立依赖关系的BitString转发表刷新(刷新与该FBM数据相关联项的下一跳信息,将对应项中的信息删除),每一个BitString转发表变更后,会联动迭代所有相关的路由表,最终完成整个BitString转发表的联动更新,将更新后的BitString转发表下发B节点对应的芯片。
[0073] 如图6所示,一个具体的实施例中,BITF表与BitString转发表联动更新的流程包括:BFR‑ID为3的节点(即节点E)故障恢复后,相关节点(如B节点)根据IGP协议感知,则增加BIFT对象的FBM数据(增加NBR为E对应的FBM数据);BIFT对象增加数据后,会通知所有与该对象建立依赖关系的BitString转发表刷新(刷新与该FBM数据相关联项的下一跳信息,增加对应项中的信息),每一个BitString转发表变更后,会联动迭代所有相关的路由表,最终完成整个BitString转发表的联动更新,将更新后的BitString转发表下发B节点对应的芯片。
[0074] 一些实施例中,步骤S200包括步骤:
[0075] S210:收到BIER报文后按照精确匹配模式查找对应的BitString转发表,若查找到,则从所述对应的BitString转发表获取对应的复制信息和封装信息,所述封装信息包括所述收到BIER报文的下一跳BitString信息、下一跳sid信息、下一跳ARP信息以及下一跳出接口信息;
[0076] S220:根据所获取的复制信息和封装信息对所收到的BIER报文进行集中复制、封装和转发。
[0077] 需要说明的是,精确匹配模式是指根据待转发报文中的BitString字段去查找BitString转发表,若查找到BitString转发表中的BitString信息字段跟该报文的BitString字段完全一致,则认为找到对应的BitString转发表。
[0078] 可以理解的是,集中复制指根据BitString转发表中下一跳个数(如10个),一次性把报文复制成多份,其中每一个报文用对应下一跳信息进行封装。
[0079] 如图3所示,在一个具体的实施例中,BIER报文转发流程如下:
[0080] S01,收到BIER报文后确认新配为开启精确匹配模式;
[0081] S02,查找对应的BitString转发表;
[0082] S03,判断是否查找到对应的BitString转发表,若是则跳转S04,若否则跳转S031;
[0083] S04,根据BitString转发表集中复制和封装报文;
[0084] S05,将复制和封装好的报文转发。
[0085] 如图7所示,本申请实施例还提供一种BIER报文转发装置,其包括:
[0086] BitString转发表创建模块,其用于在硬件转发层建立面向流的BitString转发表,并使所述BitString转发表包括BIER报文转发所需的复制信息和封装信息;
[0087] BIER报文转发模块,其用于收到BIER报文后根据所述BitString转发表进行报文的集中复制和转发。
[0088] 一些实施例中,BitString转发表创建模块还用于:
[0089] 复制BIER报文并创建所述BitString转发表的前缀信息项,所述前缀信息项包括对应BIER报文业务流的BitString信息;
[0090] 根据所述BitString信息查找对应的BIFT表,并根据所述对应BIFT表建立所述BitString转发表的下一跳信息对象;
[0091] 建立所述下一跳信息对象与对应BIFT表的依赖关系以及所述下一跳信息对象与对应路由表的对应关系,并根据所述依赖关系和对应关系确定所述复制BIER报文的下一跳BitString信息、下一跳sid信息、下一跳ARP信息以及下一跳出接口信息。
[0092] 如图8所示,一些实施例中,BIER报文转发装置还包括BitString转发表更新模块,其用于在网络节点故障时,根据所述依赖关系更新所述BitString转发表。
[0093] 一些实施例中,BitString转发表更新模块还用于:
[0094] 增加或删除故障相关联的BIFT表的F‑BM数据;
[0095] 通知所有与增加或删除的BIFT对象建立了依赖关系的BitString转发表进行联动更新。
[0096] 一些实施例中,BIER报文转发模块还用于:
[0097] 收到BIER报文后按照精确匹配模式查找对应的BitString转发表,若查找到,则从所述对应的BitString转发表获取对应的复制信息和封装信息,所述封装信息包括所述收到BIER报文的下一跳BitString信息、下一跳sid信息、下一跳ARP信息以及下一跳出接口信息;
[0098] 根据所获取的复制信息和封装信息对所收到的BIER报文进行集中复制、封装和转发。
[0099] 本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读存储介质上,计算机可读存储介质可以包括计算机可读存储介质(或非暂时性介质)和通信介质(或暂时性介质)。
[0100] 以上仅为本发明实施例的具体实施方式,但本发明实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明实施例的保护范围之内。因此,本发明实施例的保护范围应以权利要求的保护范围为准。