使用内部网关协议通告和编程优选路径路由的制作方法

文档序号:22689085发布日期:2020-10-28 12:59阅读:153来源:国知局
使用内部网关协议通告和编程优选路径路由的制作方法

相关申请的交叉引用

本申请要求于2018年2月23日提交、申请号为62/634,425、发明人为umas.chunduri等、发明名称为“通过内部网关协议通告和编程非最短路径转发标识符”的美国临时专利申请的优先权,其内容结合于此作为参考。

本公开涉及源路由和组网领域。特别地,本公开涉及减少在实现源路由的网络中传输的包的开销。



背景技术:

在实现源路由的网络中,已知底层网络的完整拓扑的控制器可以使用某些业务需要经过以到达目的地的定制路径来编程网络的入口节点。此定制路径可能不一定是入口节点和目的地之间的最短路径,并且可以根据业务工程或商业需求来编程此定制路径。网络中的入口节点可以使用单独的流分类技术将某些业务流与定制路径(例如,源和/或目的地址)关联。

在实现分段路由(segmentrouting,sr)的网络中,使用唯一标识网络中的分段的分段标识符(segmentidentifier,sid)引导包通过网络。分段可以包括网络中的一个或多个节点、接口、以及两个节点之间的链路。sid通常承载在包头中。

当前存在以下两种使用分段路由提供网络中的定制路径的数据面:分段路由(sr)多协议标签交换(multi-protocollabelswitching,mpls)(sr-mpls)和sr-互联网协议(internetprotocol,ip)版本6(internetprotocolversion6,ipv6)(sr-ipv6)。在sr-mpls中,每个分段被编码为标签,并且分段的有序列表被编码为包头中的标签栈。类似地,在sr-ipv6中,每个分段被编码为分段路由头(segmentroutingheader,srh)中的ipv6地址。



技术实现要素:

根据本公开的第一方面,提供了一种由网络中的网元(networkelement,ne)实现的方法,该方法包括:ne接收包括优选路径路由(preferredpathroute,ppr)信息的通告,ppr信息表示网络中从源到目的地的ppr并且包括ppr标识符(ppridentifier,ppr-id)和多个ppr描述元素(pprdescriptionelement,ppr-pde),上述多个ppr-pde中的每个ppr-pde表示ppr上的一个元素;ne接收包括ppr-id的数据包;以及ne基于上述多个ppr-pde向ppr上的下一元素转发具有该ppr-id的数据包。

在根据第一方面的方法的第一实施方式中,该方法还包括:ne响应于确定上述多个ppr-pde之一中标识了该ne,将转发数据库更新为包括条目,该条目包括该目的地对应的目的地址的ppr信息,并且其中,该条目指示应沿ppr信息中包括的ppr-id标识的ppr转发包括该ppr-id的数据包。

在根据第一方面的方法的第二实施方式或第一方面的任何前述实施方式中,ppr-id是以下至少之一:多协议标签交换(multi-protocollabelswitching,mpls)标签、分段标识符(segmentidentifier,sid)、互联网协议(internetprotocol,ip)版本4(ipv4)地址、或ip版本6(ipversion6,ipv6)地址。

在根据第一方面的方法的第三实施方式或第一方面的任何前述实施方式中,ppr基于客户端请求的网络特性偏离源和目的地之间的预定最短路径。

在根据第一方面的方法的第四实施方式或第一方面的任何前述实施方式中,该方法还包括接收器接收与附着到ne的多个源相关的业务工程(trafficengineering,te)源路由路径信息,其中,te源路由路径信息包括上述多个源中的源的ppr信息。

在根据第一方面的方法的第五实施方式或第一方面的任何前述实施方式中,上述多个ppr-pde中的每个ppr-pde表示ppr上的拓扑元素或非拓扑元素,其中,拓扑元素包括网元或链路中的至少之一,并且其中,非拓扑元素包括服务、功能、或上下文中的至少之一。

在根据第一方面的方法的第六实施方式或第一方面的任何前述实施方式中,通告包括设置为指示ppr-id标识源和目的地之间的严格ppr的标志,其中,上述多个ppr-pde描述ppr上的所有拓扑ne。

在根据第一方面的方法的第七实施方式或第一方面的任何前述实施方式中,通告包括设置为指示ppr-id标识源和目的地之间的宽松ppr的标志,其中,上述多个ppr-pde描述ppr上的拓扑ne的子集。

在根据第一方面的方法的第八实施方式或第一方面的任何前述实施方式中,网络实现多协议标签交换(mpls),其中,数据包包括底部标签和顶部标签,其中,底部标签包括ppr-id,并且其中,顶部标签包括标识ppr上的下一元素的标签。

根据本公开的第二方面,提供了一种在网络中实现的网元(ne)。该ne包括接收器以及耦合到接收器的发射器,该接收器用于接收包括优选路径路由(ppr)信息的通告,ppr信息表示网络中从源到目的地的ppr并且包括ppr-id和多个ppr-pde,上述多个ppr-pde中的每个ppr-pde表示ppr上的一个元素;以及接收包括ppr-id的数据包;该发射器用于基于上述多个ppr-pde向ppr上的下一元素转发具有该ppr-id的数据包。

在根据第二方面的ne的第一实施方式中,该ne还包括处理器,该处理器用于响应于确定上述多个ppr-pde之一中标识了该ne,将转发数据库更新为包括条目,该条目包括该目的地的目的地址的ppr信息,并且其中,该条目指示应沿ppr信息中包括的ppr-id标识的ppr转发包括该ppr-id的数据包。

在根据第二方面的ne的第二实施方式或第二方面的任何前述实施方式中,上述多个ppr-pde包括描述ppr上的每个元素的pde的有序列表,并且其中,上述ppr-pde中的每个ppr-pde包括指示该ppr-pde是拓扑元素还是非拓扑元素的标志,其中,拓扑元素包括网元或链路中的至少之一,并且其中,非拓扑元素包括服务、功能、或上下文中的至少之一。

在根据第二方面的ne的第三实施方式或第二方面的任何前述实施方式中,上述多个ppr-pde中的每个ppr-pde包括ppr上的相应元素的地址和定义地址的类型的pde-id。

在根据第二方面的ne的第四实施方式或第二方面的任何前述实施方式中,通告包括指示ne维持沿ppr传输的包括ppr-id的数据包的数量的计数的标志。

在根据第二方面的ne的第五实施方式或第二方面的任何前述实施方式中,从网络的中心实体接收ppr信息。

根据本公开的第三方面,提供了一种非暂时性介质,上述非暂时性介质用于存储包括计算机可执行指令的计算机程序产品,当由处理器执行时,计算机可执行指令使得处理器接收包括ppr信息的通告,ppr信息表示网络中从源到目的地的ppr并且包括ppr-id和多个ppr-pde,上述多个ppr-pde中的每个ppr-pde表示ppr上的一个元素;接收包括该ppr-id的数据包;以及基于上述多个ppr-pde向ppr上的下一元素转发具有ppr-id的数据包。

在根据第三方面的非暂时性介质的第一实施方式中,通告包括表示目的地的前缀和该前缀的类型。

在根据第三方面的非暂时性介质的第二实施方式或第三方面的任何前述实施方式中,从网络的网元或中心实体接收通告。

在根据第三方面的非暂时性介质的第三实施方式或第三方面的任何前述实施方式中,当由处理器执行时,计算机可执行指令还使得处理器:响应于确定上述多个ppr-pde之一中标识了当前网元,将转发数据库更新为包括条目,该条目包括该目的地的目的地址的ppr信息。

在根据第三方面的非暂时性介质的第四实施方式或第三方面的任何前述实施方式中,ppr-id是以下至少之一:多协议标签交换(mpls)标签、分段标识符(sid)、互联网协议(ip)版本4(ipv4)地址、或ip版本6(ipv6)地址。

在根据第三方面的非暂时性介质的第五实施方式或第三方面的任何前述实施方式中,ppr-pde中的每个ppr-pde包括ppr上的相应元素的地址。

在根据第三方面的非暂时性介质的第六实施方式或第三方面的任何前述实施方式中,上述ppr-pde中的每个ppr-pde表示ppr上的拓扑元素或非拓扑元素,其中,拓扑元素包括网元或链路中的至少之一,并且其中,非拓扑元素包括服务、功能、或上下文中的至少之一。

为了清楚起见,前述实施例中的任何一个实施例可以与其他前述实施例中的任何一个或多个实施例组合以创建在本公开范围内的新实施例。

通过以下结合附图和权利要求的具体实施方式,将更清楚地理解这些特征和其他特征。

附图说明

为了更全面地理解本公开,现在结合附图和具体实施方式参考以下简要描述,其中,相似的附图标记表示相似的部分。

图1是示出根据本公开的各种实施例的用于实现优选路径路由的网络的图。

图2是示出根据本公开的各种实施例的用于实现优选路径路由的网络的图。

图3是根据本公开的各种实施例的用于实现优选路径路由的网络中的ne的实施例。

图4a是示出根据本公开的各种实施例的转发到网络中所有ne的包括ppr信息的通告的图。

图4b是示出根据本公开的各种实施例的图4a所示的通告的字段中包括的ppr信息的图。

图4c是示出根据本公开的各种实施例的应根据ppr转发的包括ppr信息的数据包的图。

图5a至图5g、图6a至图6g、以及图7a至图7g是示出根据各种不同协议的通告和通告内的字段的示例的图。

图8是根据本公开的各种实施例的实现在网络中通告和编程ppr的方法。

图9是根据本公开的各种实施例的实现在控制面中通告ppr并在数据面中编程ppr的另一方法。

图10是根据本公开的各种实施例的实现在网络中通告和编程ppr的另一方法。

图11示出根据本公开的各种实施例的用于在网络中通告和编程ppr的设备。

具体实施方式

首先,应理解,虽然以下提供了一个或多个实施例的示例性实施方式,但是可以使用任何数量的当前已知或现有的技术来实现所公开的系统和/或方法。本公开不应限于以下示出的示例性实施方式、附图、以及技术(包括本文中示出和描述的示例性设计和实施方式),而是可以在所附权利要求的范围及其等同物的全部范围内进行修改。

已经针对mpls数据面和ipv6数据面定义了诸如分段路由的源路由机制。然而,使用mpls数据面或ipv6数据面实现源路由的网络可能会存在(基于部署场景)与增加的路径开销、硬件兼容性、以及服务质量(qualityofservice,qos)有关的重要问题。例如,在mpls网络或ipv6网络中实现源路由的数据包通常具有头,这些头可能包括路径上每个节点或分段的地址或标签。

本文公开的各种实施例旨在克服在网络中实现分段路由和/或源路由时出现的增加的路径开销、硬件兼容性、以及qos挑战。在实施例中,确定源和目的地之间的优选路径路由(preferredpathroute,ppr)(在本文中也称为“优选路径”或“ppr路径”),其中,ppr是基于应用或服务要求确定的路径,并且可能会偏离源和目的地之间的预定最短路径。在实施例中,网络中的网元(networkelement,ne)接收描述ppr的ppr信息。在实施例中,ppr信息包括优选路径路由(ppr)标识符(identifier,id)(preferredpathrouteidentifier,ppr-id)和ppr上的元素的标识符。在实施例中,在控制面中,ne通过通告向网络中的所有其他ne转发ppr信息。在实施例中,在数据面中,ppr中的ne使用ppr-id更新本地转发数据库,并确定通告的ppr信息中标识的各个ne(下一跳信息)。由此,当ne在数据面中接收到包括ppr-id的数据包时,ne沿该ppr而非最短路径转发数据包。

图1是示出根据本公开的各种实施例的用于实现优选路径路由的网络100的图。网络100包括中心实体103(在本文中也称为“控制器”)以及通过链路160互连的两个ne150和154。中心实体103可以是诸如路径计算单元(pathcomputationelement,pce)的控制器,标题为“pathcomputationelementcommunicationprotocol(pcep)extensionsforpce-initiatedlspsetupinastatefulpcemodel”,作者为e.crabbe,2017年12月发表的互联网工程任务组(internetengineeringtaskforce,ietf)请求评论(requestforcomment,rfc)8281中进一步描述了pce。假设网络100实现sr-mpls和sr-ipv6,则中心实体103可以是软件定义网络控制器(softwaredefinednetworkcontroller,sdnc),标题为“segmentroutingarchitecture”,作者为c.filsfils,2018年7月发表的ietfrfc文档中进一步描述了sdnc。

ne150和154(在本文中也称为“节点”)可以是用于使用本文公开的优选路径路由机制执行交换和路由的物理设备(例如路由器、网桥、虚拟机、网络交换机)或逻辑设备。在实施例中,ne150和154可以是位于网络100边缘的前端节点。例如,ne150可以是接收业务(例如控制包和数据包)的入口节点,ne154可以是发送业务的出口节点。

链路160可以是将每个ne150和154互连以及将每个ne150和154互连到中心实体103的有线或无线链路或接口。虽然ne150和154在图1中示为前端节点,但应理解,ne150和154也可以是中间节点或任何其他类型的ne。虽然图1中仅示出了两个ne150和154,但应理解,图1所示的网络100可以包括任何数量的ne。在实施例中,中心实体103以及ne150和154用于实现各种包转发协议,例如但不限于mpls、ipv4、ipv6、以及大包协议。

在网络100中,ne150和154可以在两个方向上与中心实体103通信。也就是说,中心实体103可以使用诸如openflow、路径计算单元协议(pathcomputationelementprotocol,pcep)的各种协议或使用netconf/restconf和yang数据模型来发送从中心实体103到ne150和154的南向通信。标题为“yangdatamodelforpreferredpathrouting”,作者为y.qu,2018年6月27日发表的lsr工作组草案文档中描述了yang数据模型。ne150和154可以使用诸如边界网关协议(bordergatewayprotocol,bgp)(链路状态(linkstate,ls)或igp静态邻接)的各种协议来发送从ne150和154到中心实体103的北向通信。

在实施例中,中心实体103使用存储在中心实体103的网络100的网络拓扑来生成图1所示的网络的源和目的地之间的路径。例如,中心实体103可以使用网络100中的各个ne150和154发送的通告来确定网络拓扑,其中,这些通告可以包括前缀、sid、业务工程(trafficengineering,te)信息、相邻网元、链路、接口、端口、以及路由的id。

在实施例中,中心实体103确定源和目的地之间的最短路径以及源和目的地之间的一个或多个ppr。最短路径是指基于度量确定的源和目的地之间的路径,这种度量例如是路径上每个链路相关的成本或权重、路径上的ne数量、路径上的链路数量等。在实施例中,可以使用dijkstra的最短路径优先(shortestpathfirst,spf)算法计算目的地的最短路径。ppr(在本文中也称为“非最短路径”)是指基于一个或多个应用或服务要求创建的定制路径。

在实施例中,ppr可以是偏离针对特定源和目的地计算的最短路径的路径。可以基于对源和目的地之间满足一个或多个网络特性(例如中心实体103通过bgp-ls或pcep动态获得的te特性)或服务要求的路径的应用或服务器请求来确定ppr。ppr和最短路径可以各自包括ppr上的一个或多个ne150和154和/或ppr上的一个或多个链路160的顺序排序,这些ne和/或链路可以由标签、地址、或id标识。以下将参考图2进一步描述最短路径和ppr的示例。

在实现sr的传统网络中,可以使用分段而非单跳来描述业务工程(te)路径。如上所述,当前存在以下两种使用分段路由来创建网络的te路径的数据面:sr-mpls和sr-ipv6。

在sr-mpls网络和sr-ipv6网络中,te路径和分段分别通过诸如pce或sdnc的中心实体103提供。在mpls网络和ipv6网络中,底层内部网关协议(interiorgatewayprotocol,igp)使用通过网络100中每个ne150和154处的最短路径优先(spf)方法确定的下一跳来计算和编程路由信息库(routinginformationbase,rib)、转发信息库(forwardinginformationbase,fib)、标签信息库(labelinformationbase,lib)、以及标签转发信息库(labelforwardinginformationbase,lfib)。rib/lib是控制面中的路由前缀的路由协议数据库,而fib/lfib用于转发并且可以存储路由表以及下一跳信息。

在实现分段路由的sr-mpls网络中,可以将标签栈压入ne150处接收到的数据包,其中每个标签可以表示转发数据包所沿的te路径的分段的sid。每个标签可以指示前缀分段或邻接分段。

在实现分段路由的sr-ipv6网络中,通过在扩展头中列出te路径上的路径分段来使用扩展头,这在标题为“ipv6segmentroutingheader(srh)”,作者为s.previdi,2018年1月20日发表的网络工作组(networkworkinggroup,nwg)草案文档中进一步描述。栈中sid的数量可以称为最大sid深度,在实现分段路由的网络100中传输数据包时需要考虑最大sid深度。与在中间系统-中间系统(intermediatesystem–intermediatesystem,is-is)网络中考虑的最大sid深度的因素有关的信息在标题为“signalingmsd(maximumsiddepth)usingis-is”,作者为j.tantsura,2018年1月10日发表的is-is工作组草案文档中进一步描述。这种信息还在标题为“signalingentropylabelcapabilityandreadablelabel-stackdepthusingis-is”,作者为x.xu,2018年1月3日发表的is-is工作组草稿文档中进一步描述。

如这些文档中所述,网络100维护ne150和154,以确保srh中的标签栈和地址栈可以压入ne150处的数据包并且可以在ne150和154适当地读取。然而,这产生了以下问题:相对大量的数据被压入数据包,压入的数据有时甚至大于数据包本身的有效载荷。例如,当基于网络特性(例如te路径的带宽、抖动、以及时延要求)创建te标签栈时,传输标签本身可以达到4到12个标签,即16到48个字节。传输标签栈中的标签数量可以基于网络100的部署参数和大小而变化。由此,传输标签可能包括12个以上的标签。特别是对于发送仅包含较小的有效载荷但其中可能有大量标签栈的包的设备(例如物联网(internetofthings,iot)设备),传输包括这些标签栈的包产生了巨大的成本。

此问题在ipv6数据面中更为严重,例如,即使在srh中只有4到8个分段,头也可能包括40字节的ipv6封装、8字节的srh、以及srh中的63到128字节的ipv6分段,总共112到176个字节。因此,在这两种网络中,甚至在未包括适用于这些组网环境的其他类型的封装的情况下,对于1到3字节的较小实际数据有效负载,开销的传输部分也在16到176字节之间。

此外,某些协议要求将特定标签或指示符放置在栈上的特定位置。例如,熵标签指示符(entropylabelindicator,eli)、熵标签(entropylabel,el)、以及能力eli应适当地放置在标签栈上的某个位置。因此,对于使用熵标签的网络,需要对sid栈进行操纵,这在标题为“theuseofentropylabelsinmplsforwarding”,作者为k.kompella,2012年11月发表的ietfrfc6790中进一步定义。此外,由于实现ip版本4的网络(ipv4网络)可能甚至不用于在网络服务平台(networkserviceplatform,nsp)上路由数据包,因此该网络可能在未使用mpls封装或其他逐跳封装(ipv4/ipv6/gre/udp,可以快速增加各层的网络开销)对包进行封装的情况下,仅基于最短路径将包引导到下一跳。

本公开的实施例针对用于消除使用sr标签栈或srh将网络100中的ne150和154编码为沿ppr而非最短路径传输包的需求的方法、系统、以及设备。在控制面中,中心实体103确定与附着到前端ne150或154的源有关的te路径信息。在实施例中,te路径信息包括与源和目的地对之间的特定ppr有关的ppr信息。在实施例中,ppr信息包括标识ppr的ppr-id(在本文中也称为“nsp转发id”(nspforwardingid,nspf-id))和按顺序描述ppr上的每个元素的一个或多个优选路径路由路径描述元素(preferredpathrouting-pathdescriptionelement,ppr-pde)(在本文中也称为“路径id”)。中心实体103向网络100中的ne150或154发送包括ppr信息的te路径信息。

继续控制面,在实施例中,如以下将参考图2进一步描述,网络100中的每个ne150和154可以用于存储ppr信息并通过向网络100中的所有其他ne150或154发送包括ppr信息的通告来通告从中心实体103接收的ppr。在实施例中,通告可以包括ppr信息,例如ppr-id和一个或多个ppr-pde,每个ppr-pde描述ppr上的一个元素。网络100中接收到通告的每个ne150和154首先确定一个或多个通告的ppr的ppr-pde中是否标识了该ne150或154。如果标识了,则该ne150或154更新本地存储的转发数据库,以指示应沿ppr而非预定最短路径路由包括该特定ppr-id的数据包。

在数据面中,当ne150或154接收到数据包时,ne150或154检查数据包以确定该数据包中是否包括ppr-id。在实施例中,ppr-id可以包括在数据包头中。如果数据包中包括ppr-id,则ne150或154对本地存储的转发数据库执行查找,以确定与数据包中标识的ppr-id关联的下一ppr-pde。本地存储的转发数据库中的ppr-pde指示转发数据包所经过的下一跳(另一ne、链路、或分段)。ne150或154基于本地存储的转发数据库中指示的ppr-pde将数据包转发到下一跳。由此,网络中的ne150或154用于经由ppr而非最短路径传输数据包。

虽然图1示出了包括用于确定ppr信息并将ppr信息发送到ne150或154的中心实体103的网络100,但是ne150或154也可以通过其他源接收ppr信息。在实施例中,运营商可以将网络100中的ne150和154之一配置为包括并存储te源路由路径信息。在这种情况下,ne150或154仍用于向网络100中的所有其他ne150和154发送包括ppr信息的通告。在网络100不实现igp泛洪机制的实施例中,中心实体103可以是连接到网络100中各个ne150和154的控制器。在此实施例中,将中心实体103手动配置为向网络100中的所有其他ne150和154发送包括ppr信息的通告,而非仅向单个ne150或154发送该通告。

在实现分段路由的典型网络中,从中心实体103接收到ppr信息的ne150和154将该信息存储在本地转发数据库中,从而当接收到应在ppr上转发的数据包时可以查找到该信息。传统上,当ne150或154接收到应在ppr上转发的数据包时,ne150或154将标识ppr上的每个ne的标签、地址、或id的栈压入数据包。由于数据包沿ppr转发,所以ppr上的每个ne弹出栈顶元素(在这种情况下,底层数据面使用mpls),该栈顶元素是下一分段或下一跳的id。如上所述,在路径转发中使用栈效率低并且浪费。因此,在本公开的实施例中,每个ne150和154向网络100中的所有不同ne150和154通告、发送、或泛洪从中心实体103接收的ppr信息以及路径ppr-id的数据面标识符。由此,消除了沿ppr转发数据包中栈的使用。

图2是根据本公开的各种实施例的用于实现优选路径路由的网络200的图。网络200类似于网络100,不同之处在于网络200包括源270、目的地280、以及元素201-219和250-261。元素201-219和250-261包括ne250-261和链路201-219。源270经由链路218耦合到ne250,目的地280经由链路219耦合到ne255。ne250-261通过链路201-217互连。

网络200包括拓扑ne和非拓扑ne。拓扑ne是指物理设备,例如ne250-259和链路201-219。非拓扑ne是指非物理设备,例如ne260-261,这将在以下进一步描述。

ne250-259是拓扑ne,并且类似于图1中描述的ne150和154,类似之处在于每个拓扑ne250-259是用于使用本文公开的ppr机制执行交换和路由的物理设备,例如路由器、网桥、网络交换机、或任何其他类型的设备。

ne260-261是非拓扑ne,例如功能、上下文、服务、或虚拟机。如图2所示,非拓扑ne260附着到或托管于ne259,非拓扑ne261附着到或托管于ne257。在实施例中,非拓扑ne260或ne261可以直接托管于各个附着的拓扑ne257或259。在实施例中,可以在各个附着的拓扑ne257或259外部的另一节点、设备、或服务器执行非拓扑ne260或261。

链路201-219也是拓扑ne,并且类似于图1中描述的链路160,类似之处在于每个链路201-219可以是用于互连ne250-261、源270、以及目的地280的有线链路或无线链路。

如图2所示,一些ne可以通过多个链路互连。例如,ne251和252通过链路202、203、204互连。类似地,ne253和254通过链路207和208互连。如本文所公开的,术语元素201-219和250-261可以是指网络100内的一个或多个拓扑ne250-259、非拓扑ne260-261、和/或链路201-219。

每个链路201-219与跨相应链路201-219传输数据关联的双向度量或权重关联。例如,链路201-219的双向度量可以是与跨链路传输包的时序关联的成本、传输包所跨的距离、跨链路传输包的物理成本、跨链路传输包所用的带宽比例、两个端节点之间的链路上存在的中间节点的数量等。双向度量用于计算源和目的地之间的最短路径,这将在下文进一步描述。

在实施例中,入口ne250接收ppr信息,该ppr信息指示基于由源270处的应用或服务请求的性能特性或网络特性计算的源和目的地(例如源270和目的地280)之间的一个或多个ppr。在控制面中,入口ne250从中心实体103(参见图1)接收到一个或多个控制包,这些控制包包括与附着到入口ne250的所有源(例如源270)有关的ppr的ppr信息。在实施例中,网络200的运营商可以将与附着到入口ne250的所有源有关的ppr的ppr信息输入入口ne250。

ppr信息可以包括标识ppr的ppr-id和ppr-pde的有序列表。在实施例中,ppr-id包括描述和标识ppr的单个标签或目的地址。例如,当网络200实现sr-mpls时,ppr-id可以是标识ppr的mpls标签或sid。当网络200实现srv6时,ppr-id可以是标识ppr的srv6sid。当网络200实现ipv4时,ppr-id可以是标识ppr的ipv4地址或前缀。类似地,当网络200实现ipv6时,ppr-id可以是标识ppr的ipv6地址或前缀。

在实施例中,ppr-pde包括与ppr上的拓扑ne250-259、非拓扑ne260-261、和/或链路201-219中的一个或多个有关的细节。在实施例中,ppr-pde包括指定指向目的地址(在本文也称为前缀)的实际路径(例如拓扑ne250-259、非拓扑ne260-261、和/或链路201-219中的一个或多个)的mpls标签、ipv6地址、或ipv4地址的顺序排序。

在各种实施例中,ppr-pde可以描述两种类型的ppr:严格ppr和宽松ppr。在严格ppr中,沿ppr的每个拓扑ne250-259都在其自身的ppr-pde中指定或描述。在宽松ppr中,可以跳过沿ppr的某些跳,从而只有沿ppr的拓扑ne250-259、链路201-219、或分段的子集在其自身的ppr-pde中指定或描述。当ppr-pde描述宽松ppr时,沿路径的拓扑ne250-259在ppr-pde中未明确指定的元素之间使用最短路径路由(即,以到达宽松ppr的下一拓扑pde)。

入口ne250在接收到ppr信息之后,使用网络200的底层igp经由上述各种协议向网络200中的所有其他拓扑ne251-259通告ppr信息。在另一实施例中,诸如控制器的中心实体103直接向网络200中的所有拓扑ne250-259发送所有ppr信息。

在通告ppr信息后,接收到ppr信息的每个ne251-259在数据面计算和编程ppr。例如,在ne250向其他ne251-259通告ppr信息后,每个其他ne251-259首先确定ppr信息的ppr-pde中是否标识了特定拓扑ne251-259或附着的非拓扑ne260-261。其他ne251-259用于当ppr信息的ppr-pde中未标识其他ne251-259或附着到其他ne的其他非拓扑ne160-161时,忽略该通告。

在实施例中,ppr信息的ppr-pde中标识的每个其他拓扑ne251-259用于将本地转发数据库更新为包括条目,该条目包括目的地280对应的目的地址的ppr信息。在实施例中,当ppr信息的ppr-pde中标识了附着到其他拓扑ne251-259的非拓扑ne260-261时,其他拓扑ne251-259将本地转发数据库更新为包括条目,该条目包括目的地280对应的目的地址的ppr信息。在实施例中,通过添加特定目的id或地址的另一条目来更新本地转发数据库,该条目包括ppr-id、ppr-id对应的每个ppr-pde、和/或ppr上数据包转发到的下一节点的id或地址。

在ppr-pde包括非拓扑ne260-261的id的实施例中,拓扑ne250-259还用于确定ppr信息的ppr-pde中是否标识了任何附着到或托管于相应拓扑ne259和257的非拓扑ne260-261。例如,当拓扑ne257接收到具有ppr信息的通告时,拓扑ne257确定通告的ppr-pde中是否标识了拓扑ne257和/或非拓扑ne261。拓扑ne257可以检查通告以确定通告的ppr-pde中是否包括非拓扑ne261的id。类似地,当拓扑ne259接收到具有ppr信息的通告时,拓扑ne259确定通告的ppr-pde中是否标识了拓扑ne259和/或非拓扑ne260。

在实施例中,拓扑ne257忽略不包括与拓扑ne257和/或非拓扑ne261有关的信息的通告。类似地,拓扑ne259忽略不包括与拓扑ne259和/或非拓扑ne260有关的信息的通告。

在实施例中,当非拓扑ne260-261直接托管于拓扑ne259或257时,拓扑ne259或257通过添加针对特定目的id或地址的包括ppr-id的另一条目来更新本地转发数据库,以指示包括该ppr-id的数据包在转发到由ppr-pde标识的下一跳之前应由非拓扑ne260-261处理。

在实施例中,当接收到包括与附着的非拓扑ne260-261有关的信息的通告时,每个拓扑ne257和259更新本地转发数据库,以指示包括该ppr-id的数据包应转发到下一元素(例如标识的非拓扑ne260-261)。

例如,每个拓扑ne257和259用于在转发数据库中添加通告中标识的目的地址和ppr-id的条目,其中,该条目包括附着的非拓扑ne260-261的所通告的标识符。当拓扑ne257接收到包括该ppr-id和/或目的地址的数据包时,拓扑ne257基于该ppr-id和/或目的地址对转发数据库执行查找,以获得包括附着的非拓扑ne261的标识符的条目。基于上述查找,拓扑ne257向非拓扑ne261转发包,非拓扑ne261可以对数据包执行功能、服务、或上下文。

在实施例中,在将功能、服务、或上下文托管于非拓扑ne261之后,非拓扑ne261将数据包转发回拓扑ne257。在此实施例中,拓扑ne257对转发数据库执行另一查找,以确定数据包转发到的下一元素。

在另一实施例中,非拓扑ne261可以执行类似的查找,以确定数据包转发到的下一元素(拓扑ne250-259、非拓扑ne260-261、或链路201-219)。在此实施例中,非拓扑ne261向通告中标识的ppr-pde标识的下一元素转发数据包。拓扑ne260和附着的非拓扑ne259对接收到的数据包执行类似的步骤。

即使ne250-259在本地转发数据库中包括转发信息以通过最短路径221为目的地址发送数据,ne250-259也在本地转发数据库中包括转发信息以通过ppr220a-b向目的地发送数据。在实施例中,网络200基于源270处的应用或服务请求的性能特性或网络特性来确定ppr220a-b。在实施例中,网络特性或性能特性是指带宽、抖动、时延、吞吐量、或错误率中的至少之一。

第一ppr220a可以由ppr-id=2标识,并且可以包括针对与出口ne255关联的前缀(或目的地址)的路径{ne250,ne253,ne254,ne255}。第二ppr220b可以由ppr-id=3标识,并且可以包括路径{ne250,ne256,ne257,ne258,ne255}。因为路径{ne250,ne256,ne257,ne258,ne255}包括ppr220b上的每个ne,所以第二ppr220b在图2中示出并描述为严格ppr220b。然而,在实施例中,第二ppr220b也可以是宽松ppr220b,其中描述宽松ppr220b的ppr-pde仅包括ppr220b上的ne的子集。在这种情况下,描述宽松ppr220b的ppr信息中使用的ppr-pde可以仅包括与{ne250,ne256,ne258,ne255}有关的细节。

在控制面中,在实施例中,中心实体103可以向入口ne250发送出口ne255的前缀的ppr信息,该ppr信息包括[ppr-id=2和{ne250,ne253,ne254,ne255}]和[ppr-id=3和{ne250,ne256,ne257,ne258,ne255}]。ppr信息可以包括正在通告的两个ppr220a-b的一个或多个元素201-219和250-261(例如拓扑ne250-259、非拓扑ne260-261、以及链路201-219)的标签、地址、或id。在ppr220b描述为宽松ppr220b的情况下,描述ppr220b的ppr信息包括[ppr-id=3和{ne250,ne256,ne258,ne255}]。

继续控制面实施方式,在入口ne250接收到ppr信息之后,入口ne250可以将本地转发表更新为包括该ppr信息。在实施例中,入口ne250可以标识本地转发数据库中的第一和第二ppr220a-b的出口ne255的前缀或目的地址对应的条目。在实施例中,入口ne250然后可以添加此目的地或前缀对应的另外两个条目,其中,对于出口ne255的前缀,第一条目包括第一ppr220a的ppr信息[ppr-id=2和{ne250,ne253,ne254,ne255}],第二条目包括第二ppr220b的ppr信息[ppr-id=3和{ne250,ne256,ne257,ne258,ne255}]。在实施例中,条目可以包括ppr-id以及ppr220a-b上的一个或多个元素201-219和250-261(拓扑ne250-259、非拓扑ne260-261、或链路201-219)的标签、地址、或id。在ppr220b描述为宽松ppr220b的情况下,第二条目包括出口ne255的前缀的第二ppr220b的ppr信息[ppr-id=3和{ne250,ne256,ne258,ne255}]。

继续控制面实施方式,在实施例中,入口ne250向网络200中的所有其他拓扑ne251-259通告ppr信息。通告的示例可以在以下参考图4至图7进一步描述。所有其他拓扑ne251-259可以以类似于入口ne250更新本地转发数据库的方式将本地转发数据库更新为包括ppr信息。

每个接收ne251-259确定在正在通告的ppr信息中是否标识了相应的ne251-259或附着的非拓扑ne260-261。例如,假设ne257接收到ppr信息。因为此ppr220a不包括ne257,所以ne257可以用于忽略由ppr-id=2标识的第一ppr220a。然而,ne257确定由ppr-id=3标识的第二ppr220b标识了ne257以及出口ne255的目的地址或前缀。因此,ne257将本地转发数据库更新为包括ne255的目的地址或前缀的条目,以包括与ppr220b有关的ppr信息。

在实施例中,ne257将本地转发数据库更新为包括ppr220a-b上包括ppr-id3的数据包发送到的下一ne258的标签、地址、或id。在实施例中,ne257将本地转发数据库更新为包括与第二ppr220b上的所有元素201-219或250-261(拓扑ne250-259、非拓扑ne260-261、或链路201-219)有关的所有ppr-pde。

在执行上述控制面实施方式步骤之后,本文公开的实施例使当数据包包括特定ppr-id时,ne250-259能够在数据面中沿ppr220a-b转发数据包。在数据面中,在更新本地转发数据库之后,ne250-259可以用于检查数据包,以首先确定数据包中是否包括ppr-id。在实施例中,ppr-id可以包括在数据包头中。ne250-259用于当数据包中包括ppr-id时,基于与ppr-id关联存储在本地转发数据库中的ppr-pde,沿ppr220a-b而非最短路径转发数据包。例如,ne257向ne258而非ne259转发包括ppr-id3的数据包。

在实现mpls的网络的数据面中,可以使用包括ppr-id的sid类型或mpls标签在数据包中实现严格ppr220a-b。在实现mpls的网络的数据面中,可以使用两个mpls标签在数据包中实现宽松ppr220b。在实施例中,顶部标签包括最短路径标签或ppr220b上的下一元素201-219和250-261的sid,底部标签包括ppr-id。

例如,入口ne250可以接收具有顶部标签的数据包,该顶部标签包括标识宽松ppr220b({ne250,ne256,ne258,ne255})的ppr-id3。宽松ppr220b上的每个ne250、256、258、255在本地转发数据库中包括条目,这些条目基于在网络200中泛洪的描述宽松ppr220b的ppr信息来标识ppr220b上的下一元素201-219和250-261。在实施例中,ne250-259在标识ppr-id的mpls标签的“顶部”添加另一mpls标签。响应于识别出本地转发数据库中包括的ppr220b上的下一元素201-219和250-261未附着到当前ne250-259,顶部mpls标签包括最短路径标签或ppr220b上的下一元素201-219和250-261的sid。例如,当ne256接收到其中第一mpls标签包括ppr-id3的数据包时,ne256对本地转发数据库执行查找,以确定ppr220b上的下一元素201-219和250-261被通告为非直接附着到ne256的ne258。在实施例中,ne256然后将另一标签添加到第一mpls标签的顶部,其中,该另一标签标识ne258。在实施例中,ne256然后基于lsdb识别根据最短路径发送数据包的下一跳,lsdb指示最短路径中的下一跳。然后,ne256根据最短路径中的下一跳(可能是ne257)转发数据包。ne257再次执行本地mpls最短路径转发,以确定最短路径中的下一跳为ne258,然后向ne258转发数据包。在实施例中,一旦数据包到达ne258(在本地转发数据库中标识为ppr220b上的元素201-219和250-261),则ne258从数据包中弹出第二标签。由此,通过使用宽松ppr220a-b通告的ppr220a-b传输的数据包利用了ppr-id和最短路径机制。

图3是诸如网络100或200的网络中的ne300的实施例的图。ne300可以实现为中心实体103或ne250-261。ne300可以用于实现和/或支持本文描述的路由机制。ne300可以在单个节点中实现,或者ne300的功能可以在多个节点中实现。本领域技术人员将认识到术语ne涵盖广泛的设备,其中ne300仅是示例。虽然ne300描述为诸如路由器或网关的物理设备,但是ne300也可以是实现为在服务器或通用路由硬件(白盒)上运行的路由器或网关的虚拟设备。

为了讨论的清楚而包括ne300,但是不意味将本公开的应用限制于特定ne实施例或一类ne实施例。本公开中描述的至少一些特征和/或方法可以在诸如ne300的网络设备或模块中实现。例如,本公开中的特征和/或方法可以使用硬件、固件、和/或安装并运行在硬件上的软件。如图3所示,ne300包括用于接收数据的一个或多个入口端口310和接收器单元(rx)320、用于处理数据的至少一个处理器、逻辑单元、或中央处理单元(centralprocessingunit,cpu)330、用于发送数据的发射器单元(tx)340和一个或多个出口端口350、以及用于存储数据的存储器360。

处理器330可以包括一个或多个多核处理器,并且耦合到可以用作数据存储器、缓冲器等的存储器360。处理器330可以实现为通用处理器,或者可以是一个或多个专用集成电路(applicationspecificintegratedcircuit,asic)和/或数字信号处理器(digitalsignalprocessor,dsp)的一部分。处理器330可以包括网络配置模块335,网络配置模块335可以执行中心实体103或ne250-259的处理功能。网络配置模块335还可以用于执行方法800、900、1000和/或本文讨论的任何其他方法的步骤。这样,网络配置模块335以及相关方法和系统的包括提供了对ne300的功能的改进。此外,网络配置模块335实现了特定物品(例如网络)到不同状态的转换。在替代实施例中,网络配置模块335可以实现为存储在存储器360中的指令,这些指令可以由处理器330执行。

存储器360可以包括用于临时存储内容的缓存器,例如随机存取存储器(random-accessmemory,ram)。此外,存储器360可以包括用于长期存储内容的长期存储器,例如只读存储器(read-onlymemory,rom)。例如,缓存器和长期存储器可以包括动态ram(dynamicram,dram)、固态驱动器(solid-statedrive,ssd)、硬盘、或其组合。存储器360可以用于存储ppr信息303,如将在以下参考图4至图7进一步描述,ppr信息303包括ppr-id333和ppr-pde366。此外,存储器360用于存储转发数据库343。在实施例中,转发数据库343存储条目,这些条目描述特定ne300(例如图2的ne250-259)应如何转发包括ppr-id333和/或目的地址的数据包的转发规则。

应理解,通过将可执行指令编程和/或加载到ne300上来改变处理器330和/或存储器360中的至少之一,从而将ne300部分转换为具有由本公开教导的新颖功能的特定机器或设备,例如多核转发架构。对于电气工程和软件工程领域,基本的是,可以通过将可执行软件加载到计算机中来实现的功能可以通过公知设计规则转换为硬件实现。在软件中实现概念和硬件实现中概念之间的决策通常取决于对设计的稳定性和生产的单元数量的考虑,而非取决于从软件域到硬件域的转换中涉及的任何问题。因为重新编写硬件实现比重新编写软件设计更昂贵,所以频繁更改的设计通常可能优选为以软件实现。因为对于大规模生产运行,硬件实现可能比软件实现更便宜,所以大批量生产的稳定设计通常可能优选为以硬件(例如以asic)实现。设计通常可以以软件形式进行开发和测试,然后软件通过公知设计规则转换为对软件指令进行硬布线的asic中的等效硬件实现。以与特定机器或设备中的新asic控制的机器相同的方式,已编程和/或加载可执行指令的计算机同样可以视为特定机器或设备。在一些实施例中,ne300可以用于基于网络实现来实现开放式最短路径优先(openshortestpathfirst,ospf)版本2(ospfv2)、ospfv3、is-is、或直接sdn控制器。

图4a示出了示出通告400的示例的图,通告400包括ppr信息303(参见图3)并且被发送到网络200(参见图2)中的所有拓扑ne251-259(参见图2)或非拓扑ne260-261(参见图2)。继续以上参考图2描述的示例,入口ne250向ne251-259发送包括ppr信息303的通告400,ppr信息303与第一ppr220a[ppr-id=2和{ne250,ne253,ne254,ne255}]和第二ppr220b[ppr-id=3和{ne250,ne256,ne257,ne258,ne255}]有关。在实施例中,入口ne250响应于从中心实体103(参见图1)或网络运营商接收到ppr信息303,向网络200中的所有其他ne251-259发送ppr信息303。

图4a所示的图是通告400的类型长度值(type-length-value,tlv),示出了通告400中包括的不同字段的至少一部分。如图4a所示,通告400包括类型字段403、长度字段406、标志字段409、前缀长度字段412、mt-id字段415、前缀字段418(在本文中也称为fec/前缀字段)、ppr-id字段421、ppr类型字段424、ppr-pde字段427(在本文中也称为路径字段)、属性字段430、和/或非路径子tlv字段433。ppr-pde字段427包括ppr-pde字段427a-n。在实施例中,每个ppr-pde字段427a-n包括ppr220a-b上的元素201-219或250-261(例如拓扑ne250-259、非拓扑ne260-261、或链路201-219)的标签、地址、或id。虽然通告400仅示为包括这些字段,但是应理解,通告400可以根据需要包括任何其他字段,从而包括与网络200中从源270到目的地280的ppr220a-b有关的信息。

类型字段403可以包括例如指示通告400的一部分包括ppr-id333和标识ppr(ppr-pde366)的信息的值。长度字段406指示通告400所示的字段的值的大小。标志字段409包括可以用于编码或解码通告400的内容的各种标志,以下将参考图5至图7进一步描述这些标志的示例。

在实施例中,标志字段409中可以存在指示前缀字段418中标识的目的地280的地址是ipv4地址还是ipv6地址的标志。标记字段409中还可以存在指示接收通告400的ne251-259是否应使其自身用于保持追踪ne251-259沿通告400标识的ppr220a-b转发数据包的次数的计数器的标记。由此,接收具有此标志的通告400的ne251-259可以用于保持ne251-259已沿通告400标识的ppr220a-b转发数据包的次数的计数。标志字段409中还可以存在指示特定ppr220a-b是否处于撤回或转发状态,或指示路由/标签是否删除的标志。mt-id415字段包括用发送时重置并在接收端忽略的4个最高有效比特定义的多拓扑id。其余12比特字段包含mt-id。

前缀长度字段412可以包括例如表示前缀字段418中包括的目的地址或id的最左连续比特的数量的值。在实施例中,前缀字段418包括通告400描述的ppr220a-b的目的地280的地址或id。

ppr-id字段421可以承载ppr-id333。ppr-id333是唯一标识ppr220a-b的id。例如,当通告400包括与第一ppr220a[ppr-id=2和{ne250,ne253,ne254,ne255}]有关的信息时,可以包括ppr-id3332,当通告400包括与第二ppr220b[ppr-id=3和{ne250,ne256,ne257,ne258,ne255}]有关的信息时,可以包括ppr-id3333。在实施例中,ppr-id333可以由中心实体103生成并发送到入口ne250。在另一实施例中,入口ne250可以用于生成在从中心实体103接收到的消息中定义的每个ppr220a-b的ppr-id333。

ppr类型字段424承载ppr类型。ppr类型定义ppr220a-220b上的元素201-219和250-261(拓扑ne250-259、非拓扑ne260-261、或链路201-219)的标签、地址、或id的类型,这些元素编码在ppr-pde字段427中。例如,可以存在ppr-id333的不同的可能编码方式对应的不同预设值。ppr-id333可以以多种不同方式编码,例如编码为ipv4地址、ipv6地址、或mpls标签。

当ppr-pde字段427包括ppr220a或220b上的一个或多个元素201-219和250-261的mpls标签时,则ppr类型可以包括mpls标签对应的预设值。当ppr-pde字段427包括ppr220a-b上的一个或多个元素201-219和250-261的ipv4地址时,则ppr类型可以包括ipv4地址对应的预设值。当ppr-pde字段427包括ppr220a-b上的一个或多个元素201-219和250-261的ipv6地址时,则ppr类型可以包括ipv6地址对应的预设值。

在实施例中,ppr-pde字段427包括由通告400描述的ppr220a-b上的一个或多个元素201-219和250-261的标签、地址、或标识符。ppr-pde字段427包括标识为在ppr220a-b上的每个元素201-219和250-261的子字段ppr-pde字段427a-n。每个ppr-pde字段427a-n包括ppr220a-b上的一个或多个元素201-219和250-261的标签、地址、或id。根据由ppr类型字段424指示的ppr类型对标签、地址、或id进行编码。ppr-pde字段427n中包括的标签、地址、或id用于ppr220a-b上的最后一个节点,因此可能与目的地280的地址相同,或者可能不同于目的地的地址(例如可以是出口ne255的标签、地址、或标识符)。

属性字段430可以包括用于调节网络200中的ne250-259之间的业务的其他特征。在实施例中,属性字段430承载对协议(基于ospfv2、ospfv3、isis、sdn的直接编程转发)不可知的业务计费参数。例如,在标题为“trafficaccountingformplssegmentroutingpaths”,作者为s.hedge,2017年10月30日发表的草案文档中进一步描述了这些业务计费参数。

继续参考图2描述的示例,可以如下对由入口ne250发送到所有其他ne251-259的使用严格优选路径路由的两个通告400进行编码:

(1)对于ppr-id=2→type:len:flags:prefix-len64:prefix2001:fe::xxx:ppr-idlabel:ne250:ne253:ne254:ne255;

(2)对于ppr-id=3→type:len:flags:prefix-len64:prefix2021:fe::xxx:ppr-idipv6address:ne250:ne257:ne257:ne258:ne255。

通告400包括可以编码在从网络200中的中心实体103发送到ne250-259或网络200中的ne250-259之间的控制消息中的信息。可以在实现诸如is-is(如下图5a至图5g所示)或ospf(即ospfv2或ospfv3)(如下图6a至图6g和图7a至图7g所示)的igp的网络中发送和接收图4a所示的tlv图。一种实现方法是使用多拓扑感知的igp绑定tlv、用于is-is的新顶级tlv、或ospf中的扩展前缀lsa的顶级tlv来通告ppr220a-b。标题为“ospfv2prefix/linkattributeadvertisement”,作者为p.psenak,2015年11月发表的ietfrfc7684中进一步描述了扩展前缀lsa,并且nspfidtlv可以是扩展前缀lsa的一部分。

通告400可以包括在现有协议的另一消息中,或者可以是为现有协议或新协议创建的新消息。然而,应理解,本文公开的通告400可以通过任何协议进行编码,并且可以包括图4a所示的一个或多个字段。接收ne251-259根据需要使用图4a所示的通告400更新ne251-259的本地转发数据库343中的状态。

图4b是示出根据本公开的各种实施例的图4a所示的通告400的字段中包括的ppr信息303的图。如图4b所示,ppr信息303包括ppr-id333、ppr类型443、以及一个或多个ppr-pde366a-n。应理解,图4b所示的ppr信息303可以仅是与通告400中发送的一个或多个ppr220a-b有关的信息的一部分。

ppr-id333是唯一标识ppr220a-b的id。在实施例中,ppr-id333承载在通告400的ppr-id字段421中。ppr-类型443定义了ppr220a-b上的一个或多个元素201-219和250-261(拓扑ne250-259、非拓扑ne260-261、或链路201-219)的标签、地址、或id编码在ppr-pde字段427中的方式。在实施例中,ppr类型443承载在ppr类型字段424中。

ppr-pde366a-n各自包括表示通告400正在通告的ppr220a-b上的一个或多个元素201-219和250-261的标签、地址、或id。在实施例中,通告400可以通过包括通告的ppr220a上的每个元素201-219和/或250-261(例如拓扑ne250-259、非拓扑ne260-261、和/或链路201-219)的ppr-pde366a-n来通告严格ppr220a。例如,可以通过发送包括ppr-pde366a-d的通告400来将第一ppr220a通告为严格ppr220a,其中,ppr-pde366a包括ne250的地址,ppr-pde366b包括ne253的地址,ppr-pde366c包括ne254的地址,ppr-pde366d包括ne255的地址。由此,通过在通告400中包括ppr220a上的每个ne的地址来通告严格ppr220a。ne250、ne253、ne254、ne255中的每个ne可以使用ppr-pde366a-d识别数据包转发到的下一ne。

在实施例中,通告400可以通过包括通告的ppr220b上的元素201-219和250-261的子集的ppr-pde366a-n来通告宽松ppr220b。例如,可以通过发送包括ppr-pde366a-d的通告400来将第二ppr220b通告为宽松ppr220b,其中ppr-pde366a包括ne250的地址,ppr-pde366b包括ne256的地址,ppr-pde366c包括ne258的地址,ppr-pde366d包括ne255的地址。由此,因为通告400排除了ne257的地址,所以宽松ppr220b仅包括ppr220b上的ne的子集的地址。在这种情况下,ne257可以使用多种不同路由将具有ppr-id3333的数据包发送到ne258。例如,ne256可以经由ne257或经由ne257和259将数据包转发到ne258。在这种情况下,由于ppr220b通告为未指定在ne256和ne258之间传输数据包的确切路径的宽松ppr220b,因此ne256可以经由ne256和ne258之间的最短路径传输数据包。

图4c是示出根据本公开的各种实施例的应根据ppr220a-b转发的包括ppr信息303的数据包450的图。如图4c所示,数据包450可以包括ppr-id333、源地址446、前缀或目的地址445、以及有效载荷449。应理解,图4c仅示出了数据包450的一部分。因此,数据包450可以包括其他字段和信息,例如内部标签或虚拟专用网络标签(图4c中未示出)。

在mpls网络中传输数据包450的实施例中,数据包450可以包括两个标签。如上所述,底部标签包括标识传输数据包450的ppr220a-b的ppr-id333。在实施例中,如上同样参考图2描述,顶部标签包括最短路径标签或ppr220a-b上的下一元素201-219和250-261的sid。

如图4c所示,数据包450包括标识传输数据包450的ppr220a-b的ppr-id333。源地址446可以包括从中接收到数据包450的源270的标签、地址、或标识符。前缀或目的地址445包括数据包450发往的目的地280或出口ne255的前缀或目的地址445。有效载荷449包括由数据包450承载的用户数据。

在实施例中,当ne250-259接收到数据包450时,ne250-259可以使用ppr-id333和/或前缀或目的地址445来搜索转发数据库343。在实施例中,使用ppr-id333和/或前缀或目的地址445对转发数据库343执行查找,以获得数据包450发往的下一元素201-219和250-261(例如拓扑ne250-259、非拓扑ne260-261、或链路201-219)。

图5a至图5g、图6a至图6g、以及图7a至图7g是示出根据各种不同协议的通告400和通告400内的字段的示例的图。具体地,图5a至图5g是示出根据is-is的通告400和通告400内的字段的示例的图,图6a至图6g是示出根据ospfv2的通告400和通告400内的字段的示例的图,图7a至图7g是示出根据ospfv3的通告400和通告400内的字段的示例的图。

图5a至图5g是示出根据is-is的通告500和通告500内的字段的示例的图。虽然以下参考图5a至图5g描述了根据is-is的通告500的一些方面,但是标题为“preferredpathrouting(ppr)inis-is”,作者为u.chunduri等,2018年7月2日发表的链路状态路由(linkstaterouting,lsr)工作组草案文档(以下称为“ppris-is文档”)中进一步定义了通告500。

图5a是类似于通告400的通告500的pprtlv,不同之处在于通告500根据is-is编码。在实施例中,通告500可以包括在is-is的现有通告消息中。在实施例中,通告500可以是为is-is创建的新消息。假设网络200实现is-is,则入口ne250可以向网络200中的ne251-259发送通告500。

如图5a所示,通告500包括类型字段503、长度字段506、ppr标志字段509、ppr前缀子tlv511、ppr-id子tlv513、ppr-pde子tlv516、以及ppr属性子tlv518。类型字段503类似于通告400(参见图4a)的类型字段403(参见图4a),并且可以承载由互联网编号分配机构(internetassignednumbersauthority,iana)分配的值。长度字段506字段类似于通告400的长度字段406(参见图4a),类似之处在于长度字段506包括值字段以字节为单位的总长度。

ppr标志字段509类似于标志字段409(参见图4a)。ppr标志字段509是正在描述的表示ppr220a-b的目的地280的可变大小的子tlv,并且在以下参考图5b进一步描述。ppr前缀子tlv511是描述ppr220a-b的目的地280的前缀或目的地址445的可变大小的子tlv,并且在以下参考图5c进一步描述。ppr-id子tlv513是定义ppr220a-b的ppr-id333的可变大小的子tlv,并且在以下参考图5d进一步描述。ppr-pde子tlv516包括表示ppr220a-b的可变数量的有序pde子tlv366a-n,并且在以下参考图5f进一步描述。

ppr属性子tlv518类似于属性字段430(参见图4a),类似之处在于ppr属性子tlv518表示ppr220a-b的属性。ppr属性子tlv518可以包括可变数量的ppr属性子tlv,这取决于定义的正在通告的ppr220a-b的属性的数量。

图5b是示出通告500的ppr标志字段509的图。ppr标志字段509可以包括三个不同的标志522、523、524。图5b中标记为“s”的s标志522(如果设置)指示包括pprtlv的通告500在整个路由域(例如网络200)中泛洪。如果未设置s标志522,则包括pprtlv的通告500不会在is-is级别之间泄漏。

图5b中标记为“d”的d标志523指示当包括pprtlv的通告500从is-is级别2泄漏到is-is级别1时,可以设置d比特523。否则,可以将d比特清零。可能不允许包括具有d比特523的pprtlv的通告500从级别1泄漏到级别2。

图5b中标记为“a”的a标志524指示在包括pprtlv的通告500中通告的前缀和ppr-id333直接连接到通告500的始发者。如果未设置a标志524,则网络中的任何其他ne可以代表通告500的始发节点来通告通告500。如图5b所示,ppr标志字段509包括预留以供将来使用的预留比特,上述预留比特应设置为0,并在接收时忽略。

图5c是示出ppr前缀子tlv511的图,ppr前缀子tlv511是描述ppr220a-b的目的地280的前缀或目的地址的可变大小的子tlv。ppr前缀子tlv511包括类型字段525、长度字段526、mt-id字段527、前缀长度字段528、掩码长度字段529、以及is-is前缀字段530。类型字段525可以包括由iana分配的指示ppr前缀子tlv511的类型的值。长度字段526包括值字段以字节为单位的总长度。mt-id字段527类似于包括多拓扑标识符的mt-id字段415,其中,4个最高有效比特在发送时设置为0,并在接收时忽略。其余12比特字段承载多拓扑标识符。

前缀长度字段528包括目的地280(或出口ne255)的前缀或目的地址445以字节为单位的长度。掩码长度字段529包括前缀以比特为单位的长度,其中,仅对前缀的最高有效八比特组进行编码。is-is前缀字段530包括is-is前缀或目的地址445,is-is前缀或目的地址445可以是指ppr220a-b的尾端出口ne255或ppr220a-b的目的地280。当前缀是ipv4地址时,is-is前缀字段530的值是4个八比特组,当前缀是ipv6地址时,is-is前缀字段530的值是16个八比特组。

图5d是示出ppr-id子tlv513的图,ppr-id子tlv513是定义ppr220a-b的ppr-id333的可变大小的子tlv。ppr-id子tlv513包括类型字段533、长度字段534、ppr-id标志字段535、ppr-id类型字段536、ppr-id长度字段537、ppr-id掩码长度字段538(在图5d中示为“ppr-idmasklen(ppr-id掩码长度)”)、算法字段539(在图5d中示为“algo(算法)”)、以及ppr-id字段540。类型字段533包括由iana分配的指示ppr-id子tlv513的类型的值。长度字段534包括值字段以字节为单位的总长度。ppr-id标志字段535是用于标志的2个八比特组的字段,以下将参考图5e进一步描述。

ppr-id类型字段536包括指示正在通告的ppr-id333的数据面类型的值。例如,值1可以指示数据面类型为mpls/sid标签,值2可以指示数据面类型为本地ipv4地址或前缀,值3可以指示数据面类型为本地ipv6地址或前缀,值4可以指示数据面类型为具有srh的srv6中的ipv6sid。ppr-id长度字段573包括ppr-id字段540以八比特组为单位的长度,并且可以取决于ppr-id类型字段536中包括的ppr-id类型443。ppr-id掩码长度字段538可能仅适用于某些ppr-id类型443,例如以上列出的类型2、3、4,并且可以包括ppr-id333以比特为单位的长度。算法字段539是表示用于计算源270和目的地280之间的预定最短路径221的spf算法的1八比特组值。

ppr-id字段540包括通告的ppr220a-b的ppr-id333。ppr-id333的值是可变的,并且取决于ppr-id类型443。当ppr类型443是mplssid/标签时,则ppr-id333也是mplssid/标签。当ppr类型443是本地ipv4时,则ppr-id333是4字节ipv4地址。当ppr类型443是本地ipv4时,则ppr-id333是16字节ipv6地址。当ppr类型443是srv6中的ipv6sid时,则ppr-id333是ipv6sid。

图5e是示出通告500的ppr-id标志字段535的图。ppr-id标志字段535可以包括两个不同的标志542和543。图5e中标记为“l”的l标志542(如果设置,则)指示正在通告的ppr220a-b包括宽松ppr220a-b,其中,通告500中仅标识了ppr220a-b的元素201-219和250-261的子集。如果未设置l标志542,则正在通告的ppr220a-b是严格ppr220a-b,其中,通告500中标识了ppr220a-b的所有拓扑ne250-259。在实施例中,严格ppr220a-b列出了从源270到目的地280的路径描述中的每个节点或邻接节点。在实施例中,严格ppr220a-b列出了从源270到目的地280的路径描述中的每个链路。

图5e中标记为“a”的a标志543(如果设置)指示is-is区域/域(网络200)中的所有非ppr节点可以添加ppr-id333的转发信息数据库(forwardinginformationdatabase,fib)(也称为“转发数据库”)条目,其中,下一元素设置为正在通告的前缀445的最短路径下一元素201-219和250-261。下一元素可以是指ppr220a-b上的下一分段、下一跳、下一链路、下一标签、下一功能、下一上下文等。如图5e所示,pprppr-id标志字段535包括预留以供将来使用的预留比特,上述预留比特应设置为0,并在接收时忽略。

图5f是示出通告500的ppr-pde子tlv516的图。在实施例中,通告400的每个ppr-pde427a-n(参见图4)可以包括正在通告的ppr220a-b上的每个元素的ppr-pde子tlv516。ppr-pde子tlv516包括类型字段546、长度字段547、ppr-pde类型字段548、pde-id类型字段549、pde-id长度字段550、ppr-pde标志字段551、以及pde-id值字段552。类型字段546可以包括由iana分配的指示ppr前缀子tlv511的类型的值。长度字段547包括值字段以字节为单位的总长度。

ppr-pde类型字段548包括表示ppr-pde子tlv516中标识的元素201-219和250-261的类型的值(例如,元素201-219和250-261是拓扑ne(ne250-259或链路201-219)还是非拓扑ne260-261)。例如,值1可以指示ppr-pde子tlv516中标识的元素201-219和250-261是拓扑ne250-259(或链路201-219),值2可以指示ppr-pde子tlv516中标识的元素201-219和250-261是非拓扑ne260-261。

pde-id类型字段549可以是包括指示pde转发id类型的值的八比特组。例如,值1指示pde转发id类型是sid/标签,值2可以指示pde转发id类型是sr-mpls前缀sid,值3可以指示pde转发id类型是sr-mpls邻接sid,值4可以指示pde转发类型是ipv4地址,值5可以指示pde转发类型是ipv6地址,值6可以指示pde转发类型是srv6节点sid,值7可以指示pde转发类型是srv6邻接sid。pde-id长度字段550可以包括pde-id类型字段549中包括的pde转发id类型的长度。

ppr-pde标志字段551是标志的2个八比特组比特字段,这在以下参考图5g进一步描述。pde-id值字段552包括ppr-pde子tlv516中标识的元素201-219和250-261(拓扑ne250-259、非拓扑ne260-261、和/或链路201-219)的标签、地址、或id,并且基于pde-id类型字段549中包括的pde转发id类型对pde-id值字段552进行编码。

图5g是示出通告500的ppr-pde标志字段551的图。ppr-pde标志字段551可以包括两个不同的标志556和557。图5g中标记为“l”的l标志556指示ppr-pde子tlv516中列出的ppd-pde中的下一拓扑pde-id的类型。在实施例中,如果设置了l标志556,则下一拓扑pde-id对应的下一拓扑ne250-259是宽松的(可以不是附着到通告的ppr上的当前ne的直接下一元素)。在此实施例中,如果未设置l标志556,则下一拓扑pde-id对应的下一拓扑ne250-259是严格的(可以是附着到通告的ppr上的当前ne的直接下一元素)。

除非ppr-pde类型为1(指示下一元素是拓扑元素),否则默认为未设置图5g中标记为“d”的d标志557。如图5g所示,ppr-pde标志字段551包括预留以供将来使用的预留比特,上述预留比特应设置为0,并在接收时忽略。

图6a至图6g是示出根据ospfv2的通告600和通告600内的字段的示例的图。虽然以下将参考图6a至图6g描述根据ospfv2的通告600的一些方面,但是标题为“preferredpathrouting(ppr)inospf”,作者为u.chunduri等,2018年7月2日发表的lsr工作组草案文档(以下称为“pprospf文档”)中进一步定义了通告600。

图6a是类似于通告500(参见图5a至图5g)的通告600的ospfpprtlv,不同之处在于通告600根据ospfv2编码。在实施例中,通告600可以包括在ospfv2的现有通告消息中。在实施例中,通告600可以是为ospfv2创建的新消息。假设网络200实现ospfv2,则入口ne255可以向网络200中的ne251-259发送通告600。

如图6a所示,通告600包括类似于通告500的字段。类型字段603可以类似于通告500的类型字段503,长度字段606可以类似于通告500的长度字段506。通告600还包括ppr标志字段609,ppr标志字段609可以不同于ppr标志字段509(参见图5b),并且在以下参考图6b进一步描述。

通告600与通告500的不同之处在于,通告600还包括地址族(addressfamily,af)字段610和一些预留比特。af字段610包括指示通告600通告的前缀或目的地址445(参见图4)的地址族的值。

通告600还包括ppr前缀子tlv611、ppr-id子tlv613、ppr-pde子tlv616、以及ppr属性子tlv618。类似于ppr前缀子tlv511(参见图5),ppr前缀子tlv611是描述ppr220a-b的目的地280的前缀或目的地址445的可变大小的子tlv,并且在以下参考图6c进一步描述。类似于ppr-id子tlv513(参见图5),ppr-id子tlv613是定义ppr220a-b的ppr-id333的可变大小的子tlv,并且在以下参考图6d进一步描述。类似于ppr-pde子tlv516(参见图5),ppr-pde子tlv616包括表示ppr220a-b的可变数量的有序pde子tlv,并且在以下参考图6f进一步描述。

ppr属性子tlv618类似于ppr属性子tlv518(参见图5)和属性字段430(参见图4),类似之处在于ppr属性子tlv618表示ppr220a-b的属性。ppr属性子tlv618可以包括可变数量的ppr属性子tlv,这取决于定义的正在通告的ppr220a-b的属性的数量。

图6b是示出通告600的ppr标志字段609的图。ppr标志字段609可以包括两个不同的标志622和623。图6b中标记为“ia”的ia标志622(如果设置)指示通告600属于区域间类型。在实施例中,入口ne255可以是区域边界路由器。在这种实施例中,转发包括ospfpprtlv的通告600的入口ne255可以设置此ia标志622。

图6b中标记为“a”的a标志623指示通告的前缀和ppr-id333直接连接到通告600的始发者。如果未设置a标志623,则网络中的任何其他ne可以代表通告600的始发节点来通告通告600。如图6b所示,ppr标志字段609包括预留以供将来使用的预留比特,上述预留比特应设置为0,并在接收时忽略。

图6c是示出ppr前缀子tlv611的图,ppr前缀子tlv611类似于ppr前缀子tlv511(参见图5)。ppr前缀子tlv611包括类型字段625、长度字段626、mt-id字段627、前缀长度字段628、以及掩码长度字段629,这些字段分别可以类似于ppr前缀子tlv511(参见图5)的类型字段525(参见图5)、长度字段526(参见图5)、mt-id字段527(参见图5)、前缀长度字段528(参见图5)、以及掩码长度字段529(参见图5)。如图6c所示,ppr前缀子tlv611的字段长度可以不同于ppr前缀子tlv511的字段长度。

ppr前缀子tlv611与ppr前缀子tlv511的不同之处在于,ppr前缀子tlv611包括ospfv2前缀字段630而非is-is前缀字段530(参见图5)。ospfv2前缀字段630包括ospfv2前缀或目的地址,ospfv2前缀或目的地址可以是指ppr220a-b的尾端出口ne255或ppr220a-b的目的地280。当af表示ipv4单播af时,ospfv2前缀字段630的值可以编码为32比特值。

图6d是示出ppr-id子tlv613的图,ppr-id子tlv613类似于ppr-id子tlv513(参见图5)。ppr-id子tlv613包括类型字段633、长度字段634、ppr-id标志字段635、ppr-id类型字段636、ppr-id长度字段637、ppr-id掩码长度字段638(在图6d中示为“ppr-idmasklen(ppr-id掩码长度)”)、算法字段639(在图6d中示为“algo(算法)”)、以及ppr-id字段640,这些字段可以分别类似于ppr-id子tlv513(参见图5)的类型字段533(请参见图5)、长度字段534(参见图5)、ppr-id标志字段535(参见图5)、ppr-id类型字段536(参见图5)、ppr-id长度字段537(参见图5)、ppr-id掩码长度字段538(参见图5)、算法字段539(参见图5)、以及ppr-id字段540(参见图5)。如图6d所示,ppr-id子tlv613的字段长度可以不同于ppr-id子tlv513的字段长度。

图6e是示出通告600的ppr-id标志字段635的图,ppr-id标志字段635可以类似于通告500的ppr-id标志字段535。ppr-id标志字段635包括可以类似于l标志542(参见图5)的l标志642和可以类似于a标志543(参见图5)的a标志643。如图6e所示,ppr-id标志字段635包括预留以供将来使用的预留比特,上述预留比特应设置为0,并在接收时忽略。

图6f是示出通告600的ppr-pde子tlv616的图,ppr-pde子tlv616类似于通告500的ppr-pde子tlv516(参见图5)。在实施例中,通告400的每个ppr-pde427a-n(参见图4)可以包括正在通告的ppr220a-b上的每个元素201-219和250-261的ppr-pde子tlv616。ppr-pde子tlv616包括类型字段646、长度字段647、ppr-pde类型字段648、pde-id类型字段649、pde-id长度字段650、ppr-pde标志字段651、以及pde-id值字段652,这些字段可以分别类似于ppr-pde子tlv516(参见图5)的类型字段546(参见图5)、长度字段547(参见图5)、ppr-pde类型字段548(参见图5)、pde-id类型字段549(参见图5)、pde-id长度字段650(参见图5)、ppr-pde标志字段551(参见图5)、以及pde-id值字段552(参见图5)。如图6f所示,ppr-pde子tlv616的字段长度可以不同于ppr-pde子tlv516的字段长度。

图6g是示出通告600的ppr-pde标志字段651的图,ppr-pde标志字段651可以类似于通告500的ppr-pde标志字段551(参见图5)。ppr-pde标志字段651可以包括可以类似于l标志556(参见图5)的l标志656和可以类似于d标志557(参见图5)的d标志657。如图6g所示,ppr-pde标志字段651包括预留以供将来使用的预留比特,上述预留比特应设置为0,并在接收时忽略。

图7a至图7g是示出根据ospfv3的通告700和通告700内的字段的示例的图。虽然以下参考图7a至图7g描述了根据ospfv3的通告700的一些方面,但是以上引用的pprospf文档中进一步定义了通告700。

图7a是类似于通告600(参见图6)的通告700的ospfpprtlv,不同之处在于通告700根据ospfv3而非ospfv2编码。类似于通告600,通告700包括类型字段703、长度字段706、ppr标志字段709、af字段710、ppr前缀子tlv711、ppr-id子tlv713、ppr-pde子tlv716、以及ppr属性子tlv718。类型字段703、长度字段706、ppr标志字段709、af字段710、ppr前缀子tlv711、ppr-id子tlv713、ppr-pde子tlv716、以及ppr属性子tlv718可以分别类似于通告600的类型字段603(参见图6)、长度字段606(参见图6)、ppr标志字段609(参见图6)、af字段610(参见图6)、ppr前缀子tlv611(参见图6)、ppr-id子tlv613(参见图6)、ppr-pde子tlv616(参见图6)、以及ppr属性子tlv618(参见图6)。

图7b是示出通告700的ppr标志字段709的图,ppr标志字段709类似于通告600的ppr标志字段609。通告700包括类似于ppr标志字段609的ia标志622(参见图6)的ia标志722和类似于ppr标志字段609的a标志623(参见图6)的a标志723。如图7b所示,ppr标志字段709包括预留以供将来使用的预留比特,上述预留比特应设置为0,并在接收时忽略。

图7c是示出ppr前缀子tlv711的图,ppr前缀子tlv711类似于ppr前缀子tlv611。ppr前缀子tlv711包括类型字段725、长度字段726、前缀长度字段728、以及掩码长度字段729,这些字段可以分别类似于的通告600的类型字段625(参见图6)、长度字段626(参见图6)、前缀长度字段628(参见图6)、以及掩码长度字段629(参见图6)。然而,ppr前缀子tlv711不包括如ppr前缀子tlv611中包括的用于多拓扑标识符的字段。如图7c所示,ppr前缀子tlv611的字段长度可以不同于ppr前缀子tlv511的字段长度。

ppr前缀子tlv711与ppr前缀子tlv711的不同之处在于,ppr前缀子tlv711包括ospfv3前缀字段730而非ospfv2前缀字段630(参见图6)。ospfv3前缀字段730包括ospfv3前缀或目的地址445,ospfv3前缀或目的地址445可以是指ppr220a-b的尾端出口ne255或ppr220a-b的目的地280。当af表示ipv4单播af时,ospfv3前缀字段730的值可以编码为32比特值。

图7d是示出ppr-id子tlv713的图,ppr-id子tlv713类似于ppr-id子tlv613。ppr-id子tlv713包括类型字段733、长度字段734、ppr-id标志字段735、ppr-id类型字段736、ppr-id长度字段737、ppr-id掩码长度字段738(在图6d中示为“ppr-idmasklen”),算法字段739(在图6d中示为“algo(算法)”)、以及ppr-id字段740,这些字段可以分别类似于ppr-id子tlv613的类型字段633(参见图6)、长度字段634(参见图6)、ppr-id标志字段635(参见图6)、ppr-id类型字段636(参见图6)、ppr-id长度字段637(参见图6)、ppr-id掩码长度字段638(参见图6)、算法字段639(参见图6)、以及ppr-id字段640(参见图6)。如图7d所示,ppr-id子tlv713的字段长度可以不同于ppr-id子tlv613的字段长度。

图7e是示出通告700的ppr-id标志字段735的图,ppr-id标志字段735可以类似于通告500的ppr-id标志字段535(参见图5)。ppr-id标志字段635包括可以类似于l标志542(参见图5)的l标志742和可以类似于a标志543(参见图5)的a标志743。如图7e所示,ppr-id标志字段735包括预留以供将来使用的预留比特,上述预留比特应设置为0,并在接收时忽略。

图7f是示出通告700的ppr-pde子tlv716的图,ppr-pde子tlv716类似于通告600的ppr-pde子tlv616。在实施例中,通告400的每个ppr-pde427a-n(参见图4)可以包括正在通告的ppr220a-b上的每个元素201-219和250-261的ppr-pde子tlv716。ppr-pde子tlv716包括类型字段746、长度字段747、ppr-pde类型字段748、pde-id类型字段749、pde-id长度字段750、ppr-pde标志字段751、以及pde-id值字段752,这些字段可以分别类似于ppr-pde子tlv616的类型字段646(参见图6)、长度字段647(参见图6)、ppr-pde类型字段648(参见图6)、pde-id类型字段649(参见图6)、pde-id长度字段650(参见图6)、ppr-pde标志字段651(参见图6)、以及pde-id值字段652(参见图6)。如图7f所示,ppr-pde子tlv716的字段长度可以不同于ppr-pde子tlv616的字段长度。

图7g是示出通告700的ppr-pde标志字段751的图,ppr-pde标志字段751可以类似于通告500的ppr-pde标志字段551(参见图5)。ppr-pde标志字段751可以包括可以类似于l标志556(参见图5)的l标志756和可以类似于d标志557(参见图5)的d标志757。如图7e所示,ppr-pde标志字段751包括预留以供将来使用的预留比特,上述预留比特应设置为0,并在接收时忽略。

图8是根据本公开的各种实施例的实现在诸如网络200的网络中通告和编程ppr220a-b的方法800。在实施例中,方法800可以由网络200中的入口ne250或任何其他ne251-259执行。在实施例中,方法800可以在中心实体103获得ppr信息303并将ppr信息303发送到网络200的入口ne250之后执行。

在步骤803,可以从网络200中的中心实体103接收ppr信息303,或者可以由网络200的运营商或本地配置引擎在本地提供ppr信息303。例如,rx320从中心实体103接收ppr信息303。ppr信息303包括ppr-id333和多个ppr-pde366,上述多个ppr-pde366描述确定的在源270和目的地280之间的ppr220a-b上的一个或多个元素201-219和250-261(拓扑ne250-529、非拓扑ne260-261、和/或链路201-219)。例如,ppr-pde366包括ppr220a-b上的一个或多个元素201-219和250-261的mpls标签、ipv4地址、或ipv6地址。

在步骤806,确定是否应将ppr220a-b添加到本地转发数据库343。例如,处理器330的网络配置模块345可以用于确定是否应将ppr220a-b添加到本地转发数据库343。这种确定可以基于ppr信息303中是否标识了接收ppr信息303的ne250-259。这种确定还可以基于ppr信息303中是否标识了附着到接收ne250-259的附着非拓扑ne250-261。

当接收ppr信息303的ne250-259与ppr220a-b的源270关联时,则将ppr信息303添加到转发数据库343。此外,中心实体103可以发送携带ppr信息303的指令,以将ppr信息303添加到转发数据库343。

在步骤811中,包括ppr信息303的通告(例如通告400、500、600、700)通过igp通告(ospfv2/ospfv3lsa或is-islsptlv通过全部的igp域路由器)传输(或通过igp术语泛洪)到网络200中的其余ne251-259。在实施例中,当入口ne250接收到ppr信息303并且确定ppr220a-b与入口ne250关联时,则入口ne250将ppr信息303与ppr-id333和ppr-pde366关联存储于转发数据库343。入口ne250的tx340可以向网络2800中的所有其余ne251-259发送该通告。

当接收ppr信息303的ne251-259不与ppr220a-b的源270关联时,或者当中心实体103向ne251-259发送指令以从转发数据库343中撤回ppr220a-b时,在步骤809,从转发数据库343中撤回或删除ppr220a-b。例如,可以从转发数据库343中删除与ppr-id333和ppr-pde366关联的ppr信息303。

图9是根据本公开的各种实施例的实现在网络200中通告和编程ppr220a-b的方法900。在实施例中,方法900可以由从入口ne250接收通告的接收ne251-259执行。在实施例中,方法900可以在入口ne250向其余ne251-259发送通告之后执行。

在步骤903,从ne250-259接收包括描述ppr220a-b的ppr信息303的通告。例如,rx320从入口ne250接收通告。该通告可以类似于通告400、500、600、或700。在实施例中,ppr信息303包括ppr-id333和多个ppr-pde366,上述多个ppr-pde366描述确定的在源270和目的地280之间的ppr220a-b上的一个或多个元素201-219和250-261(拓扑ne250-259、非拓扑ne260-261、或链路201-219)。例如,ppr-pde366包括ppr220a-b上的每个元素201-219和250-261的mpls标签、ipv4地址、或ipv6地址。

在步骤906,确定当前ne251-261是否在ppr220a-b上。例如,假设当前节点是ne257,则在ne257执行的处理器330的网络配置模块335可以确定ne257不在由ppr-id=2标识的第一ppr220a上,但是ne257在由ppr-id=3标识的第二ppr220b上。

在步骤909,忽略由ppr-id=2标识的ppr信息303,在步骤911,转发数据库343更新为包括由ppr-id=3标识的ppr信息303。在实施例中,更新转发数据库343以指示应沿ppr220b而非最短路径221转发包括ppr-id=3和/或前缀或目的地址445的数据包450。

在实施例中,在步骤911,在转发数据库343中创建所请求的业务计费参数的状态。例如,处理器330的网络配置模块345用于更新转发数据库343,以指示应沿ppr220b而非通往前缀或目的地址445的预定最短路径221转发发往前缀或目的地址445的包括ppr-id=3的数据包450。在该示例中,ne257更新本地转发数据库343,以指示包括与ne255关联的前缀或目的地址445的数据包450应重定向到由ppr-id=3标识的ppr220b上的下一元素ne258,而非最短路径221上的下一元素ne259。在此步骤中,当拓扑ne250-259接收到相应拓扑ne25-259托管或关联的非拓扑ne260-261有关的ppr信息303时,拓扑ne250-259更新转发数据库343,以指示与关联拓扑ne25-259关联的一个或多个服务、功能、或上下文可以在转发到ppr220a-b上的下一拓扑ne250-259之前执行。

图10是根据本公开的各种实施例的实现在控制面中通告ppr信息303并在数据面中编程ppr的方法1000。在实施例中,方法1000可以由网络200中的入口ne250或任何其他ne251-259执行。在实施例中,方法1000可以在中心实体103获得ppr信息303并将ppr信息303发送到网络200的入口ne250之后执行。

在步骤1003,网络200的ne250-259接收表示网络200中从源270到目的地280的ppr220a-b的ppr信息303。通告可以类似于通告400、500、600、或700。例如,rx320从中心实体103或入口ne250接收ppr信息303。ppr信息303包括ppr-id333和多个ppr-pde366,每个ppr-pde366表示ppr220a-b上的一个元素201-219和/或250-261。

在步骤1006,网络中的ne250-259接收包括ppr-id333的数据包450。例如,rx320接收包括ppr-id333的数据包450。

在步骤1009中,基于ppr-pde366向ppr220a-b上的下一元素201-219和/或ne250-261转发具有ppr-id333的数据包450。在实施例中,tx340基于ppr-pde366向ppr220a-b上的下一元素201-219和/或ne250-261转发数据包450。

图11示出根据本公开的各种实施例的用于在网络200中通告和编程ppr220a-b的设备1100。设备1100包括接收装置1103和转发装置1106。接收装置1103包括用于接收包括ppr信息303的通告的装置,ppr信息303表示网络200中从源270到目的地280的ppr220a-b。该通告可以类似于通告400、500、600、或700。ppr信息303包括ppr-id333和多个ppr-pde366,每个ppr-pde366表示ppr220a-b上的一个元素201-219和250-261。接收装置1103还包括用于接收包括ppr-id333的数据包450的装置。转发装置1106包括用于基于ppr-pde366向ppr220a-b上的下一元素201-219和/或ne250-261转发数据包450的装置。

虽然本公开中已经提供了多个实施例,但是应理解,在不脱离本公开的精神或范围的情况下,可以以许多其他特定形式来实现所公开的系统和方法。本示例视为示例性而非限制性的,并且本发明不限于本文给出的细节。例如,可以将各种元件或部件组合或集成在另一系统中,或者可以省略或不实现某些特征。

此外,在不脱离本公开的范围的情况下,各种实施例中描述和示出为离散或分离的技术、系统、子系统、以及方法可以与其他系统、模块、技术、或方法组合或集成。示出或讨论为彼此耦合或直接耦合或通信的其他项可以通过某种接口、设备、或中间部件以电气、机械、或其他方式间接耦合或通信。本领域技术人员可以在不脱离本文公开的精神和范围的情况下确定并做出改变、替换、以及变更的其他示例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1