CN114363235A - 在启用分段路由的网络中计算多路径的分段标识符列表 - Google Patents
在启用分段路由的网络中计算多路径的分段标识符列表 Download PDFInfo
- Publication number
- CN114363235A CN114363235A CN202111156546.2A CN202111156546A CN114363235A CN 114363235 A CN114363235 A CN 114363235A CN 202111156546 A CN202111156546 A CN 202111156546A CN 114363235 A CN114363235 A CN 114363235A
- Authority
- CN
- China
- Prior art keywords
- network
- sid
- node
- sids
- nodes
- 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
Images
Classifications
-
- 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/02—Topology update or discovery
-
- 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/12—Shortest path evaluation
- H04L45/123—Evaluation of link metrics
-
- 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/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
-
- 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/02—Topology update or discovery
- H04L45/03—Topology update or discovery by updating link state protocols
-
- 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/02—Topology update or discovery
- H04L45/033—Topology update or discovery by updating distance vector protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明涉及在启用分段路由的网络中计算多路径的分段标识符列表。描述了用于计算满足分段路由(SR)策略的多路径解决方案中的每个路径的分段标识符(SID)列表的技术。在一个示例中,一种方法包括:由计算装置获得通过包括一个或多个网络节点的网络的多个路径,该多个路径中的每个路径表示从源到目的地的连接网络节点的对的链路的不同序列;由计算装置计算满足多个路径中的每个路径的一个或多个分段标识符(SID)列表;并且至少基于一个或多个SID列表对网络进行编程以转发网络流量。
Description
本申请要求2021年3月5日提交的美国申请第17/194104号和2020年9月30日提交的美国临时申请第63/085927号的权益。
技术领域
本发明涉及计算机网络,并且更具体地涉及用于计算网络的分段路由。
背景技术
计算机网络是交换数据并且共享资源的互连计算装置的集合。在诸如因特网的基于分组的网络中,计算装置通过将数据划分为称为分组的小块来传达数据,这些小块被单独地跨网络从源装置路由到目的地装置。目的地装置从分组中提取数据,并且将数据汇编成其原始形式。
诸如路由器的网络内的某些装置使用路由协议来交换和累积描述通过网络的可用路由的拓扑信息。这允许路由器构建其自身的网络的路由拓扑图。在接收到输入数据分组时,路由器检查分组内的信息,并且根据累积的拓扑信息转发分组。
许多路由协议落在称为内部网关协议(IGP)的协议分类内,其中,基于泛洪的分发机制用于将拓扑信息通知给网络内的路由器。这些路由协议通常依赖于要求每个路由器具有给定域(称为IGP区域或IGP域)的同步路由拓扑信息的路由算法。根据链路状态路由协议维护的链路状态数据库(LSDB)或流量工程数据库(TED)的内容具有IGP域的范围。IGP路由协议通常要求IGP路由域中的所有路由器将根据IGP协议分发的所有路由信息存储在内部LSDB或TED内。在操作中,每个路由器通常维护内部链路状态数据库,并且以定义的间隔扫描整个数据库,以生成并且输出链路状态消息来将数据库同步到路由域内的相邻路由器。以这种方式,链路状态跨整个路由域传播并且完全存储在域内的每个路由器处。
基于分组的网络使用标签交换协议用于流量工程和其他目的。多协议标签交换(MPLS)是用于根据由网络中的路由器维护的路由信息设计因特网协议(IP)网络内的流量模式的机制。通过利用诸如标签分发协议(LDP)、具有流量工程扩展的资源预留协议(RSVP)(RSVP-TE)或分段路由(SR)扩展的MPLS协议,标签交换路由器可以使用预加到流量的标签沿着通过网络的具体路径(即,标签交换路径(LSP))将流量转发到目的地装置。LSP定义了通过网络的不同路径,以将MPLS分组从源装置承载到目的地装置。使用MPLS协议,沿着LSP的每个路由器分配与目的地相关联的标签,并且沿着路径将标签传播到最近的上游路由器。沿着路径的路由器添加(推送)、移除(弹出)或交换标签,并且执行其他MPLS操作以沿着所建立的路径转发MPLS分组。
路由器可以采用分段路由技术来利用联网中的源分组路由(SPRING)范例。通过分段路由,头端网络节点可以沿着任何路径引导分组流,从而用分段标识符的有序列表来扩充分组的报头,以实现分段路由策略。分段路由可以减少并且在一些情况下消除常规MPLS路由中固有的中间每流状态。
发明内容
总体上,描述了用于计算满足分段路由(SR)策略的多路径解决方案中的每个路径的分段标识符(SID)列表的技术。实现SR策略的多个路径被称为多路径。如果分组的SID列表不提供明确的方向,则使用适当的SID类型和足够窄的SID,则由网络对内部网关协议(IGP)或其他路由协议提供根据分组的SID列表转发网络流量的支持SR(SR-capable)的路由器之间的最短路径的依赖性可以导致网络沿着不属于多路径的最短路径将分组不正确地转发到下一识别的分段。另一方面,利用用于沿着多路径的路径转发分组的支持SR的网络节点和/或邻接的逐跳列表来扩充由入口网络节点根据由多路径实现的SR策略来导向的每个分组可能导致分组的SID列表长度比网络将分组保持在多路径上所需的SID列表长度长。包括在每个分组中的更长的SID列表长度的分组报头降低网络效率,并且在一些情况下,可能不被一些由支持SR的网络节点支持。
所描述的技术提供减少或最小化实现用于给定网络的SR策略所必需的SID列表的计算算法。例如,本技术包括计算一个或多个SID列表(或“SID列表”)的集合,当附接到利用多路径解决方案导向到SR策略的分组时,该SID列表将导致网络在多路径上转发分组并且防止网络在不是多路径的路径的路径上转发分组。在一些示例中,本技术可以包括:基于路由(例如,IGP)度量确定网络节点距多路径的源网络节点的相应距离;并且识别要用作SID的基础的一个或多个网络节点或邻接的候选集(或“候选组合”)以扩展正在进行的SID候选列表。在一些情况下,本技术包括基于度量计算以源网络节点为根的等距度量图。识别一个或多个网络节点或邻接的候选集可以包括识别所有多路径遍历并且将不会被多路径中从较早网络节点到后续网络节点的最短路径旁路(例如,路由旁路)的一个或多个网络节点。识别一个或多个网络节点或邻接的候选集可以包括识别与源等距并且不被多路径中从较早网络节点到后续节点的最短路径共同旁路的两个或更多个网络节点。从所识别的网络节点候选集生成的SID可以包括选播SID和节点SID。该技术可以通过用从一个或多个网络节点或邻接的新识别的候选集生成的SID扩展正在进行的SID候选列表并且从一个或多个网络节点或邻接的候选集的网络节点生根其他等距度量图来迭代地建立SID候选列表。
本技术可以提供解决多路径上下文中的SID最小化问题以促进根据分段路由范例来减少遍历网络的分组的SID列表长度的技术优点。因此,该技术可以使得服务提供商和其他网络运营商能够精确并且灵活地设计其网络中的流量以提高其客户的服务质量并且降低成本。
在一个示例中,本公开描述了一种方法,该方法包括:由计算装置获得通过包括一个或多个网络节点的网络的多个路径,该多个路径中的每个路径表示从源到目的地的连接网络节点的对的链路的不同序列;由计算装置计算满足多个路径中的每个路径的一个或多个分段标识符SID列表;并且至少基于一个或多个SID列表对网络进行编程以转发网络流量。
在一个示例中,本公开描述了一种计算装置,该计算装置包括:存储器;以及处理电路,其与存储器通信,处理电路和存储器被配置为:获得通过包括一个或多个网络节点的网络的多个路径,该多个路径中的每个路径表示从源到目的地的连接网络节点的对的链路的不同序列;计算满足多个路径中的每个路径的一个或多个分段标识符(SID)列表;并且至少基于一个或多个SID列表对网络进行编程以转发网络流量。
在一个示例中,本公开描述了一种编码有指令的非暂时性计算机可读存储介质,当被执行时,该指令使一个或可编程处理器:获得通过包括一个或多个网络节点的网络的多个路径,该多个路径中的每个路径表示从源到目的地的连接网络节点的对的链路的不同序列;计算满足多个路径中的每个路径的一个或多个分段标识符(SID)列表;并且至少基于一个或多个SID列表对网络进行编程以转发网络流量。
在附图和以下描述中阐述了本技术的细节。本技术的其他特征、目的和优点将从说明书和附图以及从权利要求中变得显而易见。
附图说明
图1是示出具有网络和控制器并且被配置为根据本公开中所描述的技术操作的示例系统的框图。
图2A至图2B是示出具有网络和控制器并且被配置为根据本公开中所描述的技术操作的示例系统的框图。
图3A至图3H是示出根据本公开的技术的用于在用于分段路由(SR)策略的多路径解决方案中计算满足每个路径的分段标识符(SID)列表的过程的框图。
图4A至图4C是示出根据本公开的技术的用于在用于分段路由(SR)策略的多路径解决方案中利用修改网络计算满足每个路径的分段标识符(SID)列表的过程的框图。
图5是示出根据本公开的技术的示例控制器的框图。
图6是更详细地示出根据本公开的技术的用于示例控制器的路径引擎的示例实现的框图。
图7是示出根据本公开的一个或多个技术的计算装置的示例操作的流程图。
图8是示出根据本公开的技术由计算装置执行的用于计算用于实现多路径的SID候选列表的示例操作的流程图。
贯穿附图和文本,相同的参考字符表示相同的元件。
具体实施方式
分段路由(SR)(也可以称为源分组路由或联网中的源分组路由(SPRING))是控制平面架构,在不依赖于网络中的中间网络节点来确定其应采取的路径的情况下,该平面架构使得入口路由器能够通过网络中的一组特定网络节点和链路来导向分组。SPRING转发的基础是分段标识符(SID)的概念。在Filsfils&Previdi,ed.,“Segment RoutingArchitecture,”Intemet Engineering Task Force(IETF)RFC8402,July2018;Sivabalan,ed.,“Segment Routing Policy Architecture,”SPRING Working Group,ver.06,December 14,2019;和Talaulikar,ed.,“SR Policy Implementation and DeploymentConsiderations,”SPRING Working Group,ver.04,October 9,2019中更详细地描述了分段路由和SID,其中每一个申请的全部内容通过引用并入本文。
图1是示出具有被配置为根据本公开中所描述的技术操作的网络112和控制器108的示例系统100的框图。网络112包括一个或多个计算机网络(例如,一组互连的L2/L3网络),并且在一些示例中,可以是广域网。网络112可以包括一个或多个自主系统、数据中心、分支机构、专用网络、公共网络、云网络或其他类型的网络。
网络112包括启用SR并且构成SR域的网络节点19。网络节点19可以可选地被称为“SR节点”。SR域可以包括任何数量的网络节点19。每个网络节点19可以表示路由器、交换机或能够执行分段路由的其他网络装置。网络112可以包括不是SR域的一部分或以其他方式未启用SR的许多其他网络装置(诸如,其他路由器或交换机)。
使用分段路由,网络节点19沿着分段路由路径将分组流的网络分组从源转发到目的地,该分段路由路径被编码为分段标识符列表,该分段标识符增加了网络分组报头并且由网络节点19用于识别下一分段以转发每个网络分组。由网络节点19接收和转发的网络分组的源可以包括一个或多个装置(未示出)和/或任何公共或专用网络或因特网。由网络节点19转发的网络分组的目的地可以包括一个或多个目的地装置和/或可以包括LAN的网络或包括多个装置的广域网(WAN)。例如,目的地装置可以包括个人计算机、膝上型计算机、工作站、个人数字助理(PDA)、无线装置、网络就绪设备、文件服务器、打印服务器或从源接收网络分组的其他装置。
分段路由具有多种类型的分段。这些包括表示任何网络节点19与指定前缀之间的最短路径(例如,根据IGP度量)的前缀分段。前缀分段包括节点分段,其中,指定前缀识别特定网络节点19(例如,特定网络节点19的回送地址)和选播分段,其强制向选播组的最近网络节点19转发等价多路径(ECMP)-感知的最短路径。选播组包括一个或多个网络节点19,并且指定前缀可以由选播组中的任何网络节点19通告。分段可以由其分段标识符(SID)引用。
其他区段类型包括邻接区段(其是网络节点19之间的IGP邻接)、绑定分段和邻接集。绑定分段可以表示通过网络节点19的隧道。该隧道可以包括SR策略。SR策略本身可以实现多路径。邻接集表示多个邻接,并且相同的SID用于多个邻接。这是选播SID的邻接并行版本,其中,相同的SID指示网络中的多个节点。总体上,SID可以用于将流量同时导向到多个路径,这引起优选的SID减少或最小化解决方案。邻接集SID和选播SID是重要的这样的SID。
在一些示例中,网络节点19使用多协议标签交换(MPLS)架构应用分段路由。在这样的示例中,每个分段被编码为MPLS标签,并且SR策略可以被实例化为附加到网络分组的标签堆栈。活动分段在标签堆栈的顶部。当完成分段时,网络节点19从标签堆栈弹出对应的标签。
在一些示例中,网络节点19使用IPv6架构和SR报头(SRH)应用分段路由。在这样的示例中,指令可以与分段相关联并且被编码为映射到SID的IPv6地址。SR策略被实例化为路由报头中的SID的有序列表。分组的目的地地址(DA)指示活动分段。SRH中的分段左(SL)指针指示下一活动分段。当网络节点19完成分段时,网络节点递减SL指针并且将下一分段复制到目的地地址。在SR策略上导向的网络分组被扩充用于SR策略的对应SRH。
在一些示例中,网络节点19可以作为标签交换路由器(LSR)操作以将标签分发到网络112内的相邻LSR。例如,可以存在多个不同的标签类型,包括“邻接”标签和“节点”标签。这样的标签可以是或以其他方式与局部或全局识别网络112中的分段的分段标识符相对应。为了通过网络112转发分组,网络节点19可以推送、弹出或交换在通过网络转发分组时应用于分组的分段标识符列表中的一个或多个标签。标签堆栈可以在SR策略下对数据的拓扑和服务源路由进行编码。
邻接标签可以具有特定分段路由节点(诸如,每个网络节点19)的局部语义。具体地,邻接标签将流量导向到邻接(例如,通信链路和/或接口)或邻接集上。因此,邻接标签可以与特定网络节点19相关。为了使用邻接标签,特定网络节点19可以最初将邻接标签分配给特定邻接,并且使用IGP(诸如,中间系统-中间系统(ISIS)或开放式最短路径优先(OSPF))将邻接标签通告给分段路由域中的其他路由器。特定网络节点19可以是SR域中使用特定邻接标签的唯一网络节点。当网络节点19使用邻接标签转发报头时,网络节点19可以使报头使用与邻接标签相关联的特定网络节点19的邻接。以这种方式,邻接标签可以用于为分段建立一跳隧道。
相比之下,节点标签可以在SR域内具有全局语义。即,每个网络节点19可以被分配定义的节点标签范围(通常被称为分段路由全局块(SRGB)),该节点标签范围对于SR域内的每个网络节点19是唯一的。网络112的运营商可以确保从全局范围到不同网络节点19的不同节点标签范围的唯一分配。除了节点标签范围之外,每个特定网络节点19还可以具有在SR域中唯一地识别特定网络节点19的特定节点标识符。每个网络节点19可以使用例如IGP向SR域中的其他网络节点19通告其对应的节点标识符和节点标签范围。
如上所述,基于使用例如最短路径路由确定的路由,每个网络节点19可以配置其转发状态以使用MPLS或使用IPv6架构和SR报头(SRH)来实现SR。例如,使用MPLS,每个网络节点19可以使用通过IGP学习的拓扑信息执行路径选择,以基于由网络节点19维护的路由信息逐跳计算网络112内的最短路径。然后,每个网络节点19可以沿着本地计算的最短路径选择下一跳,并且将与所选择的下一跳相关联的转发信息安装在网络节点的转发平面中,其中,转发信息识别在转发流量时要使用的网络接口以及在将流量转发出接口时要应用的一个或多个标签。网络节点19使用具有分配的标签的下一跳来逐跳转发流量。
系统100可以使用分布式或集中式控制实现分段路由。利用分布式控制,网络节点19使用路由协议(诸如,IS-IS或OSPF或边界网关协议(BGP))来分配和发信号通知分段。网络节点19单独决定在使用一个或多个候选路径实现的SR策略上导向分组。网络节点19单独计算SR策略。利用分布式控制,控制器108可以不是系统100的一部分。根据本文所描述的技术,在分布式控制场景中,网络节点19是可以计算满足用于实现SR策略的多个路径中的每个路径的一个或多个SID列表的计算装置。
利用集中式控制,控制器108分配和发信号通知分段。控制器108决定在其上导向映射到SR策略的分组的网络节点19。控制器108将路径计算应用于计算满足SR策略的候选路径。此外,控制器108用转发信息对网络112(尤其是网络节点19)进行编程,以使用SID列表实现候选路径。控制器108可以使用网络配置协议(NETCONF)、路径计算单元通信协议(PCEP)、BGP或其他协议对网络节点19进行编程。控制器108可以表示一个或多个SR控制器,并且可以是不仅管理SR域而且管理网络112的运营商的路径计算、流量工程、供应和其他网络控制任务的WAN控制器。控制器108可以发现在各种网络节点19处实例化的SID,并且发现在各种网络节点19处可用的局部(SRLB)和全局(SRGB)标签集。控制器108可以使用路由协议监听其他拓扑信息。根据本文所描述的技术,在集中式控制场景中,控制器108是可以计算满足用于实现SR策略的多个路径(被称为“多路径”)中的每个路径的一个或多个SID列表的计算装置。每个路径是从多路径的源到多路径的目的地。控制器108可以计算从一个或多个源到一个或多个目的地的多路径以实现SR策略。在计算一个或多个SID列表之后,控制器108然后可以至少基于一个或多个SID列表对网络112进行编程以转发网络流量。
当由网络节点19使用来自一个或多个SID列表的SID列表转发的流量沿着一个路径转发而不是在不是一个路径上转发时,一个或多个SID列表满足用于实现SR策略的多个路径中的每个路径。此外,当一个或多个SID列表完全使用多个路径时,该一个或多个SID列表是令人满意的,即网络节点19可以使用一个或多个SID列表沿着任何路径转发流量。例如,第一SID列表可以使导向到SR策略的网络分组遍历多个路径中的第一路径,而第二SID列表可以使导向到SR策略的网络分组遍历多个路径中的第二路径,或者单个SID列表可以使导向到SR策略的网络分组遍历多个路径中的第一路径和第二路径两者。网络节点可以使用加权或非加权等价多路径(ECMP)来将流量转发到下一分段和/或选择一个或多个SID列表中的一个。
图2A至图2B示出具有被配置为根据本公开中所描述的技术操作的网络212和控制器108的示例系统200的框图。控制器108和网络212可以分别是图1的控制器108和网络112的示例。
网络212包括网络节点U11、U12、U21、U22、U31、U32、U41、U42、S11、S12、S21、S22、S31、S32、S41以及S42(统称为“网络节点119”)。网络节点119位于不同的站点231-234中。例如,网络节点S41、S42、U41和U42位于站点234,并且网络节点U31、U32、S31和S32位于站点233。
网络节点119中的一些是选播组的成员。选播组221包括网络节点S11和S12。选播组222包括网络节点S21和S22。选播组223包括网络节点S31和S32。选播组224包括网络节点S41和S42。
网络节点119在网络拓扑中与链路201A-201J(统称为“链路201”)连接。链路201中的每个链路具有相关联的度量(例如,IGP度量),表示针对最短路径优先算法遍历链路的成本。在图2A至图2B中使用括号“{M}”示出链路的度量,其中,M的值是度量。例如,连接S41至S31的链路201H的度量为170。如图所示,网络212中链路的默认度量为10。例如,连接U11至S11和U11至S12的未命名链路的度量为10。
图2B示出了从源U11到目的地U31的用于实现SR策略“U11-U31经由站点234”的多路径。多路径包括可以由网络分组从U11到U31采用以满足SR策略的多个可能的计算路径。控制器108或网络节点119中的一个可以计算包括路径230A-230C的计算路径230。例如,路径230A遍历网络节点U11至S12至S42至S32至S31以及连接这些网络节点的对的链路,例如U11-S12链路、S12-S42链路201D等。路径在图2B中示出为使用粗箭头叠加在网络112上。计算路径230不是从U11到U31的最短路径,而是遍历站点234的网络节点以满足SR策略。
图3A至图3H是示出用于在分段路由(SR)策略的多路径解决方案中计算满足图2A至图2B的路径230中的每一个的分段标识符(SID)列表的过程的框图。例如,当附加到由U11导向SR策略的分组时,SID列表的列表将使网络212在多路径上转发分组,并且防止网络212在不是多路径的路径(即,不是路径230中的一个)的路径上转发分组。在一些示例中,该技术可以包括:基于路由(例如,IGP)度量确定网络节点119距多路径的源网络节点U11的相应距离,并且识别要用作SID的基础以扩展正在进行的SID候选列表的一个或多个网络节点119或邻接的候选集(或“候选组合”)。在一些情况下,本技术包括基于度量来计算以源网络节点U11为根的等距度量图。识别一个或多个网络节点或邻接的候选集可以包括识别所有多路径遍历并且将不会被多路径中从较早网络节点119到后续网络节点119的最短路径旁路(例如,路由旁路)的一个或多个网络节点119。识别一个或多个网络节点或邻接的候选集可以包括识别与源等距并且不被多路径中从较早网络节点119到后续网络节点119的最短路径共同旁路的两个或更多个网络节点119。从所识别的网络节点候选集生成的SID可以包括选播SID和节点SID。该技术可以通过用从一个或多个网络节点或邻接的新识别的候选集生成的SID扩展正在进行的SID候选列表并且从一个或多个网络节点或邻接的候选集的网络节点生根其他等距度量图来迭代地建立SID候选列表。本技术可以由控制器108或由任何网络节点119应用,但是在下文中主要关于控制器108进行描述。
图3A示出以源网络节点U11为根并且在表示路径230的多路径的路径树310旁边示出的等距度量图(MG)300。控制器108基于路径230和路径230的链路的度量计算MG 300。控制器108可以使用最短路径优先算法(诸如,Dijkstra)来计算MG 300。MG 300包括度量图节点302A-302I(统称为“MG节点302”)和表示路径树的链路的有向边。例如,MG 300包括从MG节点302A到302B的有向边。MG节点302中的每个MG节点基于多个路径230中表示的链路的度量来表示沿着多个路径230中的至少一个路径距源网络节点U11相同距离的一个或多个网络节点119中的至少一个网络节点。图3A示出了使用垂直对准的MG节点302中的任一个的所表示的网络节点。例如,网络节点U11由MG节点302A表示,网络节点S11和S12由MG节点302B表示等。如本文所使用的,网络节点可以可选地被描述为用于度量图的“由度量图节点表示”或“在度量图节点中”。
由MG节点302表示的网络节点119与由定向MG 300中的先前和后续MG节点302表示的网络节点119等距。例如,S41和S42两者都与由MG节点302C表示的S11和S12等距(通过度量值30),与由MG节点302F表示的S32等距(通过度量值70),并且与也由MG节点302H表示的S32等距(通过度量值90)。S32由多个MG节点302表示,因为它被多个路径230遍历并且在这些多个路径上距源不同的距离。当计算时,MG节点302中的每个默认可以是用于扩展一个或多个SID列表的候选MG节点。
因为它们与源节点等距,所以MG节点中的多路径节点为SID候选列表提供候选节点和选播SID。具有按顺序围绕它们的链路的MG节点302被称为旁路。旁路MG节点302不产生节点或选播SID候选,因为流量需要在其周围流动。
图3B示出了MG 300,其中,一些MG节点302被指示为旁路,因为流量需要在其周围流动。例如,表示网络节点U41和U42的MG节点302D被标记为旁路,因为路径230A不包括U41或U42,并且路径230A上的流量因此在U41和U42周围流动。MG节点302E、302F和302G也被标记为旁路。MG 300用定向边指示旁路节点。从MG节点302C到MG节点302F的定向边旁路MG节点302D和302E。MG节点302D和302E因此被标记为旁路。控制器108因此可以通过遍历MG 300并且识别具有围绕MG 300的定向边的MG节点来识别旁路MG节点302。
理解旁路节点的另一方式是考虑如果S42在SID堆栈的顶部接收到具有用于U41或U42的节点SID的分组,则S42将做什么。S42将分别在链路S42->U41和S42->U42上发送流量。并且那些方向上的那些链路不是用于保持流量开启的多路径上的链路。因此,查看MG中的旁路MG节点成为消除候选的有效方式,而无需在一个网络节点在旁路MG节点中而另一网络节点在一些其他MG节点中的所有网络节点的对之间进行完整的ECMP最短路径计算。
通过分析从源MG节点302A的所表示的网络节点到非旁路MG节点302中所表示的节点的最短多路径,可以消除更多候选。如果这样的最短多路径未包含在多路径解决方案(这里是路径230)中,则那些MG节点302不是候选。这从候选列表中消除MG节点302H和302I,因为从U11到S32或S31的最短路径遍历网络节点S21和S22,并且这些路径不是路径230(多路径)中的任何一个。
图3D示出了SID候选列表的迭代生成中的步骤。已经从考虑中消除了MG节点302D-302I,控制器108在这种情况下可以应用贪婪启发法(greedy heuristic)来选择距MG源节点302A距离最远的剩余MG节点302C。MG节点302C表示包括网络节点S41和S42的选播组224(在该示例中,具有标识符“S4”)。这些选播组224中的每一个与正在进行的SID候选列表的候选SID相对应。因为正在进行的列表为空,所以控制器108创建两个正在进行的SID候选列表,一个正在进行的SID候选列表由列表350A-350B组成,并且一个正在进行的SID候选列表是列表350C,控制器108将相应的S41(其节点SID)、S42(其节点SID)和S4(组224的选播SID)分段添加到这些候选列表中。参考图2B,可以看出,根据正在进行的SID候选列表350A-350C中的任何一个转发的流量将到达选播组224,并且涵盖到达选播组224的多路径内的所有路径。
图3E示出了进一步启发式的应用,其中,因为选播组224中的所有网络节点由MG节点302C与选播组224一起表示,即,在选播组224之外不存在其他网络节点119,所以控制器108对选播组224的选播SID应用偏好。控制器108可以因此丢弃SID候选列表中的一个的列表350A和350B。
图3E示出了进一步启发式的应用,其中,因为选播组224中的所有网络节点由MG节点302C与选播组224一起表示,即,在选播组224之外不存在其他网络节点119,所以控制器108对选播组224的选播SID应用偏好。控制器108因此丢弃有利于优选列表350C的列表350A和350B。
虽然MG节点302B和302C两者都产生用于正在进行的最小SID列表的开始的候选,但是所应用的可选偏好用于SID列表中的最少SID。MG节点302C因此产生比MG 302B更好的候选,因为其覆盖更多的多路径。SID列表的一个候选开始是使一个候选以S41的节点SID开始并且另一候选以S42的节点SID开始。由于S41和S42在具有标识符S4的同一选播组224中,所以SID列表的另一候选开始是以S4开始的单个SID列表。当在更靠近源的MG节点302中不存在选播组的其他成员时,该选播选项可以仅是候选。如果是这种情况,则选播组的这些较早成员将捕获流量并且在多路径之外的路径上发送。因此,当MG节点302表示一个或多个网络节点119中的多个网络节点时,控制器108可以生成正在进行的SID列表以包括由MG节点302表示的至少一个网络节点119的选播SID。控制器108排除旁路MG节点。控制器108可以排除“不包括”(即,不包括从源网络节点到由MG节点302表示的节点的最短路径)的MG节点302。
用于将SID添加到具有不同MG的其他拓扑的正在进行的SID列表的附加示例操作如下。
在一个示例中,当MG的MG节点表示多个网络节点119,加入MG中的至少两个有向边,不被任何有向边旁路时,并且当从用于多路径的源到由MG节点表示的网络节点的最短路径(由控制器108计算)是多路径的路径的子路径时,控制器108可以将节点SID添加到正在进行的SID列表中的一个或多个。节点SID用于该网络节点(由MG节点表示)。
在另一示例中,当MG的MG节点加入MG中的至少两个定向边时,控制器108可以将节点SID添加到正在进行的SID列表中的一个或多个。节点SID是由G节点表示的网络节点。
在另一示例中,当MG的MG节点加入MG中的至少两个有向边并且不被任何有向边旁路时,控制器108可以将节点SID添加到正在进行的SID列表中的一个或多个。节点SID是由G节点表示的网络节点。
在另一示例中,当MG的MG节点加入MG中的至少两个有向边,不被任何有向边旁路时,并且当从用于多路径的源到由MG节点表示的网络节点的最短路径(由控制器108计算)是多路径的路径的子路径时,控制器108可以将节点SID添加到正在进行的SID列表中的一个或多个。节点SID用于该网络节点(由MG节点表示)。
图3E还示出了网络212的子网络,其仅示出了用于到达S4(组224)的多路径的初始方面。包括路径230的所有子路径。路径的子路径是路径的一个或多个连接链路的任何集合。
图3F示出了在生成正在进行的SID候选列表中的下一迭代步骤。剩余的任务是计算SID列表的扩展以覆盖剩余的多路径。为此,考虑S41和S42的视角。控制器108将来自剩余步骤的MG 300的剩余部分重新组织为两个MG(或生成新MG),一个MG来自S41,一个MG来自S42。对于仍在正在进行的列表350C,控制器108计算路径230的新MG,这次以选播SID S4(组224)中的每个网络节点119为根。即,每个到达的网络节点119是新MG的根。因此,MG 320A在S41处生根,并且MG 320B在S42处生根。这两个MG 320A、320B中的所有MG节点都是候选,没有一个MG节点被旁路,并且所有MG节点都恰好包含它们所表示的网络节点119之间的最短多路径。
图3G示出了兼容候选组合340和342。当正在进行的SID列表到达多个节点并且存在多个MG时,与MG 320A和320B一样,控制器可以选择MG节点的兼容候选组合,从每个MG中选择MG节点的兼容候选组合。最简单的兼容性是包含完全相同的网络节点的候选集。在该示例中,存在两个这样的兼容组合340和342,如图所示。这是简单的示例,对于每个兼容组合,在每个兼容组合的每个成员(S32或U31)中存在单个相同的网络节点。当是这种情况时,SID列表可以用节点SID扩展以扩展正在进行的SID列表。图3H示出了贪婪启发法的应用,其中,控制器108进一步通过距MG 320A、320B的源MG节点(即,表示U31的MG 320A、320B的相应MG节点)的距离来选择兼容MG节点。
选播组使得能够实现更精细的兼容组合。如果组合中的所有网络节点都在同一选播组中,并且选播组的成员没有出现在将被正在进行的SID列表的扩展覆盖的子多路径中,则控制器108可以使用选播SID来扩展正在进行的SID列表。
第二种更精细的情况是每个MG节点包含相同的网络节点集合的组合。在这种情况下,可以通过复制正在进行的SID列表并且用集合中的每个节点的节点SID来扩展正在进行的SID列表。
图3H还示出了网络212的子网络,其示出了U31的分段将到达延伸到U31的多路径的所有路径。因为U31是目的地,所以这完成了多路径,并且因此,利用U31的SID从350C更新正在进行的更新SID列表360C。
图4A至图4C是示出用于在分段路由(SR)策略的多路径解决方案中利用来自图2A至图2B的修改网络212来计算满足每个路径230的分段标识符(SID)列表的过程的框图。图4A中的网络212已经通过将链路201G的度量从70改变为170而被修改。因此,从选播组224到U31的最短路径不再经由链路201G而是经由S21和S22。这使分别以S41、S42为根的MG 420A、420B的先前兼容MG节点“不包含”并且从作为候选MG节点的考虑中消除。控制器108因此必须使用邻接SID强制流量通过承载多路径的链路201G。为了具有链路201G的邻接SID,邻接的入口S42也必须是SID。
换句话说,有时需要使用邻接SID来强制流量到昂贵的链路上。以站点233与234之间的第二链路的度量也被设置为170的先前示例为例,可以看出从S41和S42至S32和U31的所有最短多路径转向不在所请求的多路径中的链路。因为邻接SID是不可路由的,所以它们前面可以有节点SID,该节点SID获得到具有邻接的节点的流量。将S42、S42-S32添加到SID列表将覆盖突出显示的子多路径,但是选播S4将把一些流量引导到S42,根据SR实现,这可能不能弹出S4和S42两者。
图4C示出了以上问题的两个解决方案,具有2个SID列表472A、472B的第一解决方案以及具有使用邻接(从站点231(“S1”)到站点232(“S2”)的所有邻接)集的单个SID列表的第二解决方案。
图5是示出根据本公开的技术的示例控制器的框图。控制器512可以表示控制器108的示例实现。例如,控制器512可以是或实现WAN控制器、软件定义联网(SDN)控制器和/或路径计算单元。
总体上,控制器512的路径计算模块514和路径供应模块518可以使用协议来实例化网络中的路径计算客户端(例如,路由器)之间的路径。南向API 532允许控制器512使用例如ISIS、OSPFv2、BGP-LS和PCEP协议与启用SR和其他网络节点(例如,网络的路由器和交换机)通信。通过提供网络中的全局网络状态和带宽需求的视图,控制器512能够计算最优路径并且使用SR范例中的SID列表提供网络用于转发。
在一些示例中,应用服务向控制器512发出路径请求以请求由控制器512控制的路径计算域中的路径。例如,路径请求包括所需的带宽或其他约束以及表示在由控制器512管理的路径计算域上通信的接入节点和边缘节点的两个端点。路径请求可以进一步指定路径必须可操作的时间/日期和CoS参数(例如,某些路径的每类所需的带宽)。
控制器512接受来自应用服务的路径请求以在路径计算域上的端点之间建立路径。可以针对不同时间和日期以及不同的带宽要求请求路径。控制器512基于所请求的路径参数和预期的网络资源可用性来协调来自应用服务的路径请求以将所请求的路径复用到路径计算域上。
为了智能地计算和建立通过路径计算域的路径,控制器512包括拓扑模块516以维持描述路径计算域的可用资源的拓扑信息(例如,流量工程数据库),包括接入、聚合和边缘节点、其接口以及互连通信链路。
控制器512的路径计算模块514计算通过路径计算域的所请求的路径。通常,路径是单向的。在计算路径时,路径计算模块514调度路径以供路径供应模块518供应。计算路径包括可由路径供应模块518用于在网络中建立路径的路径信息。提供路径可能需要在提交路径以提供分组传输之前进行路径验证。
分布式WAN控制器的进一步示例细节可以参见标题为“软件定义的网络控制器(Software Defined Network Controller)”的美国专利9,450,817,其全部内容通过引用并入本文。这仅是一个示例,并且控制器512可以以其他方式计算和提供路径。
在该示例中,控制器512包括形式为北向应用编程接口(API)530和南向API(532)的北向接口和南向接口。北向API 530包括方法和/或可访问的数据结构,如上所述,应用服务可以通过这些方法和/或可访问的数据结构来配置和请求路径计算和查询路径计算域内所建立的路径。南向API 532包括方法和/或可访问的数据结构,控制器512通过这些方法和/或可访问的数据结构接收路径计算域的拓扑信息,并且通过接入和编程路径计算域内的聚合节点和/或接入节点的数据平面来建立路径。
路径计算模块514包括用于存储用于计算和建立所请求的路径的路径信息的数据结构。这些数据结构包括约束534、路径要求536、操作配置538以及路径导出540。应用服务可以调用北向API 530来安装/查询来自这些数据结构的数据。约束534表示描述路径计算上的外部约束的数据结构。约束534允许应用服务例如在路径计算模块514计算一组路径之前修改诸如度量的链路属性。
应用服务可以修改链路的属性以实现所得流量工程计算。在这种情况下,链路属性可以覆盖从拓扑指示模块550接收的属性,并且在拓扑中的节点/伴随端口的持续时间内保持有效。例如,到约束534的链路编辑消息可以包括指定节点标识符和端口索引的链路描述符以及指定带宽、预期传送时间、共享链路组和命运共享组的链路属性。链路编辑消息可以由控制器512发送。
操作配置538表示向控制器512提供配置信息以相对于例如服务类(CoS)描述符和绕行行为来配置路径计算算法的数据结构。操作配置538可以根据CCP接收操作配置信息。例如,操作配置消息指定CoS值、队列深度、队列深度优先级、调度规则、过度供应因素、绕行类型、路径故障模式以及绕行路径故障模式。单个CoS简档可以用于整个路径计算域。在2013年3月15日提交的标题为“具有集中式控制的聚合网络(Aggregation Network withCentralized Control)”的美国申请第13/842,453号中描述了示例CoS值,其全部内容通过引用并入本文。分配给服务类的服务类可以独立于作为路径计算域的属性的节点。
路径导出540表示存储路径计算域中当前提交或建立的所有路径的路径描述符的接口。响应于经由北向API 530接收的查询,路径导出540返回一个或多个路径描述符。所接收的查询可以请求终止路径的任何两个边缘与接入节点之间的路径。在一些示例中,路径描述符可以由应用服务使用以在终止路径的边缘和接入节点处建立转发配置。路径描述符可以包括显式路由对象(ERO)。响应于来自受关注方的查询,可以发送路径描述符或“路径信息”。路径导出消息递送包括路径类型(主路径或绕行路径)的路径信息;每个CoS值的带宽。响应于接收到路径描述符,接收装置可以使用RSVP-TE向从路径的入口到出口的MPLSLSP发信号。
路径要求536表示接收针对要由路径计算模块536计算的路径的路径请求并且将这些路径请求(包括路径要求)提供给路径引擎544以供计算的接口。路径要求536可以被接收,或者可以由控制器处理。在这种情况下,路径要求消息可以包括具有终止指定路径的节点的入口节点标识符和出口节点标识符的路径描述符以及包括CoS值和带宽的请求参数。路径要求消息可以添加到指定路径的现有路径要求或从指定路径的现有路径要求中删除。
拓扑模块516包括拓扑指示模块550以处理拓扑发现,并且在需要时维护控制器512与路径计算域的节点之间的控制信道。拓扑指示模块550可以包括向路径计算模块514描述所接收的拓扑的接口。
拓扑指示模块550可以使用拓扑发现协议来向路径计算模块514描述路径计算域拓扑。在一个示例中,使用用于拓扑发现的云控制协议机制,拓扑指示模块550可以接收节点邻居列表,其中,每个邻居包括节点标识符、本地端口索引和远程端口索引,以及链路属性的列表,每个链路属性例如指定端口索引、带宽、预期传送时间、共享链路组和命运共享组。
拓扑指示模块550可以与拓扑服务器(诸如路由协议路由反射器)通信以接收网络的网络层的拓扑信息。拓扑指示模块550可以包括执行路由协议以接收路由协议通告(诸如开放最短路径优先(OSPF)或中间系统到中间系统(IS-IS)链路状态通告(LSA)或边界网关协议(BGP)更新消息)的路由协议处理。在一些示例中,拓扑指示模块550可以是既不转发路由协议通告也不发起路由协议通告的无源(被动,passive)监听器。在一些示例中,拓扑指示模块550可以可选地或另外执行拓扑发现机制,诸如,用于应用层流量优化(ALTO)服务的接口。拓扑指示模块550可以因此接收由拓扑服务器(例如,ALTO服务器)收集的拓扑信息的摘要,而不是执行路由协议以直接接收路由协议通告。
在一些示例中,拓扑指示模块550接收包括流量工程(TE)信息的拓扑信息。拓扑指示模块550可以例如执行具有TE扩展的中间系统到中间系统(IS-IS-TE)或具有TE扩展的开放最短路径优先(OSPF-TE)以接收所通告的链路的TE信息。这种TE信息包括链路状态、管理属性和度量(诸如可用于连接路径计算域的路由器的链路的各种LSP优先级等级的带宽)中的一个或多个。在一些示例中,指示模块550执行BGP-TE以接收用于自治间系统和其他网络外链路的通告的TE信息。
流量工程数据库(TED)542将由拓扑指示模块550接收的用于构成控制器512的路径计算域的网络的拓扑信息存储到计算机可读存储介质(未示出)。TED 542可以包括一个或多个链路状态数据库(LSDB),其中,链路和节点数据在路由协议通告中接收、从拓扑服务器接收和/或由链路层实体(诸如覆盖控制器)发现,并且然后提供给拓扑指示模块550。在一些示例中,运营商可以经由客户端接口在MT TED 542内配置流量工程或其他拓扑信息。
路径引擎544以TED 542的形式接受路径计算域的当前拓扑快照,并且使用TED542来计算由所配置的节点特定策略(约束534)和/或通过经由API与外部模块的动态联网所指示的节点之间的CoS感知流量工程路径。路径引擎544可以进一步根据所配置的故障转移和容量要求(分别如操作配置538和路径要求536中所指定的)基于每CoS计算所有主路径的绕行。
通常,为了计算所请求的路径,路径引擎544基于TED 542和所有指定的约束条件来确定在层中是否存在在所请求的时间的持续时间内满足所请求的路径的TE规范的路径。路径引擎544可以使用Dijkstra约束SPF(CSPF)546路径计算算法来识别通过路径计算域的满意路径。如果不存在TE约束,则路径引擎544可以恢复到SPF。如果存在所请求的路径的满意的计算路径,则路径引擎544将计算路径的路径描述符提供给路径管理器548以使用路径供应模块518来建立路径。由路径引擎544计算的路径可以被称为“计算”路径,直到路径供应518将调度路径编程到网络中,由此调度路径变成“有源(活动,active)”或“提交”路径。调度或有源路径是在调度时间的临时专用带宽信道,在该调度时间中,路径是可操作的或将变得可操作来传输流。
路径管理器548使用路径供应模块518建立所计算的调度路径,在本示例中,路径供应模块518包括转发信息库(FIB)配置模块552(示为“FIB配置552”)、策略配置模块554(示为“策略配置554”)以及CoS调度器配置模块556(示为“COS调度器配置556”)。
FIB配置模块552对到路径计算域的聚合节点或接入节点的数据平面的转发信息进行编程。聚合节点或接入节点的FIB包括MPLS交换表、每个主LSP的绕行路径、CoS调度器每接口和LSP入口处的策略器。FIB配置模块552可以实现例如软件定义联网(SDN)协议(诸如OpenFlow协议或I2RS协议)以提供并指导节点将转发信息安装到它们相应的数据平面。因此,“FIB”可以指例如一个或多个OpenFlow流表形式的转发表,每个OpenFlow流表包括指定处理匹配分组的一个或多个流表条目。FIB配置模块552可以另外或可选地实现其他接口类型,诸如简单网络管理协议(SNMP)接口、路径计算单元协议(PCEP)接口、装置管理接口(DMI)、CLI、到路由系统的接口(I2RS)或任何其他节点配置接口。FIB配置模块接口62建立与聚合节点或接入节点的通信会话以安装转发信息以接收路径设置事件信息,诸如确认所接收的转发信息已经成功安装或所接收的转发信息无法安装(指示FIB配置失败)。
FIB配置模块552可以根据从路径计算模块514接收的信息添加、改变(即,隐式添加)或删除转发表条目。从路径计算模块514到FIB配置模块552的FIB配置消息可以指定事件类型(添加或删除);节点标识符;路径标识符;一个或多个转发表条目,每个转发表条目包括入口端口索引、入口标签、出口端口索引和出口标签;以及指定路径标识符和CoS模式的绕行路径。
策略配置模块554可以被路径计算模块514调用以请求将策略器安装在特定聚合节点或接入节点上用于特定LSP入口。如上所述,用于聚合节点或接入节点的FIB包括LSP入口处的策略器。策略器配置模块554可以接收策略器配置请求。策略配置请求消息可以指定事件类型(添加、改变或删除);节点标识符;LSP标识符;以及针对每个服务类,策略器信息列表包括CoS值、最大带宽、突发和丢弃/备注。FIB配置模块552根据策略配置请求配置策略器。
CoS调度器配置模块556可以被路径计算模块514调用以请求在聚合节点或接入节点上配置CoS调度器。CoS调度器配置模块556可以接收CoS调度器配置信息。例如,调度配置请求消息可以指定事件类型(改变);节点标识符;端口标识值(端口索引);以及指定带宽、队列深度和调度规则的配置信息。
路径引擎544可以计算满足分段路由(SR)策略的多路径解决方案中的每个路径的分段标识符(SID)列表。路径供应模块518可以将SID列表输出到启用SR的网络节点以提供网络以沿着多路径转发流量。
控制器512包括硬件环境,该硬件环境包括用于执行用于实现模块、接口、管理器和关于控制器512示出和描述的其他组件的机器可读软件指令的处理电路551。组件可以单独地以软件或硬件实现,或者可以实现为软件、硬件或固件的组合。例如,控制器512可以包括一个或多个处理器,该处理器包括以软件指令形式执行程序代码的处理电路551。在这种情况下,各种软件组件/模块可以包括存储在诸如计算机存储器或硬盘(未示出)的计算机可读存储介质上的可执行指令。
图6是更详细地示出路径引擎544的示例实现的框图。路径引擎544可以在网络堆栈的不同层处执行各种路由协议670。路径引擎544负责维护路由信息660以反映网络的当前拓扑。路由信息660可以包括TED 542和LSDB 680。具体地,路由协议周期性地更新路由信息660以基于由控制器512接收的路由协议消息准确地反映网络和其他实体的拓扑。协议可以是在一个或多个处理器上执行的软件过程。例如,路径引擎544包括在网络堆栈的网络层处操作的网络协议,其通常被实现为可执行软件指令。操作可以重叠或者替代地由拓扑模块516执行。
协议670可以包括用于在网络中的路由域之间交换路由和可达性信息的边界网关协议(BGP)671和用于在网络中的路由域之间交换流量工程和分段路由策略信息的BGP-LS672。协议670还可以包括IGP 673以交换链路状态信息并且促进在每个路由域内的路由器之间转发分组或其他数据单元。在一些示例中,IGP 673可以包括实现用于在路由域内交换路由和可达性信息的IGP的IS-IS路由协议。IGP 673可以包括支持流量工程的IS-IS扩展。在一些示例中,协议670可以包括OSPF组件和IS-IS组件两者。
协议670还可以包括配置协议。例如,协议670可以包括PCEP 674或NETCONF。
路径引擎544包括SR组件,该SR组件实现本文描述的技术以生成多个SID列表。SID列表686包括以这种方式生成的一个或多个SID列表,其可以由控制器512供应到网络以用于分段路由隧道。入口路由器可以通过在分段路由报头或MPLS标签堆栈中用SID标签堆栈预附分组而使用SID来经由被称为分段的受控指令集来导向分组。协议670可以包括其他路由协议(未示出),诸如标签分发协议(LDP)、具有流量扩展的资源预留协议(RSVP-TE)、路由信息协议(RIP)或其他网络协议。
在该示例中,路径引擎544包括命令行接口(CLI)678,其向管理员提供访问以监视、配置或以其他方式管理控制器512。管理员可以经由CLI 678配置控制器512的各方面,包括与路由以及计算和供应用于多路径的SID列表有关的方面。CLI678可以启用指定源、目的地、用户约束、偏好、SR策略和其他可配置信息。
图7是示出根据本公开的一个或多个技术的计算装置的示例操作的流程图。计算装置可以是控制器108或518或本文所描述的其他控制器的计算装置,或可以表示网络节点,诸如用于SR策略的头端或入口路由器。然而,关于控制器108来描述流程图。如图7的示例所示,控制器108可以通过包括一个或多个网络节点119的网络212获得多个路径230,该多个路径230中的每个路径表示从源网络节点到目的地网络节点的连接网络节点的对的链路的不同序列(700)。接下来,控制器108可以计算满足多个路径中的每个路径的一个或多个分段标识符(SID)列表(705)。在一些示例中,SID列表中的任何一个自身满足多个路径中的每个路径。然而,在一些示例中,SID列表可以共同而不必单独满足所有路径。在一些情况下,控制器通过基于链路的度量计算以源网络节点119为根的等距度量图来计算一个或多个SID列表,该等距度量图包括度量图节点和表示链路的有向边,度量图节点中的每个度量图节点基于多个路径230中表示的链路的度量来表示沿着多个路径230中的至少一个路径距源网络节点相同距离的一个或多个网络节点119中的至少一个网络节点119。接下来,控制器108可以至少基于一个或多个SID列表对网络112进行编程以转发网络流量(710)。
图8是示出根据本公开的技术由计算装置执行的用于计算用于实现多路径的SID候选列表的示例操作的流程图。在计算装置获得描述多个路径的数据之后执行操作。数据可以使用链路、节点、接口或其一些组合来描述路径。
通过将InProgressSet设置为[[]]并且将Candidates设置为[](815)来初始化操作。InProgressSet可以与在本文件的其他地方描述的正在进行的SID候选列表相对应。Candidates可以是SID最小化问题(即,SID列表)的候选解决方案,其例如共同或单独满足实现SR策略的多路径。Candidates中的每一个是一个或多个SID列表的集合。
在进入循环的下一步骤,如果不是InProgressSet==[](即,InProgressSet不是空的,820的否分支),则计算装置从InProgressSet中删除InProgress,并且将Cand(idate)Combos设置为用于InProgress的MG的兼容组合(825)。
该过程然后进入另一循环。如果不是CandCombos==[](即,CandCombos是空的,830的否分支),则计算装置从CandCombos中删除Combo,并且将InProgressExt设置为(利用Combo扩展的InProgress)(835)。如果InProgressExt完成并且满足用户约束(840的是分支),则计算装置将InProgressExt添加到Candidates(850)并且循环回到(830)。如果InProgressExt未完成或不满足用户约束(840的否分支),则计算装置必须继续扩展正在进行的SID候选列表,并且因此将InProgressExt添加到InProgressSet(845)。计算装置循环到该内部循环的测试(830)。
如果CandCombos==[](830的是分支),则计算装置循环回到(820)以确定是否存在额外的正在进行集合。如果InProgressSet==[](空,820的是分支),则计算装置由评估准则对Candidates进行排序(860),并且输出所排序的Candidates作为供网络用于在多路径上转发的SID列表(865)。
用户约束可以包括:
·网络节点无法执行多个弹出
·网络节点最大SID深度(MSD)限制(SID列表长度)
·其他用户约束
SID列表计算偏好的可配置标准可以包括:
·最小化SID列表长度
·最小化SID列表的数量
·SID类型偏好(例如,前缀SID>节点SID>邻接SID)
·链路故障下路径的稳定性(例如,优选稳定路径)
在计算SID列表时,可以对每个准则进行加权。
总体上,本文描述的SID计算算法列表可以应用启发法来:
·利用MG查找节点和选播选项
·尽早生成可能良好的解决方案的贪婪启发法
·搜索以生成替代方案
·基于标准进行评估
·并行化候选评估
·当前和可视化替代方案,让操作员选择
·等。
本文所描述的技术可以以硬件、软件、固件或其任何组合来实现。被描述为模块、单元或组件的各种特征可以以集成逻辑装置一起实现或单独地实现为分立但可互操作的逻辑装置或其他硬件装置。在一些情况下,电子电路的不同特征可以实现为一个或多个集成电路装置,诸如集成电路芯片或芯片组。
如果以硬件实现,则本公开可以涉及诸如处理器或集成电路装置(诸如集成电路芯片或芯片组)的设备。可选地或另外,如果以软件或固件实现,则本技术可以至少部分地由包括指令的计算机可读数据存储介质来实现,当执行时,该指令使处理器执行以上描述的一种或多种方法。例如,计算机可读数据存储介质可以存储这样的指令以供处理器执行。
计算机可读介质或计算机可读存储装置可以形成可以包括封装材料的计算机程序产品的一部分。计算机可读介质可以包括计算机数据存储介质,诸如随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存、磁或光数据存储介质等。在一些示例中,制品可以包括一个或多个计算机可读存储介质。
在一些示例中,计算机可读存储介质可以包括非暂时性介质。术语“非暂时性”可以指示存储介质不体现在载波或者传播信号中。在某些示例中,非暂时性存储介质可以存储可以随时间变化的数据(例如,在RAM或高速缓存中)。
代码或指令可以是由包括一个或多个处理器(诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他等效集成或离散逻辑电路)的处理电路执行的软件和/或固件。因此,如本文所使用的术语“处理器”可以指前述结构中的任何一个或适于实现本文所描述的技术的任何其他结构。另外,在一些方面,可以在软件模块或硬件模块内提供本公开中描述的功能。
Claims (20)
1.一种计算机网络方法,包括:
由计算装置获得通过包括一个或多个网络节点的网络的多个路径,所述多个路径中的每个路径表示从源到目的地的连接网络节点的对的链路的不同序列;
由所述计算装置计算满足所述多个路径中的每个路径的一个或多个分段标识符SID列表;并且
至少基于所述一个或多个SID列表对所述网络进行编程以转发网络流量。
2.根据权利要求1所述的方法,
其中,在所述多个路径中表示的每个链路具有度量,并且
其中,计算所述一个或多个SID列表进一步包括:基于所述链路的所述度量计算以所述源为根的等距度量图,所述等距度量图包括度量图节点和表示所述链路的有向边,所述度量图节点中的每个度量图节点基于所述多个路径中表示的所述链路的所述度量来表示沿着所述多个路径中的至少一个路径距所述源相同距离的所述一个或多个网络节点中的至少一个网络节点。
3.根据权利要求2所述的方法,其中,计算所述一个或多个SID列表进一步包括:
当所述度量图节点中的一度量图节点表示所述一个或多个网络节点中的多个网络节点时,生成所述一个或多个SID列表中的至少一个SID列表以包括由所述度量图节点表示的所述至少一个网络节点的选播SID。
4.根据权利要求2所述的方法,其中,计算所述一个或多个SID列表进一步包括:
当所述度量图节点中的一度量图节点表示所述一个或多个网络节点中的多个网络节点并且未被所述有向边中的任何有向边旁路时,生成所述一个或多个SID列表中的至少一个SID列表以包括由所述度量图节点表示的所述至少一个网络节点的选播SID。
5.根据权利要求2所述的方法,其中,计算所述一个或多个SID列表进一步包括:
当所述度量图节点中的一度量图节点加入所述有向边中的至少两个有向边时,生成所述一个或多个SID列表中的至少一个SID列表以包括由所述度量图节点表示的所述至少一个网络节点的节点SID。
6.根据权利要求2所述的方法,其中,计算所述一个或多个SID列表进一步包括:
当所述度量图节点中的一度量图节点加入所述有向边中的至少两个有向边并且未被所述有向边中的任何有向边旁路时,生成所述一个或多个SID列表中的至少一个SID以包括由所述度量图节点表示的所述至少一个网络节点的节点SID。
7.根据权利要求2所述的方法,进一步包括:
从所述度量图节点中选择第一源度量图节点和第二源度量图节点;
基于所述多个路径中表示的所述链路的所述度量来计算以所述第一源度量图节点为根的第一等距度量图和以所述第一源度量图节点为根的第二等距度量图;
识别来自所述第一等距度量图的第一度量图节点和来自所述第二等距度量图的第二度量图节点的兼容组合;
生成所述一个或多个SID列表中的至少一个SID列表以包括所述兼容组合的SID。
8.根据权利要求7所述的方法,
其中,识别所述第一度量图节点和所述第二度量图节点的所述兼容组合包括识别由所述第一度量图节点和所述第二度量图节点两者表示的同一网络节点,并且
其中,所述SID包括与所述同一网络节点相对应的节点SID。
9.根据权利要求7所述的方法,
其中,识别所述第一度量图节点和所述第二度量图节点的所述兼容组合包括识别所述一个或多个网络节点中的网络节点的选播组,所述网络节点的选播组包括由所述第一度量图节点表示的至少一个网络节点和由所述第二度量图节点表示的至少一个网络节点,
其中,所述SID包括与所述网络节点的选播组相对应的选播SID。
10.根据权利要求7所述的方法,进一步包括:
其中,识别所述第一度量图节点和所述第二度量图节点的所述兼容组合包括识别由所述第一度量图节点和所述第二度量图节点两者表示的第一网络节点和第二网络节点,所述方法进一步包括:
将所述第一网络节点添加到正在进行的第一SID候选列表以生成正在进行的第一修改的SID候选列表;并且
将所述第二网络节点添加到正在进行的所述第一SID候选列表以生成正在进行的第二修改的SID候选列表,
其中,所述一个或多个SID列表包括正在进行的修改的第一SID候选列表和正在进行的所述第二修改的SID候选列表。
11.根据权利要求1至10中任一项所述的方法,其中,在所述多个路径中表示的每个链路具有度量,并且
其中,计算所述一个或多个SID列表进一步包括:针对正在进行的SID候选列表中的每个候选列表,通过以下操作迭代地添加到正在进行的所述SID候选列表:
计算以与候选列表的候选起点相对应的网络节点为根的等距度量图;
用从所述等距度量图识别的候选组合扩展所述候选列表以生成扩展候选列表;并且
如果所述扩展候选列表未完成,则将所述扩展候选列表添加到正在进行的所述SID候选列表中;并且
如果所述扩展候选列表完成,则将所述扩展候选列表添加到所述一个或多个SID列表。
12.根据权利要求1至10中任一项所述的方法,进一步包括:
由所述计算装置获得一个或多个用户偏好;
根据所述一个或多个用户偏好对所述一个或多个SID列表进行排序;并且
基于所排序的一个或多个SID列表选择优选的一个或多个SID列表,
其中,至少基于所述一个或多个SID列表对所述网络进行编程以转发网络流量包括用所述优选的一个或多个SID列表对所述网络进行编程。
13.根据权利要求12所述的方法,其中,所述一个或多个用户偏好包括以下各项中的一项或多项:最小化SID长度列表、最小化SID列表数量、偏好SID类型和偏好链路故障下更稳定的路径。
14.根据权利要求1至10中任一项所述的方法,其中,所述计算装置包括用于所述网络的控制器和所述一个或多个网络节点的网络节点中的一个。
15.根据权利要求1至10中任一项所述的方法,其中,计算满足所述多个路径中的每个路径的一个或多个SID列表包括:
在所述多个路径中的相应路径上识别距所述源等距的两个或更多个网络节点;并且
生成所述一个或多个SID列表中的至少一个SID列表以包括所述两个或更多个网络节点的SID。
16.根据权利要求15所述的方法,其中,前缀SID包括选播SID或邻接集SID。
17.根据权利要求1至10中任一项所述的方法,其中,计算满足所述多个路径中的每个路径的一个或多个SID列表包括:
识别网络节点中共同加入所述多个路径中的所有路径的一个或多个识别的网络节点;并且
生成所述一个或多个SID列表中的至少一个SID以包括所述一个或多个识别的网络节点的SID。
18.根据权利要求17所述的方法,
其中,如果所述一个或多个识别的网络节点是单个网络节点,则所述SID包括节点SID,并且
其中,如果所述一个或多个识别的网络节点是多个网络节点,则所述SID包括选播SID。
19.一种用于计算分段标识符列表的计算装置,包括:
存储器;以及
处理电路,与所述存储器通信,所述处理电路和所述存储器被配置为:
获得通过包括一个或多个网络节点的网络的多个路径,所述多个路径中的每个路径表示从源到目的地的连接网络节点的对的链路的不同序列;
计算满足所述多个路径中的每个路径的一个或多个分段标识符SID列表;并且
至少基于所述一个或多个SID列表对所述网络进行编程以转发网络流量。
20.一种计算机可读存储介质,所述计算机可读存储介质编码有用于使一个或多个可编程处理器执行由权利要求1至18中任一项所述的方法的指令。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063085927P | 2020-09-30 | 2020-09-30 | |
US63/085,927 | 2020-09-30 | ||
US17/194,104 US11695688B2 (en) | 2020-09-30 | 2021-03-05 | Computing segment identifier lists for multipaths in a segment routing-enabled network |
US17/194,104 | 2021-03-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114363235A true CN114363235A (zh) | 2022-04-15 |
CN114363235B CN114363235B (zh) | 2023-08-18 |
Family
ID=77951644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111156546.2A Active CN114363235B (zh) | 2020-09-30 | 2021-09-29 | 在启用分段路由的网络中计算多路径的分段标识符列表 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11695688B2 (zh) |
EP (1) | EP3979599B1 (zh) |
CN (1) | CN114363235B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115174414A (zh) * | 2022-07-22 | 2022-10-11 | 科来网络技术股份有限公司 | 自动识别会话中设备、设备路径的方法、系统及电子设备 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11240355B2 (en) | 2019-05-17 | 2022-02-01 | Arista Networks, Inc. | Platform agnostic abstraction for forwarding equivalence classes with hierarchy |
US11405320B2 (en) * | 2020-12-04 | 2022-08-02 | Cisco Technology, Inc. | Systems and methods for scalable validation of multiple paths in a network using segment routing |
US11700201B2 (en) * | 2021-07-26 | 2023-07-11 | Arista Networks, Inc. | Mechanism to enforce consistent next hops in a multi-tier network |
CN117792978A (zh) * | 2022-09-28 | 2024-03-29 | 华为技术有限公司 | 一种路径故障检测的方法以及相关装置 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090067330A1 (en) * | 2007-09-06 | 2009-03-12 | Ian Michael Charles Shand | Computing path information to a destination node in a data communication network |
CN103873364A (zh) * | 2012-12-11 | 2014-06-18 | 清华大学 | 域间多路径路由的实现方法 |
US20150156106A1 (en) * | 2013-07-24 | 2015-06-04 | Telefonaktiebolaget L M Ericsson (Publ) | Metric biasing for bandwidth aware tie breaking |
US20150372915A1 (en) * | 2013-01-31 | 2015-12-24 | Hewlett-Packard Development Company, L.P. | Incremental update of a shape graph |
CN105871721A (zh) * | 2015-01-19 | 2016-08-17 | 中兴通讯股份有限公司 | 一种段路由处理方法、处理装置及发送装置 |
US20170346720A1 (en) * | 2014-12-23 | 2017-11-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Path computation in a segment routing network |
US20180262392A1 (en) * | 2017-03-08 | 2018-09-13 | Linkedin Corporation | Automatically detecting roles of nodes in layered network topologies |
US20180324090A1 (en) * | 2015-07-28 | 2018-11-08 | Ciena Corporation | Multicast systems and methods for Segment Routing |
CN109495385A (zh) * | 2018-12-04 | 2019-03-19 | 安徽皖兴通信息技术有限公司 | 一种实现非连续分段路由域的网络流量调度方法 |
CN109863725A (zh) * | 2016-08-15 | 2019-06-07 | 瑞典爱立信有限公司 | 基于最大分段标识符深度的分段路由 |
US20190280927A1 (en) * | 2018-03-06 | 2019-09-12 | Cisco Technology, Inc. | In-band direct mode performance loss measurement in software defined networks |
CN110870261A (zh) * | 2017-07-07 | 2020-03-06 | 华为技术有限公司 | Pecp分段路由路径分段标签绑定扩展 |
WO2020078527A1 (en) * | 2018-10-15 | 2020-04-23 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods and apparatus for transmitting data over multiple paths in a network |
CN111512601A (zh) * | 2018-01-09 | 2020-08-07 | 思科技术公司 | 分组的分段路由网络处理 |
CN111510388A (zh) * | 2019-01-30 | 2020-08-07 | 华为技术有限公司 | 一种确定转发路径的方法、装置及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6928484B1 (en) * | 2000-01-18 | 2005-08-09 | Cisco Technology, Inc. | Method and apparatus for discovering edge-disjoint shortest path pairs during shortest path tree computation |
US8711855B1 (en) | 2012-12-18 | 2014-04-29 | Juniper Networks, Inc. | Topology discovery, control channel establishment, and datapath provisioning within an aggregation network with centralized control |
US9450817B1 (en) | 2013-03-15 | 2016-09-20 | Juniper Networks, Inc. | Software defined network controller |
US11455322B2 (en) * | 2020-05-12 | 2022-09-27 | International Business Machines Corporation | Classification of time series data |
-
2021
- 2021-03-05 US US17/194,104 patent/US11695688B2/en active Active
- 2021-09-29 CN CN202111156546.2A patent/CN114363235B/zh active Active
- 2021-09-29 EP EP21200008.7A patent/EP3979599B1/en active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090067330A1 (en) * | 2007-09-06 | 2009-03-12 | Ian Michael Charles Shand | Computing path information to a destination node in a data communication network |
CN103873364A (zh) * | 2012-12-11 | 2014-06-18 | 清华大学 | 域间多路径路由的实现方法 |
US20150372915A1 (en) * | 2013-01-31 | 2015-12-24 | Hewlett-Packard Development Company, L.P. | Incremental update of a shape graph |
US20150156106A1 (en) * | 2013-07-24 | 2015-06-04 | Telefonaktiebolaget L M Ericsson (Publ) | Metric biasing for bandwidth aware tie breaking |
US20170346720A1 (en) * | 2014-12-23 | 2017-11-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Path computation in a segment routing network |
CN105871721A (zh) * | 2015-01-19 | 2016-08-17 | 中兴通讯股份有限公司 | 一种段路由处理方法、处理装置及发送装置 |
US20180324090A1 (en) * | 2015-07-28 | 2018-11-08 | Ciena Corporation | Multicast systems and methods for Segment Routing |
CN109863725A (zh) * | 2016-08-15 | 2019-06-07 | 瑞典爱立信有限公司 | 基于最大分段标识符深度的分段路由 |
US20180262392A1 (en) * | 2017-03-08 | 2018-09-13 | Linkedin Corporation | Automatically detecting roles of nodes in layered network topologies |
CN110870261A (zh) * | 2017-07-07 | 2020-03-06 | 华为技术有限公司 | Pecp分段路由路径分段标签绑定扩展 |
CN111512601A (zh) * | 2018-01-09 | 2020-08-07 | 思科技术公司 | 分组的分段路由网络处理 |
US20190280927A1 (en) * | 2018-03-06 | 2019-09-12 | Cisco Technology, Inc. | In-band direct mode performance loss measurement in software defined networks |
WO2020078527A1 (en) * | 2018-10-15 | 2020-04-23 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods and apparatus for transmitting data over multiple paths in a network |
CN109495385A (zh) * | 2018-12-04 | 2019-03-19 | 安徽皖兴通信息技术有限公司 | 一种实现非连续分段路由域的网络流量调度方法 |
CN111510388A (zh) * | 2019-01-30 | 2020-08-07 | 华为技术有限公司 | 一种确定转发路径的方法、装置及系统 |
Non-Patent Citations (5)
Title |
---|
AMJED SID AHMED MOHAMED SID AHMED; ROSILAH HASSAN;: "IPv6 Neighbor Discovery Protocol Specifications, Threats and Countermeasures: A Survey", 《 IEEE ACCESS》 * |
FILSFILS C: "segment routing architecture", 《INTERNET ENGINEERING TASK FORCE》 * |
李根;伊鹏;张震;: "软件定义的内容中心网络的分段路由策略", 计算机应用研究, no. 07 * |
石鸿伟等: "基于关键节点的分段路由标签栈压缩算法", 《电子技术与软件工程》 * |
石鸿伟等: "基于关键节点的分段路由标签栈压缩算法", 《电子技术与软件工程》, no. 12, 15 June 2020 (2020-06-15) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115174414A (zh) * | 2022-07-22 | 2022-10-11 | 科来网络技术股份有限公司 | 自动识别会话中设备、设备路径的方法、系统及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
EP3979599A1 (en) | 2022-04-06 |
EP3979599B1 (en) | 2024-04-10 |
US20220103462A1 (en) | 2022-03-31 |
US11695688B2 (en) | 2023-07-04 |
CN114363235B (zh) | 2023-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109257278B (zh) | 用于非分段路由启用的路由器的分段路由标签交换路径方法 | |
US10412019B2 (en) | Path computation element central controllers (PCECCs) for network services | |
CN114363235B (zh) | 在启用分段路由的网络中计算多路径的分段标识符列表 | |
US10193801B2 (en) | Automatic traffic mapping for multi-protocol label switching networks | |
US8787154B1 (en) | Multi-topology resource scheduling within a computer network | |
US11743166B2 (en) | Provisioning non-colored segment routing label switched paths via segment routing policies in border gateway protocol | |
CN114363249B (zh) | 针对多路径分段路由的带宽约束 | |
CN114363250B (zh) | 支持分段路由的网络中的多路径的重新计算 | |
EP3585012B1 (en) | Dynamic tunnel reporting for path computation and traffic engineering within a computer network | |
US9571387B1 (en) | Forwarding using maximally redundant trees | |
US11677659B2 (en) | Optimization of segment routing-enabled multipath network | |
US10554543B1 (en) | Migrating data traffic between label switched paths (LSPs) based on per-LSP protocol priority value | |
US11824763B2 (en) | Filtering topologies for path computation in massively scaled networks |
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 | ||
GR01 | Patent grant |