一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

利用灵活算法的标签推导的制作方法

2022-06-16 07:03:03 来源:中国专利 TAG:


1.本公开涉及计算机网络并且更具体地涉及计算机网络中的通告路由。


背景技术:

2.计算机网络是交换数据和共享资源的互连计算设备的集合。在基于分组的网络(诸如互联网)中,计算设备通过将数据划分成被称为分组的小块来传递数据,这些小块被单独地跨网络从源设备路由到目的地设备。目的地设备从分组中提取数据并且将数据组装成其原始形式。网络中的被称为路由器的某些设备(即节点)使用路由协议来交换和积累描述网络的拓扑信息。这允许路由器构造它自己的网络路由拓扑图。在接收到传入数据分组后,路由器检查分组内的键控信息并且根据积累的拓扑信息转发分组。
3.许多路由协议落入被称为内部网关协议(igp)的协议类,在该igp中,使用基于洪泛的分发机制将拓扑信息通知给网络中的路由器。这些路由协议通常依赖于路由算法,这些路由算法要求路由器中的每个路由器都具有给定区域(被称为igp区域)的同步路由拓扑信息。其他路由协议可以包括边界网关协议(bgp),该bgp是用于在不同的区域或域中的路由器之间交换路由信息的外部网关协议。实现bgp的设备使用路由信息来维护网络可达性信息的数据库,该网络可达性信息是利用实现bgp的其他设备来交换的。
4.基于分组的网络越来越多地利用标签交换协议以用于业务工程和其他目的。多协议标签交换(mpls)是用于根据由网络中的路由器维护的路由信息来设计互联网协议(ip)网络中的业务模式的机制。通过利用mpls协议,标签交换路由器可以使用前置到业务的标签沿着通过网络到目的地设备的特定路径,即,标签交换路径(lsp),转发业务。lsp定义通过网络的不同路径,用于将mpls分组从源设备携带到目的地设备。作为一个示例,路由器可以采用段路由技术,诸如通过使用联网中的源分组路由(spring)范例,以使用内部网关协议(igp)或边界网关协议(bgp)在节点之间通告网络段,并且构建单跳或多跳隧道。为了进行段路由,入口路由器将标签堆栈(例如段列表)中的一个或多个标签前置到分组,并且当分组通过网络被转发时,沿路径的中间路由器从应用于分组的标签堆栈中移除标签。
5.支持段路由技术的设备也可以支持基于约束的路径计算,其中路径计算基于各种约束进行,以便在与网络的任何特性或属性相关联的链路和/或节点的特定子集上配置路径。基于约束的路径计算的一个示例是“灵活算法”(在本文中也被称为“flex-algo”),其中网络设备基于计算类型、度量类型和一个或多个约束进行路径计算。实现灵活算法技术的设备可以沿基于约束的路径而不是默认路径(诸如最短路径)引导业务。


技术实现要素:

6.一般而言,本公开描述了用于利用灵活算法进行标签推导的技术。例如,网络设备(例如路由器)可以使用灵活算法技术来计算基于约束的段路由lsp,以路由业务。对于路由器参与的每个灵活算法,路由器都被配置有唯一地标识针对灵活算法的路由器的段标识符(sid)(在本文中也被称为“标签”)。路由器通常将灵活算法的节点标签通告给其他路由器,
使得这些路由器可以构造带有节点标签的标签堆栈,以将业务发送给通告路由器。随着网络规模的增加,诸如随着网络设备和/或网络切片的添加,被通告和被存储的标签的数量也会增加,从而导致网络资源消耗的意外增加。根据所公开的技术,网络设备只需要发送带有针对默认段路由(例如没有灵活算法的段路由)的节点标签(被称为“基本节点标签”)的通告(例如使用bgp标记单播(bgp-lu)或igp),从这个通告中,接收路由器可以使用基本节点标签来推导出与其他灵活算法相关联的节点标签。
7.在一个示例中,区域边界路由器(abr)可以接收来自相同的igp区域中的通告路由器的基本节点标签,并且发送包括针对通告路由器的基本节点标签的通告路由(例如bgp-lu消息或igp消息)。例如,abr可以发送bgp更新消息,包括网络层可达性信息,指定通告路由器的前缀和针对通告路由器的基本节点标签。作为另一示例,abr可以发送igp消息(例如中间系统到中间系统(is-is)或开放最短路径优先(ospf)),包括针对通告路由器的基本节点标签。在任何情况下,接收针对通告路由器的基本节点标签的路由器都可以使用基本节点标签来推导出针对其他灵活算法的通告路由器的节点标签,并且使用推导出的节点标签构造标签堆栈,以将业务发送给通告路由器。
8.本公开中所描述的技术可以提供实现至少一个实际应用的一个或多个技术优势。例如,通过只通告基本节点标签而不是针对路由器参与的灵活算法中的每种灵活算法的节点标签,减少被通告和被存储的标签的数量,因此提高网络资源消耗。
9.在一个示例中,本公开涉及一种方法,包括:由第一路由器接收路由通告,该路由通告包括与没有灵活算法的段路由路径相关联的、针对第二路由器的基本节点标签,其中第二路由器参与灵活算法;由第一路由器从基本节点标签,推导出与带有灵活算法的段路由路径相关联的针对第二路由器的节点标签;以及由第一路由器构造包括针对第二路由器的推导出的节点标签的标签堆栈,以沿带有灵活算法的段路由路径将分组引导至第二路由器。
10.在另一示例中,本公开涉及一种方法,包括:由第一路由器接收路由通告,该路由通告包括唯一地标识第二路由器的多个基本节点标签的标签堆栈,其中多个基本节点标签包括与另一路由器共享的针对第二路由器的基本节点标签和针对包括第二路由器的内部网关协议区域中的区域边界路由器的基本节点标签,其中多个基本节点标签与没有灵活算法的段路由路径相关联,其中第二路由器参与灵活算法;由第一路由器从多个基本节点标签中推导出针对第二路由器的节点标签和针对区域边界路由器的节点标签,其中针对第二路由器的节点标签和针对区域边界路由器的节点标签与带有灵活算法的段路由路径相关联;以及由第一路由器构造包括针对第二路由器的推导出的节点标签和针对区域边界路由器的推导出的节点标签的标签堆栈,以沿带有灵活算法的段路由路径将分组引导至第二路由器。
11.在另一示例中,本公开涉及一种系统,包括:多个路由器;多个区域边界路由器,其中多个路由器中的第一路由器和多个区域边界路由器中的第一区域边界路由器被逻辑地聚集(group)到多个内部网关协议(igp)区域的第一igp区域中,其中多个路由器中的第二路由器和多个区域边界路由器中的第二区域边界路由器被逻辑地聚集到第二igp区域中,其中第一路由器、第二路由器、第一区域边界路由器和第二区域边界路由器参与灵活算法;其中第一区域边界路由器被配置为:从第一路由器接收与没有灵活算法的段路由路径相关
联的针对第一路由器的基本节点标签;以及将包括针对第一路由器的基本节点标签的路由通告发送给第二区域边界路由器;并且其中第二路由器被配置为:从第二区域边界路由器接收包括针对第一路由器的基本节点标签的路由通告;从基本节点标签推导出与带有灵活算法的段路由路径相关联的针对第一路由器的节点标签;以及构造包括针对第一路由器的节点标签的标签堆栈,以经由带有灵活算法的段路由路径将分组引导至第一路由器。
12.一个或多个示例的细节在附图和下面的描述中进行阐述。通过本描述、附图以及通过权利要求,其他特征、目的和优点将变得明显。
附图说明
13.图1是图示了根据本公开中所描述的技术的提供利用灵活算法的标签推导的示例网络的框图。
14.图2是图示了根据本公开中所描述的技术的提供利用灵活算法的标签推导的网络的另一示例的框图。
15.图3a是图示了能够根据本公开中所描述的技术操作的示例网络设备的框图。
16.图3b是图示了能够根据本公开中所描述的技术操作的另一示例网络设备的框图。
17.图4是图示了根据本公开中所描述的技术的利用灵活算法的标签推导的示例操作的流程图。
具体实施方式
18.图1是图示了根据本公开中所描述的技术的提供利用灵活算法的标签推导的示例网络系统2的框图。在图1的示例中,网络系统2包括由中间网络4连接的多个路由区域或域6a至6d(统称为“区域6”)。
19.中间网络4可能代表由服务提供方拥有和操作的服务提供方网络,该服务提供方通常是大型电信实体或公司。中间网络4代表l3计算机网络,其中对后面跟着数字的层的引用指的是开放系统互连(osi)模型中的对应层。中间网络4是l3网络,从某种意义上说,它本身支持osi模型中所描述的l3操作。常用的l3操作包括根据l3协议(诸如互联网协议(ip))进行的那些操作。l3也被称为osi模型中的“网络层”和tcp/ip模型中的“ip层”,并且贯穿本公开,术语l3可以与“网络层”和“ip”互换使用。
20.中间网络4可以被耦合到由中间网络4的提供方或其他提供方管理的一个或多个网络,并且因此,可以形成大规模公共网络基础设施(例如互联网)的一部分。中间网络4可以提供被逻辑地聚集到具有互联网的访问的区域6中的计算设备,并且可以允许区域中的计算设备彼此通信。
21.中间网络4可以实现多协议标签交换(mpls)转发,并且在这种情况下可以被称为mpls网络或mpls骨干网。mpls是用于根据由网络中的路由器维护的路由信息来设计互联网协议(ip)网络中的业务模式的机制。通过利用mpls协议,标签交换路由器可以使用前置到业务的标签沿通过网络到目的地设备的特定路径,即,标签交换路径(lsp),转发业务。lsp定义通过网络的不同路径,用于将mpls分组从源设备携带到目的地设备。
22.在图1的示例中,网络系统2可以被划分为内部网关协议(igp)级别的层次结构,也被称为“igp区域”或“igp域”,诸如区域6。每个igp区域都包括在常用的管理控制下的一组
requirements(联网中的源分组路由(spring)问题陈述和要求)”以及(3)于2014年8月1日发表的ietf草案draft-filsfils-spring-segment-routing-mpls-03“segment routing with mpls data plane(具有mpls数据平面的段路由)”中找到的。
27.不同类型的标签还在下面进行描述。邻接标签针对特定段路由节点(诸如路由器12中的一个路由器)可能具有局部语义。特别地,邻接标签将业务引导至邻接(例如通信链路和/或接口)或一组邻接上。因此,邻接标签可能与特定网络设备相关。为了使用邻接标签,网络设备最初可以将邻接标签分配给特定的邻接,并且使用is-is协议或ospf协议将邻接标签通告给段路由区域中的其他网络设备。路由器可能只是段路由区域中使用特定的邻接标签的路由器。当网络设备使用邻接标签转发分组时,网络设备可以使分组使用针对与邻接标签相关联的网络设备的邻接。以这种方式,邻接标签可以用于在网络中建立一跳隧道。
28.节点标签在段路由区域中可能具有全局语义。即,实现段路由的路由器12中的每个路由器都可以被分配定义节点标签范围(通常被称为段路由全局块(srgb)),该定义节点标签范围对段路由区域中的每个对应网络设备而言都是独特的。网络系统2的操作员可以确保不同的节点标签范围从全局范围到不同的路由器的独特分配。除了节点标签范围之外,每个特定网络设备还可以具有特定的节点标识符(例如节点sid),该特定的节点标识符唯一地标识段路由区域中的特定网络设备。每个相应路由器都可以使用is-is或ospf将其相应节点标识符和节点标签范围通告给段路由区域中的其他路由器。
29.基于使用例如最短路径路由而被确定的路由,路由器12中的每个路由器都可以将其转发状态配置为将节点标签(与网络中的其他节点相对应)推送、弹出或调换到分组上,以使用确定的路由将这种分组转发给目的地。例如,路由器12中的每个路由器都可以使用通过igp学习的拓扑信息来进行路径选择,以基于由路由器维护的路由信息逐跳计算网络系统2中的最短路径。路由器12中的每个路由器然后都可以沿局部计算的最短路径选择下一跳,并且将与所选的下一跳相关联的转发信息安装在网络设备的转发平面中,其中转发信息标识要在转发业务时使用的网络接口和要在将业务转发到接口之外时应用的一个或多个标签。网络设备使用具有分配的标签的下一跳来逐跳转发业务。
30.如图1的示例中所示,路由器12a充当段路由lsp 16的入口路由器(在本文中也被称为“段路由隧道”或“区域间隧道”),并且因此,在本公开中可以被称为入口路由器12a。由入口路由器12a接收到的网络业务的源可以包括一个或多个设备(图1中未示出)和/或将业务提供给网络2中的入口路由器12a的任何公用或专用网络或互联网。此外,在该示例中,路由器12d可以充当段路由lsp 16的出口路由器,并且因此在本公开中,可以被称为出口路由器12d。在区域间隧道16上转发的网络业务的目的地可以包括一个或多个目的地设备(未示出)和/或网络,网络可以包括局域网(lan)或广域网(wan),这些网络包括多个设备。例如,目的地设备可以包括个人计算机、膝上型电脑、工作站、个人数字助理(pda)、无线设备、网络就绪设备、文件服务器、打印服务器或经由网络系统2访问源的其他设备。
31.在一些示例中,路由器12还可以支持用于段路由的基于约束的路径计算(例如灵活算法)。例如,灵活算法可以定义用于计算基于约束的路径的计算类型、度量类型和/或约束。例如,计算类型可以包括在“内部网关协议(igp)参数”iana注册表或其他计算机制下定义的igp算法,诸如最短路径。度量类型可以包括用于计算沿约束拓扑的最优路径的度量
(诸如igp度量、最小单向链路延迟、业务设计度量等)的类型。例如,约束可以限制到具有特定亲和性的链路的路径,或避免具有特定亲和性的链路。约束的类型可以用于计算沿与特定颜色相关联的链路的子集的路径。颜色是通用概念,该通用概念可以表示网络的任何特性或属性,诸如虚拟拓扑、网络切片、路径计算算法、业务设计约束(例如延迟、带宽等)、管理简档等。
32.为了实现灵活算法,路由器12和abr 14可以例如通告要被用来计算沿约束拓扑的最优路径的分组,该分组(a)描述对拓扑的一组约束,(b)标识计算类型,和(c)标识度量类型。计算类型、度量类型和约束的组合被称为“灵活算法定义(fad)”,并且可以由灵活算法标识符(“灵活算法sid”或“灵活算法标签”)(例如128和255之间的值)标识。作为一个示例,路由器12可以将fad和灵活算法标签包括在ospf分组的类型、长度和值(“tlv”)或is-is分组的子tlv内。灵活算法的更多示例在p.psenak,ed.等人于2020年4月1日提交的internet-draft draft-ietf-lsr-flex-algo-07.txt“igp flexible algorithm(igp灵活算法)”中进行描述,该文的全部内容通过引用并入本文。颜色约束的附加示例在p.mohapatra等人于2009年4月提交的互联网工程任务组(ietf)rfc 5512“the bgp encapsulation subsequent address family identifier(safi)and the bgp tunnel encapsulation attribute(bgp封装子地址族标识符(safi)和bgp隧道封装属性)”中进行描述,该文的全部内容通过引用并入本文。
33.路由器12中的每个路由器都配置有节点标签,该节点标签唯一地标识针对路由器参与的对应灵活算法的路由器。作为一个示例,参与默认段路由(例如没有由灵活算法标签0标识的灵活算法(在本文中被称为“灵活算法0”或“基本灵活算法”)的段路由)的路由器12被分配10000到19999的节点标签范围内的节点标签。针对灵活算法0的节点标签范围内的节点标签在本文中被称为“基本节点标签”。参与第一灵活算法(例如由灵活算法标签128标识,在本文中被称为“灵活算法128”)的路由器12被分配20000到29999的节点标签范围内的节点标签。参与第二灵活算法(例如由灵活算法标签129标识,在本文中被称为“灵活算法129”)的路由器12被分配30000到39999的节点标签范围内的节点标签,等等。
34.节点标签可以基于路由器的索引而被计算。在图1的示例中,路由器12a被配置有索引11,路由器12b被配置有索引21,路由器12c被配置有索引31,并且路由器12d被配置有索引41。abr 14a被配置有索引101、abr 14b被配置有索引201,abr 14c被配置有索引301,并且abr 14d被配置有索引401。
35.对于基本灵活算法(例如灵活算法0),路由器12a被分配基本节点标签10011,路由器12b被分配基本节点标签10021,路由器12c被分配基本节点标签10031,并且路由器12d被分配基本节点标签10041。类似地,abr 14a被分配基本节点标签10101,abr 14b被分配基本节点标签10201,abr 14c被分配基本节点标签10301,并且abr 14d被分配基本节点标签10401。
36.针对第一灵活算法(例如灵活算法128)的节点标签是通过使针对灵活算法0的节点标签偏移10000来计算的。例如,路由器12a被分配节点标签20011,路由器12b被分配节点标签20021,路由器12c被分配节点标签20031,并且路由器12d被分配节点标签20041。类似地,abr 14a被分配节点标签20101,abr 14b被分配节点标签20201,abr 14c被分配节点标签20301,并且abr 14d被分配节点标签20401。
37.类似地,针对第二灵活算法(例如灵活算法129)的节点标签是通过使针对灵活算法0的节点标签偏移20000来计算的。例如,路由器12a被分配节点标签30011(偏移了20000的针对灵活算法0的节点标签),路由器12b被分配节点标签30021(偏移了20000的针对灵活算法0的节点标签),路由器12c被分配节点标签30031(偏移了20000的针对灵活算法0的节点标签),并且路由器12d被分配节点标签30041(偏移了20000的针对灵活算法0的节点标签)。类似地,abr14a被分配节点标签30101,abr 14b被分配节点标签30201,abr 14c被分配节点标签30301,并且abr 14d被分配节点标签30401。
38.通常,为了配置灵活算法参与,除了在灵活算法0中唯一地标识路由器的节点标签之外,路由器也可以通告唯一地标识针对路由器参与的灵活算法中的每种灵活算法的路由器的节点标签以及相关联的灵活算法定义和灵活算法标签。例如,如果路由器参与灵活算法128,则路由器通常通告针对基本灵活算法0的基本节点标签和针对灵活算法128的节点标签。随着网络中的网络设备的数量按比例增加,在路由器中的每个路由器中被通告和被存储的标签的数量也会增加,从而导致网络设备中的每个设备都消耗大量网络设备资源。
39.根据本公开中所描述的技术,路由器可能只需要通告针对灵活算法0的基本节点标签,使得接收路由器可以推导出针对通告路由器参与的其他灵活算法的节点标签。
40.例如,假设路由器12d参与第一灵活算法(例如灵活算法128)和第二灵活算法(例如灵活算法129)。除了通告针对路由器12d参与的灵活算法中的每种灵活算法的节点标签,路由器120也只需要将其基本节点标签(例如10041)通告给其他路由器。例如,路由器12d可以经由abr 14将基本节点标签10041散布给网络系统2中的其他路由器12。
41.针对段的路径信息是使用例如bgp标记单播(bgp-lu)在abr 14之间散布或通告的。bgp-lu提供了跨越igp区域(例如区域6)的mpls传输。例如,实现bgp-lu的网络设备可以将bgp-lu消息,诸如bgp更新消息,它的网络层可达性信息(nlri)指定路由器,该路由器已经将指定mpls标签(或mpls标签的堆栈)绑定到指定地址前缀(例如《前缀,[标签]》)和标识前缀被绑定到标签的路由器的下一跳。bgp-lu的附加示例在e.rosen于2017年10月发布的rfc 8277“using bgp to bind mpls labels to address prefixes(使用bgp将mpls标签绑定到地址前缀)”中进行描述,该文的全部内容通过引用并入本文。
[0042]
例如,abr 14d可以通告bgp-lu消息18,包括指定绑定到基本节点标签(例如10041)的路由器12d(例如4.4.4.4)的回送地址(例如前缀)的nlri。路由器12a(和接收通告的其他路由器)接收带有针对路由器12d的基本节点标签的bgp-lu消息18,并且使用基本节点标签推导出针对其他灵活算法的路由器12d的节点标签。例如,路由器12a可以使针对路由器12d的基本节点标签偏移,以推导出路由器12d的针对其他灵活算法的节点标签。
[0043]
考虑到针对灵活算法128的节点标签范围(例如20000至29999)是偏移了10000的基本节点标签范围(例如10000至19999),路由器12a可以使基本节点标签10041偏移10000,使得路由器12d的针对灵活算法128的节点标签20041落入针对灵活算法128的节点标签范围。类似地,考虑到针对灵活算法129的节点标签范围(例如30000至39999)是偏移了20000的基本节点标签范围(例如10000至19999),路由器12a可以使基本节点标签10041偏移20000,使得路由器12d的针对灵活算法129的节点标签30041落入针对灵活算法129的节点标签范围。路由器12a还可以接收来自abr 14a的基本节点标签10101,并且推导出针对其他灵活算法的abr 14a的节点标签。
[0044]
路由器12a使用推导出的节点标签来构造标签堆栈,以沿段路由lsp(例如段路由lsp 16)引导分组,以到达路由器12d。例如,为了经由基本灵活算法到达路由器12d,路由器12a可以构造[1004110101]的标签堆栈(“a0”),其中顶部标签是abr 14a的基本节点标签10101,并且后续标签是路由器12d的基本节点标签10041。为了经由第一灵活算法(例如灵活算法128)到达路由器12d,路由器12a可以构造[20041 20101]的标签堆栈(“a128”),其中顶部标签是abr14a的节点标签20101,并且后续标签是路由器12d的节点标签20041。类似地,为了经由第二灵活算法(例如灵活算法129)到达路由器12d,路由器12a可以构造[30041 30101]的标签堆栈(“a129”),其中顶部标签是abr 14a的节点标签30101,并且后续标签是路由器12d的节点标签30041。
[0045]
在一些示例中,网络系统2可以实现单个igp区域而不是多个igp区域。例如,区域6可以全部都使用相同的igp(例如is-is)。在这些示例中,网络设备可以备选地使用igp来散布基本节点标签。
[0046]
图2是图示了根据本公开中所描述的技术的提供利用灵活算法的标签推导的另一示例网络系统的框图。
[0047]
在该示例中,igp区域6a包括路由器12a1至12an(统称为“路由器12a”),igp区域6b包括路由器12b1至12bn(统称为“路由器12b”),igp区域6c包括路由器12c1至12cn(统称为“路由器12c”),并且igp区域6d包括路由器12d1至12dn(统称为“路由器12d”)。在图2的示例中,网络系统200可以包括重叠mpls标签空间。例如,路由器12a1、12b1、12c1和12d1可以使用相同的索引,并且被分别分配针对灵活算法0的基本节点标签10001、针对灵活算法128的节点标签20001和针对灵活算法129的节点标签30001和/或其他灵活算法的其他节点标签。
[0048]
为了实现对路由器12d1的可达性,即使基本节点标签与另一路由器(例如路由器12b1)相同,abr 14a也可以响应于接收到包括路由器12d1的前缀和针对灵活算法0的基本节点标签的通告,而将通告更新为包括指定针对发送路由器12d1的通告的abr 14d的基本节点标签的附加标签,使得路由器12a1可以具有可达性信息,以到达路由器12d1。
[0049]
例如,路由器12d1只需将其基本节点标签10001通告给abr 14d。abr 14d构造bgp-lu消息218,其指定绑定到路由器12d1的基本节点标签(例如10001)的前缀(例如4.4.4.4)。响应于接收到来自abr14d的bgp-lu消息218,abr 14a(或接收bgp-lu消息218的其他igp区域的其他abr)可以将bgp-lu消息218(被图示为bgp-lu消息218’)更新为还包括针对abr 14d的基本节点标签(10301),并且将bgp-lu消息218’发送给igp区域6a中的路由器12a。例如,bgp-lu消息218’可以包括多个标签,其包括针对路由器12d1的基本节点标签10001和针对abr 14d的基本节点标签10401。[10001 10401]的标签堆栈被绑定到4.4.4.4的回送地址。以这种方式,[10001 10401]的标签堆栈唯一地标识路由器12d1。将多个标签包括在bgp-lu消息中的附加示例在rfc 8277中进行描述,其在上面通过引用并入。
[0050]
响应于接收到bgp-lu消息218’,路由器12a1可以推导出针对其他灵活算法的路由器12d1和abr 14d的节点标签(例如通过使路由器12d1和abr 14d的基本节点标签偏移),如上面关于图1所描述的。使用标签,路由器12a1可以构造标签堆栈,以到达路由器12d1。例如,为了经由基本灵活算法到达路由器12d1,路由器12a1可以构造[10001 10401 10101]的标签堆栈(“a0”),其中顶部标签是abr 14a的基本节点标签10101,后续标签是abr 14d的基本节点标签10401,并且底部标签是路由器12d的基本节点标签10001。为了经由第一灵活算
法(例如灵活算法128)到达路由器12d1,路由器12a1可以构造[20001 20401 20101]的标签堆栈(“a128”),其中顶部标签是abr14a的节点标签20101,后续标签是abr 14d的节点标签20401,并且底部标签是路由器12d1的节点标签20001。类似地,为了经由第二灵活算法(例如灵活算法129)到达路由器12d1,路由器12a1可以构造[30001 30401 30101]的标签堆栈(“a129”),其中顶部标签是abr 14a的节点标签30101,后续标签是abr 14d的节点标签30401,并且底部标签是路由器12d1的节点标签30001。
[0051]
以这种方式,通过将bgp-lu消息更新为包括针对通告了bgp-lu消息的abr的附加标签,源路由器可以学习到达特定目的地路由器所需的标签,即使针对目的地路由器的基本节点标签与针对另一路由器的基本节点标签相同。通过共享或重叠标签,网络系统2可以提供更大规模的网络设备和超出128到255的灵活算法范围的更大量的灵活算法。虽然图2中所描述的示例是关于三个标签进行描述的,但是本公开中所描述的技术可以适用于任意数量的标签,以进一步增加网络系统的可扩展性。
[0052]
图3a是图示了能够根据本文中所描述的技术操作的示例路由器的框图。在图3a的示例中,路由器300可以表示图1的入口路由器12a。虽然关于路由器300进行了描述,但是技术可以由具有路由功能性的任何其他类型的网络设备实现,而且不必是专用的路由设备。因此,虽然关于路由器300进行了描述,但是技术不应受限于关于图3a的示例描述的路由器300。图3a中所示的路由器300的架构仅仅是出于示例的目的而被示出的。本公开的技术并不限于该架构。
[0053]
在图3a的示例中,路由器300包括接口卡310a至310n(“ifc310”),分别经由入站网络链路312a至312n和出站网络链路314a至314n接收和发送数据单元,诸如分组流。路由器300可以包括机架(未示出),其具有用于接收包括ifc 310在内的一组卡的多个插槽。每个卡都可以被插入机架的对应插槽,以经由高速交换机(未示出)将该卡电耦合至路由组件304,该高速交换机可以包括例如交换结构、开关设备、可配置的网络交换机或集线器或其他高速交换机构。ifc 310可以经由多个物理接口端口(未示出)耦合到网络链路312a至312n和314a至314n。通常,ifc 310可以各自表示一个或多个网络接口,路由器300可以通过该一个或多个网络接口与网络的链路接口连接。
[0054]
一般而言,路由器300可以包括控制单元302,该控制单元确定接收到的分组的路由,并且因此经由ifc 310转发分组。在图3a的示例中,控制单元302包括路由组件(控制平面)304,该路由组件对由转发组件(数据平面)306应用的分组转发操作进行配置和控制。控制单元302只可以在软件或硬件中实现,或可以作为软件、硬件或固件的组合实现。例如,控制单元302可以包括执行软件指令形式的程序代码的一个或多个处理器。在这种情况下,控制单元302的各种软件组件/模块可以包括被存储在计算机可读存储介质(诸如计算机存储器或硬盘)上的可执行指令。
[0055]
路由组件304为在网络堆栈的不同层执行的各种路由协议320提供操作环境。路由组件304负责维护路由信息330,以反映网络和其他网络实体的当前拓扑,路由器300连接到这些网络实体。特别地,路由协议周期性地更新路由信息30,以基于由路由器300接收到的路由协议消息准确地反映网络和其他实体的拓扑。协议可以是在一个或多个处理器上执行的软件过程。例如,路由组件304包括在网络堆栈的网络层处操作的网络协议,这些网络协议通常被实现为可执行软件指令。
380的内容根据igp 373来维护,并且具有单个路由域的范围。路由组件304还包括业务设计数据库(ted)382,该ted利用业务设计链路属性(例如灵活算法)来扩充lsdb 380。lsdb 380和ted 382中的每一个可以采取各种数据结构的形式,诸如多个表格、链路列表、根树、数据库、平面文件、或其他数据结构。
[0062]
根据所描述的技术,路由组件304包括节点标签推导模块336,用于从基本节点标签中推导出针对参与一个或多个灵活算法的路由器的节点标签。例如,路由器300可以表示图1的入口路由器12a的实例。路由器300可以接收针对路由器12d的基本节点标签,并且将基本节点标签存储在lsdb 380(图示为“基本节点标签381”)中。当路由器300接收到要经由灵活算法被发送到路由器12d的分组时,节点标签推导模块336可以从lsdb 380中的基本节点标签381中推导出针对灵活算法的路由器12d的节点标签。例如,节点标签推导模块336可以通过使基本节点标签383偏移以落入针对灵活算法的给定节点标签范围,来推导出针对灵活算法的路由器12d的节点标签。作为一个示例,如果路由器12d参与被分配20000到29999的节点标签范围(该节点标签范围是偏移了10000的10000到19999的基本节点标签范围)的第一灵活算法(例如灵活算法128),则节点标签推导模块336可以使基本节点标签381偏移10000。如果路由器12d参与被分配30000到39999的节点标签范围(该节点标签范围是偏移了20000的10000到19999的基本节点标签范围)的第二灵活算法(例如灵活算法129),则节点标签推导模块336可以使基本节点标签381偏移20000。节点标签推导模块336还可以推导出针对参与灵活算法的其他路由器(诸如其igp区域中的区域边界路由器(例如图1的abr 14a))的节点标签。
[0063]
路由器300的段路由组件328然后用推导出的节点标签构造一个或多个标签堆栈,以针对给定灵活算法沿段路由lsp(例如图1的段路由lsp 16)发送业务。例如,为了经由基本灵活算法到达路由器12d,路由器300的段路由组件304可以构造[10041 10101]的标签堆栈(“a0”),其中顶部标签是abr 14a的基本节点标签10101,并且后续标签是路由器12d的基本节点标签10041。为了经由第一灵活算法(例如灵活算法128)到达路由器12d,路由器300的段路由组件304可以构造[20041 20101]的标签堆栈(“a128”),其中顶部标签是abr 14a的节点标签20101,并且后续标签是路由器12d的节点标签20041。类似地,为了经由第二灵活算法(例如灵活算法129)到达路由器12d,路由器300的段路由组件376可以构造[30041 30101]的标签堆栈(“a129”),其中顶部标签是abr 14a的节点标签30101,并且后续标签是路由器12d的节点标签30041。一个或多个构造的标签堆栈然后被安装在转发信息340中(图示为(多个)标签堆栈342),并且当经由出站网络链路357中的一个出站网络链路向abr 14a发送分组时,被前置到分组。
[0064]
路由组件304可以包括图3a中未示出的其他组件、单元、模块,诸如为管理员(“admin”)提供访问权限以监测、配置、或以其他方式管理路由器300的命令行接口(cli)。管理员可以使用接口将路由器300配置为进行本公开中所描述的技术。
[0065]
图3b是图示了能够根据本文中所描述的技术操作的示例路由器的框图。在图3b的示例中,路由器301可以表示图1或图2的abr 14中的任何abr。图3b的路由器301与图3a的路由器300相似,除了下面所描述的。虽然关于路由器301进行了描述,但是技术可以由具有路由功能性的任何其他类型的网络设备实现,而且不必是专用的路由设备。因此,虽然关于路由器301进行了描述,但是技术不应受限于关于图3b的示例描述的路由器301。图3b中所示
的路由器301的架构仅仅是出于示例的目的而被示出的。本公开的技术并不限于该架构。
[0066]
在图3b的示例中,路由器301包括节点标签通告模块338,用于根据本公开中所描述的技术通告节点标签。在一个实例中,路由器301可以表示通告路由器的igp区域中的abr,诸如图1的abr 14d。响应于接收到针对路由器12d的基本节点标签,路由器301可以使用bgp-lu 324来发送bgp更新消息,其包括指定被绑定到针对路由器12d的基本节点标签的路由器12d的前缀的nlri。以这种方式,路由器301只需发送针对路由器12d的基本节点标签,使得接收bgp-lu消息的路由器(例如图1的路由器12a)可以使用基本节点标签来推导出针对其他灵活算法的路由器12d的节点标签。在一些示例(诸如更小规模的网络)中,路由器301可以使用igp 322来发送针对路由器12d的基本节点标签。
[0067]
在一些示例中,路由器301可以表示接收bgp-lu消息的路由器的igp区域中的abr,诸如图2的abr 14a。在这些示例中,路由器301可以从abr 14d接收指定被绑定到路由器12d1的基本节点标签(例如10041)的前缀(例如4.4.4.4)的bgp-lu消息218。在一些示例中,路由器301的节点标签通告模块338可以将bgp-lu消息218更新为还包括指定针对转发了bgp-lu消息的abr 14d的基本节点标签的附加标签,并且将更新的bgp-lu消息(例如图2的bgp-lu消息218’)发送给igp区域6a的路由器12a1至12an。以这种方式,接收bgp-lu消息218’的路由器,例如路由器12a1,可以推导出针对其他灵活算法的路由器12d1和abr 14d的节点标签(例如通过使路由器12d1和abr 14d的基本节点标签偏移),并且使用推导出的标签来构造标签堆栈,以到达路由器12d1。
[0068]
图4是图示了根据本公开中所描述的技术的利用灵活算法推导出节点标签的示例操作的流程图。示例操作在本文中是关于图1的网络系统2进行描述的。
[0069]
在图4的示例中,路由器,例如路由器12d,发送其与没有灵活算法的段路由路径相关联的基本节点标签(402)。例如,参与默认段路由(例如没有灵活算法(即“灵活算法0”)的段路由)的路由器12被分配10000到19999的节点标签范围内的基本节点标签。针对灵活算法0的节点标签范围内的节点标签在本文中被称为“基本节点标签”。基本节点标签可以基于路由器的索引而被计算。例如,路由器12d被配置有索引41。如此,路由器12d被分配基本节点标签10041。路由器12d可以经由abr 14将基本节点标签10041散布给网络系统2中的其他路由器12。
[0070]
abr 14d接收基本节点标签(404),并且将包括针对路由器12d的基本节点标签的路由通告发送给中间网络4的其他abr(406)。在一个示例中,abr 14d可以将例如bgp标记单播(bgp-lu)用于跨越igp区域(例如区域6)的mpls传输。例如,abr 14d可以通告bgp-lu消息,诸如bgp更新消息,其网络层可达性信息(nlri)指定被绑定到基本节点标签(例如《前缀,[标签]》)的路由器12d的地址前缀和标识前缀被绑定到基本节点标签的路由器12d的下一跳。在网络系统2实现单个igp区域(例如使用is-is的所有区域)而不是多个igp区域的一些示例中,abr 14d可以使用内部网关协议来传输针对路由器12d的基本节点标签。
[0071]
abr 14a接收包括基本节点标签的路由通告(408),并且将路由通告发送给路由器12a(410)。路由器12a接收包括基本节点标签的路由通告(412),并且存储基本节点标签。响应于接收到分组指向的路由器12d(414),路由器12a从基本节点标签中推导出与带有灵活算法的段路由路径相关联的针对路由器12d的节点标签(416)。例如,路由器12a可以使基本节点标签偏移,以落入灵活算法的节点标签范围。例如,如果路由器12d参与具有20000到
29999的节点标签范围的灵活算法128,则路由器12a使针对路由器12d的基本节点标签(例如10041)偏移10000,使得针对路由器12d的节点标签20041落入针对灵活算法128的20000到29999的节点标签范围。类似地,如果路由器12d参与具有30000-39999的节点标签范围的灵活算法129,则路由器12a使针对路由器12d的基本节点标签偏移20000,使得针对路由器12d的节点标签30041落入30000到39999的节点标签范围。节点标签的推导并不限于响应于接收到分组而发生,但是可以在接收到基本节点标签之后的操作的任何部分发生。
[0072]
为了经由带有灵活算法的段路由路径将分组发送给路由器12d,路由器12a构造包括节点标签的标签堆栈(418),并且通过标签堆栈封装分组,以经由带有灵活算法的段路由路径将分组引导至路由器12d(420)。
[0073]
本公开中所描述的技术可以至少部分地在硬件、软件、固件或它们的任何组合中实现。例如,所描述的技术的各个方面都可以在一个或多个处理器中实现,包括一个或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或任何其他等效的集成或分立逻辑电路系统以及这些组件的任何组合。术语“处理器”或“处理电路系统”通常可以指单独的或与其他逻辑电路系统组合的前述逻辑电路系统或任何其他等效的电路系统中的任何一个。包括硬件的控制单元也可以进行本公开的技术中的一种或多种技术。
[0074]
这种硬件、软件和固件可以在相同的设备内或在单独的设备内实现,以支持本公开中所描述的各种操作和功能。附加地,所描述的单元、模块或组件中的任何一个都可以被一起或单独地实现为分立的但可互操作的逻辑设备。将不同的特征描述为模块或单元旨在突出不同的功能方面,并不一定意味着这些模块或单元必须由单独的硬件或软件组件实现。更确切地说,与一个或多个模块或单元相关联的功能性可以由单独的硬件或软件组件执行,或者被集成在共同的或单独的硬件或软件组件中。
[0075]
本公开中所描述的技术也可以体现或编码在包含指令的计算机可读介质(诸如计算机可读存储介质)中。嵌入或编码在计算机可读存储介质中的指令可以使可编程处理器或其他处理器执行方法,例如当执行指令时。计算机可读介质可以包括非瞬态计算机可读存储介质和瞬态通信介质。有形且非瞬态的计算机可读存储介质可以包括随机存取存储器(ram)、只读存储器(rom)、可编程只读存储器(prom)、可擦可编程只读存储器(eprom)、电可擦可编程只读存储器(eeprom)、闪存、硬盘、cd-rom、软盘、盒式磁带、磁介质、光学介质或其他计算机可读介质。术语“计算机可读存储介质”是指物理存储介质,而不是信号、载波或其他瞬态介质。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献