使用任播的比特索引显式复制的制作方法

专利2025-06-12  19


本技术涉及通信网络,并且更具体地,涉及比特索引显式复制(bier)协议的改进。


背景技术:

1、比特索引显式复制(bier)协议及其扩展在互联网工程任务组(ietf)发布的以下征求意见书(rfc)中进行了描述:

2、wijnands,ij.,ed.,rosen,e.,ed.,dolganow,a.,przygienda,t.和s.aldrin,“multicast using bit index explicit replication(bier)”(使用比特索引显式复制(bier)的多播),rfc 8279,doi 10.17487/rfc8279(ietf,2017年11月),可在https://www.rfceditor.org/info/rfc8279获得(称为“rfc 8279”,并通过引用并入本文);

3、ginsbierg,l.,ed.,przygienda,t.,aldrin,s.和z.zhang,“bit index explicitreplication(bier)support via is-is”(经由is-is的比特索引显示复制(bier)支持),rfc 8401,doi 10.17487/rfc8401,(ietf,2018年6月),可在https://www.rfc-editor.org/info/rfc8401获得(称为“rfc 8401”,并通过引用并入本文);

4、psenak,p.,ed.,kumar,n.,wijnands,ij.,dolganow,a.,przygienda,t.,zhang,j.和s.aldrin,“ospfv2 extensions for bit index explicit replication(bier)”(用于比特索引显示复制(bier)的ospfv2扩展),rfc 8444,doi 10.17487/rfc8444,(ietf,2018年11月),可在https://www.rfc-editor.org/info/rfc8444获得(称为“rfc 8444”,并通过引用并入本文);以及

5、z.zhang,a.przygienda,a.dolganow,h.bidgoli,ij.wijnands,a.gulko,“underlay path calculation algorithm and constraints for bit index explicitreplication(bier)”(用于比特索引显示复制(bier)的底层路径计算算法和限制),rfc9272(ietf,2022年9月),可在https://www.rfc-editor.org/rfc/rfc9272.txt获得(称为“rfc 9272”,并通过引用并入本文)。

6、尽管本领域普通技术人员很好地理解了bier协议,但为了方便读者,这里会介绍bier。rfc 8279规定了一种用于转发多播数据分组的新架构。该架构提供了通过“多播域”的多播数据分组的最佳转发。然而,它不需要使用用于显式构建多播分发树的协议,并且它不需要中间节点维护任何每流状态。

7、支持bier的路由器称为“比特转发路由器”(bfr)。bier控制平面协议在“bier域”内运行,允许该域内的bfr交换使用bier彼此转发分组所需的信息。

8、多播数据分组进入“比特转发入口路由器”(bfir)处的bier域,并在一个或多个“比特转发出口路由器”(bfer)处离开bier域。从同一bier域中的另一bfr接收多播数据分组并将该分组转发到同一bier域中的另一bfr的bfr被称为针对该分组的“中转bfr”。单个bfr可以是针对一些多播业务的bfir,同时也是针对一些多播业务的bfer和针对一些多播业务的中转bfr。事实上,对于给定分组,bfr可以是针对该分组的bfir和/或中转bfr和/或(多个)bfer(之一)。

9、bier域可以包含一个或多个子域。每个bier域包含至少一个子域,即“默认子域”(也表示为“子域0”)。如果bier域包含多于一个子域,则该域中的每个bfr被配置为知道其所属的子域集合。每个子域由范围[0,255]中的子域id标识。

10、对于给定bfr所属的每个子域,如果bfr能够充当bfir或bfer,则为其提供在子域内唯一的“bfr-id”。bfr-id是一个小的非结构化正整数。例如,如果特定的bier子域包含1,374个bfr,则每个bfr可以被赋予范围[1,1374]中的bfr-id。

11、如果给定的bfr属于一个以上的子域,则它可以(尽管它不需要)针对每个子域具有不同的bfr-id。

12、当多播分组从域外到达bfir时,bfir确定分组将被发送给的bfer集合。bfir还确定将在其中发送分组的子域。确定将在其中发送给定分组的子域被称为“将分组分配给子域”。一旦特定分组被分配给特定子域,它就保持被分配给该子域,直到它离开bier域。也就是说,当分组在通过bier域传输时,分组被分配到的子域不会改变。

13、一旦bfir确定了针对给定分组的子域和bfer集合,bfir就将该分组封装在“bier报头”中。图1示出了用于在bier域或子域中转发的示例分组100。示例分组100包括标签110,例如mpls标签,用于标识集合号码和子域号码。示例分组100还包括bier比特掩码120,其中每个比特表示单个bfr-id,并且其中被设置为“1”的每个比特对应于封装的有效负载130将被传输到的一个或多个bfr(例如,一个或多个bfer)。图2示出了其中为bfr(例如,bfir和/或bfer)分配唯一比特位置作为bfr-id的简化示例。更具体地,在图2中,为bfr路由器1 210分配了bfr-id=00001(即,将5比特二进制比特串的第一比特位置设置为“1”)和bfr前缀(例如,对应于其环回(loopback)地址),为bfr路由器2 220分配了bfr-id=00010(即,将5比特二进制比特串的第二比特位置设置为“1”)和bfr前缀,为bfr路由器3 230分配了bfr-id=00100(即,将5比特二进制比特串的第三比特位置设置为“1”)和bfr前缀,为bfr路由器4 240分配了bfr-id=01000(即,将5比特二进制比特串的第四比特位置设置为“1”)和bfr前缀,以及,为bfr路由器5 250分配了bfr-id=10000(即,将5比特二进制比特串的第五比特位置设置为“1”)和bfr前缀。给定bfr的每个bfr-id被映射到与该bfr相关联的bfr前缀。为了指示特定的bfer将接收给定的分组,bfir在分组已被分配到的子域中的比特串中设置与该bfer的bfr-id相对应的比特。术语“比特串(bitstring)”指的是bier报头中的比特串字段。术语“有效负载”指的是已经由bier报头封装的分组。(回想,例如,图1的130。)因此,“bier封装的”分组包括“bier报头”后面跟着“有效负载”。

14、给定分组可以被转发到的bfer的数量仅受bier报头中的比特串的长度的限制。不同的部署可以使用不同的比特串长度。术语“比特串长度”(bitstringlength)指的是比特串中的比特数。为了适应给定子域中的bfer比比特串中的比特数更多的可能部署,bier封装既包括比特串又包括“设置标识符”(set identifier,si)。比特串和si共同确定给定分组将被传送到的bfer集合。

15、利用rfc 8279中指定的转发过程,多播数据分组可以遵循从其bfir到其每个bfer的最佳路径。此外,由于给定分组的bfer集合被显式地编码到bier报头中,因此该分组不被发送给任何不需要接收它的bfer。这允许最佳转发多播业务。无需中转bfr来维护每个流的状态或运行多播树构建协议即可实现该转发。此外,由于bier将每个bfr-id编码为比特串中的单个比特,因此它可以在与携带单个bfer的ipv6地址相同的比特数中表示多达128个bfer。因此,bier可以扩展到每个分组更大数量的出口节点。

16、bier不要求每个中转bfr查找到在bier报头中标识的每个bfer的最佳路径。对于单个分组,转发路径中所需的查找次数可以被限制为相邻bfr的数量。这可能比bfer的数量小得多。

17、根据rfc 8279,必须为每个bfr所属的每个子域分配单一的“bfr前缀”。bfr的bfr前缀是bfr的ip地址(ipv4或ipv6)。rfc 8279建议bfr前缀为bfr的环回地址。如果bfr属于一个以上的子域,则它可以(尽管它不需要)在每个子域中具有不同的bfr前缀。给定子域内使用的所有bfr前缀都属于相同的地址族(ipv4或ipv6)。根据rfc 8279,给定子域中的给定bfr的bfr前缀必须在该子域中是可路由的。(特定的bfr前缀在给定子域中是否可路由取决于与该子域相关联的“路由底层”(如下所述)。)

18、“bfr标识符”(bfr-id)是介于{1-65535}范围内的数字。根据rfc 8279,在给定子域内,可能需要用作bfir或bfer的每个bfr必须具有单个bfr-id,该id在该子域内唯一地标识它。不需要在给定子域中充当bfir或bfer的bfr不需要在该子域中具有bfr-id。

19、rfc 8279的第3节描述了通过使用参数“比特串长度”将bfr-id转换为si和比特串来对bier数据分组中的bfr-id进行编码。

20、人们可以认为bier架构由三层组成:(1)“路由底层”,(2)“bier层”,和(3)“多播流覆盖层”。“路由底层”在多对bfr之间建立“邻接关系”,并确定从给定bfr到给定bfr集合的一条或多条“最佳路径”。在给定的bfr(比方说bfr-a)处,对于作为bier域中bfr地址的每个ip地址,路由底层将该ip地址映射到一个或多个“等价”邻接的集合。如果bier数据分组必须由bfr-a转发到给定的bfer,例如bfer-b,则该分组将沿着由路由底层确定的从bfr-a到bfer-b的路径。

21、在典型部署中,路由底层通常是内部网关协议(igp)(例如,开放最短路径优先(ospf))用于单播路由的默认拓扑。在这种情况下,底层邻接就是ospf邻接。也就是说,从bfr-a到bfer-b的bier数据分组将遵循ospf为从bfr-a到bfer-b的单播业务选择的路径。如果希望从bfr-a到bfer-b的多播业务使用与单播业务从bfr-a到bfer-b的路径不同的路径,则可以使用不同的路由底层。

22、bier层包括用于将多播数据分组从bier域的bfir传输到其bfer的协议和过程。这包括以下组分:(1)给定bfr用来向同一bier域中的所有其他bfr通告的协议和过程(例如,其bfr前缀;其在其已被供应了bfr-id的每个子域中的bfr-id;其已被供应以用于每个子域的配置比特串长度集合;可选地,关于与每个子域相关联的路由底层的信息);(2)由bfir用来将bier报头施加在多播数据分组上的过程;(3)转发bier封装的分组和在中转过程中修改bier报头的过程;以及(4)bfer用来解封装和正确调度bier分组的过程。

23、最后,“多播流覆盖层”包括一组协议和过程,其使得(1)当bfir从bier域之外接收到多播数据分组时,bfir能够确定该分组的bfer集合,以及(2)bfer在其从bier域内部接收到bier封装的分组时,能够确定如何进一步转发该分组。

24、如上所述,每个bfer被分配(通过供应)bfr-id(对于给定的bier子域)。每个bfer将这些分配通告给域中的所有其他bfr。类似地,每个bfr被分配(通过供应)bfr前缀(对于给定的bier域),并且将该分配通告给域中的所有其他bfr。最后,每个bfr已被配置为对每个子域使用特定的配置比特串长度集合,并将这些比特串长度通告(例如,使用洪泛(flooding))到域中的所有其他bfr。

25、rfc 8401和rfc 8444指定扩展以启用上述通告。重要的是,rfc 8279规定每个bfr需要(在每个子域中)具有唯一的bfr-id。因此,rfc 8279规定,除非存在供应错误,否则两个不同的bfr将不通告相同<子域id,bfr-id>的所有权,并且注意到,如果给定的bfr确定两个其他的bfr都通告了相同子域的相同的bfr-id,则给定的bfr必须记录错误。类似地,rfc8279注意到,如果给定的bfr已经被提供了用于特定子域的特定bfr-id,但是它还没有通告其对于该特定子域的特定bfr-id的所有权,如果该特定bfr已经从不同的bfr接收到通告相同子域的相同bfr-id的所有权的通告,则给定的bfr-a应当记录错误并且将不通告其自己对该子域的特定bfr-id的所有权(只要从另一bfr接收到的通告存在)。本发明人已经认识到由bier的这些现有要求引起的一些限制。

26、更具体地,本发明人已经认识到,bier架构目前不支持任播(参见例如,先前任播文档,例如c.partridge,t.mendez,w.milliken,“host anycasting service”(主机任播服务),rfc 1546(ietf,1993年11月),可在https://datatracker.ietf.org/doc/html/rfc1546获得(称为“rfc 1546”,并通过引用并入本文),r.hinden,s.deering,“ip version6addressing architecture”(ip版本寻址架构),rfc 4291(ietf,2006年2月),可在https://datatracker.ietf.org/doc/html/rfc4291获得(称为“rfc 4291”,并通过引用并入本文),以及j.abley,k.lindqvist,“operation of anycast service”(任播服务操作),rfc 4786(ietf,2006年12月),可在https://www.rfc editor.org/rfc/rfc4786.txt获得(称为“rfc 4786”,并通过引用并入本文)),因为每个bier转发路由器(bfr)都有自己唯一的ber前缀和bfr-id。bier信令协议rfc8401和rfc8444要求检查和记录通告中重复的bfr-id,并要求将重复的bfr-id视为零并忽略。也就是说,在上述与bier相关的现有rfc下,通告重复bfr-id的那些bfr不会被视为bier转发入口路由器(bfir)或bier转发出口路由器(bfer)。

27、然而,任播在网络中被广泛使用,并且本发明人认为这将有助于支持具有任播地址作为bfr前缀的bfer,尤其是出于出口保护的目的。


技术实现思路

1、与本说明书一致的示例实施例通过供应(例如,配置)包括至少两个bier转发路由器(bfr)的bier子域来实现对利用bier的任播的使用,bfr被配置有与公共的bfr前缀相关联的公共的非零bier转发路由器(brf)标识符(bfr-id)(用于bier子域)。在一些示例实现中,一个或多个bfr是bier转发出口路由器(bfer)。

2、与本说明书一致的示例实施例通过提供由bier子域中的bfr使用的方法,使得能够使用利用bier的任播,该计算机实现的方法包括:(a)由bfr接收至少一个通告,该至少一个通告共同具有针对bier子域的公共的非零bfr-id,其与由bier子域中的至少两个不同的bfr共享的公共brf前缀相关联;以及(b)以不将与公共的bfr前缀相关联的bier子域的公共的bfr-id视为重复的方式来处理至少一个通告,即使其由bier子域中的至少两个不同的bfr共享。

3、在一些这样的示例方法中,以不将与公共的bfr前缀相关联的bier子域的公共的bfr-id视为重复的方式来处理至少一个通告,即使其由bier子域中的至少两个不同的bfr共享的动作,包括:由bfr使用公共的非零bfr-id和由属于bier子域的至少两个不同的bfr共享的公共的bfr前缀来计算到共享公共的非零bfr-id和公共的bfr前缀的至少两个不同的bfr中的任何一个的bier路由。在一些这样的示例方法中,以不将与公共的bfr前缀相关联的bier子域的公共的bfr-id视为重复的方式来处理至少一个通告,即使其由bier子域中的至少两个不同的bfr共享的动作还包括:从birt生成比特索引转发表(bift),并且该方法还包括:由bfr接收分组,该分组包括标识子域的标签、目的地比特掩码和有效负载,其中目的地比特掩码包括与设置为“1”的bfr-id相对应的比特位置;以及由bfr并使用bift来转发分组。

4、与本说明书一致的示例实施例通过提供用于在bier子域中使用的方法,使得能够使用利用bier的任播,该计算机实现的方法包括:(a)由bier子域中的第一bfr生成至少一个第一通告,该至少一个第一通告共同具有针对bier子域的非零bfr-id,其与属于bier子域的brf前缀相关联;(b)由第一bfr将至少一个第一通告发送给bier子域中的另一个bfr;(c)由bier子域中的第二bfr生成至少一个第二通告,至少一个第二通告共同具有针对bier子域的非零bier转发路由器(brf)标识符(bfr-id),其与属于bier子域的brf前缀相关联;以及(d)由第二bfr向bier子域中的另一bfr发送至少一个第二通告。在一些这样的示例方法中,第一bfr和第二bfr中的每一个都是出口bfr(bfer)。在一些这样的实现中,执行以下动作,而不管第一bfr先前是否从bfr子域中具有与bfr前缀相关联的bier子域的非零bfr-id的另一bfr接收到通告:(1)由bier子域中的第一bfr生成至少一个第一通告,该至少一个第一通告共同具有bier子域的与属于bier子域的bfr前缀相关联的非零bfr-id,以及(2)由第一bfr将至少一个第一通告发送给bier子域中的另一bfr。在一些这样的示例方法中,由第一bfr向bier子域中的另一bfr发送至少一个第一通告的动作使用洪泛(例如,使用内部网关协议(igp))。

5、可以在bier子域中的bfr上实现所描述的任何示例方法,该bfr包括:(a)至少一个处理器;以及(b)存储处理器可执行指令的非瞬态存储设备,处理器可执行指令当由至少一个处理器执行时,使至少一个处理器执行任何所描述的方法。

6、可以提供一种非瞬态存储设备来存储处理器可执行指令,处理器可执行指令当由bier子域中的bfr的至少一个处理器执行时,使至少一个处理器执行任何所描述的方法。

7、示例bier子域包括第一和第二bfr,每个bfr包括至少一个对应的处理器,以及(ii)存储处理器可执行指令的对应的非瞬态存储设备。第一bfr:(a)生成至少一个第一通告,该至少一个第一通告共同具有bier子域的非零bfr-id,其与属于bier子域的brf前缀相关联;以及(b)将至少一个第一通告发送给bier子域中的另一个bfr。类似地,第二bfr:(a)生成至少一个第二通告,该至少一个第二通告共同具有bier子域的非零bfr-id,其与属于bier子域的brf前缀相关联;以及(b)将至少一个第二通告发送给bier子域中的另一个bfr。在一些实现中,第一bfr和第二bfr中的每个bfr都是出口bfr(bfer)。在一些实现中,执行以下动作,而不管第一bfr先前是否从bfr子域中具有与bfr前缀相关联的bier子域的非零bfr-id的另一bfr接收到通告:(1)由bier子域中的第一bfr生成至少一个第一通告,该至少一个第一通告共同具有bier子域的与属于bier子域的bfr前缀相关联的非零bfr-id,以及(2)由第一bfr将至少一个第一通告发送给bier子域中的另一bfr。在一些这样的示例方法中,由第一bfr向bier子域中的另一bfr发送至少一个第一通告的动作使用洪泛(例如,使用内部网关协议(igp))


技术特征:

1.一种比特索引显式复制bier子域,包括:

2.一种用于由比特索引显式复制bier子域中的bier转发路由器bfr使用的计算机实现的方法,所述计算机实现的方法包括:

3.根据权利要求2所述的计算机实现的方法,其中以不将与公共的bfr前缀相关联的针对所述bier子域的所述公共的bfr-id视为重复的方式来处理所述至少一个通告,即使所述公共的bfr-id由所述bier子域中的至少两个不同的bfr共享的动作,包括:

4.一种比特索引显式复制bier子域中的bier转发路由器,所述bfr包括:

5.一种非瞬态存储设备,存储处理器可执行指令,所述处理器可执行指令在由比特索引显式复制bier子域中的bier转发路由器bfr的至少一个处理器执行时,使所述至少一个处理器执行方法,所述方法包括:

6.一种用于在比特索引显式复制bier子域中使用的计算机实现的方法,所述计算机实现的方法包括:

7.根据权利要求6所述的计算机实现的方法,其中所述第一bfr和所述第二bfr中的每个bfr都是出口bfr(bfer)。

8.根据权利要求6所述的计算机实现的方法,其中不管所述第一bfr先前是否从所述bfr子域中的另一bfr接收到具有针对所述bier子域的与所述bfr前缀相关联的所述非零bfr-id的通告,以下动作都被执行:(1)由所述bier子域中的第一bfr生成至少一个第一通告,所述至少一个第一通告共同具有针对所述bier子域的与属于所述bier子域的bfr前缀相关联的非零bier转发路由器brf标识符bfr-id,以及(2)由所述第一bfr将所述至少一个第一通告发送给所述bier子域中的另一bfr。

9.根据权利要求6所述的计算机实现的方法,其中由所述第一bfr将所述至少一个第一通告发送给所述bier子域中的另一bfr的动作使用洪泛。

10.根据权利要求6所述的计算机实现的方法,其中由所述第一bfr将所述至少一个第一通告发送给所述bier子域中的另一bfr的动作使用内部网关协议igp。

11.一种bier子域,包括:

12.根据权利要求11所述的bier子域,其中所述第一bfr和所述第二bfr中的每个bfr都是出口bfr(bfer)。

13.根据权利要求11所述的bier子域,其中不管所述第一bfr先前是否从所述bfr子域中的另一bfr接收到具有针对所述bier子域的与所述bfr前缀相关联的所述非零bfr-id的通告,以下动作都被执行:(1)由所述bier子域中的第一bfr生成至少一个第一通告,所述至少一个第一通告共同具有针对所述bier子域的与属于所述bier子域的bfr前缀相关联的非零bier转发路由器brf标识符bfr-id,以及(2)由所述第一bfr将所述至少一个第一通告发送给所述bier子域中的另一bfr。

14.根据权利要求11所述的bier子域,其中由所述第一bfr将所述至少一个第一通告发送给所述bier子域中的另一bfr的动作使用洪泛。

15.根据权利要求11所述的bier子域,其中由所述第一bfr将所述至少一个第一通告发送给所述bier子域中的另一bfr的动作使用内部网关协议igp。


技术总结
本公开的实施例涉及使用任播的比特索引显式复制。BIER架构目前不支持任播,因为每个BIER转发路由器(BFR)都有自己唯一的BFR前缀和BFR‑ID。BIER信令协议还检查是否有重复的BFR‑ID被通告。描述了对BIER的任播支持。本说明书更新(例如,放宽和/或移除一些要求)RFC 8279、RFC 8401和RFC 8444。

技术研发人员:张朝晖
受保护的技术使用者:瞻博网络公司
技术研发日:
技术公布日:2024/6/26
转载请注明原文地址:https://doc.8miu.com/index.php/read-1821171.html

最新回复(0)