CN112787934A - 位索引显式复制网络中负载分担的方法、装置及设备 - Google Patents
位索引显式复制网络中负载分担的方法、装置及设备 Download PDFInfo
- Publication number
- CN112787934A CN112787934A CN202010130456.5A CN202010130456A CN112787934A CN 112787934 A CN112787934 A CN 112787934A CN 202010130456 A CN202010130456 A CN 202010130456A CN 112787934 A CN112787934 A CN 112787934A
- Authority
- CN
- China
- Prior art keywords
- next hop
- target
- bit
- bier
- forwarding
- 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
- 238000000034 method Methods 0.000 title claims abstract description 62
- 230000010076 replication Effects 0.000 title claims description 11
- 230000015654 memory Effects 0.000 claims description 41
- 238000012545 processing Methods 0.000 claims description 31
- 238000004891 communication Methods 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 11
- 238000005538 encapsulation Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 13
- 230000008569 process Effects 0.000 description 8
- 101710104277 Bacterioferritin A Proteins 0.000 description 6
- 101710172806 Putative bacterioferritin B Proteins 0.000 description 6
- 230000008901 benefit Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000006424 Flood reaction Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- HRULVFRXEOZUMJ-UHFFFAOYSA-K potassium;disodium;2-(4-chloro-2-methylphenoxy)propanoate;methyl-dioxido-oxo-$l^{5}-arsane Chemical compound [Na+].[Na+].[K+].C[As]([O-])([O-])=O.[O-]C(=O)C(C)OC1=CC=C(Cl)C=C1C HRULVFRXEOZUMJ-UHFFFAOYSA-K 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1881—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with schedule organisation, e.g. priority, sequence management
-
- 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/16—Multipoint routing
-
- 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/24—Multipath
-
- 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/34—Source routing
-
- 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/48—Routing tree calculation
-
- 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/54—Organization of routing tables
-
- 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/74—Address processing for routing
- H04L45/742—Route cache; Operation thereof
-
- 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/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种BIER网络中负载分担的方法、装置和设备,该方法包括:网络设备获取BIER报文,并根据该BIER报文中的标识从该网络设备的多个下一跳节点中,确定到达第一BIER报文的目的地址的目标下一跳节点。之后,网络设备根据该目标下一跳节点生成目标转发表,并根据该目标转发表转发第一BIER报文。本申请不再由控制面通过将大量负载分担表下发转发面的方式进行BIER报文的负载分担,而是由网络设备转发面生成上述目标转发表进行BIER报文的负载分担,这样不仅可以避免控制面下发大量负载分担表,还可以避免在链路出现故障时造成丢包或多包的问题,提高负载分担的效果。
Description
本申请要求于2019年11月04日提交的申请号为201911066789.X、发明名称为“BIER网络中负载分担的方法、设备和系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信领域,尤其涉及位索引显式复制网络中负载分担的方法、装置及设备。
背景技术
征求意见稿(Requirement For Comments,RFC)8279提供了使用位索引显式复制(bit indexed explicit replication,BIER)多表项负载分担的方案。该方案包括网络设备的控制面将用于负载分担的多个位索引转发表(bit index forwarding table,BIFT)下发给网络设备的转发面,转发面按照报文特征进行哈希(hash)后选择一个BIFT后对BIER报文进行转发。然而,这样会造成如果链路越多,则所需和下发的用于负载分担的BIFT就更多。当链路故障,流量的正切需要等待控制面刷新BIFT,导致链路切换的速度会受到控制面刷新BIFT的影响。当链路恢复或回切时因为所有BIFT重新刷新,可能造成回切丢包或者多包。
发明内容
本申请提供了一种BIER网络中负载分担的方法、装置及设备,以提高网络设备转发BIER报文的效率,技术方案如下:
第一方面,提供了一种BIER网络中负载分担的方法,该方法包括:第一网络设备获取第一BIER报文;根据该第一BIER报文中的标识确定该第一网络设备的多个下一跳节点中,到达第一BIER报文的目的地址的目标下一跳节点。之后,第一网络设备根据该目标下一跳节点生成目标转发表,并根据该目标转发表转发第一BIER报文。该方法中的步骤可以由第一网络设备的转发面实现。
等价多路径(equal cost multiple path,ECMP)是指存在多条到达同一个目的地址的相同开销的路径,这种情况下网络设备发送报文到达同一个目的地址存在多个下一跳节点。在本申请,第一网络设备可以为配置了BIER ECMP的负载分担使能的任意节点。示例性地,该第一网络设备具有使用BIER协议、具备BIER转发能力及具有BIER的封装下的转发能力,如MPLS封装、以太(Ethernet)封装、互联网协议第6版(internet protocol version6,IPv6)封装等。本申请实施例不对BIER转发的封装类型加以限制。此外,本申请实施例中的该第一网络设备可以是路由器或交换机等数据通信设备。
第一网络设备通过BIER报文的标识确定目标下一跳节点,进而生成目标转发表,因而不由第一网络设备的控制面通过多表的方式来做ECMP负载分担,而是根据BIER报文中的标识,例如比特串(bitstring)指示的每个位转发出口路由器(Bit-Forwarding EgressRouter,BFER)的ECMP链路进行负载分担,使得组播能获得跟单播一样的负载分担精度。而且,在负载分担链路出现故障和恢复时不会多包和丢包,在负载分担链路故障和恢复时与本故障链路无关的BFER流量不会出现乱序,使得每个BEFT的选路各自独立,互相不影响,获得跟单播一样的正切和回切性能。
在一种可能的实现方式中,第一网络设备可以获取位索引转发表,例如从第一网络设备的控制面获取位索引转发表,其中,该位索引转发表包括转发位掩码以及与转发位掩码对应的下一跳节点的标识,该位索引转发表用于指导网络设备转发BIER报文。该第一网络设备根据第一BIER报文中的标识确定第一网络设备的多个下一跳节点中,到达第一BIER报文的目的地址的目标下一跳节点的实现方式具体包括:第一网络设备可以根据第一BIER报文中的标识,通过查询上述位索引转发表,得到第一网络设备的多个下一跳节点中,到达第一BIER报文的目的地址的目标下一跳节点。
上述方案中,不需要利用控制面将位索引转发表拆成多个ECMP表下发给转发面进行负载分担,使得由控制面下发的位索引转发表的数量能够大幅下降,提高网络设备的转发效率。此外,由于网络设备可以被划分成不同的集合,通过集合标识(set identifier,SI)可以标识该集合,因而一个SI可以只需要一张BIFT,大大节省第一网络设备的存储空间。
在一种可能的实现方式中,第一BIER报文中的标识为比特串(BitString),BitString中的每个Bit用来标识某个位转发出口路由器(Bit-Forwarding EgressRouter,BFER),例如BitString的低位(最右)的一个Bit的值为1用来标识BFR-id=1的节点。该比特串包括至少一个第一值的目标比特位,可以将第一值设定为1,例如,比特位的值为1的比特位为目标比特位,当BitString为0111表示该比特串包括3个目标比特位。第一网络设备根据该第一BIER报文中的标识,查询该第一网络设备的位索引转发表,得到第一网络设备的多个下一跳节点中,到达第一BIER报文的目的地址的目标下一跳节点的实现方式包括:基于比特串,查询第一网络设备的位索引转发表,得到该第一网络设备的多个下一跳节点中,与目标比特位对应的下一跳节点。之后,第一网络设备根据与目标比特位对应的下一跳节点确定到达第一BIER报文的目的地址的目标下一跳节点。
上述方案中,可以通过网络设备的转发面根据BIER报文中的比特串以及位索引转发表得到该第一网络设备的多个下一跳节点中,与目标比特位对应的下一跳节点,而不需要控制面下发的多表项确定下一跳节点,提高BIER报文转发效率。
在一种可能的实现方式中,第一网络设备的位索引转发表包括第一转发位掩码以及与第一转发位掩码对应的下一跳节点的标识,该第一转发位掩码对应的下一跳节点为至少一个。第一网络设备基于比特串,查询第一网络设备的位索引转发表,得到第一网络设备的多个下一跳节点中,与目标比特位对应的下一跳节点的方式,包括但不限于:对于比特串中的任一目标比特位,在位索引转发表中查询该任一目标比特位对应的第一转发位掩码;将查询到的第一转发位掩码对应的下一跳节点作为第一网络设备的多个下一跳节点中,与该任一目标比特位对应的下一跳节点。
在一种可能的实现方式中,在位索引转发表中查询任一目标比特位对应的第一转发位掩码时,可以按照目标比特位在比特串中的位置进行查询。则第一网络设备在位索引转发表中查询任一目标比特位对应的第一转发位掩码,包括:第一网络设备以任一目标比特位在比特串中的位置为索引,在位索引转发表中查询对应的第一转发位掩码。
在一种可能的实现方式中,第一网络设备根据与目标比特位对应的下一跳节点确定到达第一BIER报文的目的地址的目标下一跳节点,包括:基于比特串中存在任一目标比特位对应多个下一跳节点,第一网络设备根据第一BIER报文的报文特征,从该任一目标比特位对应的多个下一跳节点中选择一个下一跳节点作为到达该第一BIER报文的目的地址的一个目标下一跳节点。其中,第一BIER报文的报文特征包括但不限于第一BIER报文的五元组hash值、或流标签、熵标签。同一个五元组或者流标签、熵标签的第一BIER报文选择同一个下一跳节点。例如,根据第一BIER报文的五元组hash值、或流标签、熵标签,从任一目标比特位对应的多个下一跳节点中选择一个下一跳节点作为到达第一BIER报文的目的地址的一个目标下一跳节点
在一种可能的实现方式中,目标转发表包括目标下一跳节点的标识以及第二转发位掩码的对应关系,第一网络设备根据该目标下一跳节点生成目标转发表,包括:基于目标下一跳节点有多个,第一网络设备根据该多个目标下一跳节点,以及多个目标下一跳节点各自对应的第二转发位掩码,得到目标转发表;其中,多个目标下一跳节点中的相同目标下一跳节点对应同一转发表项,该同一转发表项中的第二转发位掩码由该相同目标下一跳节点对应的第一转发位掩码进行合并得到。
在一种可能的实现方式中,第一网络设备根据目标转发表转发第一BIER报文,包括:基于第一BIER报文,获取目标转发表中的目标下一跳节点对应的第二BIER报文。之后,第一网络设备将目标下一跳节点对应的第二BIER报文发送至目标下一跳节点。例如,往下一跳节点发送的时候,第一网络设备会将BIER报文里的BitString与转发表里与下一跳节点对应的表项的FBM字段做与(AND)操作。
在一种可能的实现方式中,目标转发表包括目标下一跳节点的标识以及第二转发位掩码的对应关系,第一网络设备基于第一BIER报文,获取目标转发表中的目标下一跳节点对应的第二BIER报文实现方式包括:第一网络设备根据目标转发表中的目标下一跳节点的数量,复制第一BIER报文,得到与目标下一跳节点的数量相同的多份第一BIER报文。之后,对于任一目标下一跳节点,第一网络设备基于任一目标下一跳节点对应的第二转发位掩码,修改多份第一BIER报文中的一份第一BIER报文,得到任一目标下一跳节点对应的第二BIER报文。
第二方面,提供了一种BIER网络中负载分担设备,该负载分担设备包括用于执行第一方面或第一方面中任意一种可能的实现方式所提供的BIER网络中负载分担方法的单元,例如,该设备包括:处理单元和发送单元。其中,处理单元用于获取第一BIER报文;根据第一BIER报文中的标识确定第一网络设备的多个下一跳节点中,到达第一BIER报文的目的地址的目标下一跳节点;并根据目标下一跳节点生成目标转发表;发送单元用于根据目标转发表转发第一BIER报文。
第三方面,提供了一种位索引显式复制网络中负载分担设备,该设备包括:通信接口、存储器及处理器。其中该通信接口用于实现与其他设备之间的通信,例如,用于接收或发送BIER报文,存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行第一方面或第一方面中任意一种可能的实现方式提供的BIER网络中负载分担方法相关的步骤。例如,该设备的处理器用于获取第一BIER报文;根据第一BIER报文中的标识确定第一网络设备的多个下一跳节点中,到达第一BIER报文的目的地址的目标下一跳节点;并根据目标下一跳节点生成目标转发表;该设备的通信接口用于根据目标转发表转发第一BIER报文。
第四方面,提供了一种位索引显式复制网络中负载分担系统,该系统包括:第一网络设备和第二网络设备,其中,第一网络设备执行第一方面或第一方面中任意一种可能的实现方式所提供的BIER网络中负载分担方法,第二网络设备用于接收第一网络设备的发送的BIER报文。
第五方面,提供了一种包括计算机程序指令的计算机存储介质,当计算机程序指令在BIER网络中负载分担设备上运行时,使得该设备执行第一方面或第一方面任一一种可能的实现方式提供的BIER网络中负载分担方法。
第六方面,提供了另一种通信装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收BIER报文,并控制收发器发送BIER报文,并且当该处理器执行该存储器存储的指令时,使得该处理器执行第一方面或第一方面的任一种可能的实现方式中的方法。
作为一种示例性实施例,所述处理器为一个或多个,所述存储器为一个或多个。
作为一种示例性实施例,所述存储器可以与所述处理器集成在一起,或者所述存储器与处理器分离设置。
在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(read only memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请实施例对存储器的类型以及存储器与处理器的设置方式不做限定。
第七方面,提供了一种计算机程序(产品),所述计算机程序(产品)包括:计算机程序代码,当所述计算机程序代码被计算机运行时,使得所述计算机执行第一方面或第一方面的任一种可能的实现方式中的方法。
第八方面,提供了一种芯片,包括处理器,用于从存储器中调用并运行所述存储器中存储的指令,使得安装有所述芯片的通信设备执行第一方面或第一方面的任一种可能的实现方式中的方法。
附图说明
图1为本申请实施例提供的网络拓扑结构示意图;
图2为本申请实施例提供的BIER头结构示意图;
图3为本申请实施例提供的BIER-MPLS封装转发示意图;
图4为本申请实施例提供的网络拓扑结构示意图;
图5为本申请实施例提供的路由器的控制平面和数据平面的处理流程示意图;
图6为本申请实施例提供的BIER网络中负载分担的方法流程图;
图7为本申请实施例提供的BIER网络中负载分担设备结构示意图;
图8为本申请实施例提供的BIER网络中负载分担设备结构示意图;
图9为本申请实施例提供的BIER网络中负载分担设备结构示意图;
图10为本申请实施例提供的BIER网络中负载分担设备结构示意图;
图11为本申请实施例提供的BIER网络中负载分担系统结构示意图。
具体实施方式
本申请的实施方式部分使用的术语仅用于对本申请的实施例进行解释,而非旨在限定本申请。
BIER技术是一种组播技术,BIER网络包括中间节点和边缘节点,中间节点用于与BIER网络内部的其他节点进行通信,边缘节点不仅能够与BIER网络内部的其他节点进行通信,通过该边缘节点还能够实现该BIER网络与其他通信网络进行通信。该BIER网络可以包括一个或多个BIER域。对BIER网络中的每个边缘节点配置一个位转发路由器标识(Bit-Forwarding Router identifier,BFR-id),例如配置BFR-id为1~256之间的一个值。BIER网络中的每个边缘节点的配置信息可以通过内部网关协议(Interior Gateway Protocol,IGP)泛洪的方式在网络中泛洪,这种随IGP泛洪的信息称为BIER信息。通过泛洪的方式,使得网络中各节点都能够确定每个BFR-id标识以及对应的节点。本申请中BIER网络中的节点是指BIER网络中的网络设备,可以为路由器或交换机等数据通信设备。
图1是IGP泛洪BIER信息的一种网络示意图,该网络中的边缘节点包括A、D、E和F。如图1所示,边缘节点A、D、E和F被配置的BFR-id值分别为4、1、2和3。每个边缘节点的BFR-id值可以通过IGP泛洪。示例性地,每个边缘节点均向网络中的其他节点发送控制面报文,该控制面报文中包括泛洪信息,泛洪信息中包括边缘节点的BFR-id,还包括互联网协议(internet protocol,IP)地址、封装信息。其中,封装信息包括封装类型。例如,边缘节点A的泛洪信息中会携带边缘节点A的BFR-id、IP地址、封装类型为多协议标签交换(multi-protocol label switching,MPLS)以及相应的边缘节点A上分配的MPLS标签。节点B和C作为中间节点,不需要配置BFR-id,因此,节点B和C发送的控制面报文的泛洪信息中的BFR-id相应填0。该节点B和C的控制面报文的泛洪信息中还包括其它信息如节点的IP地址、封装信息。
此外,网络中的各节点通过控制面IGP泛洪的信息建立转发表,各节点可在转发面利用转发表来转发BIER报文。BIER报文头的封装格式可参见RFC8296中关于BIER头格式的说明。如图2所示,BIER头包含有一个32bit(4个字节)的BIER-Label(标签)或位索引转发表标识(Bit Index Forwarding Table identifier,BIFT-ID)值,其中前20bit为标签值或BIFT-ID值,后12bit为标签的其它信息,包括通信流类别(traffic class,TC)、S位及生存时间(time to live,TTL)。BIER头还包括64bit(8个字节)的其它字段,包括区分符(Nibble)、版本(Ver)、比特串长度(bit tring length,BSL)、熵值(Entropy)、操作、管理和维护(Operation Administration and Maintenance,OAM)、保留(Rsv)、差异化服务字段代码(differentiated services code point,DSCP)、协议(Proto)、位转发头节点路由器标识(Bit-Forwarding Ingress Router identifier,BFIR-id)等,还包括比特串(BitString)。BitString的长度可以是64bit/128bit/256bit/…等长度。BIER-Label或BFR-ID值可用来确定BitString的长度。
其中,字段BitString中的每个Bit用来标识某个边缘节点,该边缘节点为位转发出口路由器(Bit-Forwarding Egress Router,BFER),例如BitString的低位(最右)的一个Bit用来标识下一跳节点是BFR-id=1对应的节点。BitString中从右往左第2个Bit用来标识BFR-id=2对应的节点。转发面转发所依据的转发表项则是根据BIER报文中的BitString决定该BIER报文要往哪几个下一跳节点发送。多个Bit对应同一个下一跳节点的情况,只会向该下一跳节点发送一份BIER报文。
以图1所示的各节点建立BIER转发表为例,BIER转发表中的邻居可以是网络拓扑中直连的邻居,也可以是非直连的邻居,例如根据RFC8279的6.9节计算出来的非直连邻居。对于边缘节点A,该边缘节点A的邻居包括节点B。在图1所示的网络拓扑中,由于BFR-id=1/2/3的BFER节点的下一跳节点均为节点B,因此建立边缘节点A的邻居表项:
邻居(Nbr)=B,转发位掩码(forwarding bit mask,FBM)=0111。
其中,FBM中的每个比特位代表一个边缘节点。如果边缘节点比较多,那么可将边缘节点划分成不同的Set(集合)。针对多个Set,FBM由多个Set的比特串组成。例如,网络拓扑中有512台边缘节点,将512台边缘节点划分为Set=0和Set=1的2个Set,一个Set采用256bit的比特串,那么邻居的FBM可以是由2个256bit的比特串组成,分别是对应Set=0的比特串和Set=1的比特串。
对于边缘节点A的邻居表项,当BIER报文中的BitString从右往左第1/2/3个bit位为1时,会将该BIER报文向邻居节点B发送。当BIER报文中的BitString从右往左第4个bit位为1时(例如从节点B发给节点A的BIER报文),该表项指示将BIER报文向节点A发送。其中,在图1中使用*A*标识将该BIER报文发送给节点A自己。
对于节点B,该节点B的邻居包括边缘节点A、节点C和边缘节点E。由于BFR-id=1/2的BFER节点的下一跳节点均为节点C、BFR-id=3的BFER节点为边缘节点E、BFR-id=4的BFER节点为边缘节点A,因此,建立节点B的邻居表项:
Nbr=C,FBM=0011。
Nbr=E,FBM=0100。
Nbr=A,FBM=1000。
对于节点C,该节点C的邻居节点包括节点B、边缘节点E、边缘节点F和边缘节点D。由于BFR-id=1的BFER节点为边缘节点D、BFR-id=2的BFER节点为边缘节点F、BFR-id=3的BFER节点为边缘节点E、BFR-id=4的BFER节点的下一跳节点为节点B,因此,建立节点C的邻居表项:
Nbr=D,FBM=0001。
Nbr=F,FBM=0010。
Nbr=E,FBM=0100。
Nbr=B,FBM=1000。
对于边缘节点D,该边缘节点D的邻居节点包括节点C。由于BFR-id=2/3/4的BFER节点的下一跳节点为节点C,因此,建立边缘节点D的邻居表项:
Nbr=C,FBM=1110。
对于边缘节点E,该边缘节点E的邻居节点包括节点B和节点C。由于BFR-id=1/2的BFER节点的下一跳节点为节点C、BFR-id=4的BFER节点的下一跳节点为节点B,因此,建立边缘节点E的邻居表项:
Nbr=B,FBM=1000。
Nbr=C,FBM=0011。
对于边缘节点F,该边缘节点F的邻居节点包括节点C。由于BFR-id=1/3/4的BFER节点的下一跳节点为节点C,因此,建立边缘节点F的邻居表项:
Nbr=C,FBM=1101。
在图1所示的BIER网络中,报文转发过程如下:
节点A收到IP报文后,封装BIER头。例如,图1中,节点A封装BIER头的BitString为0111。然后节点A会按照BIER转发表Nbr=B,FBM=0111转发。根据转发表,此BIER报文被发送给邻居节点B。节点B收到此BIER报文,根据BitString=0111确定BIER报文需要往节点C和节点E两个邻居分别发送。往节点C发送的时候,节点B会将BIER报文里的BitString与转发表里Nbr=C的表项的FBM字段做与(AND)操作。如图1所示,节点B接收到的BIER报文里的BitString=0111,节点B的转发表里Nbr=C的表项的FBM字段=0011,则AND的结果是0011,节点B将BIER报文里的BitString改为0011后发送至节点C。同理,节点B发送BIER报文给节点E时,会将BIER报文里的BitString改为0100后发送。节点E收到BIER报文后,根据BIER报文BitString=0100确定该BIER报文要往节点E(自己)发送,因此会解封装BIER头,然后根据内层IP报文进行转发,例如可能发给图1中的节点E的组播接收者(receiver,RCV)。节点C接收到节点B发送的BIER报文后,根据BitString=0011确定BIER报文需要发送给节点D和节点F。节点C将BIER报文里的BitString改为0001后发送给节点D,节点D解封装BIER头,然后根据内层IP报文进行转发。例如节点D将BIER报文发送给图1中的节点D的RCV。节点C将BIER报文里的BitString改为0010后发送给节点F,节点F解封装BIER头,然后根据内层IP报文进行转发。例如将BIER报文发送给节点F的RSV。
此外,在BIER网络中,如果网络设备支持ECMP,可以使用BIER的多表项进行负载分担。其中,ECMP是指存在多条到达同一个目的地址的相同开销的路径。例如,以第一网络设备接收到的BIER报文达到的目的地址对应5台网络设备BFER1、BFER2、BFER3、BFER4、BFER5,第一网络设备的下一跳节点中,到达这5台网络设备对应的下一跳节点(Nbr)为A、B、C、D中的至少一个为例,汇总后的转发表的邻居关系(BIFT Neighbor)如下面表1所示。
表1
上表中的数字“1”表示可以到达的下一跳,上述表1表示由第一网络设备去往BFER1的下一跳节点有4个,分别为A/B/C/D,去往BFER2的下一跳节点有2个,分别为A/D,去往BFER3的下一跳节点有2个,分别为A/B,去往BFER4的下一跳节点有1个,为B,去往BFER5的下一跳节点有2个,分别为C/D。
由第一网络设备去往BFER1、BFER2、BFER3、BFER4和BFER5的等价路径可以从上述下一跳节点中分别进行选择,例如,从第一网络设备去往BFER1的下一跳节点A/B/C/D中选择A,从第一网络设备去往BFER2的下一跳节点A/D中选择A,从第一网络设备去往BFER3的下一跳节点A/B中选择A,从第一网络设备去往BFER4的下一跳节点B中选择B,从第一网络设备去往BFER5的下一跳节点C/D中选择C,则得到的ECMP Table1,如下面表2中的ECMP Table1所示。
同理,由第一网络设备去往BFER1、BFER2、BFER3、BFER4和BFER5的等价路径还可以从上述下一跳节点中分别进行其他选择,例如,从第一网络设备去往BFER1的下一跳节点A/B/C/D中选择B,从第一网络设备去往BFER2的下一跳节点A/D中选择D,从第一网络设备去往BFER3的下一跳节点A/B中选择B,从第一网络设备去往BFER4的下一跳节点B中选择B,从第一网络设备去往BFER5的下一跳节点C/D中选择D,则得到的ECMP表2,如下面表2中的ECMPTable2所示。
同理,由第一网络设备去往BFER1、BFER2、BFER3、BFER4和BFER5的等价路径还可以从上述下一跳节点中分别进行其他选择,例如,从第一网络设备去往BFER1的下一跳节点A/B/C/D中选择C,从第一网络设备去往BFER2的下一跳节点A/D中选择A,从第一网络设备去往BFER3的下一跳节点A/B中选择A,从第一网络设备去往BFER4的下一跳节点B中选择B,从第一网络设备去往BFER5的下一跳节点C/D中选择C,则得到的ECMP表3,如下面表3中的ECMPTable3所示。
同理,由第一网络设备去往BFER1、BFER2、BFER3、BFER4和BFER5的等价路径还可以从上述下一跳节点中分别进行其他选择,例如,从第一网络设备去往BFER1的下一跳节点A/B/C/D中选择D,从第一网络设备去往BFER2的下一跳节点A/D中选择D,从第一网络设备去往BFER3的下一跳节点A/B中选择B,从第一网络设备去往BFER4的下一跳节点B中选择B,从第一网络设备去往BFER5的下一跳节点C/D中选择D,则得到的ECMP表4,如下面表2中的ECMPTable4所示。
基于表1和设定的方法得到的ECMP表可如下面的表2所示。
表2
基于表2所示的ECMP表,控制面会将其拆成多个BIFT下发给转发面,转发面可以按照BIER报文特征进行哈希(hash)后选择一个BIFT项后指导BIER报文转发。也就是说,对于上面表2中所示的5台BFER,分别有4条下一跳节点链路或者2条下一跳节点链路或1条下一跳节点链路,一共需要4张BIFT可以将流量分担均匀。例如,如下面所示的BIFT1-BIFT4的4张BIFT,通过这4张BIFT,使得去往5台BFER的路径在4张BIFT中均匀分布。其中,BIFT1-4中的ID代表BFER的标识,例如,ID为1代表BIER1,ID为2代表BIER2,ID为3代表BIER3,ID为4代表BIER4,ID为5代表BIER5。
BIFT1
ID | F-BM | NBR |
1 | 00001 | A |
2 | 00010 | A |
3 | 00100 | A |
4 | 01000 | B |
5 | 10000 | C |
BIFT2
ID | F-BM | NBR |
1 | 00001 | B |
2 | 00010 | D |
3 | 00100 | B |
4 | 01000 | B |
5 | 10000 | D |
BIFT3
BIFT4
ID | F-BM | NBR |
1 | 00001 | D |
2 | 00010 | D |
3 | 00100 | B |
4 | 01000 | B |
5 | 10000 | D |
当第一网络设备与NbrA之间的链路故障时,BFER1、BFER2、BFER3受到影响,负载分担的链路发生变化,如下所示:
去往BFER1的下一跳节点由原来的A/B/C/D变为B/C/D;
去往BFER2的下一跳节点由原来的A/D变为D;
去往BFER3的下一跳节点由原来的A/B变为B;
去往BFER4的下一跳节点仍然包括B,保持不变;
去往BFER5的下一跳节点仍然包括C/D,保持不变。
则上述BIFT1-BIFT4更新之后,更新后的BIFT1-BIFT4如下所示。
BIFT1
ID | F-BM | NBR |
1 | 00001 | B |
2 | 00010 | D |
3 | 00100 | B |
4 | 01000 | B |
5 | 10000 | C |
BIFT2
ID | F-BM | NBR |
1 | 00001 | C |
2 | 00010 | D |
3 | 00100 | B |
4 | 01000 | B |
5 | 10000 | D |
BIFT3
BIFT4
ID | F-BM | NBR |
1 | 00001 | B |
2 | 00010 | D |
3 | 00100 | B |
4 | 01000 | B |
5 | 10000 | D |
通过上述分析不难发现,由于控制面用多个BIFT来进行负载分担,BIFT的数量会随着ECMP的链路条数增多而增多。例如,BIER报文到一个目的地址有4条ECMP,到另外一个目的地址有3条ECMP,则需要取其公倍数12个BIFT才能使得负载分担均匀,这样到每个目的地址的流量才能分担均匀。如果链路更多,则所需下发的BIFT就更多。当某一链路故障,流量的正切需要等待控制面刷新BIFT,链路切换的速度受到控制面刷新BIFT的影响,不能获得快速切换的益处。该故障的链路恢复时,回切时因为所有BIFT重新刷新,可能造成回切丢包或者多包。也就是说,无论是链路故障还是链路恢复,因为SI内所有的BIFT的表项或条目(entry)和叶子节点都要刷新,也会影响到与故障链路无关的BFER的流量,可能正切丢包,回切丢包或者多包。
对此,本申请实施例提供了一种BIER网络中负载分担的方法,该方法可应用于图4所示的系统架构或应用场景。如图4所示,本申请实施例提供的方法的应用场景是BIER网络,例如BIER域(Domain)中。该BIER域中包括5台设备,分别为A/32、B/32、C/32、D/32、E/32。这5台设备分配的BFR的标识(identifier,id)分别是1/2/3/4/5。设备间通过链路状态通告(link state advertisement,LSA)可在整个BIER域内广播自己的链路状态。
示例性地,针对原来是控制面用多表的方式将去往一个目的节点的ECMP链路分散到不同的BIFT中,保证一个目的节点在一张BIFT中只有一个下一跳节点,这样不会出现多复制的情况。同时,链路故障和恢复也通过控制面更新BIFT来实现正切和回切。如图5所示,本申请实施例提供的技术方案不由控制面通过多表的方式来做ECMP负载分担,而是由转发面对报文中比特串(bitstring)的每个BFER的ECMP链路进行负载分担,同时转发面进行链路故障时的正切和回切,由此使得组播能获得跟单播一样的负载分担精度,也能获得跟单播一样的正切和回切性能。
参见图6,以第一网络设备在BIER网络中的负载分担为例,本申请实施例提供的方法包括如下几个过程:
601,第一网络设备获取第一BIER报文。
本申请实施例中,可以对BIER网络中的节点配置ECMP的负载分担使能,也就是说,本申请实施例中的第一网络设备可以为配置了BIER ECMP的负载分担使能的任意节点。示例性地,该第一网络设备具有使用BIER协议、具备BIER转发能力及具有BIER的封装下的转发能力,如MPLS封装、以太(Ethernet)封装、互联网协议第6版(internet protocolversion 6,IPv6)封装等。本申请实施例不对BIER转发的封装类型加以限制。此外,本申请实施例中的该第一网络设备可以是路由器或交换机等数据通信设备。
第一网络设备获取到的第一BIER报文可以是BIER网络中的由其他BIER转发节点发送给第一网络设备的,也可以是第一网络设备作为第一BIER报文的BIER入口节点,由第一网络设备封装BIER头生成的BIER报文,本申请实施例不对第一网络设备获取第一BIER报文的方式进行限定。结合图1所示,第一网络设备可以是节点B,第一BIER报文可以是节点B接收节点A发送的。第一网络设备还可以是节点A,第一BIER报文可以是由节点A封装BIER头生成的BIER报文。
602,第一网络设备根据第一BIER报文中的标识确定第一网络设备的多个下一跳节点中,到达第一BIER报文的目的地址的目标下一跳节点。
无论第一网络设备通过哪种方式获取到第一BIER报文,该第一BIER报文的BIER头格式可如上面图2所示。第一网络设备根据第一BIER报文中的标识确定第一网络设备的多个下一跳节点中,到达第一BIER报文的目的地址的目标下一跳节点的方式,包括但不限于第一网络设备根据第一BIER报文中的标识,查询第一网络设备的位索引转发表,得到该第一网络设备的多个下一跳节点中,到达第一BIER报文的目的地址的目标下一跳节点。其中,第一网络和设备的位索引转发表可由该第一网络设备的控制面下发。到达BIER报文的目的地址可以是指到达图1中的组播接收者。
示例性地,该第一BIER报文中的标识为比特串,如图2所示的字段BitString。BitString中的每个Bit用来标识某个BFER,例如BitString的低位(最右)的一个Bit用来标识下一跳节点是BFR-id=1对应的节点。BitString中从右往左第2个Bit用来标识BFR-id=2对应的节点。根据第一BIER报文中的BitString能够确定该第一BIER报文要往哪几个下一跳节点发送。
示例性地,比特串包括至少一个第一值的目标比特位,例如该第一值为1。以第一BIER报文中的Bitstring为11011为例,该Bitstring共有5个比特位,其中,以从左往右的顺序,第1、2、4、5个比特位的值均为第一值1,则第1、2、4、5个比特位均为目标比特位。第一网络设备根据第一BIER报文中的标识,查询第一网络设备的位索引转发表,得到第一网络设备的多个下一跳节点中,到达第一BIER报文的目的地址的目标下一跳节点,包括:基于比特串,查询第一网络设备的位索引转发表,得到第一网络设备的多个下一跳节点中,与目标比特位对应的下一跳节点。该第一网络设备根据目标比特位对应的下一跳节点确定到达第一BIER报文的目的地址的目标下一跳节点。
示例性地,第一网络设备的位索引转发表包括第一转发位掩码以及与第一转发位掩码对应的下一跳节点的标识,该第一转发位掩码对应的下一跳节点为至少一个。第一网络设备基于比特串,查询第一网络设备的位索引转发表,得到第一网络设备的多个下一跳节点中,与目标比特位对应的下一跳节点包括:对于任一目标比特位,第一网络设备在位索引转发表中查询该任一目标比特位对应的第一转发位掩码,并将查询到的第一转发位掩码对应的下一跳节点作为第一网络设备的多个下一跳节点中,与任一目标比特位对应的下一跳节点。
例如,以第一网络设备为设备S,设备S接收到的第一BIER报文中的Bitstring为11011为例,针对设备S有如下表3所示的BIFT邻居表,E/F/G/H/J是5个BFER,这5个BFER分配的BFR的标识(identifier,id)分别是5/4/3/2/1,A/B/C/D是位索引转发表中的下一跳节点。
表3
从上述表3不难看出,设备S有四条等价路径到达BFER-J,对应的下一跳节点分别是BFR-A、BFR-B、BFR-C、BFR-D;有两条等价路径到达BFER-H,对应的下一跳节点分别是BFR-A、BFR-D;有两条等价路径到达BFER-G,对应的下一跳节点分别是BFR-A、BFR-B;有一条等价路径到达BFER-F,对应的下一跳节点是BFR-B,有两条等价路径到达BFER-E,对应的下一跳节点分别是BFR-C、BFR-D。设备S获取到的BIFT如下表4所示:
表4
由于Bitstring共有5个比特位,其中,以从左往右的顺序,第1、2、4、5个比特位的值均为第一值1,则第1、2、4、5个比特位均为目标比特位。可以在位索引转发表中分别查询这几个目标比特位对应的第一转发位掩码。如上述表4所示的BIFT,一个FBM对应至少一个下一跳节点。示例性地,第一网络设备在位索引转发表中查询任一目标比特位对应的第一转发位掩码,包括:第一网络设备以任一目标比特位在比特串中的位置为索引,在位索引转发表中查询对应的第一转发位掩码。
例如,以在Bitstring中的位置为从左到右的第一个比特位为例,查询上述表4所示的BIFT,BIFT中从左到右第1个比特位为1的FBM是ID号为5对应的F-BM 10000,而在BIFT中与该F-BM 10000对应的下一跳节点分别为C和D。以在Bitstring中的位置为从左到右的第2个比特位为例,查询上述表4所示的BIFT,BIFT中从左到右第2个比特位为1的FBM是ID号为4对应的F-BM 01000,而在BIFT中与该F-BM 01000对应的下一跳节点为B。以在Bitstring中的位置为从左到右的第4个比特位为例,查询上述表4所示的BIFT,BIFT中从左到右第4个比特位为1的FBM是ID号为2对应的F-BM 00010,而在BIFT中与该F-BM 00010对应的下一跳节点分别为A和D。以在Bitstring中的位置为从左到右的第5个比特位为例,查询上述表4所示的BIFT,BIFT中从左到右第5个比特位为1的FBM是ID号为1对应的F-BM 00001,而在BIFT中与该F-BM 00001对应的下一跳节点分别为A、B、C和D。
上述根据每个目标比特位确定的每个目标比特位对应的下一跳节点中,有目标比特位对应多个下一跳节点的情况,此时,第一网络设备根据与目标比特位对应的下一跳节点确定到达第一BIER报文的目的地址的目标下一跳节点包括:响应于任一目标比特位对应多个下一跳节点,第一网络设备根据第一BIER报文的报文特征,从任一目标比特位对应的多个下一跳节点中选择一个下一跳节点作为到达第一BIER报文的目的地址的一个目标下一跳节点。
示例性地,第一BIER报文的报文特征包括但不限于第一BIER报文的五元组或七元祖hash值、或流标签、熵标签,则第一网络设备根据第一BIER报文的报文特征,从任一目标比特位对应的多个下一跳节点中选择一个下一跳节点作为到达第一BIER报文的目的地址的一个目标下一跳节点,包括:根据第一BIER报文的五元组hash值、或流标签、熵标签,从任一目标比特位对应的多个下一跳节点中选择一个下一跳节点作为到达第一BIER报文的目的地址的一个目标下一跳节点。其中,同一个五元组或者流标签、熵标签的第一BIER报文选择同一个下一跳节点。
例如,针对第1个目标比特位,在BIFT中与该F-BM 10000对应的下一跳节点分别为C和D,根据第一BIER报文的报文特征从下一跳节点C和D中选择一个下一跳节点C作为第1个目标比特位对应的目标下一跳节点。针对第2个目标比特位,由于对应的下一跳节点仅为一个节点B,因此,将节点B作为第2个目标比特位对应的目标下一跳节点。针对第4个目标比特位,在BIFT中与该F-BM 00010对应的下一跳节点分别为A和D,根据第一BIER报文的报文特征从下一跳节点A和D中选择一个下一跳节点A作为第4个目标比特位对应的目标下一跳节点。针对第5个目标比特位,在BIFT中与该F-BM 00001对应的下一跳节点分别为A、B、C和D,则根据第一BIER报文的报文特征从下一跳节点A、B、C和D中选择一个下一跳节点C作为第5个目标比特位对应的目标下一跳节点。
需要说明的是,在确定每个目标比特位对应的目标下一跳节点时,可以按照每个目标比特位在比特串中的位置顺序依次确定每个目标比特位对应的目标下一跳节点,也可以不按照顺序,本申请实施例对此不加以限定。
603,第一网络设备根据目标下一跳节点生成目标转发表。
其中,转发表包括目标下一跳节点的标识以及第二转发位掩码的对应关系。第一网络设备根据目标下一跳节点生成目标转发表包括:响应于目标下一跳节点有多个,第一网络设备基于多个目标下一跳节点以及多个目标下一跳节点各自对应的第二转发位掩码,得到转发表;其中,多个目标下一跳节点中的相同目标下一跳节点对应同一转发表项,同一转发表项中的第二转发位掩码由相同目标下一跳节点对应的第一转发位掩码进行合并得到。
仍以上述602中确定的每个目标比特位对应的目标下一跳为例,得到的多个目标下一跳节点及每个目标下一跳节点对应的第一转发位掩码分别如下面的表5所示:
表5
F-BM | NBR |
00001 | C |
00010 | A |
00100 | B |
10000 | C |
由于存在两个相同目标下一跳节点C,因此,将节点C对应的第一转发位掩码进行合并,得到合并后的第二转发位掩码为10001,则针对第一BIER报文,得到的目标转发表如下面的表6所示:
表6
604,第一网络设备根据目标转发表转发第一BIER报文。
在一种可能的实现方式中,第一网络设备根据目标转发表转发第一BIER报文,包括:第一网络设备基于第一BIER报文,获取第二BIER报文,该第二BIER报文为目标转发表中的目标下一跳节点对应的第二BIER报文。第一网络设备将目标下一跳节点对应的第二BIER报文发送至目标下一跳节点。
在一种可能的实现方式中,第一网络设备基于第一BIER报文,获取目标转发表中的目标下一跳节点对应的第二BIER报文包括:第一网络设备根据目标转发表中的目标下一跳节点的数量,复制第一BIER报文,得到与目标下一跳节点的数量相同的多份第一BIER报文;基于任一目标下一跳节点对应的第二转发位掩码,修改多份第一BIER报文中的一份第一BIER报文,得到任一目标下一跳节点对应的第二BIER报文。
例如,仍以上述确定的目标下一跳节点为节点A、B、C为例,第一网络设备复制两份第一BIER报文,共得到三分第一BIER报文。基于目标下一跳节点C,修改其中一份第一BIER报文的比特串为10001,将得到的第二BIER报文发送至下一跳节点C。基于目标下一跳节点A,修改其中一份第一BIER报文的比特串为00010,将得到的第二BIER报文发送至下一跳节点A。基于目标下一跳节点B,修改其中一份第一BIER报文的比特串为00010,将得到的第二BIER报文发送至下一跳节点B。
为了便于理解上述完整的过程,接下来以第一网络设备为设备S,该设备S接收到的第一BIER报文中的标识为Bitstring,该Bitstring为11011为例,对本申请实施例提供的方法进行举例说明。该BIER网络中负载分担的方法包括如下几个过程。
1、以Bitstring最右边一个“1”在Bitstring中的位置,如所在的偏移位置为1,作为索引查BFR-S BIFT,该BIFT如上述表4所示。查询结果为有4条下一跳节点链路可达,即查询得到对应的4个下一跳节点。之后,以第一BIER报文的报文特征,比如第一BIER报文的五元组hash值,或者流标签、熵标签进行选路,同一个五元组或者流标签、熵标签的报文选择到同一条下一跳节点链路;例如选择结果为下一跳节点为节点C。之后,将Bitstring中最右边的1bit清0,此时更新后的Bitstring为11010。
2、判断第1步更新后的Bitstring是否为0,由于11010不为0则再重复第1步,找到右边第2个值为1的目标比特位,index=2,查BFR-S BIFT,负载分担选路后获得下一跳节点为节点A。之后,将Bitstring中的最右1bit清0,此时更新后的Bitstring为11000。
3、判断第2步更新后的Bitstring是否为0,由于11000不为0,则再重复第1步,找到右边第4个值为1的目标比特位,index=4,查BFR-S BIFT,负载分担选后获得下一跳节点为节点B;将Bitstring中的最右1bit清0,此时更新后的Bitstring为10000。
4、判断第3步更新后的Bitstring是否为0,由于10000不为0,则再重复第1步,找到最右边第5个值为1的目标比特位,index=5,查BFR-S BIFT,负载分担后获得下一跳节点为节点C。之后,将Bitstring中的最右1bit清0,此时更新后的Bitstring为00000。
5、判断第4步更新后的Bitstring是否为0,此时Bitstring为0,停止查表。此时得到如下信息:
6、将上面1~5步选出的下一跳节点进行合并,合并的规则是NBR相同的第一转发位掩码合并在一起,得到第二转发位掩码,则第一转发位掩码00001和第一转发位掩码10000合并为第二转发位掩码10001,NBR=C;00010不合并,NBR=A;01000不合并,NBR=B。其中,未合并的第一转发位掩码可直接作为目标转发表中的第二转发位掩码。此外,目标转发表中的第二转发位掩码对应一个下一跳节点,且该第二转发位掩码中目标比特位的数量为至少一个。例如,目标比特位可以是值为1的比特位为例,则得到的目标转发表的内容如下:
7、向BFR C复制一份第一BIER报文,修改该BFR C对应的第一BIER报文中的Bitstring=10001,得到的第二BIER报文发送至BFR C。向BFR A复制一份第一BIER报文,修改该BFR A对应的第一BIER报文中的Bitstring=00010,得到的第二BIER报文发送至BFRA。向BFR B复制一份第一BIER报文,修改该BFR B对应的第一BIER报文中的Bitstring=01000,得到的第二BIER报文发送至BFR B。
本申请技术方案带来的有益效果至少包括:不由控制面通过多表的方式来做ECMP负载分担,而是根据BIER报文中的标识,例如比特串(bitstring)的每个BFER的ECMP链路进行负载分担,使得负载分担链路故障和恢复时不会多包和丢包,负载分担链路故障和恢复时与本故障链路无关的BFER流量不会出现乱序,获得跟单播一样的负载分担精度,也能获得跟单播一样的正切和回切性能。此外,通过本申请实施例提供的方法,BIFT项数量能够大幅下降,一个SI只需要一张BIFT。
图7为本申请实施例提供了一种BIER网络中负载分担设备的结构示意图,该设备可以执行图6中的第一网络设备的方法,基于图7所示的如下多个模块,该图7所示的设备能够执行图6所示的第一网络设备所执行的全部操作,具备图6中第一网络设备的功能。参见图7,该设备包括:
处理单元701用于获取第一BIER报文;根据第一BIER报文中的标识确定第一网络设备的多个下一跳节点中,到达第一BIER报文的目的地址的目标下一跳节点;根据目标下一跳节点生成目标转发表;例如,该处理单元701用于执行图6中步骤601-603所对应的内容。
发送单元702用于根据目标转发表转发第一BIER报文。例如,该发送单元702用于执行图6中步骤604所对应的内容。
在一种可能的实现方式中,处理单元701用于根据第一BIER报文中的标识,查询第一网络设备的位索引转发表,得到第一网络设备的多个下一跳节点中,到达第一BIER报文的目的地址的目标下一跳节点。
在一种可能的实现方式中,第一BIER报文中的标识为比特串,比特串包括至少一个第一值的目标比特位;
处理单元701用于基于比特串,查询第一网络设备的位索引转发表,得到第一网络设备的多个下一跳节点中,与目标比特位对应的下一跳节点;根据与目标比特位对应的下一跳节点确定到达第一BIER报文的目的地址的目标下一跳节点。
在一种可能的实现方式中,第一网络设备的位索引转发表包括第一转发位掩码以及与第一转发位掩码对应的下一跳节点的标识,第一转发位掩码对应的下一跳节点为至少一个;处理单元701用于对于任一目标比特位,在位索引转发表中查询任一目标比特位对应的第一转发位掩码;将查询到的第一转发位掩码对应的下一跳节点作为第一网络设备的多个下一跳节点中,与任一目标比特位对应的下一跳节点。
在一种可能的实现方式中,处理单元701用于以任一目标比特位在比特串中的位置为索引,在位索引转发表中查询对应的第一转发位掩码。
在一种可能的实现方式中,处理单元701用于响应于任一目标比特位对应多个下一跳节点,根据第一BIER报文的报文特征,从任一目标比特位对应的多个下一跳节点中选择一个下一跳节点作为到达第一BIER报文的目的地址的一个目标下一跳节点。
在一种可能的实现方式中,目标转发表包括目标下一跳节点的标识以及第二转发位掩码的对应关系,处理单元701用于响应于目标下一跳节点有多个,第一网络设备基于多个目标下一跳节点,以及多个目标下一跳节点各自对应的第二转发位掩码,得到目标转发表;其中,多个目标下一跳节点中的相同目标下一跳节点对应同一转发表项,同一转发表项中的第二转发位掩码由相同目标下一跳节点对应的第一转发位掩码进行合并得到。
在一种可能的实现方式中,处理单元701用于基于第一BIER报文,获取目标转发表中的目标下一跳节点对应的第二BIER报文。
发送单元702,用于将目标下一跳节点对应的第二BIER报文发送至目标下一跳节点,其中目标下一跳节点可以为多个不同的节点。
在一种可能的实现方式中,目标转发表包括目标下一跳节点的标识以及第二转发位掩码的对应关系,处理单元701用于根据目标转发表中的目标下一跳节点的数量,复制第一BIER报文,得到与目标下一跳节点的数量相同的多份第一BIER报文;对于任一目标下一跳节点,基于任一目标下一跳节点对应的第二转发位掩码,修改多份第一BIER报文中的一份第一BIER报文,得到任一目标下一跳节点对应的第二BIER报文。
本申请实施例提供的BIER网络中负载分担设备,不由控制面通过多表的方式来做ECMP负载分担,而是根据BIER报文中的标识,例如比特串(bitstring)的每个BFER的ECMP链路进行负载分担,使得负载分担链路故障和恢复时不会多包和丢包,负载分担链路故障和恢复时与本故障链路无关的BFER流量不会出现乱序,获得跟单播一样的负载分担精度,也能获得跟单播一样的正切和回切性能。此外,通过本申请实施例提供的方法,BIFT项数量能够大幅下降,一个SI只需要一张BIFT。
应理解的是,上述图7提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述实施例中网络设备,例如BIER网络中的网络设备,可以为路由器或交换机等数据通信设备。具体硬件结构可以有两种方式:
方式1、如图8所示为本申请实施例提供了一种BIER网络中负载分担设备的结构示意图,该网络设备800包括通信接口803、处理器802和存储器801,通信接口803、处理器802和存储器801通过总线804连接。其中,处理器802用于执行上述图6所示实施例中601-603的处理相关步骤,具备图7中处理单元701的功能。通信接口803用于接收、转发报文或数据信息等,例如该通信接口803用于执行上述图6所示实施例中604的处理步骤,具备图7中发送单元702的功能。
方式2、如图9所示为本申请实施例提供了一种BIER网络中负载分担设备的结构示意图,该网络设备包括主控板91和接口板92,主控板91包括处理器911和存储器912,接口板92包括处理器921、存储器922和接口卡923。主控板91的处理器911用于调用主控板91的存储器912中的程序指令执行相应的处理功能。例如,主控板91的处理器911调用主控板91的存储器912中的程序指令执行上述图6所示实施例中601-603的处理相关步骤。接口板92的处理器921用于调用接口板92的存储器922中的程序指令执行报文的接收和发送,例如执行上述图6所示实施例中604的处理步骤。
其中,上述处理器,例如可以是中央处理器(central processing unit,CPU)、通用处理器,数字信号处理器(digital signal processor,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明实施例公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。
上述存储器,例如可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。
图10为本申请实施例提供了一种BIER网络中负载分担设备1100的结构示意图。图10所示的设备1100可以执行图6所示实施例中第一网络设备执行的步骤并具备相应功能。
如图10所示,BIER网络中负载分担设备1100包括处理器1101、存储器1102、接口1103和总线1104。上述处理器1101、存储器1102和接口1103通过总线1104连接。
接口1103可以包括发送器和接收器,用于该设备接收和发送BIER报文。例如,接口1103用于支持接收邻居节点发送的BIER报文,执行上述图6所示实施例中604的处理步骤。处理器1101用于执行上述图6所示实施例中601-603的处理相关步骤,和/或用于本文所描述的技术的其他过程。存储器1102包括应用程序11021,用于存储程序、代码或指令,当处理器或硬件设备执行这些程序、代码或指令时可以完成图6方法实施例中涉及BIER网络中负载分担设备1100的处理过程。例如,存储器1102可以包括ROM和RAM。其中,ROM包括基本输入/输出系统(英文:Basic Input/Output System,缩写:BIOS)或嵌入式系统;RAM包括应用程序。当需要运行BIER网络中负载分担设备1100时,通过固化在ROM中的BIOS或者嵌入式系统中的bootloader引导系统进行启动,引导该设备1100进入正常运行状态。在该设备1100进入正常运行状态后,运行在RAM中的应用程序,从而,完成方法实施例中涉及BIER网络中负载分担设备1100的处理过程。
可以理解的是,图10仅仅示出了BIER网络中负载分担设备1100的简化设计。在实际应用中,BIER网络中负载分担设备1100可以包含任意数量的接口,处理器或者存储器。
应理解的是,上述处理器可以是CPU,还可以是DSP等处理器。值得说明的是,处理器可以是支持进阶精简指令集机器(advanced RISC machines,ARM)架构的处理器。
进一步地,在一种可选的实施例中,上述存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
图11为本申请实施例提供了一种BIER网络中负载分担系统1201,该系统包括第一网络设备1201和第二网络设备1202,其中第一网络设备1201可以执行图6所示的方法步骤,并具备图6中第一网络设备的功能,图7-图10中负载分担设备的功能。第一网络设备和第二网络设备为BIER网络中网络设备,第二网络设备1202用于接收第一网络设备发送BIER报文。本申请实施例不对该系统中包括的设备的数量进行限定,可基于应用场景设置。
还提供了一种计算机可读存储介质,存储介质中存储有至少一条指令,指令由处理器加载并执行以实现如图6中第一网络设备执行的BIER网络中负载分担的方法。
本申请提供了一种计算机程序,当计算机程序被计算机执行时,可以使得处理器或计算机执行图6中第一网络设备执行的BIER网络中负载分担的方法中对应的各个步骤和/或流程。
需说明的是,以上描述的任意装置实施例都仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的第一网络节点或控制器实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本申请实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(readonly memory,ROM)、可擦除可编程只读存储器(erasable programmable ROM,EPROM)、电可擦可编程只读存储器(electrically EPROM,EEPROM)、硬盘、移动硬盘、光盘或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid StateDisk)等。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。
Claims (29)
1.一种位索引显式复制BIER网络中负载分担的方法,其特征在于,所述方法包括:
第一网络设备获取第一BIER报文;
所述第一网络设备根据所述第一BIER报文中的标识确定所述第一网络设备的多个下一跳节点中,到达所述第一BIER报文的目的地址的目标下一跳节点;
所述第一网络设备根据所述目标下一跳节点生成目标转发表;
所述第一网络设备根据所述目标转发表转发所述第一BIER报文。
2.根据权利要求1所述的方法,其特征在于,所述第一网络设备根据所述第一BIER报文中的标识确定所述第一网络设备的多个下一跳节点中,到达所述第一BIER报文的目的地址的目标下一跳节点,包括:
所述第一网络设备根据所述第一BIER报文中的标识,查询所述第一网络设备的位索引转发表,得到所述第一网络设备的多个下一跳节点中,到达所述第一BIER报文的目的地址的目标下一跳节点。
3.根据权利要求2所述的方法,其特征在于,所述第一BIER报文中的标识为比特串,所述比特串包括至少一个第一值的目标比特位;
所述第一网络设备根据所述第一BIER报文中的标识,查询所述第一网络设备的位索引转发表,得到所述第一网络设备的多个下一跳节点中,到达所述第一BIER报文的目的地址的目标下一跳节点,包括:
所述第一网络设备基于所述比特串,查询所述位索引转发表,得到所述第一网络设备的多个下一跳节点中,与所述目标比特位对应的下一跳节点;
所述第一网络设备根据所述与目标比特位对应的下一跳节点确定到达所述第一BIER报文的目的地址的目标下一跳节点。
4.根据权利要求3所述的方法,其特征在于,所述位索引转发表包括第一转发位掩码以及与所述第一转发位掩码对应的下一跳节点的标识,所述第一转发位掩码对应的下一跳节点为至少一个;
所述第一网络设备基于所述比特串,查询所述第一网络设备的位索引转发表,得到所述第一网络设备的多个下一跳节点中,与所述目标比特位对应的下一跳节点,包括:
所述第一网络设备在所述位索引转发表中查询所述比特串的任一目标比特位对应的第一转发位掩码;
所述第一网络设备将查询到的与第一转发位掩码对应的下一跳节点作为所述第一网络设备的多个下一跳节点中,与所述任一目标比特位对应的下一跳节点。
5.根据权利要求4所述的方法,其特征在于,所述第一网络设备在所述位索引转发表中查询所述比特串的任一目标比特位对应的第一转发位掩码,包括:
所述第一网络设备以所述任一目标比特位在所述比特串中的位置为索引,在所述位索引转发表中查询对应的第一转发位掩码。
6.根据权利要求3-5任一所述的方法,其特征在于,所述第一网络设备根据所述与目标比特位对应的下一跳节点确定到达所述第一BIER报文的目的地址的目标下一跳节点,包括:
基于任一目标比特位对应多个下一跳节点,所述第一网络设备根据所述第一BIER报文的报文特征,从所述任一目标比特位对应的多个下一跳节点中选择一个下一跳节点作为到达所述第一BIER报文的目的地址的一个目标下一跳节点。
7.根据权利要求1-6任一所述的方法,其特征在于,所述目标转发表包括所述目标下一跳节点的标识以及第二转发位掩码的对应关系,所述第一网络设备根据所述目标下一跳节点生成目标转发表,包括:
基于所述目标下一跳节点有多个,所述第一网络设备根据所述多个目标下一跳节点,以及所述多个目标下一跳节点各自对应的第二转发位掩码,得到所述目标转发表;
其中,多个目标下一跳节点中的相同目标下一跳节点对应同一转发表项,所述同一转发表项中的第二转发位掩码由所述相同目标下一跳节点对应的第一转发位掩码进行合并得到。
8.根据权利要求1-6任一所述的方法,其特征在于,所述第一网络设备根据所述目标转发表转发所述第一BIER报文,包括:
所述第一网络设备基于所述第一BIER报文,获取所述目标转发表中的目标下一跳节点对应的第二BIER报文;
所述第一网络设备将所述目标下一跳节点对应的第二BIER报文发送至所述目标下一跳节点。
9.根据权利要求8所述的方法,其特征在于,所述目标转发表包括所述目标下一跳节点的标识以及第二转发位掩码的对应关系,所述第一网络设备基于所述第一BIER报文,获取所述目标转发表中的目标下一跳节点对应的第二BIER报文,包括:
所述第一网络设备根据所述目标转发表中的目标下一跳节点的数量,复制所述第一BIER报文,得到与所述目标下一跳节点的数量相同的一份或多份第一BIER报文;
对于任一目标下一跳节点,基于所述任一目标下一跳节点对应的第二转发位掩码,调整得到所述任一目标下一跳节点对应的第二BIER报文。
10.一种位索引显式复制BIER网络中负载分担设备,其特征在于,所述设备包括:
处理单元,用于获取第一BIER报文;根据所述第一BIER报文中的标识确定所述第一网络设备的多个下一跳节点中,到达所述第一BIER报文的目的地址的目标下一跳节点;根据所述目标下一跳节点生成目标转发表;
发送单元,用于根据所述目标转发表转发所述第一BIER报文。
11.根据权利要求10所述的负载分担设备,其特征在于,所述处理单元,用于根据所述第一BIER报文中的标识,查询所述第一网络设备的位索引转发表,得到所述第一网络设备的多个下一跳节点中,到达所述第一BIER报文的目的地址的目标下一跳节点。
12.根据权利要求11所述的负载分担设备,其特征在于,所述第一BIER报文中的标识为比特串,所述比特串包括至少一个第一值的目标比特位;
所述处理单元,用于基于所述比特串,查询所述位索引转发表,得到所述第一网络设备的多个下一跳节点中,与所述目标比特位对应的下一跳节点;根据所述与目标比特位对应的下一跳节点确定到达所述第一BIER报文的目的地址的目标下一跳节点。
13.根据权利要求12所述的负载分担设备,其特征在于,所述第一网络设备的位索引转发表包括第一转发位掩码以及与所述第一转发位掩码对应的下一跳节点的标识,所述第一转发位掩码对应的下一跳节点为至少一个;
所述处理单元,用于在所述位索引转发表中查询所述比特串的任一目标比特位对应的第一转发位掩码;将查询到的与第一转发位掩码对应的下一跳节点作为所述第一网络设备的多个下一跳节点中,与所述任一目标比特位对应的下一跳节点。
14.根据权利要求13所述的负载分担设备,其特征在于,所述处理单元,用于以所述任一目标比特位在所述比特串中的位置为索引,在所述位索引转发表中查询对应的第一转发位掩码。
15.根据权利要求12-14任一所述的负载分担设备,其特征在于,所述处理单元,用于基于所述任一目标比特位对应多个下一跳节点,根据所述第一BIER报文的报文特征,从所述任一目标比特位对应的多个下一跳节点中选择一个下一跳节点作为到达所述第一BIER报文的目的地址的一个目标下一跳节点。
16.根据权利要求10-15任一所述的负载分担设备,其特征在于,所述目标转发表包括所述目标下一跳节点的标识以及第二转发位掩码的对应关系,所述处理单元,用于基于所述目标下一跳节点有多个,所述第一网络设备根据所述多个目标下一跳节点,以及所述多个目标下一跳节点各自对应的第二转发位掩码,得到所述目标转发表;其中,多个目标下一跳节点中的相同目标下一跳节点对应同一转发表项,所述同一转发表项中的第二转发位掩码由所述相同目标下一跳节点对应的第一转发位掩码进行合并得到。
17.根据权利要求10-15任一所述的负载分担设备,其特征在于,所述处理单元,用于基于所述第一BIER报文,获取所述目标转发表中的目标下一跳节点对应的第二BIER报文;
所述发送单元,用于将所述目标下一跳节点对应的第二BIER报文发送至所述目标下一跳节点。
18.根据权利要求17所述的负载分担设备,其特征在于,所述目标转发表包括所述目标下一跳节点的标识以及第二转发位掩码的对应关系,所述处理单元,用于根据所述目标转发表中的目标下一跳节点的数量,复制所述第一BIER报文,得到与所述目标下一跳节点的数量相同的一份或多份第一BIER报文;对于任一目标下一跳节点,基于所述任一目标下一跳节点对应的第二转发位掩码,调整得到所述任一目标下一跳节点对应的第二BIER报文。
19.一种位索引显式复制BIER网络中负载分担设备,其特征在于,所述设备包括:
存储器,用于存储计算机程序指令;
处理器,用于读取所述计算机程序指令,执行获取第一BIER报文;根据所述第一BIER报文中的标识确定所述第一网络设备的多个下一跳节点中,到达所述第一BIER报文的目的地址的目标下一跳节点;根据所述目标下一跳节点生成目标转发表;
通信接口,用于根据所述处理器生成的所述目标转发表转发所述第一BIER报文。
20.根据权利要求19所述的负载分担设备,其特征在于,所述处理器,用于根据所述第一BIER报文中的标识,查询所述第一网络设备的位索引转发表,得到所述第一网络设备的多个下一跳节点中,到达所述第一BIER报文的目的地址的目标下一跳节点。
21.根据权利要求20所述的负载分担设备,其特征在于,所述第一BIER报文中的标识为比特串,所述比特串包括至少一个第一值的目标比特位;
所述处理器,用于基于所述比特串,查询所述位索引转发表,得到所述第一网络设备的多个下一跳节点中,与所述目标比特位对应的下一跳节点;根据所述与目标比特位对应的下一跳节点确定到达所述第一BIER报文的目的地址的目标下一跳节点。
22.根据权利要求21所述的负载分担设备,其特征在于,所述第一网络设备的位索引转发表包括第一转发位掩码以及与所述第一转发位掩码对应的下一跳节点的标识,所述第一转发位掩码对应的下一跳节点为至少一个;
所述处理器,用于在所述位索引转发表中查询所述比特串的任一目标比特位对应的第一转发位掩码;将查询到的与第一转发位掩码对应的下一跳节点作为所述第一网络设备的多个下一跳节点中,与所述任一目标比特位对应的下一跳节点。
23.根据权利要求22所述的负载分担设备,其特征在于,所述处理器,用于以所述任一目标比特位在所述比特串中的位置为索引,在所述位索引转发表中查询对应的第一转发位掩码。
24.根据权利要求21-23任一所述的负载分担设备,其特征在于,所述处理器,用于基于所述任一目标比特位对应多个下一跳节点,根据所述第一BIER报文的报文特征,从所述任一目标比特位对应的多个下一跳节点中选择一个下一跳节点作为到达所述第一BIER报文的目的地址的一个目标下一跳节点。
25.根据权利要求19-24任一所述的负载分担设备,其特征在于,所述目标转发表包括所述目标下一跳节点的标识以及第二转发位掩码的对应关系,所述处理器,用于基于所述目标下一跳节点有多个,所述第一网络设备根据所述多个目标下一跳节点,以及所述多个目标下一跳节点各自对应的第二转发位掩码,得到所述目标转发表;其中,多个目标下一跳节点中的相同目标下一跳节点对应同一转发表项,所述同一转发表项中的第二转发位掩码由所述相同目标下一跳节点对应的第一转发位掩码进行合并得到。
26.根据权利要求19-24任一所述的负载分担设备,其特征在于,所述处理器,用于基于所述第一BIER报文,获取所述目标转发表中的目标下一跳节点对应的第二BIER报文;
所述通信接口,用于将所述目标下一跳节点对应的第二BIER报文发送至所述目标下一跳节点。
27.根据权利要求26所述的负载分担设备,其特征在于,所述目标转发表包括所述目标下一跳节点的标识以及第二转发位掩码的对应关系,所述处理器,用于根据所述目标转发表中的目标下一跳节点的数量,复制所述第一BIER报文,得到与所述目标下一跳节点的数量相同的一份或多份第一BIER报文;对于任一目标下一跳节点,基于所述任一目标下一跳节点对应的第二转发位掩码,调整得到所述任一目标下一跳节点对应的第二BIER报文。
28.一种位索引显式复制BIER网络中负载分担系统,其特征在于,所述系统包括:权利要求10-18任一所述的负载分担设备和其他网络设备,所述其他网络设备用于接收所述负载分担设备发送的BIER报文。
29.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如权利要求1-9中任一所述的位索引显式复制BIER网络中负载分担的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP20885453.9A EP4044533A4 (en) | 2019-11-04 | 2020-09-25 | METHOD, DEVICE AND EQUIPMENT FOR LOAD SHARING IN A BINARY-INDEX EXPLICIT REPRODUCTION NETWORK |
PCT/CN2020/117863 WO2021088561A1 (zh) | 2019-11-04 | 2020-09-25 | 位索引显式复制网络中负载分担的方法、装置及设备 |
US17/735,944 US20220263760A1 (en) | 2019-11-04 | 2022-05-03 | Method, apparatus, and device for load balancing in bit index explicit replication network |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911066789X | 2019-11-04 | ||
CN201911066789 | 2019-11-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112787934A true CN112787934A (zh) | 2021-05-11 |
CN112787934B CN112787934B (zh) | 2024-06-14 |
Family
ID=75749967
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010130456.5A Active CN112787934B (zh) | 2019-11-04 | 2020-02-28 | 位索引显式复制网络中负载分担的方法、装置及设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220263760A1 (zh) |
EP (1) | EP4044533A4 (zh) |
CN (1) | CN112787934B (zh) |
WO (1) | WO2021088561A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115314436A (zh) * | 2022-07-11 | 2022-11-08 | 烽火通信科技股份有限公司 | 一种bier报文转发方法及装置 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11705983B2 (en) * | 2021-03-22 | 2023-07-18 | Cisco Technology, Inc. | Efficient BIER forwarding over varying BSL domain using header stitching |
CN113489649B (zh) * | 2021-06-29 | 2022-07-22 | 新华三信息安全技术有限公司 | 一种表项存储方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150131658A1 (en) * | 2013-09-17 | 2015-05-14 | Cisco Technology, Inc. | Equal Cost Multi-path With Bit Indexed Explicit Replication |
US20160134518A1 (en) * | 2014-11-06 | 2016-05-12 | Juniper Networks, Inc. | Deterministic and optimized bit index explicit replication (bier) forwarding |
CN108989209A (zh) * | 2017-05-31 | 2018-12-11 | 中兴通讯股份有限公司 | Bier mpls网络设备、及其报文转发方法和介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106656524A (zh) * | 2015-10-30 | 2017-05-10 | 中兴通讯股份有限公司 | 一种bier控制信息的传输方法、装置和系统 |
CN107968750B (zh) * | 2016-10-20 | 2021-06-15 | 中兴通讯股份有限公司 | 报文传输方法、装置及节点 |
CN109756425B (zh) * | 2017-11-07 | 2022-01-18 | 中国电信股份有限公司 | 组播转发方法、装置以及bfr |
-
2020
- 2020-02-28 CN CN202010130456.5A patent/CN112787934B/zh active Active
- 2020-09-25 WO PCT/CN2020/117863 patent/WO2021088561A1/zh unknown
- 2020-09-25 EP EP20885453.9A patent/EP4044533A4/en active Pending
-
2022
- 2022-05-03 US US17/735,944 patent/US20220263760A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150131658A1 (en) * | 2013-09-17 | 2015-05-14 | Cisco Technology, Inc. | Equal Cost Multi-path With Bit Indexed Explicit Replication |
US20160134518A1 (en) * | 2014-11-06 | 2016-05-12 | Juniper Networks, Inc. | Deterministic and optimized bit index explicit replication (bier) forwarding |
CN108989209A (zh) * | 2017-05-31 | 2018-12-11 | 中兴通讯股份有限公司 | Bier mpls网络设备、及其报文转发方法和介质 |
Non-Patent Citations (1)
Title |
---|
J. XIE ET AL.: "Use of BIER Entropy for Data Center CLOS Networks draft-xie-bier-entropy-staged-dc-clos-00", IETF NETWORK WORKING GROUP INTERNET-DRAFT * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115314436A (zh) * | 2022-07-11 | 2022-11-08 | 烽火通信科技股份有限公司 | 一种bier报文转发方法及装置 |
CN115314436B (zh) * | 2022-07-11 | 2023-05-23 | 烽火通信科技股份有限公司 | 一种bier报文转发方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2021088561A1 (zh) | 2021-05-14 |
US20220263760A1 (en) | 2022-08-18 |
EP4044533A1 (en) | 2022-08-17 |
EP4044533A4 (en) | 2022-11-23 |
CN112787934B (zh) | 2024-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7419510B2 (ja) | Bier転送項目構築方法、装置、およびシステム | |
CN111510379B (zh) | Evpn报文处理方法、设备及系统 | |
CN108574630B (zh) | Evpn报文处理方法、设备及系统 | |
US11627070B2 (en) | Data packet processing method and apparatus, storage medium, and electronic device | |
US11652735B2 (en) | Multicast data packet processing method, and apparatus | |
WO2021088561A1 (zh) | 位索引显式复制网络中负载分担的方法、装置及设备 | |
WO2021164249A1 (zh) | 一种发送报文的方法、设备及系统 | |
CN110798403B (zh) | 通信方法、通信设备和通信系统 | |
CN112187647B (zh) | 报文转发方法、设备及计算机可读存储介质 | |
CN112737954B (zh) | 报文处理方法、装置、系统、设备及存储介质 | |
JP7469479B2 (ja) | パケット送信方法、ルーティング・エントリ生成方法、装置及び記憶媒体 | |
CN114553638A (zh) | 一种通信方法、设备和系统 | |
US20210119906A1 (en) | Loop Avoidance Communications Method, Device, and System | |
EP3968580B1 (en) | Method for generating multicast forwarding table entry, and access gateway | |
WO2022117018A1 (zh) | 报文传输的方法和装置 | |
WO2021073357A1 (zh) | 报文处理方法、装置、系统、设备及存储介质 | |
US11394635B2 (en) | Aggregated bit index explicit replication networking system | |
US20200106628A1 (en) | Bit forwarding router identifier signaling using protocol independent multicast attribute | |
CN110324247B (zh) | 三层组播网络中的组播转发方法、设备及存储介质 | |
US20230318966A1 (en) | Packet Transmission Method, Correspondence Obtaining Method, Apparatus, and System | |
US10924395B2 (en) | Seamless multipoint label distribution protocol (mLDP) transport over a bit index explicit replication (BIER) core | |
US20240195729A1 (en) | Communication method and apparatus | |
CN111385215B (zh) | 传输报文的方法和装置 | |
CN113132222B (zh) | 报文转发方法、设备及计算机可读存储介质 | |
CN115118651A (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 |