掌桥专利:专业的专利平台
掌桥专利
首页

保护有状态业务功能路径的方法和装置

文献发布时间:2024-01-17 01:19:37


保护有状态业务功能路径的方法和装置

相关申请案的交叉引用

本申请要求于2020年8月20日提交的发明名称为“保护有状态业务功能路径的方法和装置(METHOD AN APPARATUS FOR PROTECTING STATEFUL SERVICE FUNCTION PATHS)”的第16/998,625号的美国专利申请的优先权,该美国专利申请的内容在此以引用的方式并入本文中。

技术领域

本发明涉及基于报文的数据通信领域,具体涉及通过业务域进行业务功能路径保护的方法和装置。

背景技术

在通信网络中,业务功能链和业务功能转发可以用于沿着预定的业务功能路径通过通信网络转发报文。互联网工程任务组(Internet Engineering Task Force,IETF)征求意见(request for comment,RFC)文档7665,标题为“业务功能链(SFC)架构”,2015年10月,在此称为RFC 7665,描述了业务功能链、业务功能、业务功能路径、业务功能转发器和业务节点的各个方面。根据RFC 7665,业务功能链(service function chain,SFC)可以定义逻辑业务功能的有序集合,以及必须应用于穿越SFC的报文或报文流的排序约束。“链”概念表示报文必须由SFC中的一个业务功能处理,然后由SFC中的下一个业务功能依次处理。SFC还可以包括指示哪些报文(或报文流)将由SFC处理的分类标准。业务功能链可用于实现关键的报文网络操作,如流量管理、网络内内容管理和网络安全。此外,业务功能链还可以通过网络切片为特定客户或应用定制报文网络操作。

根据RFC 7665,业务功能(service function,SF)负责应用于接收到的报文的特定处理。业务功能可以作用于协议栈的各个层(例如,用于网络(IP)层、传输(TCP/UDP)层、链路层和应用层中的一个或多个)。业务功能可以修改接收到的报文和/或可以观察和记录接收到的报文的特征。一个特定的业务功能可以合并到多个业务功能链中。业务功能节点(service function node,SFN)是承载一个或多个业务功能的物理网元。不同的业务功能可以共存于特定的业务功能节点上。特定业务功能的不同实例可以存在于同一业务域中的不同业务功能节点上。

业务功能路径(service function path,SFP)可以被定义为SFC的物理呈现,它指示为了实现由SFC定义的处理报文实际遍历的网络节点或网络功能和链路的序列。多个SFP可以存在于一个业务域中,多个特定SFP实例可以存在于同一个业务域中。在SFP沿线的每个网络节点或网络功能上,可以对报文应用不同的业务功能。

在许多情况下,业务功能必须使用与报文流中的先前报文相关联的信息来处理报文流中的报文。业务功能必须保留一段时间的信息称为报文流相关SF状态或SF状态,使用SF状态处理报文称为有状态处理。因此,对报文流进行有状态处理的业务功能被称为有状态SF。如果网络无法将报文转发到托管有状态SF的SFN,则可能无法处理或转发报文流中的其它报文,从而导致使用该报文流交换信息的网络端点之间的通信过早和意外丢失。

对于关键通信,通常需要通过网络标识备用路径和/或实例化SF或SFN的冗余副本,以确保如果到主SF实例的路径丢失,则报文可以被重定向到备份SF实例。但是,目前的方案并没有提供足够有效的方案来实现业务功能冗余和有状态处理。因此,需要一种通过业务域进行业务功能路径保护的方法和装置,该方法和装置也支持有状态处理,并且消除或减轻现有技术的一个或多个限制。

发明内容

本发明的实施例的目的是提供一种用于提供有状态业务功能路径的方法、装置和系统,该方法、装置和系统用于沿着业务功能路径提供故障保护。当业务域必须处理大量报文时,与业务功能链(service function chain,SFC)相关联的流量通常会分布在复制的业务功能路径(service function path,SFP)的多个实例上,其中,复制的SFP的每个实例可能具有与其关联的业务功能(service function,SF)和业务功能节点(service functionnode,SFN)相关的专用网络资源。因此,复制的SFP的每个实例将负责处理分配给业务域中对应SFC的报文流的子集。多个SFP实例用于提供多个冗余业务功能路径,每个冗余业务功能路径至少具有一个有状态业务功能。复制的有状态业务功能在彼此之间发送消息,以便与该业务功能相关联的报文流的当前状态在复制的业务功能的所有实例之间同步。当业务功能路径的第一实例中的业务功能发生故障时,受影响的报文流中的报文被重定向到位于业务功能路径的另一个实例中的故障业务功能的副本。一旦被业务功能的副本处理,重定向的报文就可以被路由回业务功能路径的第一实例上的后续业务功能。

根据本发明的一方面,提供了保护业务功能路径的方法和装置。根据本发明的实施例,提供了一种处理业务功能路径中的报文流的方法。所述方法包括网络功能接收报文流中的第一报文,所述第一报文包括标识分配给所述报文流的主SFP实例的指示,其中,所述网络功能与所述主SFP相关联。所述方法还包括:所述网络功能向主第二网络功能发送所述第一报文,所述主第二网络功能与所述主SFP实例相关联;响应于与所述主第二网络功能的通信故障,所述网络功能向与第二SFP实例相关联的备份第二网络功能发送所述报文流中的第二报文,所述第二报文是由所述网络功能在所述报文流中的所述第一报文之后接收的,并且包括标识所述报文流的所述主SFP实例的指示。

根据其它方面,所述主第二网络功能根据所述第一报文更新与所述报文流相关联的报文流相关业务功能(service function,SF)状态。所述主第二网络功能和所述备份第二网络功能通信耦合,以同步所述报文流相关SF状态。根据本发明的其它方面,在处理所述第二报文之后,所述备份第二网络功能可以根据所述第二报文中标识所述报文流的所述主SFP实例的所述指示,向与所述主SFP实例相关联的主第三网络功能发送所述第二报文。

此外,同步与所述报文流相关联的所述报文流相关SF状态包括所述主第二网络功能基于标识所述报文流的所述主SFP实例的所述指示,确定与所述备份第二网络功能相关联的所述第二SFP实例。所述同步还包括所述主第二网络功能向所述备份第二网络功能发送包括与所述报文流相关联的所述报文流相关SF状态的状态更新消息。

根据所述方法的另一方面,所述状态更新消息在状态更新报文中发送。所述状态更新报文的目的地址是与所述备份第二网络功能相关联的单播地址,所述状态更新报文的源地址是与所述主第二网络功能相关联的单播地址。目的地址包括标识与所述备份第二网络功能相关联的所述第二SFP实例的指示,所述源地址包括标识与主第二网络功能相关联的主SFP实例的指示。所述方法的另一方面包括:所述主第二网络功能启动用于监控所述状态更新消息接收的定时器。另一方面包括所述主第二网络功能在所述定时器到期之前接收所述状态更新报文的副本,其中,与所述状态更新报文的所述副本相关联的所述目的地址是包括与所述主第二网络功能相关联的所述SFP实例的单播地址。在另一方面中,所述状态更新报文的所述副本是由于在SF实例集的成员之间转发所述状态更新消息而被所述主第二网络功能接收的,所述SF实例集至少包括所述主第二网络功能和所述备份第二网络功能,并且所述SF实例集的每个成员用于将所述状态更新报文的副本转发到所述SF实例集的指定下一个成员,所述SF实例集的每个成员与不同的SFP实例相关联。

所述方法还包括标识所述主SFP实例的所述指示包括在与所述第一报文和所述第二报文中的每一个相关联的段路由扩展(segment routing extension,SRE)中。所述段路由扩展还包括段列表,其中,所述段列表包括段标识符(segment identifier,SID)列表。每个SID与形成所述SFP的多个业务功能中不同的相应一个业务功能相关联。根据本发明的其它方面,每个SID是互联网协议(Internet Protocol,IP)地址,并且所述IP地址包括标识所述主SFP实例的所述指示。根据本发明的其它方面,所述段路由扩展还包括所述SF实例集中的成员数量的指示。

根据本发明的另一方面,提供了一种网络节点,所述网络节点包括:网络接口;处理器;第一存储器;存储指令的非瞬时性存储器。所述网络节点以如下方式配置,例如通过处理器执行指令。所述网络节点用于使用所述网络接口接收报文流中的第一报文,所述第一报文包括标识分配给所述报文流的主业务功能路径(service function path,SFP)实例的指示,所述网络节点与所述主SFP实例相关联。所述网络节点用于使用所述网络接口向主第二网络节点发送所述第一报文,所述主第二网络节点与所述主SFP实例相关联。所述网络节点用于响应于与所述主第二网络节点的通信故障,使用所述网络接口向与所述SFP的第二实例相关联的备份第二网络节点发送与所述报文流中的第二报文。所述第二报文在所述报文流中的所述第一报文之后由所述网络节点接收,并且包括标识所述报文流的所述主SFP实例的指示。所述网络节点还用于根据所述第一报文,在所述第一存储器中更新与所述报文流相关联的报文流相关业务功能(service function,SF)状态。所述网络节点还用于使用所述网络接口发送包括所述更新后的报文流相关SF状态的状态更新报文,所述状态更新报文包括标识所述报文流的所述主SFP实例的所述指示。所述指令还使所述网络节点将与配置为所述网络节点备份的备份网络节点相关联的单播网络地址插入所述状态更新报文的所述目的地址中,所述单播网络地址包括标识所述报文流的备份SFP实例的指示;使用所述网络接口向所述备份网络节点发送所述状态更新报文。

根据本发明的另一方面,提供了一种网络节点,所述网络节点包括:网络接口;处理器;第一存储器;非瞬时性存储器,存储指令,所述指令当由所述处理器执行时,使所述网络节点:使用所述网络接口接收状态更新报文,所述状态更新报文包括与报文流相关联的报文流相关业务功能(service function,SF)状态,所述状态更新报文包括标识与所述报文流相关联的主业务功能路径(service function path,SFP)实例的指示,所述网络节点形成除所述报文流的所述主SFP实例之外的SFP实例的一部分;根据所述状态更新报文中指示的所述主SFP实例,在所述第一存储器中存储与所述报文流相关联的所述报文流相关SF状态;使用所述网络接口发送所述状态更新报文的副本,所述状态更新报文的所述副本包括标识与所述报文流相关联的另一个SFP实例的指示。

所述指令还使所述网络节点使用所述网络接口接收与所述报文流相关联的报文,所述报文包括标识与所述报文流相关联的所述主业务功能路径(service function path,SFP)实例的指示;根据所述报文中指示的所述主SFP实例,从所述第一存储器检索与所述报文流相关联的所述报文流状态;使用所述网络接口向另一网络节点发送所述报文。根据本发明的其它方面,所述另一个网络节点可以与所述报文中指示的所述主SFP实例相关联。所述指令还使所述网络节点根据所述报文,在所述第一存储器中更新与所述报文流相关联的所述报文流相关SF状态;使用所述网络接口发送第二状态更新报文,所述第二状态更新报文包括与所述报文流相关联的所述更新后的报文流相关SF状态。

本发明的潜在优点包括通过使SFP的所有组件主动处理与其分配的报文流相关联的流量,同时充当处理其它报文流的SFP组件的备份,从而提供冗余,而不会造成与专用备份链路和网元相关联的额外成本。

本发明的其它优点包括,通过使信息在伴随报文流中的每个报文的段路由扩展(segment routing extension,SRE)中传送,以用于引导报文朝向(即,将报文转发到)主业务功能或备份业务功能,从而不需要预配置和提供专用备份组件。

此外,在发生故障的情况下,使用伴随报文流中每个报文的SRE中传送的信息,在本地(即由与业务功能相关联的网元)作出重路由决策。本地重路由决策可最大限度地减少从故障中恢复所需的时间,并最大限度地减少受影响报文流的中断。

上文结合本发明的各方面描述了实施例,这些实施例可以基于这些方面来实现。本领域技术人员将理解,实施例可以结合描述这些实施例的方面来实现,但也可以与该方面的其它实施例一起实现。当实施例相互排斥或彼此不兼容时,这对于本领域技术人员将是显而易见的。一些实施例可以结合一个方面进行描述,但也可以适用于其它方面,这对本领域技术人员是显而易见的。

附图说明

结合附图,通过以下详细描述,本发明的进一步特征和优点将变得显而易见,在附图中:

图1示出了与业务域中的业务功能路径相关联的现有技术。

图2示出了本发明的实施例提供的在对应于业务功能链的业务功能路径的多个实例上的报文流的分布和均衡。

图3示出了本发明的实施例提供的在多个业务功能路径上的报文和状态转发。

图4示出了本发明的实施例提供的通过业务功能路径的备份SF进行的报文重路由。

图5示出了本发明的实施例提供的入口分类器的操作。

图6A示出了本发明的实施例提供的包括示例性段路由扩展的封装报文。

图6B示出了本发明的实施例提供的具有结构化IPv6 SID的段路由扩展的段列表。

图6C示出了本发明的实施例提供的具有紧凑SID的段路由扩展的段列表。

图7示出了本发明的实施例提供的负载均衡器执行的操作。

图8示出了本发明的实施例提供的在业务功能、业务功能节点或业务功能转发器上执行的操作。

图9示出了本发明的实施例提供的循环SF状态传播方法。

图10示出了本发明的实施例提供的SF状态操作。

图11示出了本发明的实施例提供的通信故障后报文的重定向。

图12示出了本发明的实施例提供的在SF实例的备份处对重定向报文的处理。

图13示出了本发明的实施例提供的网络设备。

需要说明的是,在整个附图中,相同的特征由相同的附图标记标识。

具体实施方式

本发明的实施例大体上提供了保护有状态业务功能路径的装置、系统和方法。具体地,本发明的实施例使用复制的业务功能路径的多个实例,以当沿着通往业务功能的路径存在通信故障时,将流量重定向到复制的业务功能实例。例如,可以实例化业务功能路径的每个副本,以在可用网络资源上提供负载平衡。通信故障可以对应于故障或不可用的通信链路,或故障的网络节点或其组件。

图1示出了具有实现对应业务功能链的业务功能路径的现有技术业务域。如图1所示,来自第一网络节点(节点A)的用户报文通过入口节点(分类器)115进入业务域110,并通过出口节点120退出业务域,随后在另一个网络节点(节点B)接收。用户报文可以是包括从节点A发送到节点B的用户报文序列的报文流的一部分。传统上,报文流由包括IP协议类型、源IP地址、目的地IP地址、源TCP/UDP端口和目的地TCP/UDP端口的互联网协议(InternetProtocol,IP)报文头中的五元组标识。在一个实施例中,多个报文流可以在业务域110内处理。在本实施例中,入口节点115根据定义要应用于用户报文的业务功能集的分类,沿着特定SFP,例如SFP1 122、SFP2 124或SFP3 126,转发与特定报文流相关联的报文。因此,入口节点115充当分类器节点。尽管在图1的简化示例中,存在单个入口(分类器)节点115和单个出口节点120,但在其它实施例中,业务域内可以存在多个入口节点115和多个出口节点120。此外,业务域110可以包含比图1所示的三个业务功能路径(SFP1 122(实线)、SFP2 124(虚线)和SFP3 126(虚线))更多或更少的业务功能路径。

作为业务功能转发器(service function forwarder,SFF)130运行的网络节点或网络功能负责将流量转发到连接的业务功能(service function,SF)135。SFF 130可以负责选择路由,并将报文从托管一个SF的业务功能节点(service function node,SFN)转发或发送到托管SFP中的下一个SF的SFN。如图1所示,SFF 130可以与零个、一个或多个SFN140相关联,并且可以向业务域110内的多个SFP提供转发业务。在一些实施例中,用作SFF130的网络节点或网络功能可以被合并到SFN 140中。每个SFF 130可以使用在与报文相关联的网络报头中传送的信息来确定要将报文发送到哪些连接的SF(如果有的话)。当SF 135完成处理报文时,处理后的报文被返回给SFF 130,该SFF 130还负责将报文转发到下一个SFF或SFN。SFN 140可以托管一个或多个SF 135,并且可以具有与它们相关联的一个或多个SFF 130。

SF之间(或托管SF的SFN之间)的报文转发(即报文的转发)可以由可以服务于SFP的一个或多个实例的SFF执行。SFF与SFN之间以及SFF之间的报文转发又可以由路由网络基础设施内的传统报文转发网络节点或网络功能执行。

SF可以是通过在计算服务器、独立的物理网络设备或物理网元的网络设备的资源上执行的网络功能虚拟化实例化的虚拟网络功能(virtual network function,VNF)。

有关上述定义的更多细节可以在RFC 7665中找到。

本发明的实施例提供了基于分布式本地机制的受保护业务功能路径的方案,该机制能够在网络节点或网络功能或到所述网络节点或网络功能的链路发生故障后恢复业务功能路径的连通性。在一个实施例中,与业务功能链(service function chain,SFC)相关联的报文流可以分布在复制的业务功能路径(service function path,SFP)的多个实例上。SFP的每个实例都可以具有与其相关联的业务功能(service function,SF)和业务功能节点(service function node,SFN)相关的专用网络资源。因此,SFP的每个实例将负责处理与业务域中的SFC相关联的报文流的子集。图2示出了本实施例提供的在对应于SFC的SFP的多个实例上的报文流的分布和平衡。为了简化图示,与SF相关联的SFN和SFF没有在此示出,其余附图包括在本文中。如图2所示,入口节点115用作分类器,并确定应使用哪个SFC来处理属于报文流的传入用户报文。在以下描述中,主SF实例是指主SFP实例中的SF实例,备份SF实例是指非主SFP实例的SFP实例中的SF实例,主SF实例和备份SF实例构成SF实例集。

在处理传入用户报文并标识要与传入用户报文相关联的SFC之后,入口节点115将用户报文转发到与对应于所选择的SFC的SFP相关联的负载均衡器(load balancer,LB)。在本示例说明中,SFP-1LB 210对应于与对应于第一SFC的SFP 215相关联的负载平衡器,SFP-2 LB 220对应于与对应于第二SFC的SFP 225相关联的负载平衡器。下面将结合图5描述用于处理传入用户报文的入口(分类器)节点115的操作。从入口(分类器)节点115(即SFP-1LB 210或SFP-2LB 220)接收用户报文的负载平衡器选择关联的SFP的实例,用户报文通过该实例被引导(即转发)。例如,如果用户报文在SFP-1 LB 210接收,并且如果用户报文是报文流中的第一个接收到的用户报文,则SFP-1 LB 210可以选择SFP 215的实例(例如,SFP实例230、SFP实例250或SFP实例270)来处理报文流。由SFP-1 LB 210选择的用于处理报文流的SFP 215的实例(例如,SPF实例230、SFP实例250或SFP实例270)被称为该报文流的主SFP实例,并且主SFP实例中的SF被称为该报文流的主SF实例。SFP实例230、250和270都是SFP215的实例,SFP实例240和260是SFP 225的实例。

图2将入口(分类器)节点115和负载平衡器节点SFP-1 LB 210和SFP-2 LB 220呈现为不同的实体。本领域技术人员将认识到,这种分离仅供参考,入口(分类器)节点可以集成负载平衡器的功能。本发明的实施例提供了执行负载均衡功能的入口(分类器)节点。

在每个SFP(例如SFP 215和SFP 225)中,存在SF的多个副本(即多个SF实例),它们可以被配置为彼此的备份SF实例,并且具有每个SFP 215、225的多个SF实例可以被称为SF实例集。作为示例,SFP 215中的SF-A具有形成与SF-A相关联的SF实例集的“n”个SF实例(SF-A1.1 231、SF-A1.2 251至SF-A1.n 271),SF-B具有形成与SF-B相关联的另一个SF实例集的“n”个SF实例(SF-B1.1 233、SF-B1.2 253至SF-B1.n 273),类似地,SF-C具有形成与SF-C相关联的另一个SF实例集的“n”个SF实例(SF-C1.1 235、SF-C1.2 255至SF-C1.n275)。尽管图2仅示出了每个SFP的三个SF(例如SF-A、SF-B和SF-C),但可以理解,每个SFP的SF的数量仅取决于与报文流相关联的SFC,并且提供这个数量仅用于说明目的,没有任何限制。

出现在不同SFP中的有状态SF可以生成不同的报文流状态信息,因此另一个SFP中的SF实例(例如SFP 225中的SF-B 2.1 242和SF-B 2.m 262)不能包括在与SFP 215相关联的SF实例集中。对于特定的报文流,与主SFP实例相关联的SF实例集中的SF实例可以被指定为该报文流的主SF实例,并且SF实例集中的其它SF可以用作该报文流的备份SF实例。与主SFP实例中的SF实例相关联的网络节点或网络功能称为主网络节点或网络功能。同样,与备份SF实例相关联的网络节点或网络功能称为备份网络节点或网络功能。

需要说明的是,SF实例集也可以通过其它方式配置。一个或多个SF实例可以用作主SF实例,一个或多个其它SF实例可以用作备份SF实例。SF实例可以单独用作主SF实例,也可以单独用作备份SF实例,也可以同时用作主备SF实例。备份SF实例可以用作至少一个指定或未指定的其它SF实例的备份,该备份SF实例本身可以是主SF实例,也可以是另一个备份SF实例。SF实例可以被指定为相对于另一个SF实例的备份SF实例,也(可能)被指定为相对于一个或多个备份SF实例的主SF实例。主SF实例和备份SF实例可以相对于彼此组织在一个或多个循环、树或其组合中。

负载平衡器可以用于使特定报文流中的所有用户报文被转发到SFP的同一实例(即SPF实例)。在一个实施例中,通过在业务域内传送所选SFP实例的标识以及用户报文,提供标识分配给报文流的SFP实例的指示。在可用SFP实例中选择SFP实例可以基于负载平衡标准,例如轮询方法、最近最少使用的方法或最适合特定情况的其它方法。如果SFP-1 LB210选择SFP实例230来处理报文流,则SFP-1 LB 210将封装报文转发到SF-A1.1 231,该SF-A1.1 231是沿着所选主SFP实例230的第一SF。在没有如本文其它地方所述的SF实例故障的情况下,SF-A1.1 231可以用于沿着所选SFP实例230将接收到的封装报文转发到后续SF(例如SF-B1.1 233,并最终转发到SF-C1.1 235)。下面将描述本发明的实施例提供的负载均衡器和业务功能节点的操作以及封装报文的描述。

本发明的实施例通过下一个SF的备份实例,将通信故障周围的用户面流量沿着路径路由到下一个SF。根据一些这样的实施例,对于关联SFC中的特定SF,复制的SFP中的SF的每个实例用作同一SFP中SF的其它实例的备份。例如,如果业务域中有n个SFP实例,则对于关联SFC中的特定SF,报文流可能有一(1)个主SF,该报文流可能有(n–1)个备份SF。在其它实施例中,可以使用主SF和备份SF的不同布置。为了用作备份SF实例,并在发生故障时替换主SF实例,SF的每个实例都存储自己的SF状态以及与SFP中SF的其它实例相关联的(n–1)个SF状态。回到图2,与SF A相关联的SF实例集的每个SF实例(例如SF-A1.1 231、SF-A1.2 251至SF-A 1.n 271)用作形成SFP 215中SF-A的SF实例集的剩余(n–1)个SF的备份SF实例。此外,为了允许对用户报文进行有状态处理,即使在SF故障之后,SF的每个备份实例都在本地存储在主SF实例中存储的报文流相关SF状态的同步副本。本地存储可以是指在本地可访问的(例如,位于同一设备或同一机架或数据中心中,取决于上下文)电子存储器中存储SF状态。图3示出了本发明的实施例提供的在业务功能路径的多个实例上的报文和状态转发。在每个备份SF实例上维护SF状态的同步副本。

在一些实施例中,当检测到故障时,封装报文可以被重定向到下一个SF的备份实例。在其它实施例中,封装报文可以被重定向到下一个SF的多个备份实例,例如包括下一个SF的主备份实例和下一个SF的次备份实例,或者下一个SF的多个备份实例。例如,当正在处理时序关键型用户报文并且希望故障率低时,可能是这种情况。

现在参考图3,当用户报文的处理引起与分配给主SF实例的报文流相关联的SF状态的改变时,主SF实例将更新的SF状态(或至少与该报文流相关联的SF状态)转发到SF的其它(备份)实例。例如,在SFP 215中,当主SF-A 1.1 231在处理分配的报文流中的用户报文期间更新其SF状态时,该报文流的更新后的SF状态的副本被传播到与SF-A相关联的SF实例集中的所有对应备份SF,即,传播到SF-A1.2 251到SF-A1.n 271,如由状态同步路径310指示。在SFP实例230的每个后续SF(SF-B1.1 233和SF-C 1.1 235)处,SF状态改变(即SF状态改变的指示)可以类似地传播到分别与SF-B和SF-C相关联的SF实例集中的备份SF实例,如分别由状态同步路径320和330指示。但是,需要说明的是,在各种其它实施例中,并非所有SF都必须是有状态SF。在SF不是有状态SF的情况下,不需要传播SF状态。

根据这些实施例,SFP实例250和270中的每个备份SF实例存储由主SFP 230中的主SF实例提供的报文流相关SF状态,而不需要重复由主SF实例执行的用户报文的处理。因此,SF可以使用确定性或非确定性过程,因为非确定性过程的结果将在报文流相关SF状态中捕获,并且在每个备份SF实例上维护同步副本。

在一些实施例中,主SF实例(例如SF-A 1.1 231)可以向每个备份SF实例(例如SF-A 1.2 251和SF-A 1.n 271)发送包含更新的SF状态的单播报文。在其它实施例中,组播报文可用于将更新的SF状态分发到与根植于主SF实例的组播树相关联的所有备份SF实例(例如SF-A1.1 231)。或者,SF状态更新过程可用于沿着例如状态同步路径310的路径(例如环路)传播SF状态。将参考图9和图10描述这样的SF状态更新过程。SF状态更新过程可以被认为是“循环”的,因为SF状态沿着在同一节点开始和结束的封闭路径传播。

图4示出了本发明的实施例提供的在通往主SF实例的路径上发生通信故障时重路由封装报文的操作。为了简单起见,图4中仅示出了SFP 215。根据本发明的实施例,主SF实例(例如SF-A1.1 231)在接收和处理用户报文之后,生成封装报文,以传输到主SFP实例230中的用于报文流的下一个SF(例如SF-B1.1 233);将参考图5讨论封装报文的生成。在用户报文处理引起状态改变的情况下,主SF实例(SF-A1.1 231)还更新报文流相关SF状态,然后将报文流相关SF状态改变传播到与SF-A相关联的SF实例集中的(n–1)个备份SF实例(例如SF-A1.2 251至SF-A1.n 271),如上文公开。当检测到在主SFP实例230中通往下一个主SF实例的路径上发生通信故障,或下一个SF主实例本身发生故障(例如,故障的SF-B1.1 433)时,重路由功能用于将封装报文重定向到下一个主SF实例(例如SF-B1.1 433)的备份SF实例,例如SF-B 1.2 253。重路由功能可以附属于SF 135,也可以附属于与SF相关联的网元,如SFN 140或SFF 130;重路由功能也可以附属于负载均衡器,如SFP-1LB 210。在不脱离本发明范围的情况下,重路由功能的其它实现是可能的。通信故障可以由相邻网元(例如与SF135(例如SF-A1.1 231)相关联的SFN 140或SFF 130)基于例如双向转发检测的活动性检查来检测。可以在转发封装报文之前或在检测到将封装报文转发到SF实例(例如,到SF-B 1.1433)的尝试失败时检测到故障。用于检测路径故障的其它方法是本领域技术人员熟知的,并且可以用于检测到SFP实例中SF的路径故障。

在本实施例中,重路由功能还可以修改封装报文的报头,以在封装报文的目的地址字段中包括下一个主SF实例(例如SF-B 1.1 433)的备份SF实例(例如SF-B 1.2 253)的地址。然后,重路由功能可以将封装报文转发到备份SF实例(SF-B 1.2 253),如备份转发路径420指示。

根据本发明的实施例,重路由功能可以用于将备份SF实例(SF-B1.2 253)的目的地址提供给SFF 130或SFN 140,以用于插入封装报文的报头中。

备份SF实例(SF-B1.2 253)在通过备份转发路径420接收到封装报文时,使用先前从主SF实例(图3中的SF-B 1.1 233)接收到的报文流相关SF状态处理用户报文。如果处理的用户报文引起报文流相关SF状态改变(即,与包括用户报文的报文流相关联的SF状态的改变),则备份SF实例(SF B1.2 253)将与该报文流相关联的更新后的SF状态转发到SFP215内与SF-B相关联的SF实例集的其余备份SF实例,如状态同步路径410所指示。如图所示,状态同步路径410不包括由于到该节点的路径或节点本身的路径故障而造成的故障SF(SF-B 1.1 433)。但是,如果主SF实例(SF-B 1.1 433)能够为了SF状态更新的目的进行通信,则状态同步路径410可替换地包括或尝试包括主SF实例(SF-B 1.1 433)。

本发明的实施例提供了备份SF实例(SF-B1.2 253)上的用户报文被转发到分配给报文流的主SFP实例中的下一个SF(例如SF-C1.1 235),如备份转发链路430所指示。附属于备份SF实例或与备份SF实例(SF-B1.2 253)相关联的SFN 140或SFF 130的路由恢复功能通过引导封装报文朝向(即,将封装报文转发到)主SFP实例中的下一个SF(即,SFC1.1 235)来恢复通过主SFP实例230的路径。为此目的,封装报文可以包括其关联的主SFP实例的指示。如果需要,主SFP实例中的下一个SF(SF-C 1.1 235)可以通过状态同步路径330同步其SF状态。

图5示出了本发明的实施例提供的用于在例如入口(分类器)节点115的入口(分类器)节点处进行用户报文处理500的方法。在步骤510中接收到传入用户报文之后,入口(分类器)节点在步骤520中通过确定要与传入用户报文相关联的SFC来对用户报文进行分类。在步骤530中,入口(分类器)节点确定与SFC相关联的SFP,其中,SFP包括用于处理传入用户报文的SF序列,传入用户报文是标识的报文流中的用户报文。在本实施例中,来自标识的报文流的所有用户报文都与同一SFP相关联。使用图2的示例,SFP可以表示为[SF-A,SF-B,SF-C],图2表示要应用于标识的报文流中的所有用户报文的SF序列。在步骤540中,入口(分类器)节点将包括用户报文的报头和有效载荷的传入用户报文插入封装报文中。在步骤550中,入口(分类器)节点将封装报文发送到与SFP相关联的负载平衡器,例如与SFP 215相关联的LB 210。

将参考图6A、图6B和图6C描述封装报文。根据本发明的实施例,封装报文600可以使用为IPv6上的段路由定义的段路由报头的增强版本,在此称为SRv6;在不脱离本发明的范围的情况下,也可以使用其它实施例,例如使用多协议标签交换(multi-protocol labelswitching,MPLS)的实施例。传统的SRv6段路由报头在IETF RFC 8754中描述,标题为“IPv6段路由报头(SRH)”。在利用IPv6和段路由的示例性实施例中,封装报文600包括IPv6报头610和插入在IPv6报头610与封装报文600的有效载荷630之间的段路由扩展(segmentrouting extension,SRE)620。在一些实施例中,将由SFP中的SF处理的用户报文包括在封装报文600的有效载荷630中。封装报文600的IPv6报头610包括目的网络地址字段616、源网络地址字段614和“下一个报头”字段612,以及图6A所示的其它字段。段路由扩展(segmentrouting extension,SRE)620的存在由IPv6报头610中的“下一个报头”字段612指示。

SRE 620的字段包括指示段路由扩展620的字段和格式的“路由类型”字段622、包含将由封装报文600遍历的路径段的列表的段列表字段625、指示段列表625中的条目数量的“最后条目”字段624,以及指示段列表625中迄今尚未在转发路径中遍历的段的数量的“剩余段”字段621。根据本发明的实施例,入口(分类器)节点115将“剩余段”字段621(和“最后条目”字段624)设置为(n-1),其中,n是段列表625中的段的数量。

SRE 620的字段还可以包括指示SRE 620的可选方面的“标志”字段626和包含可在SRE 620的处理中使用的信息的“元数据”字段(未示出)和段列表字段625。

段列表字段625包含将由封装报文600遍历的路径段的列表。段列表字段625的每个条目包含段标识符(segment identifier,SID),该SID可由SFF 130用于标识到SF 135或到SFN 140的路径。本发明的实施例提供路径段列表为逆序列表,即路径段列表中的第一条目包含标识最后一个路径段的SID,路径段列表中的最后一个条目包含标识第一路径段的SID。在这些实施例中,路径段的列表将将SFC[SF-A,SF-B,SF-C]表示为(SF-C,SF-B,SF-A)。在不脱离本发明的范围的情况下,可以使用路径段列表中条目的其它排序方法。在一些实施例中,用户报文包括IPv6报头610,并且SRE 620插入在用户报文的IPv6报头610之后。在这些实施例中,封装报文600是在用户报文的IPv6报头610之后具有SRE 620的用户报文。入口节点115接收的用户报文的IPv6报头610中的目的地址字段616作为SID插入段列表字段625的最后一个条目中,即(DA,SF-C,SF-B,SF-A),并由出口节点120恢复到用户报文的目的地址字段616。

本发明的实施例提供SRE 620以包括散列消息验证码(hashed messageauthentication code,HMAC)字段628,用于保护段列表字段625,以及在一些实施例中,SRE620的其它字段。这种保护是通过使用负载平衡器可能不知道但由入口(分类器)节点115和SFP的网络元素(例如SF 135、SFN 140或SFF 130)知道的加密密钥材料来提供的。HMAC 628可以由入口(分类器)节点115计算,并且可以由SFP的网络元素(例如SF 135、SFN 140或SFF130)使用预先共享的加密密钥和预先确定的加密散列算法来验证。

根据本发明的实施例,SRE 620可以包括用于标识被选择以处理标识的报文流的SFP实例的字段。SRE 620中的“SFP实例标识符”字段623可以被提供为由负载平衡器(例如LB 210)分配给标识的报文流的主SFP实例的指示。该SFP在业务域中的当前实例数量也可以由SRE 620中表示为“SFP实例数量”字段627的字段指示。SFP实例标识符字段623和SFP实例数量字段627的存在可以由SRE 620的“路由类型”字段622或“标志”字段626中的条目指示。

根据本发明的某些实施例,包含在段列表625中的路径段列表中的SID可以被编码为与分配给标识的报文流的SFP内的SF相关联的128位IPv6地址。图6B示出了用作段列表字段625B内的SID的结构化IPv6地址640。使用结构化IPv6地址640作为段列表字段625B内的SID可以实现使用业务域内的传统IP路由器沿着SFP进行业务功能转发。如图6B所示,结构化IPv6地址640可以包括:业务组字段642,例如,用于指示该地址正在用于业务功能链接,以便将其与用于其它目的(例如,用作端点地址)的IPv6地址区分开来;SFP标识符字段644,例如用于指示与SID相关联的SFC或SFP;实例字段646,用于指示与SID相关联的受保护SFP(即SFP实例)的主实例;以及SF标识符字段648,用于指示与SID关联的SF。在一些实施例中,SF标识符648仅是唯一的或至少在SFP标识符的上下文中是唯一的;在其它实施例中,SF标识符可以在业务域的上下文中是唯一的。

在本发明的可选实施例中,包含在段列表字段625中的路径段列表中的SID可以被编码为压缩段路由扩展中的紧凑SID。图6C示出了包含在段列表字段625C中的路径段列表中的紧凑SID 650。例如,紧凑SID 650可以是与SFP内的对应SF相关联的8位到64位令牌。SF令牌例如可以由管理面实体分配。SF令牌可以至少在SFP的上下文中是唯一的,也可以在业务域的上下文中是唯一的。例如,SFF 130或SFN 140可以使用令牌访问查找表,其中,存储信息以指示封装报文600将如何转发到关联的SF。

回到图5的步骤540,入口(分类器)节点115将传入用户报文插入具有IPv6报头610和SRE 620的封装报文600的有效载荷630中,如图6A中所示。源地址字段614被设置为与入口(分类器)节点115相关联的地址,目的地址字段616被设置为与所选择的SFC对应的SFP相关联的负载平衡器(例如SFP-1LB 210)的地址。

本发明的实施例提供入口(分类器)节点(例如入口分类器115),以提供SRE 620,而不标识要在对应的SFP中使用的SFP实例。在这些实施例中,在选择或标识与标识的报文流相关联的SFP实例之后,负载均衡器将SFP实例插入SRE 620中。在包括SRE 620中的SFP实例标识符字段623的实施例中,入口(分类器)节点115初始化SFP实例623(例如,集合I=0)。在不包括SFP实例标识符字段623并且其中包含在段列表字段625B中的路径段列表中的每个SID是结构化IPv6地址640的实施例中,入口(分类器)节点115初始化每个SID中的SFP实例字段646(例如,集合I=0)。入口(分类器)节点115然后设置包含在段列表字段625中的路径段列表,以指示SFP中SF的序列(例如(SF-C,SF-B,SF-A)),并设置最后条目字段624和剩余段字段621,以指示包含在段列表字段625中的路径段列表中的SID的数量(例如,在图2的示例中,SL=(3–1)=2)。源地址字段614、目的地址字段616的这些值以及SRE 620的信息元素在表1中表示,以指示将用户报文从图2中的入口(分类器)节点115传送到SFP-1LB 210的封装报文中的IPv6报头610和SRE 620。

表1

图7示出了本发明的实施例提供的由例如SFP-1LB 210的负载平衡器执行的操作700。为了说明目的,操作700的步骤按此顺序提供,但在不脱离本发明的范围的情况下,可以改变顺序或同时执行一些步骤。在步骤710中,在负载均衡器处接收具有IPv6报头610和SRE 620的封装报文600。在步骤715中,负载均衡器基于例如用户报文的报头中的信息确定封装报文600的有效载荷630中的用户报文是否表示新报文流的开始。如果用户报文表示新报文流的开始,则在步骤720中选择SFP的实例以服务报文流。否则,如果用户报文不表示新报文流的开始,则负载均衡器在步骤725中确定当前分配给报文流的SFP的实例。在步骤720中或步骤725中标识的SFP实例被认为是标识的报文流的主SFP实例。

根据本发明的某些实施例,在步骤730中,主SFP实例(I)的标识可以插入封装报文600的SRE 620的可选字段623中;在图3的示例中,I=1。根据本发明的其它实施例,在步骤730中,主SFP实例(I)的标识可以插入到段列表字段625B中包含的路径段列表中用作结构化IPv6地址的每个SID 640的SFP实例字段646中。

根据本发明的某些实施例,在步骤740中,如果SFP实例可以在业务域中动态调配,例如,以反映SFP的预计负载,则负载平衡器可以将该SFP实例的当前数量插入到SRE 620中的可选字段627中。

在步骤750中,与SFP中的第一SF相关联的SID被确定为由SRE 620的“剩余段”字段621的当前值指示;在表1的示例中,以SL=2索引的段列表字段625中的路径段列表是指与SF-A相关联的SID。

在步骤760中,确定与主SFP实例中的第一SF相关联的网络地址。在SID是结构化IPv6地址640的实施例中,与第一SF相关联的SID直接用作主SFP实例中附属于第一SF的IP地址。在SID是紧凑SID 650的实施例中,查找表可用于将与第一SF相关联的紧凑SID 650映射到主SFP实例中附属于第一SF的网络(例如IP)地址。如果必要,主SFP实例(I)的标识可以插入到IP地址640的实例标识符字段646中。

在步骤770中,在步骤760中确定的网络地址被插入封装报文600的目的地址字段616中。在步骤780中,封装报文被转发到SFP的主实例中的第一SF。在图3的示例中,IPv6报头610中的源地址字段614和目的地址字段616的值,以及将用户报文从负载平衡器SFP-1LB 210传送到SFP的第一SF(SF-A 1.1 231)的封装报文600的SRE 620的信息元素实例230如表2所示。

表2

图8示出了本发明的实施例提供的在业务域的SFP实例内的SF以及与SF相关联的SF节点或SFF处执行的操作800。为了说明目的,操作800的步骤按此顺序提供,但在不脱离本发明的范围的情况下,可以改变顺序或同时执行一些步骤。在步骤810中接收到封装报文600之后,在步骤820中由SF实例处理封装报文600的有效载荷630中的用户报文。在步骤830中,如果步骤820中的处理引起了任何SF状态改变,则更新报文流相关SF状态。在步骤840中,如果在步骤830中更新报文流相关SF状态,则更新后的SF状态被传播到SF实例的备份SF实例,如下所述。在图3的示例之后,在SF-A1.1 231处处理接收到的用户报文当引起了SF状态改变时,将使SF状态被更新并传播到备份SF实例,即SF-A1.2 251和SF-A 1.3 271。

在步骤850中,执行测试以确定当前SF是否是SFP中的最后一个SF。该确定可以基于SRE 620中的SRE“剩余段”字段621的值。本发明的实施例提供了在沿着SFP的每个SF处处理用户报文之后,SRE“剩余段”字段621的值将被递减。当SRE“剩余段”字段621的接收值等于零(0)时,这指示当前SF是SFP中的最后一个SF,如步骤850的“是”分支所描述。

如果当前SF是SFP中的最后一个SF,则在步骤853中,与最后一个SF相关联的SFN或SFF从封装报文600的有效载荷630中提取用户报文,并在步骤855中,将用户报文转发到由用户报文的报头中的目的地址字段指示的目的节点。

如果当前SF不是SFP中的最后一个SF(即,SRE“剩余段”字段621的接收值不等于零),则在步骤860中,在步骤850的“否”分支之后,与SF实例相关联的SFN或SFF基于SRE 620中的“剩余段”字段621的值确定与SFP中的下一个SF相关联的SID。根据本发明的某些实施例,通过从步骤810接收的封装报文600中的SRE“剩余段”字段621的值减1来获得SRE“剩余段”字段621的更新值。根据表2中的示例,SF-A1.1 231接收的SRE“剩余段”字段的值为SL=2,更新后的值为SL=1。来自SF-A 1.1 231的下一个SF是通过以SL=1索引SRE“段列表”字段625来确定的,该SL=1是指SF-B 1.1 233的SID。

在步骤870中,确定与下一个SF实例(即SF-B 1.1 233)相关联的网络地址。如前所述,在SID是结构化IPv6地址640的实施例中,与下一个SF相关联的SID直接用作与下一个SF实例相关联的网络地址。在SID是紧凑SID 650的实施例中,查找表可用于将与下一个SF相关联的紧凑SID 650映射到与下一个SF实例相关联的网络地址。在步骤880中,将确定的网络地址插入封装报文600的目的地址字段616中。在步骤890中,用新值(SL=1)更新封装报文600的SRE“剩余段”字段621。在步骤895中,更新的封装报文600被转发到下一个SF实例(即SF-B 1.1 233)。在图3的示例中,IPv6报头610中的源地址字段614和目的地址字段616的值以及将用户报文从SF-A 1.1 231传送到SF-B 1.1 233的封装报文600的SRE 620中的信息元素如表3所示。

表3

当在SF-B 1.1 233执行时,操作800将导致修改后的封装报文600被转发到SF-C1.1 235。在图3的示例中,IPv6报头610的源地址字段614和目的地址字段616中的值以及封装报文的SRE 620的信息元素如表4所示。

表4

在SFP中的最后一个SF(即SF-C 1.1 235)实例处执行操作800,其中,接收到的SRE“剩余段”字段621值等于零(SL=0)将导致如上所述的步骤850的“是”分支。操作800的步骤并不建立任何顺序的操作顺序,而是仅用于说明目的。本领域技术人员将知道,所示步骤的顺序可以改变,并且一些步骤或动作可以同时执行,而不影响本发明的工作。

在上述操作800中,在转发用户或封装报文600之前,在步骤840中将SF状态更新(也称为状态更新消息,可以在状态更新报文中传输)传播到SF实例集中的其它SF实例。但是,本发明的一些实施例提供在转发封装报文600之后(即,在步骤895之后)或在转发用户报文之后(即,在步骤855之后)传播SF状态更新。本领域技术人员将认识到,传播SF状态更新可以在转发步骤之前或之后执行,而不偏离本发明的原理或范围。

本发明的实施例提供了SF实例,以将SF状态改变(即SF状态改变的指示)或更新的SF状态传播到其备份SF实例。根据本发明的实施例,SF实例集的备份SF实例用于每当SF实例对用户报文的处理引起了报文流相关状态改变时,协作地同步报文流相关SF状态。

根据本发明的实施例,SF状态的维护可以通过SF实例集的备份SF实例来处理,而不实际处理构成标识的报文流的用户报文。

根据某些实施例,SF状态改变(即SF状态改变的指示)可以作为单播报文发送到被配置为主SF实例的备份SF实例集的每个SF实例。单播报文可以具有与备份SF实例相关联的目的网络地址和标识与备份SF实例相关联的SFP实例的指示。单播报文的源地址可以与主SF实例相关联,并具有与主SF实例相关联的主SFP实例的指示。例如,单播报文的目的网络地址和源网络地址可以各自是具有SF实例标识符字段646的结构化IPv6地址640。或者,可以使用组播(或广播)报文将SF状态改变发送到所有备份SF实例。在其它实施例中,状态报文可以是具有SRE 620的单播报文,其中,备份SF实例列表包括在SRE段列表字段625中。

根据其它实施例,可以使用SF状态传播方法,其中,包含SF状态改变(即SF状态改变的指示)的报文从SF实例集中的一个SF实例顺序发送到另一个SF实例。根据本发明的实施例,每个SF实例可以(例如由管理功能)配置有SF状态要发送到的另一个SF实例的标识。根据本发明的其它实施例,SF状态可以以循环的方式从一个SF实例传播到另一个SF实例。图9示出了这样的循环SF状态传播方法,表示为操作900。为了说明目的,操作900的步骤按此顺序提供,但在不脱离本发明的范围的情况下,可以改变顺序或同时执行一些步骤。在步骤910中,需要传播其SF状态的起始SF实例生成状态报文,该状态报文是包含SF状态指示的单播报文,并且在步骤920中,将其网络地址插入状态报文的源地址字段中。根据本发明的某些实施例,起始SF实例的网络地址是具有SFP实例标识符字段646的结构化IPv6地址640,并且SFP实例k中的起始SF实例将值k插入状态报文源地址614的SFP实例标识符字段646中。在步骤925中,起始SF实例启动同步定时器T。

在步骤930中,SF生成与相邻SFP实例中的SF实例相关联的网络地址。根据本发明的某些实施例,与相邻SFP实例中的SF实例相关联的网络地址是具有SFP实例标识符字段646的结构化IPv6地址640,并且SF实例基于实例模运算I

在步骤950中,接收状态报文的SF实例确定状态报文中的目的地址616是否与状态报文中的源地址614相同。如果它们相同,表示状态报文已返回到在步骤920中发起状态报文的SF实例,则遵循步骤950中的“是”分支。在步骤980中,起始SF实例停止同步定时器T,并且在步骤985中,认为SF状态要与SF实例集中的其它SF实例同步。

如果状态报文中的目的地址616与状态报文中的源地址614不相同,则遵循步骤950中的“否”分支。在步骤960中,SF的备份实例存储与状态报文源地址614的SFP实例标识符字段646指示的SF实例相关联的SF状态。在步骤930中,SF实例的备份实例继续操作900。

在步骤990中,起始SF实例确定同步定时器T是否已经到期。如果同步定时器T在起始SF实例接收到其SF状态报文的副本之前到期,则遵循步骤990的“是”分支,这指示跨SF实例集的SF状态同步不成功,并且可以在步骤995中启动故障恢复过程。这样的故障恢复过程可以包括根据操作900重新发送SF状态报文的起始SF实例,或者可以使用本领域技术人员已知的其它恢复过程。

图10示出了使用具有SF实例标识符字段646的结构化IPv6地址640的SF状态传播操作1000。为了说明目的,SF状态传播操作1000的步骤以此顺序提供,但在不脱离本发明的范围的情况下,可以改变顺序或同时执行一些步骤。与SFP实例k相关联的起始SF实例1010生成状态报文1012,用于转发到与SFP实例k+1相关联的备份SF实例1020;状态报文1012源地址的SF实例标识符设置为k,状态报文1012的目的地址的SF实例标识符设置为k+1。状态报文通过SF的后续备份实例传播,其中,SF的每个备份实例增加状态报文目的地址中的SF实例标识符字段646,并保持状态报文1012源地址未修改。最终,与最后一个SFP实例n相关联的SF 1030接收状态报文1022的副本,其中,状态报文1022源地址的SF实例标识符被设置为k,状态报文1022目的地址的SF实例标识符被设置为n。备份SF实例n 1030修改状态报文1032,使得根据操作900的步骤930中描述的模加法运算,将状态报文目的地址的SF实例标识符设置为1。状态报文1032由与SFP实例1相关联的备份SF实例1040接收。状态报文1042由备份SF实例1040转发,状态报文1042目的地址的SF实例标识符增加到2。状态报文1042通过SF的后续备份实例传播,SF的每个备份实例增加状态报文目的地址中的SF实例标识符字段646,直到它被与SFP实例k–1相关联的SF 1050接收。备份SF实例k-1 1050转发修改后的状态报文1052,其中,状态报文1052目的地址的SF实例标识增加到k,状态报文1052的未修改源地址的SF实例标识符也设置为k。当状态报文1052被起始SF实例1010接收时,起始SF实例1010识别匹配的源地址和目的地址,以指示状态报文通过SF实例集成功传播。

图11示出了沿着路径将在通信故障周围的报文重路由到下一个SF实例的操作1100。操作1100的步骤可以由单个实体或由例如SF、SFF或SFN和重路由功能(reroutingfunction,RRF)的实体的组合执行。为了说明目的,操作1100的步骤按此顺序提供,但在不脱离本发明的范围的情况下,可以改变顺序或同时执行一些步骤。将按照图4的示例描述操作1100,其中,附属于SF-A 1.1 231的网络实体检测到沿着通往SF-B 1.1 433的路径出现通信故障,并将报文重定向到备份实例SF-B 1.2 253。

在步骤1110中,在SF实例(例如SF-A 1.1 231)处接收具有SRE 620的封装报文600。在步骤1120中,根据本发明的实施例处理封装报文600的有效载荷630中的用户报文,以例如根据业务功能(SF-A1.1 231)处理用户报文,并且如果必要,将更新后的SF状态传播到SF实例集中的备份SF实例。在步骤1130中,封装报文600中的SRE 620用于标识与SFP中的下一个SF相关联的SID。在步骤1140中,确定与SID相关联的网络地址,并执行检查以确保存在到与SFP实例中的下一个SF相关联的网络地址的操作路径。如果存在到SFP实例中的下一个SF的操作路径,则遵循步骤1150的“是”分支,并且在步骤1190中,封装报文被转发到与SFP实例中的下一个SF相关联的网络地址。

如果不存在到SFP实例中的下一个SF的操作路径,则遵循步骤1150的“否”分支,并且在步骤1160中,重路由功能(rerouting function,RRF)确定SFP的另一个实例中的备份SF实例。根据本发明的实施例,并遵循图4的示例,RRF可以附属于与SF 135相关联的SFN140或SFF 130,例如SF-A 1.1 231;RRF也可以附属于负载平衡器,如SFP-1LB 210。根据本发明的实施例,RRF可以选择故障SF实例的备份SF实例,以便将故障SF实例的处理负载分配到剩余的SF实例上。RRF例如可以随机选择备份SF实例,或以轮询方式选择备份SF实例,或根据每个备份SF实例中的当前负载选择备份SF实例。

例如,RRF可以选择数字m(1≤m

在步骤1170中,当使用结构化IPv6地址640作为SID以获得与备份SF实例b相关联的网络地址时通过将b插入SFP实例标识符字段646,或者当使用如上所述的紧凑SID 650时通过访问与备份SF实例b相关联的查找表条目,RRF确定与备份SF实例b相关联的网络地址。在步骤1180中,RRF将备份SF实例b(即SF-B 1.2 253)的解析IP地址插入封装报文600的目的地址字段中,然后向与选定的备份SF实例(SF-B 1.2 253)相关联的网络地址发送封装报文600。

根据本发明的实施例,即使封装报文600被转发到与不同SFP实例(I=2)相关联的备份SF实例,接收到的封装报文600的SRE 620内的SFP实例标识符623保持不变(即保持设置为主SFP实例(即I=1))。在图4的示例中,IPv6报头610中的源地址字段614和目的地址字段616的值以及将用户报文从SF-A1.1 231传送到SF-B 1.2 253的封装报文600的信息元素SRE 620如表5所示。

表5

本发明的实施例提供了备份SF实例,在处理用户报文后,将封装报文600重定向回负载均衡器最初分配给标识的报文流的主SFP实例。在图4的示例之后,与备份SF实例(即SFP实例250(I=2)中的SF-B 1.2 253)相关联的路由恢复功能(route restorationfunction,RSF)可以将封装报文600转发到主SFP实例的下一个SF(即SFP实例230(I=1)中的SF-C 1.1 235)。图12示出了在由于主SFP的路径中的通信故障而接收封装报文600之后备份SF实例(例如SF-B 1.2 253)的这种操作1200。为了说明目的,操作1200的步骤按此顺序提供,但在不脱离本发明的范围的情况下,可以改变顺序或同时执行一些步骤。

在步骤1210中,在备份SF实例(例如SFP实例250(b=2)中的SF-B1.2 253)处接收具有SRE 620的封装报文600。在步骤1220中,备份SF实例从封装报文600的SRE 620检索SFP实例标识符623(I)。在步骤1230中,备份SF实例确定SFP实例标识符(I)与备份SF实例的SFP实例(b)不匹配(即,I≠b)。

在步骤1240中,备份SF实例(SF-B 1.2 253)检索与标识的报文流的主SFP实例(I)相关联的存储SF状态,然后根据本发明的实施例执行封装报文600的有效载荷630中的用户报文的进一步处理。

在步骤1250中,如果由备份SF实例处理的用户报文引起报文流相关SF状态的改变,则如上所述,备份SF实例传播标识的报文流的更新SF状态或SF状态改变(即,SF状态改变的指示)。

在步骤1260中,路由恢复功能(route restoration function,RSF)可以附属于与备份SF实例相关联的SFN 140或SFF 130,更新SRE 620的“剩余段”字段621,并基于如上所述的段列表625确定接收封装报文600的下一个SF的SID。

在步骤1270中,基于SID是如上所述的结构化IPv6地址640还是紧凑SID 650,确定与下一个SF实例的SID相关联的网络地址。

由于备份SF实例与不同于标识的报文流的主SFP实例(I)的SFP实例(b)相关联,因此在步骤1270中确定的下一个SF实例的网络地址可以指SFP实例b中的SF。因此,在步骤1280中,修改下一个SF实例的网络地址,以将主SFP实例(I)的标识插入网络地址640的SFP实例标识符字段646中。

在步骤1290中,在步骤1270中确定的下一个SF实例的网络地址被插入到封装报文600的目的地址字段616中,并且封装报文600被转发到主SFP实例中的下一个SF(SF-C 1.1235)中,从而将封装报文600恢复到与标识的报文流相关联的主SFP实例,以便后续处理。在图4的示例中,IPv6报头610中的源地址字段614和目的地址字段616的值以及封装报文的SRE 620中的信息元素如表6所示。

表6

参考图13,本发明的实施例提供了一种网络设备1300,例如用于作为分类器、入口节点115、负载均衡器、业务功能节点、业务功能转发器或业务功能运行的网络设备。网络设备1300包括处理器1305、网络接口1310和能够存储至少供处理器1305执行的程序指令的存储器1315。网络设备1300可以可选地使用网络功能虚拟化或类似技术提供。网络设备1300可以被提供为使用不同的物理资源的单个集成物理设备或单个集成虚拟设备,不同的物理资源例如数据网络中的资源、数据中心中的资源、由网络服务提供商提供的资源或其组合。网络设备1300用于通过网络接口发送和接收用户报文。网络设备1300用于使用处理器和/或存储器对用户报文进行操作,例如将用户报文封装在封装报文中,对封装报文头中的数据进行操作,修改或替换封装报文头中的数据,和/或对封装报文的有效载荷进行操作。

网络设备的上述操作可以由一个或多个功能模块执行,所述功能模块至少包括以特定方式协同操作的处理器、网络接口和存储器。

本文公开的各种方法可以在一个或多个真实或虚拟计算设备上实现,例如通信网络控制面内的设备、在通信网络数据面中操作的设备或其组合。用于实现如本文所述的操作的计算设备可以包括可操作地耦合到存储器的处理器,该存储器提供由处理器执行以执行如本文所述的方法的指令。

本发明的各种实施例利用真实和/或虚拟计算机资源。这种计算机资源在硬件级别上利用一组一个或多个处理器,这些处理器可操作地耦合到对应的一组存储器组件,存储器组件包括由处理器执行的存储的程序指令。计算资源可用于在一个或多个虚拟化级别上提供虚拟计算资源。例如,一个或多个给定的通用计算机硬件平台可用于提供一个或多个虚拟计算机。计算机硬件(例如处理器资源和存储器)也可以虚拟化,以便提供资源,从中构建其它的虚拟计算机。一组可分配用于提供各种计算资源的计算资源,这些计算资源又用于实现系统的各种计算组件,可以被视为提供分布式计算系统,其内部架构可以以各种方式配置。

通过上述实施例的描述,本发明可以仅通过硬件实现,也可以通过软件和必要的通用硬件平台实现。基于这种理解,本发明的技术方案可以通过软件产品的形式体现。软件产品可以存储在非易失性或非瞬时性存储介质中,非易失性或非瞬时性存储介质可以是光盘只读存储器(compact disk read-only memory,CD-ROM)、USB闪存盘或可移动硬盘。软件产品包括许多指令,这些指令使得计算机设备(个人计算机、服务器或网络设备)能够执行本发明的实施例中提供的方法。例如,这种执行可以对应于本文中描述的逻辑操作的模拟。根据示例性实施例,软件产品可以附加地或替代地包括多个指令,这些指令使得计算机设备能够执行配置或编程数字逻辑装置的操作。

尽管已经详细地描述了本发明的具体实施例,但应该理解,所描述的实施例旨在是说明性的,而不是限制性的。附图中所示和说明书中描述的实施例的各种改变和修改可以在以下权利要求的范围内进行,而不偏离本发明的更广泛方面的范围。

相关技术
  • 光源部、测定装置、近红外显微装置、光学检测方法、功能性生物关联物质及状态管理方法
  • 业务系统的状态检测方法、系统、装置及计算机可读介质
  • 一种多路径状态监测方法及装置
  • 一种基于数据流路径的业务健康状态评价方法及装置
  • 带保护业务路径管理方法、装置
技术分类

06120116132547