CN113709033B - 用于分段路由流量工程的分段跟踪路由 - Google Patents
用于分段路由流量工程的分段跟踪路由 Download PDFInfo
- Publication number
- CN113709033B CN113709033B CN202011064035.3A CN202011064035A CN113709033B CN 113709033 B CN113709033 B CN 113709033B CN 202011064035 A CN202011064035 A CN 202011064035A CN 113709033 B CN113709033 B CN 113709033B
- Authority
- CN
- China
- Prior art keywords
- fec
- stack
- mpls
- segment
- lsp
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0811—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- 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/20—Hop count for routing purposes, e.g. TTL
-
- 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/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
描述了用于分段路由流量工程的分段跟踪路由。例如,入口设备包括:一个或多个处理器,可操作地耦接至存储器,该一个或多个处理器被配置为:响应于验证分段路由LSP的连接的请求,配置指定分段路由LSP的分段路由标签的栈的FEC栈;对于从FEC栈中识别的一个或多个设备中的每个设备:为从FEC栈的最外FEC识别的相应设备生成相应的MPLS连接请求分组;将MPLS连接请求分组发送至相应设备;接收验证相应设备的连接的MPLS连接响应分组;并且作为响应,通过去除识别相应设备的FEC栈的最外FEC来更新该FEC栈。
Description
技术领域
本发明涉及计算机网络,并且更具体地涉及用于确定计算机网络连接的状态的软件实用程序。
背景技术
计算机网络是可以交换数据并共享资源的互连计算设备的集合。在诸如互联网的基于分组的网络中,计算设备通过将数据划分成被称为分组的小块来传送数据,这些小块单独地跨网络从源设备路由至目的地设备。目的地设备从分组提取数据,并且将数据组装成其原始形式。
某些设备(即,节点)(诸如,路由器)维护描述通过网络的路由的路由信息。“路由”通常可以被限定为网络上的两个位置之间的路径。在接收到传入的分组时,路由器检查分组中的信息以识别分组的目的地。基于目的地,路由器根据路由信息转发分组。
基于分组的网络越来越多地将标签交换协议用于流量工程和其他目的。多协议标签交换(MPLS)是用于根据由网络中的路由器维护的路由信息来在互联网协议(IP)网络内设计流量模式的机构。通过利用MPLS协议,标签交换路由器(LSR)可以使用前置于流量的标签来将流量沿着特定路径(即,标签交换路径(LSP))通过网络转发到目的地设备。LSP限定通过网络的不同路径以将MPLS分组从源设备运送至目的地设备。路由器可以采用分段路由技术(诸如,通过使用联网中的源分组路由(SPRING)范例)以使用内部网关协议(IGP)在节点之间通告网络分段,并且在IGP域内建立单跳或多跳隧道。为了执行分段路由,入口路由器将标签栈(例如,分段列表)中的一个或多个标签添加至分组,并且沿着路径的中间路由器在分组通过网络转发时,从应用于分组的标签栈去除标签。
存在用于识别网络的两个节点之间的故障连接和用于探索网络拓扑的各种软件实用程序。一种这样的实用程序,被称为LSP查验(ping)机构,用于检测MPLS LSP中的数据平面故障。LSP查验机制可以包括两种模式:用于测试LSP端到端连接的查验模式和用于执行故障隔离的跟踪路由(traceroute)模式。在查验模式下,LSP的入口路由器通过发送MPLS回声(echo)请求分组来测试与远程设备的连接,以检测LSP的出口路由器的连接状态。如果在限定的时间段内未接收到MPLS回声应答分组,则认为沿着LSP到出口路由器的连接断开。在跟踪路由模式下,入口路由器通过跟踪MPLS回声请求分组从入口路由器至出口路由器的路径来识别LSP中的故障的位置。例如,通常将MPLS回声请求分组发送至每个中转路由器的控制平面,该中转路由器针对该中转路由器是用于LSP的中转路由器执行各种检查。中转路由器中的每个中转路由器可以返回指示LSP的功能连接的MPLS回声应答。如果在限定的时间段(例如,生存时间(TTL)值)内未接收到MPLS回声应答分组,则假定沿着LSP至出口路由器的连接断开。
发明内容
总体上,本发明描述了用于入口设备(例如,路由器)的技术,该入口设备被配置为沿着分段路由标签交换路径(LSP)选择性地查验某些设备,以检测分段路由LSP中的故障(例如,数据平面故障)。例如,网络可以被配置为通过网络建立从入口设备到出口设备的分段路由LSP。在分段路由中,当入口路由器接收到分组时,入口路由器通常将分组分配给转发等价类(FEC),使用与FEC相关联的分段路由标签栈封装该分组,并且根据分段路由标签栈在分段路由LSP上转发分组。然后可以在网络内使用LSP查验机制以测试属于特定FEC的分组是否确实被传送至与该FEC相关联的LSP的出口路由器。根据本文描述的技术,入口路由器根据增强型LS查验机制操作,该查验机制沿着分段LSP选择性地查验某些设备,使得入口路由器仅从由FEC栈识别的设备接收响应而不是从沿着分段路由LSP所采取的路径而定位的每个路由设备接收响应。
在一个示例中,入口路由器或其他设备被配置为根据本文中所描述的技术操作,以将MPLS回声请求分组迭代地发送至从转发等价类(FEC)栈识别的每个路由器,该转发等价类(FEC)栈从分段路由标签栈配置而不是必须将MPLS回声请求分组发送至沿着路径的每个下一跳路由器,该下一跳路由器可以包括中间路由器或不参与特定段路由LSP的其他网络设备(即,未在分段路由标签栈中识别出的网络设备)。分段路由中的FEC栈识别参与路由器的一个或多个设备(例如,分段端点),并且如本文进一步描述的,该FEC栈可以用于识别特定路由器以沿着分段路由LSP所经过的路径进行验证。
入口路由器通过生成包括FEC栈和标签栈的多协议标签交换(MPLS)连接请求分组(例如,MPLS回声请求分组,也被称为MPLS查验)来选择性地查验特定分段路由器,以将MPLS回声请求分组引导至从分段路由LSP的FEC栈的最外FEC识别的选定设备。入口路由器将MPLS回声请求分组发送至对应设备,并且等待来自相应设备的MPLS连接性响应分组(例如,MPLS回声应答分组),该MPLS连接响应分组验证分段路由LSP的相应设备的连接。响应于接收MPLS回声应答分组,入口路由器通过从FEC栈去除最外FEC来更新FEC栈并且确定经更新的FEC栈是否为空。如果FEC栈不为空,则入口设备发送包括经更新的FEC栈以及用于将MPLS回波请求分组引导至从经更新的FEC栈的最外FEC识别的相应设备的标签栈的后续MPLS回波请求分组。入口路由器对从FEC栈识别的设备中的每个设备重复该处理,直到FEC栈为空。以此方式,在无需查验沿着由分段路由LSP经过的路径的每个下一跳路由器的情况下,入口设备(或其他设备)可以沿着特定分段路由LSP选择性地查验作为分段路由器操作的设备。
本公开中所描述的技术可以提供实现实际应用的一个或多个技术优点。例如,通过选择性地查验分段路由标签栈中识别的某些设备,入口路由器仅从分段路由标签栈中识别的设备接收响应,这降低了网络的负载,尤其是在大规模网络中。
在一个示例中,本公开针对一方法,该方法包括:响应于验证分段路由标签交换路径(LSP)的连接的请求,分段路由LSP的入口设备来配置转发等价类(FEC)栈,该转发等价类(FEC)栈指定分段路由LSP的分段路由标签的栈,其中,FEC栈包括识别一个或多个设备的信息,该一个或多个设备作为沿着待验证的分段路由LSP的分段端点进行操作;并且对于从FEC栈识别的一个或多个设备中的每个设备:由入口设备为一个或多个设备中的相应设备生成相应的多协议标签交换(MPLS)连接请求分组,其中,相应设备从FEC栈的最外FEC识别出;入口设备将MPLS连接请求分组发送至相应设备;入口设备从相应设备接收MPLS连接响应分组,MPLS连接响应分组验证分段路由LSP的相应设备的连接;并且响应于接收到MPLS连接响应分组,入口设备通过去除识别相应设备的FEC栈的最外FEC来更新该FEC栈。
在另一示例中,本公开针对一分段路由标签交换路径(LSP)的入口设备,包括:一个或多个处理器,可操作地耦接至存储器,其中,一个或多个处理器被配置为:响应于验证分段路由LSP的连接的请求,配置转发等价类(FEC)栈,该转发等价类(FEC)栈指定分段路由LSP的分段路由标签的栈,其中,FEC栈包括识别一个或多个设备的信息,该一个或多个设备作为沿着分段路由LSP操的分段端点进行操作;并且对于从FEC栈中识别的一个或多个设备中的每个设备:为一个或多个设备中的相应设备生成相应的多协议标签交换(MPLS)连接请求分组,其中,相应设备从FEC栈的最外FEC识别出;将MPLS连接请求分组发送至相应设备;从相应设备接收MPLS连接响应分组,该MPLS连接响应分组验证分段路由LSP的相应设备的连接;并且响应于接收到MPLS连接响应分组,通过去除识别相应设备的FEC栈的最外FEC来更新FEC栈。
在另一示例中,本公开针对一非暂时性计算机可读介质,包括用于使入口设备的一个或多个可编程处理器进行以下操作的指令:响应于验证分段路由标签交换路径(LSP)的连接的请求,配置转发等价类(FEC)栈,该转发等价类(FEC)栈指定所述分段路由LSP的分段路由标签的栈,其中,FEC栈包括识别一个或多个设备的信息,该一个或多个设备作为沿着分段路由LSP的分段端点进行操作;并且对于从FEC栈中识别的一个或多个设备中的每个设备:为一个或多个设备中的相应设备生成相应的多协议标签交换(MPLS)连接请求分组,其中,相应设备从FEC栈的最外FEC识别出;将MPLS连接请求分组发送至相应设备;从相应设备接收MPLS连接响应分组,该MPLS连接响应分组验证分段路由LSP的相应设备的连接;并且响应于接收到MPLS连接响应分组,通过去除识别相应设备的FEC栈的最外FEC来更新该FEC栈。
在附图和以下描述中阐述了一个或多个示例的细节。其他特征、目的和优点将从说明书和附图以及权利要求中变得显而易见。
附图说明
图1是示出根据本公开中所描述的技术的示例网络的框图,在该示例网络中,入口设备沿着分段路由标签交换路径选择性地查验某些设备以检测分段路由标签交换路径中的故障。
图2是示出根据本公开中所描述的技术的另一示例网络的框图,在该另一示例网络中,入口设备沿着分段路由标签交换路径选择性地查验某些设备以检测分段路由标签交换路径中的故障。
图3是示出根据本公开中所描述的技术的另一示例网络的框图,在该另一示例网络中,入口设备沿着分段路由标签交换路径选择性地查验某些设备以检测分段路由标签交换路径中的故障。
图4是示出根据本文所描述的技术的网络设备(诸如,图1的入口路由器)的示例的框图。
图5是示出根据本公开所描述的技术的网络的示例操作的流程图。
具体实施方式
图1是示出根据本公开中所描述的技术的示例网络的框图,在该示例网络中,入口设备沿着分段路由标签交换路径(LSP)选择性地查验某些设备以检测分段路由LSP中的故障(例如,数据平面故障)。
在图1的示例中,网络2包括在共同管理控制下并且共享公共路由协议(诸如,内部网关协议(IGP)区域或域)的一组网络设备,例如,路由器12A-12G(被统称为“路由器12”)。示例IGP包括中间系统-中间系统(IS-IS)和开放式最短路径优先(OSPF)。在图1的所示示例中,路由器12A是IGP域的入口路由器,并且路由器12G是IGP域的出口路由器。路由器12B-12F作为中转路由器操作以在IGP域内转发流量。虽然相对于路由器进行描述,但本技术可以由具有路由功能的任何其他类型的网络设备实施,且不必是专用路由设备。
由入口路由器12A接收到的网络流量的源可以包括一个或多个设备(未示出)和/或将流量提供到网络2中的入口路由器12A的任何公共或专用网络或互联网。此外,在该示例中,路由器12G可以用作IGP域的出口路由器。在LSP上转发的网络流量的目的地可以包括一个或多个目的地设备和/或网络,该网络可以包括包含多个设备的局域网(LAN)或广域网(WAN)。例如,目的地设备可以包括个人计算机、膝上型计算机、工作站、个人数字助理(PDA)、无线设备、网络就绪设备、文件服务器、打印服务器或经由网络2访问源的其他设备。
在图1的示例中,在不依赖于网络中的中间设备来确定分组应采取的路径的情况下,路由器12可以使用分段路由技术(诸如,联网中的源分组路由(SPRING)范例)以使入口路由器能够通过网络中的特定一组节点和链路来引导分组。路由器12可以使用分段路由技术来通告路由器之间的分段,并且在网络2中建立单跳或多跳隧道。第一类型的分段是“邻接分段”,该“邻接分段”表示严格转发的、典型的单跳隧道,该隧道在路由器与特定节点之间的特定链路上承载分组,而不管链路代价如何。第二示例类型的分段是“前缀分段”,该前缀分段通常表示使用路由器与特定地址前缀之间的最低代价路径链路的多跳隧道。
在分段路由中,分段的“路径”信息作为域的IGP链路状态信息的一部分在IGP域内的路由器之间传播。例如,使用IGP在路由器12之间(或使用边界网关协议链路状态(BGP-LS)到诸如软件限定联网(SDN)控制器的控制器设备)传播或通告分段的路径信息。入口路由器12A可以将一个或多个分段标识符(SID)(诸如,识别邻接分段的邻接SID和/或识别特定前缀的节点SID)前置于分组来通过指令(即,分段)的有序列表引导分组。换句话说,入口路由器12A可以通过用SID的适当组合(栈)前置于分组来引导分组通过期望的一组节点和链路。分段路由允许路由器强制流通过任何拓扑路径和服务链,同时仅在到每个域的入口节点处维护每流状态。
分段路由可以直接应用于多协议标签交换(MPLS)架构而无需改变转发平面。网络管理员或集中控制器仅需要将SID分配给特定路由器,并且分段路由控制平面架构自动地建立从路由器到任何其他路由器的所需MPLS转发构造。在一些示例中,SID编码为MPLS标签,而SID的有序列表被编码为标签的栈。SID的栈在本文另外被称为“分段路由标签栈。”待处理的分段的SID在标签栈的顶部,并且在分段完成时(即,当分组到达分段的端点时),相关标签随着分组通过网络转发从标签栈弹出。
在2018年7月的Filsfils等人的"Segment Routing Architecture,"InternetEngineering Task Force(IETF),Request for Comments(RFC 8402),对分段路由进行了进一步的描述,而分段路由用例被描述在2013年7月的Filsfils等人的"Segment RoutingUse Cases,"Internet-Draft draft-filsfils-rtgwg-segment-routing-use-cases-01,其中每个的全部内容通过引用并入本文中。(1)在2014年7月3日的“Segment RoutingArchitecture,”IETF draft:draft-filsfils-spring-segment-routing-04中可以找到关于SPRING的进一步细节;(2)在2016年5月的S.Previdi等人的“Source Packet Routing inNetworking(SPRING)Problem Statement and Requirements,”RFC 7855;以及(3)在2014年8月1日的“Segment Routing with MPLS data plane,”IETF draft:draft-filsfils-spring-segment-routing-mpls-03,其中的每一个的全部内容通过引用并入本文中。
下面提供在网络2中建立和使用前缀分段的进一步描述作为说明性示例。路由器12中的每个路由器可以与地址前缀相关联。例如,管理员或控制器可以向一个或多个路由器12分配前缀。前缀可以是地址或地址块。与路由器相对应的前缀可以包括互联网协议(IP)地址(例如,IPv4或IPv6)、IP地址块或识别路由器的另一类型的数据。此外,路由器12中的一个或多个路由器可以被配置有与前缀相关联的分段标识符(SID)(即,标签)。在图1的示例中,路由器12A被配置有为1001的SID,路由器12B被配置有为1002的SID,路由器12C被配置有为1003的SID,等等。
网络2中的路由器可以向在网络2的相同域内的相邻路由器通告该路由器前缀和SID。例如,路由器12可以使用IGP在域内分发前缀和SID。当路由器接收通告时,路由器从路由器的链路状态数据库(LSDB)或流量工程数据库(TED)确定在通告中指定的前缀是否已经与在通告中指定的SID相关联。如果是这种情况并且如果通告呈现有新的最佳路径,则路由器可以响应于通告来更新路由表,使得路由表指示前缀的路由中的下一跳。如果通告呈现出与现有路由相比相等的代价,则路由器可以将相等代价多路径(ECMP)下一跳添加至现有路径。
如果通告指定了未在接收路由器的LSDB或TED中的前缀和SID,则路由器可以计算到通告中指定的前缀的路由。在一些示例中,路由器可以根据最短路径算法或严格最短路径算法计算路由。此外,在一些示例中,通告可以指定要使用的计算到通告中所指定的前缀的路由的算法的类型。此外,路由器可以将由通告指定的SID与计算出的到由通告指定的前缀的路由相关联。换句话说,路由器可以生成使SID与路由相关联的数据。然后,路由器可以将路由安装为活跃路由。将路由安装为活跃路由可以包括生成转发信息,路由器的转发组件可以使用该转发信息以将分组转发至路由的下一跳,该路由与附接至该分组的SID相关联。例如,将路由安装为活跃路由可以包括在将SID映射至接口卡的转发表中生成信息,该接口卡附接至与SID相关联的路由的下一跳的链路。
当路由器12接收分组时,路由器12可以确定一个或多个标签的栈是否附接至分组。标签的栈包括标签的有序序列。如果标签的栈仍然包括一个或多个标签,那么路由器可以确定与栈的活跃标签相关联的下一跳或路由。活跃标签可以是在栈的“顶部”的标签。例如,活跃标签可以是在附接至分组的标签的有序序列中首先出现的标签。如果与活跃标签相关联的路由的下一跳通告了活跃SID,则路由器(被称为倒数第二跳弹出(PHP)路由器)可以从附接至分组的标签的栈中去除活跃标签,潜在地留下依旧附接至分组的一个或多个标签。换句话说,路由器可以从栈中“弹出”活跃标签。然后,路由器可以将分组连同栈的剩余标签一起转发至路由上的与活跃标签相关联的下一跳。此系统可以允许源节点(诸如,入口路由器12A)控制分组通过网络2所采取的路径。
如果在路由器接收到分组时不存在附接至分组的标签的栈,或者如果在路由器在去除活跃标签之后没有附接至分组的剩余标签,则在无需进一步使用分段路由的情况下,路由器将分组转发至网络2中的另一节点。例如,路由器可以根据分组的IP地址转发分组。
在图1的示例中,路由器12可以根据包括分别与路由器12C、12E和12G相关联的标签1003、1005和1007的分段路由标签栈沿着分段路由LSP 16引导分组。例如,入口路由器12A将包括分组路由标签栈的分组进行封装,并且将分组转发至其下一跳,例如,路由器12B。由于路由器12B的下一跳是路由器12C,因此路由器12B从分段路由标签栈去除活跃标签(例如,1003)并且将分组转发至路由器12C。路由器12C将分组转发至路由器12D,该路由器12D从分段路由标签栈去除活跃标签(例如,1005)并且将分组转发至路由器12E。然后,路由器12E将分组转发至路由器12F,该路由器12F从分段路由标签栈去除活跃标签(例如,1007)并且将分组转发至路由器12G。由于没有标签栈附接至分组,在无需进一步使用分段路由的情况下,路由器12G例如根据分组的IP地址将分组转发至网络2中的另一节点。
当入口路由器接收分组时,路由器将分组分配到转发等价类(FEC),用与FEC相关联的分段路由标签栈封装分组,并且根据分段路由标签栈在分段路由LSP上转发分组。FEC表示以相同的方式(即,在相同的路径上)通过网络转发的分组。FEC可以由地址、隧道或服务类别(CoS)来识别。通常,设备将相同的标签分配至FEC。封装到分组的标签用于识别该分组被分配到的FEC。
在一些示例中,路由器12可以使用LSP查验机制来测试属于特定FEC的分组是否确实结束于与FEC相关联的LSP的出口路由器。LSP查验机制通常包括两种测试模式:基本连接检查(“查验”)和故障隔离(“跟踪路由”)。在“查验”(基本连接检查)模式下,MPLS连接请求分组(例如,MPLS回声请求分组)通常发送至LSP的出口路由器以测试到出口路由器的端到端连接。例如,LSP的入口路由器通常向出口路由器发送MPLS回声请求分组。出口路由器响应于接收到MPLS回声请求分组,将分组发送至其的控制平面。然后,出口路由器验证其是否是LSP的出口,并且发送指示LSP的功能连接的MPLS连接响应分组(例如,MPLS回声应答分组)。如果在限定的时间段(例如,生存时间(TTL)值)内未接收到MPLS回声应答分组,则沿着LSP至出口路由器的连接被假定为断开。
在“跟踪路由(故障隔离)”模式下,入口路由器通过跟踪从入口路由器至出口路由器的MPLS回声请求分组的路径来识别LSP中故障的位置。例如,通常将MPLS回声请求分组发送至每个中转设备的控制平面,该中转设备的控制平面执行针对该中转设备是LSP中的中转设备的各种检查。LSP中的每个中转设备还可以返回有助于针对数据平面检查控制平面的信息(即,转发数据结构和操作匹配路由协议确定为LSP的内容)。
LSP查验机制使用包括识别待验证的FEC的信息的FEC栈。对于标签栈中的每个标签,相关的FEC信息被包括在FEC栈中以用于验证。FEC栈的FEC信息可以包括一个或多个前缀,该前缀诸如标签分发协议(LDP)前缀(IPv4或IPv6)、资源预留协议(RSVP)IP会话(IPv4或IPv6)、虚拟专用网络(VPN)前缀(IPv4或IPv6)、通用IP前缀(IPv4或IPv6)、Nil FEC、IPv4IGP-前缀分段标识符、IPv6 IGP-前缀分段标识符、IGP-邻接分段标识符等。
在2017年3月的K.Kompella等人的“Detecting Multiprotocol Label Switched(MPLS)Data-Plane Failures,”IETF,RFC 8029;在2017年12月的N.Kumar等人的“LabelSwitched Path(LSP)Ping/Traceroute for Segment Routing(SR)IGP-Prefix and IGP-Adjacency Segment Identifiers(SIDs)with MPLS Data Planes,”IETF,RFC 8287;以及在2019年2月21日的K.Arora等人的“TTL Procedures for SR-TE Paths in LabelSwitched Path Traceroute Mechanisms,”draft-arora-mpls-spring-ttl-procedures-srte-paths-01,Internet-Draft中描述了LSP查验机制的进一步的描述,其中的每一个的全部内容通过引用并入本文中。
在没有本文描述的技术的情况下,即使对于不作为分段LSP的分段端点操作的路由器,入口路由器仍通常会沿着分段LSP的路径向每个路由器发送MPLS回声请求分组,并且从路由器中的每个路由器接收响应。随着网络规模的增大,入口路由器接收越来越多的MPLS回声应答分组,这增加了网络的负载。
根据本公开中所描述的技术,入口路由器(例如,路由器12A(被称为“入口路由器12A”))可以选择性地沿着分段路由LSP查验某些路由器以检测分段路由LSP中的故障(例如,数据平面故障)而无需将MPLS查验发送至沿着分段路由LSP经过的路径的每个路由器。
在图1的示例中,假设网络2被配置为具有三个分段16A、16B和16C的分段路由LSP16,并且分段路由标签栈包括针对沿着分段路由LSP而作为分段端点操作的每个路由器(例如,路由器12C、12E和12G)的相应的标签。为了检查路由器12C、12E和12G中的每个路由器的连接而无需从分段路由LSP 16中的路由器中的每个路由器接收响应,入口路由器12A可以响应于(例如,经由入口路由器12A的接口或控制器)接收到的验证分段路由LSP 16的连接的请求来配置FEC栈,该FEC栈包括识别分段路由标签栈的路由器的信息,并且迭代地将MPLS回声请求分组发送至从FEC栈识别出的路由器12C、12E和12G中的每个路由器。在图1的示例中,入口路由器12A可以发送第一MPLS连接请求分组(例如,MPLS回声请求分组22A),该第一MPLS连接请求分组包括第一标签栈24A和FEC栈26A,该第一标签栈24A包括与从FEC栈的最外FEC识别出的设备相对应的第一标签(例如,与路由器12C相关联的1003),该FEC栈26A具有与从分段路由标签栈识别出的路由器(例如,路由器12C、12E和12G)相关联的信息。在这些示例中,入口路由器12A包括标签栈的标签的生存时间(TTL)值(例如,默认值为255)。在图1的示例中,入口路由器12A发送具有第一标签24A<1003,255>和FEC栈26A的MPLS回声请求分组22A,该FEC栈26A包括路由器12C、12E和12G的前缀分段标识符。
作为路由器12C的倒数第二跳弹出(PHP)路由器操作的路由器12B从MPLS回声请求分组22A的标签栈弹出活跃标签(例如,第一标签24A),并且经由该路由器12B的直接连接到路由器12C的接口来转发MPLS回声请求分组22A。响应于接收MPLS回声请求分组22A,路由器12C可以将分组发送至其路由引擎以验证该路由器12C是与FEC相关联的分段路由LSP 16的分段端点。在一些示例中,如果MPLS回声请求分组22A在IP选项中包括路由警告(RA)对象,则路由器12C可以将分组发送至其路由引擎。
路由器12C验证FEC栈26A的最外FEC(例如,与路由器12C相关联的前缀),并且如果已验证,则将第一MPLS回声应答分组(例如,MPLS回声应答分组28A)发送至入口路由器12A以指示路由器12C确实是与FEC相关联的分段路由LSP 16的分段端点。响应于接收到MPLS回声应答分组28A,入口路由器12A例如通过去除FEC栈26A的最外FEC(例如,与路由器12C相关联的前缀)来更新FEC栈,该更新使与路由器12E和12G相关联的前缀分段标识符留在FEC栈(在图1中示出为FEC栈“26B”)中。
入口路由器12A发送第二MPLS回声请求分组(例如,MPLS回声请求分组22B),其包括具有第一标签(例如,与路由器12C相关联的1003)和与从更新的FEC栈的最外FEC识别出的设备相对应的第二标签(例如,与路由器12E相关联的1005)的第二标签栈24B、以及具有与路由器12E和12G相关联的信息的FEC栈26B。在图1的示例中,入口路由器12A可以发送具有第一标签<1003,255>和第二标签<1005,255>、以及FEC栈26B的MPLS回声请求分组22B,该FEC栈26B包括路由器12E和12G的前缀分段标识符。
作为路由器12C操作的PHP路由器的路由器12B弹出活跃标签(例如,第一标签)并且将MPLS回声请求分组22B转发至路由器12C。在该示例中,第二标签<1005、255>变为MPLS回声请求分组22B的活跃标签。然后,路由器12C将MPLS回声请求分组22B转发至路由器12D。作为路由器12E操作的PHP路由器的路由器12D弹出活跃标签(例如,第二标签)并且将MPLS回声请求分组22B转发至路由器12E。响应于到接收MPLS回声请求分组22B,(例如,如果MPLS回声请求分组22B在IP选项中包括路由警告对象)路由器12E可以将分组发送至该路由器12E的路由引擎,以验证路由器12E是与FEC相关联的分段路由LSP 16的分段端点。
路由器12E验证FEC栈26B的最外FEC(例如,与路由器12E相关联的前缀),并且将第二MPLS回声应答分组(例如,MPLS回声应答分组28B)发送至入口路由器12A以指示路由器12E确实是与FEC相关联的分段路由LSP的分段端点。例如,响应于到接收MPLS回声应答分组28A,入口路由器12A通过去除FEC栈26B的最外FEC(例如,与路由器12E相关联的前缀)来更新FEC栈,该更新使与路由器12G相关联的前缀留在FEC栈(在图1中示出为FEC栈“26C”)中。
入口路由器12A发送第三MPLS回声请求分组(例如,MPLS回声请求分组22C),该MPLS回声请求分组22C包括具有第一标签(例如,与路由器12C相关联的1003)、第二标签(例如,与路由器12E相关联的1005)以及与从更新的FEC栈的最外FEC识别出的设备相对应的第三标签(例如,与路由器12G相关联的1007)的第三标签栈24C以及具有与路由器12G相关联的信息的FEC栈26C。作为一个示例,入口路由器12A可以发送MPLS回声请求分组22C,该MPLS回声请求分组具有第一标签<1003,255>、第二标签<1005,255>和第三标签<1007,255>以及包括路由器12G的前缀的FEC栈26C。
作为路由器12C操作的PHP路由器的路由器12B弹出活跃标签(例如,第一标签)并且将MPLS回声请求分组22C转发至路由器12C。在该示例中,第二标签<1005,255>变为MPLS回声请求分组22C的活跃标签。然后,路由器12C将MPLS回声请求分组22C转发至路由器12D。作为路由器12E操作的PHP路由器的路由器12D弹出活跃标签(例如,第二标签)并且将MPLS回声请求分组22C转发至路由器12E。在该示例中,第三标签<1007、255>变为MPLS回声请求分组22C的活跃标签。然后,路由器12E将MPLS回声请求分组22C转发至路由器12F。作为路由器12G操作的PHP路由器的路由器12F弹出活跃标签(例如,第三标签)并且将MPLS回声请求分组22C转发至路由器12G。响应于接收到MPLS回声请求分组22BC,(例如,如果MPLS回声请求分组22C在IP选项中包括路由警告对象)路由器12G可以将分组发送至该路由器12G的路由引擎,以验证路由器12G是与FEC相关联的分段路由LSP 16的分段端点。
路由器12G验证FEC栈26C的最外FEC(例如,与路由器12G相关联的1007),并且将第一MPLS回声应答分组(例如,MPLS回声应答分组28C)发送至入口路由器12A以指示路由器12G确实是与FEC相关联的分段路由LSP 16的分段端点。响应于接收到MPLS回声应答分组28C,入口路由器12A去除FEC栈26C中的最后的FEC(例如,与路由器12E相关联的前缀),这向入口路由器12A发信号告知LSP查验机制完成,并且验证与FEC相关联的分段路由LSP 16的连接。
图2是示出另一示例网络的框图,在另一示例网络中,入口设备沿着分段路由LSP选择性地查验某些路由器以检测分段路由LSP中的故障(例如,数据平面故障)。在图2的示例中,网络100包括经由中间网络(例如,中间网络108)连接的接入网络106A-106D(被统称为“接入网络106”)。中间网络108可以表示由服务提供商拥有并操作的服务提供商网络,该服务提供商通常是大型电信实体或公司。中间网络108表示第3层(L3)计算机网络,其中对于附有数字的层的引用是指开放系统互连(OSI)模型中的对应层。中间网络108在其自身支持的如OSI模型中所描述的第3层操作的意义上是第3层网络。公共L3的操作包括根据L3协议(诸如,互联网协议(IP))执行的那些操作。L3在OSI模型中也被称为“网络层”并且在TCP/IP模型中也被称为“IP层”,并且贯穿本公开,术语L3可以与短语“网络层”和“IP”可互换地使用。在本公开中,中间网络108也可以被称为“核心”网络。
中间网络108可以耦接至由中间网络108的提供商或其他提供商管理的一个或多个网络,并且因此可以形成大规模公共网络基础设施(例如,互联网)的一部分。因此,接入网络106可以被视为互联网的边缘网络。中间网络108可以向接入网络106的计算设备提供对互联网的接入,并且可以允许接入网络106内的计算设备彼此通信。
如图2所示,网络100可以被划分成多个IGP域或区域104。例如,网络100包括四个域104A-104D(被统称为“域104”)。在一些示例中,域104均可以包括内部网关协议(IGP)域或区域,该内部网关协议域或区域包括受共同管理控制且共享共同路由协议的一组路由器。示例IGP包括中间系统-中间系统(IS-IS)和开放式最短路径优先(OSFP)。在这个示例中,路由器112A-112B属于域104A,路由器112E-112F属于域104B,路由器112G-112H属于域104C,并且路由器112I-112J属于域104D。在图2的所示示例中,路由器112包括在边缘处并且在不同域之间的边界路由器,诸如,路由器12C和12D。区域边界路由器12C和12D包括附接至多个区域的接口。例如,路由器12C包括附接至域104A和104C的接口,并且路由器12D包括附接至域104B和104D的接口。尽管图2中未示出,但域104中的每个域包括作为中转路由器或交换机操作的一个或多个其他网络设备以在相应的域内并且在边界路由器之间转发流量。
如图2所示,网络100包括控制器128,该控制器可以作为软件限定联网(SDN)控制器或其他集中式的控制器来操作,该控制器为一个或多个域104内的路由器和其他网络设备提供控制平面操作和管理。出于解释的目的,控制器128在本文中被描述成至少为域104A和域104B提供控制平面操作和管理。在其他示例中,域104中的每个域可以包括指定的集中式的控制器。
如图所示,路由器112A用作域间分段路由LSP 116的入口路由器,并且因此,在本公开中可以被称为入口路由器112A。类似于图1中所描述的示例,由入口路由器112A接收的域间分段路由LSP 116的源可以包括一个或多个设备(未示出)和/或将流量提供到网络100中的入口路由器112A的任何公共或专用网络或互联网。此外,在一些示例中,路由器112F用作域间分段路由LSP 116的出口路由器,并且因此,在本公开中可以被称为出口路由器112F。
类似于图1中描述的示例,路由器112可以使用分段路由技术(例如,SPRING范例)以使用IGP或BGP在节点之间通告分段,并且在每个域104内建立单跳或多跳隧道。传统地,域间分段路由LSP被构建有分段识别列表,该分段识别列表包括域间LSP的绑定分段标识符(BSID)。绑定分段表示路由器与特定节点之间的特定域间隧道或特定地址前缀。给定域中的节点通常不存储描述其他域内的节点和路由的数据,该数据包括前缀和SID(例如,节点SID和/或绑定SID)。例如,第一IGP域(例如,域104A)中的路由器通常不存储任何其他IGP域(例如,域104B)的对应前缀和SID,因此该路由器不具有FEC信息,该FEC信息用于测试与FEC相关联的域间分段路由LSP的连接。
在此示例中,路由器112可以向控制器128通告前缀和SID。例如,路由器112可以使用边界网关协议链路状态(BGP-LS)来将域104的每个域内的路径信息传播至控制器128。在基于控制器的域间分段路由供应模型中,控制器128利用用于建立域间分段路由LSP的SID列表对入口路由器(例如,入口路由器112A)进行编程。例如,控制器128可以例如经由路径计算单元协议(PCEP)建立与入口路由器112A的配置会话,以向入口路由器发送用于建立域间分段路由LSP的SID列表。
以此方式,控制器128可以为入口路由器112A提供FEC信息,以类似于图1中所描述的示例,使入口路由器112A能够沿着域间分段路由LSP116选择性地查验某些设备,以检测域间分段路由LSP 116中的故障(例如,数据平面故障)。
图3是示出根据本公开中所描述的技术的另一示例网络的框图,在该另一示例网络中,入口设备沿着分段路由标签交换路径(LSP)选择性地查验某些设备以检测分段路由LSP中的故障(例如,数据平面故障)。如图3所示,网络200包括自主系统204A和204B(被统称为“自主系统204”)。自主系统204中的每个自主系统可以包括在共同管理控制下并且共享公共路由协议的一组路由器。自主系统204中的每个自主系统可以包括与其他自主系统中的路由器通信的至少一个边界设备。在这个示例中,自主系统204A包括路由器212A、提供商路由器214A-214B和自主系统边界路由器(ASBR)216和216C。类似地,自主系统204B包括路由器212B、提供商路由器214C-214D和ASBR 216B和216D。自主系统204中的每个自主系统可以由不同的服务提供商拥有或管理。
类似于图2的控制器128,控制器228可以作为SDN控制器或其他集中式控制器操作,该控制器为一个或多个自主系统204内的路由器和其他网络设备提供控制平面操作和管理。类似于图1中描述的示例,路由器212可以使用分段路由技术(例如,SPRING范例)以使用IGP或BGP在节点之间通告分段,并且在每个自主系统204内建立单跳或多跳隧道。传统地,AS间分段路由LSP被构建有ASBR 216和路由器212的分段标识符(SID)的列表。因为给定自主系统中的节点通常不存储描述其他自主系统内的节点和路由的数据,该数据包括前缀和SID(例如,节点SID和/或绑定SID),所以入口路由器212A不可能具有来自其他自主系统的FEC信息,该FEC信息用于测试与该FEC相关联的AS间段路由LSP的连接。
在此示例中,路由器212和ASBR 216可以向控制器228通告前缀和SID。例如,路由器212和ASBR 216可以使用边界网关协议链路状态(BGP-LS)来将自主系统204的每个自主系统内的路径信息传播至控制器228。在基于控制器的AS间分段路由供应模型中,控制器228利用用于建立AS间分段路由LSP 218的SID列表对入口路由器(例如,入口路由器212A)进行编程。例如,控制器228可以例如经由路径计算单元协议(PCEP)建立与入口路由器212A的配置会话,以向入口路由器发送用于建立AS间分段路由LSP的SID列表。
以此方式,类似于图1中所描述的示例,控制器228可以为入口路由器212A提供FEC信息,以使入口路由器212A能够沿着AS间分段路由LSP 218选择性地查验某些设备,以检测AS间分段路由LSP 218中的故障(例如,数据平面故障)。在这些示例中,MPLS回声应答分组可以使用反向标签栈,该反向标签栈如2019年7月5日的S.Hegde等人的“PMS/Head-endbased MPLS Ping and Traceroute in Inter-AS SR Networks,”Internet-Draft,draft-ninan-spring-mpls-inter-as-oam-01中所描述,其全部内容通过引用并入本文。
图4是示出能够根据本文所描述的技术进行操作的示例网络设备400的框图。网络设备400可以表示图1至图3的入口路由器中的任一个。虽然相对于路由器进行描述,但本技术可以由具有路由功能的任何其他类型的网络设备实施,且不必为专用路由设备。
在图4的示例中,网络设备400包括接口卡454A-454N(“IFC 454”),这些接口卡分别经由入站链路456A-456N(被统称为“入站链路456”)和出站链路457A-457N(被统称为“出站链路457”)接收和发送数据单元(诸如,分组流)。网络设备400可以包括具有用于接收一组卡(包括IFC 454)的多个槽的机箱(未示出)。每个卡可以被插入到机箱的相应槽中,以经由高速交换机(未示出)将卡电耦接至路由组件444,例如,该高速开关可以包括交换机结构、交换机设备、可配置的网络交换机或集线器、或其他高速交换机构。IFC 454可以经由多个物理接口端口(未示出)耦接至网络链路456A-456N和457A-457N。通常,IFC 454均可以表示一个或多个网络接口,网络设备400可以通过该网络接口与网络的链路接口连接。
通常,网络设备400可以包括控制单元442,该控制单元442确定接收到的分组的路由并且相应地经由IFC 454转发分组。在图4的示例中,控制单元442包括路由组件(控制平面)444,该路由组件444配置并控制转发组件(数据平面)446所应用的分组转发操作。
路由组件444为各种路由协议470提供操作环境,该路由协议470在网络栈的不同层执行。路由组件444负责维护路由信息460,以反映与网络设备400连接的网络和其他网络实体的当前拓扑。具体地,路由协议周期性地更新路由信息460以基于由网络设备400接收到的路由协议消息来准确地反映网络和其他实体的拓扑。协议可以是在一个或多个处理器上执行的软件进程。例如,路由组件444包括在网络栈的网络层处操作的网络协议,该网络协议通常被实现为可执行软件指令。
在图4的示例中,协议470可以包括IGP 471以交换链路状态信息,并促进在路由域内转发路由器之间的分组或其他数据单元。在一些示例中,IGP 471可以包括根据由J.Moy于1998年4月提交的标题为“OSPF Version2”的RFC 2328、RFC 5340、由R.Coltun等人于2008年7月提交的标题为“OSPF for IPv6”的RFC 6845、由N.Sheth等人于2013年1月提交的标题为“OSPF Hybrid Broadcast and Point-to-Multipoint Interface Type”的RFC6845、以及由Lindem等人于2018年4月提交的标题为“OSPFv3 Link StateAdvertisement(LSA)Extendibility”的RFC 8362中的一个或多个的OSPF路由协议。在一些示例中,根据由D.Oran于1990年2月(ISO/IEC 10589的再发布,2002年11月最后更新)提交的标题为“OSI IS-IS Intra-domain Routing Protocol”的RFC 1142,IGP 471可以包括IS-IS路由协议,该IS-IS路由协议实现用于在路由域内交换路由和可达性信息的IGP。如由T.Li等人于2008年10月提交的标题为“IS-IS Extensions for Traffic Engineering”的RFC 5305中所描述的,IGP 471可以包括支持流量工程的IS-IS扩展。在一些示例中,网络设备400可以包括OSPF组件和IS-IS组件两者。
在一些示例中,替代性地或附加地,协议470可以包括边界网关协议链路状态(BGP-LS)472以与控制器228交换流量工程和分段路由策略信息。在2016年3月的H.Gredler等人的“North-Bound Distribution of Link-State and Traffic Engineering(TE)Information using BGP,”Internet Engineering Task Force(IETF)RFC 7752中进一步详细描述BGP-LS协议,其全部内容通过引用并入本文。
协议470还可以包括配置协议。例如,协议470可以根据由JP.Vasseur,Ed等人于2009年3月提出的标题为“Path Computation Element(PCE)Communication Protocol(PCEP)”的RFC 5440来包括PCEP 473,或根据由R.Enns,Ed等人于2011年6月提交的标题为“Network Configuration Protocol(NETCONF)”的RFC 6241来包括NETCONF(未示出)。在网络设备400包括域间分段路由LSP或AS间分段路由LSP的入口路由器的一些示例中,控制器428(例如,图2的控制器128或图3的控制器228)可以经由PCEP 473或NETCONF组件(未示出)为网络设备400配置分段路由隧道的SID列表486。协议470可以包括其他路由协议(未示出),诸如标签分发协议(LDP)、具有流量扩展的资源预留协议(RSVP-TE)、路由信息协议(RIP)或其他网络协议。
路由组件444包括链路状态数据库(LSDB)480以用于存储域拓扑信息,该域拓扑信息包括用于所供应的分段(例如,邻接分段、前缀分段和/或绑定分段)的SID和标签。LSDB480的内容根据IGP 473来维护并且具有单个路由域的范围。路由组件444还包括流量工程数据库482,该流量工程数据库482利用流量工程链路属性来扩充LSDB 480。LSDB 480和TED482中的每个可以是各种数据结构的形式,诸如多个表、链接列表、基数树、数据库、平面文件或其他数据结构。
路由组件444包括分段路由(SR)组件476,以实现指定网络设备400可以如何向邻接分段和/或前缀分段提供并通告SID的分段路由技术。在一些示例中,作为入口路由器操作的网络设备400的分段路由组件476可以使用LSDB 480或TED 482中的SID来构建SID列表486中存储的SID标签栈。替代性地或附加地,网络设备400可以从控制器228接收SID列表486。网络设备400可以通过用来自SID列表486的SID标签栈前置于分组报头来引导分组通过网络。
通过执行路由协议,路由组件444识别通过网络的现有路由并确定通过网络的新路由。例如,路由组件444存储包括通过网络的已知路由的路由信息460。转发组件446存储包括出站链路457的目的地的转发信息462。可以根据路由信息460生成转发信息462。
根据所描述的技术,网络设备400包括选择性查验组件490,该选择性查验组件490被配置为沿着分段路由LSP选择性地查验某些设备,以检测分段路由LSP的故障(例如,数据平面故障)。在此示例中,作为入口路由器(例如,图1的入口路由器12A)操作的网络设备400可以迭代地将MPLS回声请求分组发送至从FEC栈识别出的路由器中的每个路由器,该FEC栈从分段路由LSP的分段路由标签栈来配置。
例如,响应于例如经由CLI 478接收验证分段路由LSP的连接的请求,选择性查验组件490可以配置FEC栈494,该FEC栈指定分段路由LSP的分段路由标签的栈。选择性查验组件490可以从SID列表486确定分段路由LSP的分段路由标签栈。为了易于说明,在此示例中,SID列表486可以包括分段路由标签栈,该分段路由标签栈包括与如图1中所描述的路由器12C、12E和12G相关联的标签。选择性查验组件490可以配置FEC栈494,该FEC栈494包括与从SID列表486识别出的路由器(例如,路由器12C、12E和12G)相关联的信息。
选择性查验组件490可以生成包括标签栈492和FEC栈494的MPLS回声请求分组,该标签栈包括与从FEC栈494的最外FEC识别出的设备相对应的第一标签(例如,与路由器12C相关联的1003),该FEC栈494具有与从分段路由标签栈识别出的路由器(例如,12C、12E和12G)相关联的信息。
网络设备400可以经由连接至分段路由LSP的下一跳的出站链路457中的一个在分段路由LSP路径上发送MPLS回声请求分组。作为响应,如果路由器12C被验证为分段路由LSP的分段端点,则网络设备400可以接收到MPLS回声应答分组。在此示例中,网络设备400可以经由入站链路456中的一个接收MPLS回声应答分组,并且转发组件446将MPLS回声应答分组转发至选择性查验组件490。
例如,响应于接收到MPLS回声应答分组,选择性查验组件490通过去除FEC栈494的最外FEC(例如,与路由器12C相关联的前缀)来更新FEC栈494,该更新使与路由器12E和12G相关联的前缀分段标识符留在FEC栈494中。
选择性查验组件490可以确定在FEC栈494中是否剩余任何前缀分段标识符。如果FEC栈494包括至少一个前缀,则选择性查验组件490继续针对FEC栈494中所识别的下一路由器中的每个路由器(例如,路由器12E和12G)进行LSP查验处理,直到FEC栈为空。例如,选择性查验组件490可以生成包括经更新的标签栈的后续MPLS回声请求分组,该经更新的标签栈包括先前的标签(例如,与路由器12C相关联的1003)和与从经更新的FEC栈494的最外FEC识别出的设备相对应的后续标签(例如,与路由器12E相关联的1005),并且该经更新的FEC栈具有与路由器12E和12G相关联的信息。网络设备400可在分段路由LSP路径上发送后续MPLS回声请求分组,并且作为响应,从路由器12E接收MPLS回声应答分组。例如,选择性查验组件490通过去除FEC栈494的最外FEC(例如,与路由器12E相关联的前缀)来更新FEC栈494,该更新使与路由器12G相关联的前缀分段标识符留在FEC栈494中。
在下一迭代中,选择性查验组件490可以生成包括经更新的标签栈的后续MPLS回声请求分组,该经更新的标签栈包括先前的标签(例如,与路由器12C相关联的1003和与路由器12E相关联的1005)和与从经更新的FEC栈494的最外FEC识别出的设备相对应的后续标签(例如,与路由器12G相关联的1007),并且该经更新的FEC栈具有与路由器12G相关联的信息。网络设备400可在分段路由LSP路径上发送后续MPLS回声请求分组,并且作为响应,从路由器12G接收MPLS回声应答分组。例如,选择性查验组件490通过去除FEC栈494的最外FEC(例如,与路由器12G相关联的前缀)来更新FEC栈494,该去除导致FEC栈494为空。空的FEC栈494向选择性查验组件490发信号告知LSP查验机制已完成,并且已验证分段路由LSP的连接。在一些示例中,例如,选择性查组件490可以经由接口向用户生成指示分段路由LSP具有连接的指示。
图4中示出的网络设备400的架构仅为了示例目的而示出。本公开的技术不限于此架构。在其他示例中,网络设备400可以以各种方式进行配置。在一个示例中,控制单元442的一些功能可以分布在IFC 454内。在另一示例中,控制单元442可以包括作为客户端路由器操作的多个分组转发引擎。
控制单元442可以单独地以软件或硬件实现,或者可以被实现为软件、硬件或固件的组合。例如,控制单元442可以包括执行软件指令形式的程序代码的一个或多个处理器。在这种情况下,控制单元442的各种软件组件/模块可以包括存储在计算机可读存储介质(诸如计算机存储器或硬盘)上的可执行指令。
图5是示出根据本公开所描述的技术的网络2的示例操作的流程图。出于说明的目的,参照图1的入口路由器12A(或替代性地,图2的入口路由器112A或图3的入口路由器212A)来解释图5。
响应于验证分段路由LSP 16的连接的请求,入口路由器12A配置FEC栈,该FEC栈指定分段路由LSP的分段路由标签的栈。例如,入口路由器12A可以例如经由CLI 478接收验证分段路由LSP 16的连接的请求。作为响应,入口路由器12A的选择性查验组件490可以确定所建立的分段路由LSP(例如,分段路由LSP 16)的分段路由标签栈。在图1中描述的示例中,入口路由器12A的选择性查验组件490确定分段路由LSP 16的分段路由标签栈包括与路由器12C、12E和12G相关联的标签。选择性查验组件490配置FEC栈,该FEC栈包括与路由器12C、12E和12G相关联的信息(例如,前缀分段标识符)。
入口路由器12A可以迭代地将MPLS回声请求分组发送至从由分段路由标签栈配置的FEC栈识别出的每个路由器,而不必将MPLS回声请求分组发送至沿着分段路由LSP 16的每一下一跳路由器。例如,入口路由器12A针对从FEC栈的最外FEC识别出的相应设备生成MPLS连接请求分组(504)。例如,入口路由器12A可以生成包括第一标签栈24A和FEC栈26A的第一MPLS连接请求分组(例如,MPLS回声请求分组22A),该第一标签栈24A包括与FEC栈的最外FEC识别出的设备相对应的第一标签(例如,与路由器12C相关联的1003),并且该FEC栈26A具有与从分段路由标签栈识别出的路由器(例如,路由器12C、12E和12G)相关联的信息。在这些示例中,入口路由器12A包括用于标签栈的标签的TTL值(例如,默认值为255)。在此示例中,入口路由器12A生成具有作为<1003,255>的第一标签24A和FEC栈26A的MPLS回声请求分组22A,该FEC栈26A包括路由器12C、12E和12G的前缀分段标识符。
入口路由器12A将MPLS回声请求分组发送至与关联于FEC栈的分段路由LSP相对应的下一跳(506)。如果路由器12C被验证为分段路由LSP的分段端点,则FEC栈的路由器12C返回MPLS连接响应分组(例如,图1的MPLS回声应答分组28A)。
入口路由器12A确定入口路由器12A是否接收到MPLS连接响应分组(例如,MPLS回声应答分组28A)(508)。如果入口路由器12A未接收到MPLS回声应答分组(步骤508的“否”),则入口路由器12A确定分段路由LSP故障(510)。如果入口路由器12A接收到MPLS回声应答分组(步骤508的“是”),则入口路由器12A通过从FEC栈去除最外FEC来更新FEC栈(512)。例如,入口路由器12A通过去除与路由器12C相关联的前缀(其为FEC栈的最外FEC)来更新FEC栈。在此示例中,经更新的FEC栈包括FEC栈(例如,图1的FEC栈26B)中的与路由器12E和12G相关联的前缀分段标识符。
入口路由器12A可以确定在经更新的FEC栈中是否剩余任何前缀分段标识符(即FEC栈是否为空(514))。在此示例中,FEC栈包括至少一个前缀(例如,与路由器12E和12G相关联的前缀分段标识符)。响应于确定至少有一个前缀保留在FEC栈中(步骤514的“否”),入口路由器12A生成(504)MPLS连接请求分组并且将该MPLS连接请求分组发送(506)至FEC栈中所识别出的剩余路由器中的每个路由器。在一些示例中,在入口路由器12A通过从FEC栈去除最外FEC来更新FEC栈之后,入口路由器12A可以确定FEC栈为空(步骤514的“是”),通过该确定向入口路由器12A发信号告知LSP查验机制已完成并且已验证与FEC相关联的分段路由LSP的连接(516)。继续上面的示例,入口路由器12A可以从FEC栈的最后一个路由器(例如,路由器12G)接收响应。入口路由器12A通过去除与路由器12G相关联的前缀(其是FEC栈的最后的前缀)来更新FEC栈。因为FEC栈为空,所以入口路由器12A确定LSP查验机制完成并且已验证与FEC相关联的分段路由LSP 16的连接。
本文所描述的技术可以以硬件、软件、固件或其任何组合实现。被描述为模块、单元或组件的各种特征可以一起实现在集成逻辑设备中或单独地实现为分立但可互操作的逻辑设备或其他硬件设备。在一些情况下,电子电路的各种特征可以实施为一个或多个集成电路设备(诸如集成电路芯片或芯片组)。
如果以硬件实施,则本公开可以针对诸如处理器或集成电路设备(诸如集成电路芯片或芯片集)的设备。替代性地或附加地,如果以软件或固件实现,则技术可以至少部分地由包括指令的计算机可读数据存储介质来实现,该指令在执行时使处理器执行上文所描述的方法中的一种或多种。例如,计算机可读数据存储介质可以存储此类指令以供处理器执行。
计算机可读介质可以形成计算机程序产品的一部分,该计算机程序产品可以包括封装材料。计算机可读介质可以包括存储介质,该存储介质诸如随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存、磁性或光学数据存储介质等。在一些示例中,制品可以包括一个或多个计算机可读存储介质。
在一些示例中,计算机可读存储介质可以包括非暂时性介质。术语“非暂时性”可以指示存储介质不体现在载波或传播信号中。在某些示例中,非暂时性存储介质可以存储随时间可改变的数据(例如,在RAM或高速缓存中)。
代码或指令可以是由包括一个或多个处理器的处理电路执行的软件和/或固件,该处理器诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他等效集成或分立逻辑电路。因此,如本文所使用的术语“处理器”可以指代前述结构中的任一个或适于实现本文描述的技术的任何其他结构。此外,在一些方面,本公开中描述的功能可以提供在软件模块或硬件模块内。
Claims (20)
1.一种方法,包括:
响应于接收验证分段路由标签交换路径LSP的连接的请求,由所述分段路由LSP的入口设备配置转发等价类FEC栈,所述FEC栈指定所述分段路由LSP的分段路由标签的栈,其中,所述FEC栈进一步包括识别一个或多个设备的信息,所述一个或多个设备作为沿着待验证的所述分段路由LSP的分段端点进行操作;并且
对于从所述FEC栈识别的所述一个或多个设备中的每个设备:
由所述入口设备为所述一个或多个设备中的相应设备生成相应的多协议标签交换MPLS连接请求分组,其中,所述相应设备从所述FEC栈的最外FEC识别出;
由所述入口设备将所述MPLS连接请求分组发送至所述相应设备;
由所述入口设备从所述相应设备接收MPLS连接响应分组,所述MPLS连接响应分组验证所述分段路由LSP的所述相应设备的连接;并且
响应于接收到所述MPLS连接响应分组,所述入口设备通过去除识别所述相应设备的所述FEC栈的所述最外FEC来更新所述FEC栈。
2.根据权利要求1所述的方法,
其中,所述分段路由LSP的所述一个或多个设备包括第一设备和第二设备,
其中,所述FEC栈包括识别所述第一设备的所述最外FEC和识别所述第二设备的后续FEC,
其中,生成相应的所述MPLS连接请求分组包括:生成包括所述FEC栈和第一标签栈的第一MPLS连接请求分组,以将所述第一MPLS连接请求分组引导至所述第一设备,
其中,将所述MPLS连接请求分组发送至所述一个或多个设备中的所述相应设备包括:将所述第一MPLS连接请求分组发送至所述第一设备,
其中,接收验证所述分段路由LSP的所述相应设备的连接的所述MPLS连接响应分组包括:接收验证所述分段路由LSP的所述第一设备的连接的第一MPLS连接响应分组,并且
其中,更新所述FEC栈包括:通过去除识别所述第一设备的所述FEC栈的所述最外FEC来更新所述FEC栈,该更新使得所述后续FEC变为经更新的FEC栈的最外FEC。
3.根据权利要求2所述的方法,
其中,所述第一标签栈包括与识别所述第一设备的所述FEC栈的所述最外FEC相关联的标签。
4.根据权利要求2所述的方法,
其中,生成相应的所述MPLS连接请求分组包括:生成包括所述经更新的FEC栈和第二标签栈的第二MPLS连接请求分组,以将所述第二MPLS连接请求分组引导至所述第二设备,
其中,将所述MPLS连接请求分组发送至所述一个或多个设备中的所述相应设备包括:将所述第二MPLS连接请求分组发送至所述第二设备,
其中,接收验证所述分段路由LSP的所述相应设备的连接的所述MPLS连接响应分组包括:接收验证所述分段路由LSP的所述第二设备的连接的第二MPLS连接响应分组,并且
其中,更新所述FEC栈包括:通过去除识别所述第二设备的所述经更新的FEC栈的所述最外FEC来更新所述经更新的FEC栈。
5.根据权利要求4所述的方法,
其中,所述第二标签栈包括第一标签和第二标签,所述第一标签与识别所述第一设备的所述FEC栈的所述最外FEC相关联,并且所述第二标签与识别所述第二设备的所述经更新的FEC栈的所述最外FEC相关联。
6.根据权利要求1所述的方法,
其中,所述MPLS连接请求分组包括MPLS回声请求分组,并且
其中,所述MPLS连接响应分组包括MPLS回声应答分组。
7.根据权利要求1所述的方法,其中,所述分段路由LSP包括域间分段路由LSP,所述方法进一步包括:
由所述入口设备从控制器接收分段路由标签栈。
8.根据权利要求1所述的方法,其中,所述分段路由LSP包括自主系统间inter-AS分段路由LSP,所述方法进一步包括:
由所述入口设备从控制器接收分段路由标签栈。
9.一种分段路由标签交换路径LSP的入口设备,包括:
一个或多个处理器,可操作地耦接至存储器,其中,所述一个或多个处理器被配置为:
响应于接收验证所述分段路由LSP的连接的请求,配置转发等价类FEC栈,所述FEC栈指定所述分段路由LSP的分段路由标签的栈,其中,所述FEC栈进一步包括识别一个或多个设备的信息,所述一个或多个设备作为沿着所述分段路由LSP的分段端点进行操作;并且
对于从所述FEC栈识别的所述一个或多个设备中的每个设备:
为所述一个或多个设备中的相应设备生成相应的多协议标签交换MPLS连接请求分组,其中,所述相应设备从所述FEC栈的最外FEC识别出;
将所述MPLS连接请求分组发送至所述相应设备;
从所述相应设备接收MPLS连接响应分组,所述MPLS连接响应分组验证所述分段路由LSP的所述相应设备的连接;并且
响应于接收到所述MPLS连接响应分组,通过去除识别所述相应设备的所述FEC栈的所述最外FEC来更新所述FEC栈。
10.根据权利要求9所述的入口设备,
其中,所述分段路由LSP的所述一个或多个设备包括第一设备和第二设备,
其中,所述FEC栈包括所述第一设备的所述最外FEC和识别所述第二设备的后续FEC,
其中,为了生成相应的所述MPLS连接请求分组,所述一个或多个处理器被进一步配置为:生成包括所述FEC栈和第一标签栈的第一MPLS连接请求分组,以将所述第一MPLS连接请求分组引导至所述第一设备,
其中,为了将所述MPLS连接请求分组发送至所述一个或多个设备中的所述相应设备,所述一个或多个处理器被进一步配置为:将所述第一MPLS连接请求分组发送至所述第一设备,
其中,为了接收验证所述分段路由LSP的所述相应设备的连接的所述MPLS连接响应分组,所述一个或多个处理器被进一步配置为:接收验证所述分段路由LSP的所述第一设备的连接的第一MPLS连接响应分组,并且
其中,为了更新所述FEC栈,所述一个或多个处理器被进一步配置为:通过去除识别所述第一设备的所述FEC栈的所述最外FEC来更新所述FEC栈,该更新使得所述后续FEC变为经更新的FEC栈的最外FEC。
11.根据权利要求10所述的入口设备,
其中,所述第一标签栈包括与识别所述第一设备的所述FEC栈的所述最外FEC相关联的标签。
12.根据权利要求10所述的入口设备,
其中,为了生成相应的所述MPLS连接请求分组,所述一个或多个处理器被进一步配置为:生成包括所述经更新的FEC栈和第二标签栈的第二MPLS连接请求分组,以将所述第二MPLS连接请求分组引导至所述第二设备,
其中,为了将所述MPLS连接请求分组发送至所述一个或多个设备中的所述相应设备,所述一个或多个处理器被进一步配置为:将所述第二MPLS连接请求分组发送至所述第二设备,
其中,为了接收验证所述分段路由LSP的所述相应设备的连接的所述MPLS连接响应分组,所述一个或多个处理器被进一步配置为:接收验证所述分段路由LSP的所述第二设备的连接的第二MPLS连接响应分组,并且
其中,为了更新所述FEC栈,所述一个或多个处理器被进一步配置为:通过去除识别所述第二设备的所述经更新的FEC栈的所述最外FEC来更新所述经更新的FEC栈。
13.根据权利要求9所述的入口设备,
其中,所述MPLS连接请求分组包括MPLS回声请求分组,并且
其中,所述MPLS连接响应分组包括MPLS回声应答分组。
14.根据权利要求9所述的入口设备,其中,所述分段路由LSP包括域间分段路由LSP,其中,所述一个或多个处理器被进一步配置为:
从控制器接收分段路由标签栈。
15.根据权利要求9所述的入口设备,其中,所述分段路由LSP包括自主系统间inter-AS分段路由LSP,其中,所述一个或多个处理器被进一步配置为:
从控制器接收分段路由标签栈。
16.一种非暂时性计算机可读介质,包含指令,所述指令用于使入口设备的一个或多个可编程处理器执行以下操作:
响应于接收验证分段路由标签交换路径LSP的连接的请求,配置转发等价类FEC栈,所述FEC栈指定所述分段路由LSP的分段路由标签的栈,其中,所述FEC栈进一步包括识别一个或多个设备的信息,所述一个或多个设备作为沿着所述分段路由LSP的分段端点进行操作;并且
对于从所述FEC栈识别的所述一个或多个设备中的每个设备:
为所述一个或多个设备中的相应设备生成相应的多协议标签交换MPLS连接请求分组,其中,所述相应设备从所述FEC栈的最外FEC识别;
将所述MPLS连接请求分组发送至所述相应设备;
从所述相应设备接收MPLS连接响应分组,所述MPLS连接响应分组验证所述分段路由LSP的所述相应设备的连接;并且
响应于接收到所述MPLS连接响应分组,通过去除识别所述相应设备的所述FEC栈的所述最外FEC来更新所述FEC栈。
17.根据权利要求16所述的非暂时性计算机可读介质,
其中,所述分段路由LSP的所述一个或多个设备包括第一设备和第二设备,
其中,所述FEC栈包括识别所述第一设备的所述最外FEC和识别所述第二设备的后续FEC,
其中,为了生成相应的所述MPLS连接请求分组,所述一个或多个处理器被进一步配置为:生成包括所述FEC栈和第一标签栈的第一MPLS连接请求分组,以将所述第一MPLS连接请求分组引导至所述第一设备,
其中,为了将所述MPLS连接请求分组发送至所述一个或多个设备中的所述相应设备,所述一个或多个处理器被进一步配置为:将所述第一MPLS连接请求分组发送至所述第一设备,
其中,为了接收验证所述分段路由LSP的所述相应设备的连接的所述MPLS连接响应分组,所述一个或多个处理器被进一步配置为:接收验证所述分段路由LSP的所述第一设备的连接的第一MPLS连接响应分组,并且
其中,为了更新所述FEC栈,所述一个或多个处理器被进一步配置为:通过去除识别所述第一设备的所述FEC栈的所述最外FEC来更新所述FEC栈,其中,经更新的FEC栈包括识别所述第二设备的所述经更新的FEC栈的最外FEC。
18.根据权利要求17所述的非暂时性计算机可读介质,
其中,所述第一标签栈包括与识别所述第一设备的所述FEC栈的所述最外FEC相关联的标签。
19.根据权利要求17所述的非暂时性计算机可读介质,
其中,为了生成相应的所述MPLS连接请求分组,所述一个或多个处理器被进一步配置为:生成包括所述经更新的FEC栈和第二标签栈的第二MPLS连接请求分组,以将所述第二MPLS连接请求分组引导至所述第二设备,
其中,为了将所述MPLS连接请求分组发送至所述一个或多个设备中的所述相应设备,所述一个或多个处理器被进一步配置为:将所述第二MPLS连接请求分组发送至所述第二设备,
其中,为了接收验证所述分段路由LSP的所述相应设备的连接的所述MPLS连接响应分组,所述一个或多个处理器被进一步配置为:接收验证所述分段路由LSP的所述第二设备的连接的第二MPLS连接响应分组,并且
其中,为了更新所述FEC栈,所述一个或多个处理器被进一步配置为:通过去除识别所述第二设备的所述经更新的FEC栈的最外FEC信息来更新所述经更新的FEC栈。
20.根据权利要求17所述的非暂时性计算机可读介质,
其中,所述MPLS连接请求分组包括MPLS回声请求分组,并且
其中,所述MPLS连接响应分组包括MPLS回声应答分组。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310348764.9A CN116405425A (zh) | 2020-05-22 | 2020-10-01 | 用于分段路由流量工程的分段跟踪路由 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN202041021550 | 2020-05-22 | ||
IN202041021550 | 2020-05-22 | ||
US16/946,961 US11303549B2 (en) | 2020-05-22 | 2020-07-13 | Segmented traceroute for segment routing traffic engineering |
US16/946,961 | 2020-07-13 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310348764.9A Division CN116405425A (zh) | 2020-05-22 | 2020-10-01 | 用于分段路由流量工程的分段跟踪路由 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113709033A CN113709033A (zh) | 2021-11-26 |
CN113709033B true CN113709033B (zh) | 2023-04-25 |
Family
ID=78608605
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011064035.3A Active CN113709033B (zh) | 2020-05-22 | 2020-10-01 | 用于分段路由流量工程的分段跟踪路由 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11303549B2 (zh) |
CN (1) | CN113709033B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
CN114500001B (zh) * | 2021-12-31 | 2024-04-26 | 网络通信与安全紫金山实验室 | 通信方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7940695B1 (en) * | 2007-06-08 | 2011-05-10 | Juniper Networks, Inc. | Failure detection for tunneled label-switched paths |
CN104980350A (zh) * | 2014-04-02 | 2015-10-14 | 华为技术有限公司 | 报文处理的方法及标签交换路由器 |
CN109257278A (zh) * | 2017-07-12 | 2019-01-22 | 瞻博网络公司 | 用于非分段路由启用的路由器的分段路由标签交换路径 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7463591B1 (en) * | 2001-06-25 | 2008-12-09 | Juniper Networks, Inc. | Detecting data plane liveliness of a label-switched path |
US9537718B2 (en) * | 2013-03-15 | 2017-01-03 | Cisco Technology, Inc. | Segment routing over label distribution protocol |
US10708182B2 (en) * | 2013-07-26 | 2020-07-07 | Cisco Technology, Inc. | MPLS LSP connectivity test when the initiator address is unknown |
US10237173B2 (en) * | 2016-07-21 | 2019-03-19 | Cisco Technology, Inc. | Target FEC (forwarding equivalence class) stack based FEC query in segment routing environments |
CN107248941B (zh) | 2017-06-30 | 2020-01-10 | 华为技术有限公司 | 一种检测路径的方法和装置 |
US10447587B2 (en) * | 2017-09-22 | 2019-10-15 | Keysight Technologies Singapore (Sales) Pte. Ltd. | Computing label-switched data communication paths |
US11296982B2 (en) * | 2020-04-20 | 2022-04-05 | Cisco Technology, Inc. | Initiator-based data-plane validation for segment routed, multiprotocol label switched (MPLS) networks |
-
2020
- 2020-07-13 US US16/946,961 patent/US11303549B2/en active Active
- 2020-10-01 CN CN202011064035.3A patent/CN113709033B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7940695B1 (en) * | 2007-06-08 | 2011-05-10 | Juniper Networks, Inc. | Failure detection for tunneled label-switched paths |
CN104980350A (zh) * | 2014-04-02 | 2015-10-14 | 华为技术有限公司 | 报文处理的方法及标签交换路由器 |
CN109257278A (zh) * | 2017-07-12 | 2019-01-22 | 瞻博网络公司 | 用于非分段路由启用的路由器的分段路由标签交换路径 |
Also Published As
Publication number | Publication date |
---|---|
US20210367867A1 (en) | 2021-11-25 |
US11303549B2 (en) | 2022-04-12 |
CN113709033A (zh) | 2021-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3648420B1 (en) | Enabling non-flexible-algorithm routers to participate in flexiblealgorithm routing protocols | |
EP3103230B1 (en) | Software defined networking (sdn) specific topology information discovery | |
EP3429141A2 (en) | Segment routing label switched path for non-segment routing enabled routers | |
JP5596182B2 (ja) | ポイント・ツー・マルチポイント・ラベル・スイッチ・パスのバックアップ・イングレスを計算するシステムおよび方法 | |
US20080225864A1 (en) | Communication network routing apparatus and techniques using logical communication links | |
US10742599B2 (en) | Conflict resolution in segment routing | |
CN113452610B (zh) | 跨城域网的无缝端到端分段路由的方法及区域边界路由器 | |
CN111865783B (zh) | 用于计算机网络的方法和网络设备 | |
EP3754914B1 (en) | Class-based traffic engineering in an ip network | |
US11323371B1 (en) | Micro SID packet processing with operations, administration, and management | |
CN113826362B (zh) | 用于域间分段路由的传输端点分段 | |
CN113709033B (zh) | 用于分段路由流量工程的分段跟踪路由 | |
US11425056B1 (en) | Dynamic computation of SR-TE policy for SR-enabled devices connected over non-SR-enabled devices | |
US11824763B2 (en) | Filtering topologies for path computation in massively scaled networks | |
EP3913868A1 (en) | Segmented traceroute for segment routing traffic engineering | |
EP3422645B1 (en) | Conflict resolution in segment routing |
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 |