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

备份服务功能通知和同步的制作方法

2022-05-08 09:45:22 来源:中国专利 TAG:

备份服务功能通知和同步
1.本技术要求于2021年10月27日提交的美国专利申请第17/452,536号的权益,该申请要求于2020年11月6日提交的美国临时专利申请第63/110,830号的权益,其中每一个的全部内容通过引用并入本文。
技术领域
2.本公开涉及计算机网络,并且更具体地涉及将网络服务应用于穿越计算机网络的数据业务。


背景技术:

3.计算机网络由一组节点(例如,计算设备)和将一个节点连接到另一个节点的一组链路组成。例如,计算机网络可以由一组路由器组成,而这组链路可以是路由器之间的路径。当网络中的第一节点向网络中的第二节点发送数据业务时,消息可以经过许多链路和许多节点。消息从第一节点传播到第二节点时所经过的一组链路和节点被称为通过网络的路径。
4.网络运营商可以部署一个或多个计算设备以对穿越计算机网络的数据业务应用网络服务,诸如防火墙、运营商级网络地址转换(cg-nat)、针对视频的性能增强代理、传输控制协议(tcp)优化和报头丰富、高速缓存和负载平衡。这些网络服务中的每一个都可以被称为服务功能并且由一个或多个服务功能实例来实现。此外,网络运营商可以配置服务功能链,其每个都标识要被应用于映射到相应服务功能链的分组流的一组服务功能。换言之,服务功能链定义了以特定顺序被应用的一个或多个服务功能,以提供复合服务以应用到绑定到服务功能链以进行处理的分组流。以这种方式,服务功能链是满足指定准则的分组流将通过的一系列服务功能。在可在www.rfc-editor.org/info/rfc7665获得的halpern,j.,ed.和c.pignataro,ed.的“service function chaining(sfc)architecture”中(rfc 7665,2015年10月)描述了一个示例服务功能链架构,其全部内容通过引用并入本文。


技术实现要素:

5.一般而言,描述了用于备份服务功能通知和同步的技术。例如,在提供服务功能的计算机网络中,服务功能分类器(例如,到服务功能覆盖网络的入口)(在本文中也被简称为“分类器”)可以将网络服务报头封装到被分类到服务功能链的分组,以实现沿着服务功能链的服务路径。网络服务报头通常包括唯一标识服务路径的服务路径标识符和提供服务路径内的位置的服务索引。如本文所描述的,服务功能分类器还可以在网络服务报头中包括备份服务功能信息,以使得服务功能链中的活动服务功能下一跳(在本文中被称为“服务功能下一跳”)可以使用备份服务功能信息,以标识要与其执行有状态同步的备份服务功能。
6.在一个示例中,分类器可以存储包括诸如托管备份服务功能的计算设备的一个或多个网络地址之类的备份服务功能信息的表格。当分类器接收到被分类到服务功能链的分组时,分类器可以根据对表格的查找来确定服务功能链中针对活动服务功能的一个或多个
备份服务功能的位置。除了指定网络服务报头的服务路径标识符和服务索引之外,分类器还可以在网络服务报头中指定一个或多个备份服务功能的位置(例如,托管一个或多个备份服务功能的计算设备的一个或多个网络地址)并将分组转发到服务功能下一跳。
7.响应于接收到分组,服务功能下一跳可以使用网络服务报头中的备份服务功能信息来标识一个或多个与其同步其会话(例如,流状态)的备份服务功能。以这种方式,通过发送具有包括备份服务功能信息的网络服务报头的分组,分类器可以利用数据平面中的分组来促进活动服务功能与一个或多个备份服务功能之间的状态同步而无需由协调器或网络控制器静态配置活动服务功能。这可以在活动服务功能故障或以其他方式不可用的情况下提供切换,而没有显著损失功能性或数据——否则这在需要协调器或网络控制器静态配置备份服务功能的情况下会发生。这也使得分类器能够在诸如由备份服务功能的更改或更新所导致的拓扑更改的情形中用备份服务功能下一跳动态地更新活动服务功能。例如,如果备份服务功能发生变化(例如备份服务功能故障),则分类器可以通过发送带有更新后的备份服务功能信息的后续分组来动态地更新备份服务功能下一跳,从而使得服务功能下一跳能够与托管在更新后的备份服务功能信息中标识的一个或多个备份服务功能的计算设备执行有状态同步。
8.在一个示例中,所描述的技术包括一种方法,该方法包括:由托管服务功能链的活动服务功能的计算设备接收被分类到服务功能链的分组,其中该分组被封装有网络服务报头,该网络服务报头包括用于服务功能链的活动服务功能的备份服务功能信息;以及至少基于被包括在网络服务报头中的备份服务功能信息,由计算设备将活动服务功能的状态数据发送到托管一个或多个备份服务功能的一个或多个计算设备。
9.在另一个示例中,所描述的技术包括一种方法,该方法包括:由服务功能分类器将分组分类到服务功能链;由服务功能分类器确定针对服务功能链的一个活动服务功能的一个或多个备份服务功能;由分类器封装具有网络服务报头的分组,其中该网络服务报头包括备份服务功能信息,该备份服务功能信息标识托管一个或多个备份服务功能的一个或多个计算设备;由分类器将封装有网络服务报头的分组发送到托管服务功能链中的活动服务功能的计算设备,以使得托管活动服务功能的计算设备至少基于备份服务功能信息来发送用于活动服务功能的状态数据与一个或多个备份服务功能。
10.在另一个示例中,所描述的技术包括网络系统,该网络系统包括:多个服务功能;包括服务功能分类器的计算设备,该服务功能分类器被配置为:对被分类到包括多个服务功能的服务功能链的分组进行分类;确定针对服务功能链的活动服务功能的一个或多个备份服务功能;封装具有网络服务报头的分组,其中该网络服务报头包括备份服务功能信息,该备份服务功能信息标识托管一个或多个备份服务功能的一个或多个计算设备;并且将封装有网络服务报头的分组发送到托管服务功能链中的活动服务功能的计算设备,以使得托管活动服务功能的计算设备至少基于备份服务功能信息来同步用于活动服务功能的状态信息与一个或多个备份服务功能。
11.在附图和下面的描述中阐述了本公开的一个或多个示例的细节。从描述和附图中以及从权利要求中,其他特征、目的和优点将是明显的。
附图说明
12.图1图示了根据本文描述的技术提供备份服务功能通知和同步的示例网络系统。
13.图2是图示了根据本公开中描述的技术的提供一个或多个服务功能实例的示例计算设备的框图。
14.图3a-图3b是图示了根据本公开中描述的技术的沿着服务功能链指引内部分组的示例隧道分组和包括备份服务功能信息的网络服务报头的框图。
15.图4是图示了根据本公开的一种或多种技术操作的计算设备的一个示例的进一步细节的框图。
16.图5是图示了根据本发明中描述的技术的示例服务功能链接架构参考模型的框图。
17.图6是图示了根据本发明中描述的技术的示例服务功能覆盖网络的框图。
18.图7是图示了根据本公开中描述的技术的示例操作模式的流程图。
19.在整个描述和附图中,相同的参考字符标示相同的元件。
具体实施方式
20.图1图示了根据本文描述的技术提供备份服务功能通知和同步的示例网络系统。图1的示例网络系统包括服务提供方网络2,用于向订户设备16(统称为“订户设备16”)提供基于分组的网络服务。也就是说,服务提供方网络2为订户设备16提供网络接入的认证和建立,以使得订户设备可以开始与公共网络12(在本文中也被称为“分组数据网络”)交换数据分组,公共网络12可以是内部或外部基于分组的网络,诸如互联网。
21.在图1的示例中,服务提供方网络2包括接入网络6(“接入网络6”),其经由服务提供方核心网络7(在本文中被称为“核心网络7”)和网关8来提供到公共网络12的连接性。服务提供方核心网络7和公共网络12提供可供订户设备16请求和使用的基于分组的服务。作为示例,核心网络7和/或公共网络12可以提供例如批量数据递送、互联网协议语音(voip)、互联网协议电视(iptv)、短消息服务(sms)、无线应用协议(wap)服务或特定于客户的应用服务。公共网络12可以包括例如局域网(lan)、广域网(wan)、互联网、虚拟lan(vlan)、企业lan、第3层虚拟专用网络(vpn)、由运营接入网络6的服务提供方所运营的互联网协议(ip)内联网、企业ip网络或其某种组合。在各种示例中,公共网络12连接到公共wan、互联网或连接到其他网络。公共网络12执行一个或多个分组数据协议(pdp),诸如ip(ipv4和/或ipv6)、x.25或点对点协议(ppp),以实现公共网络12服务的基于分组的传送。
22.订户设备16经由接入网络6连接到网关8,以接收去往由订户设备16所托管的应用的订户服务的连接性。订户可以表示例如企业、住宅订户或移动订户。订户设备16例如可以是个人计算机、膝上型计算机或与订户相关联的其他类型的计算设备。此外,订户设备16可以包括经由无线电接入网络(ran)4接入服务提供方网络2的数据服务的移动设备。示例移动订户设备包括移动电话、具有例如无线卡的膝上型或台式计算机、具有无线能力的上网本、视频游戏设备、寻呼机、智能电话、个人数据助理(pda)等。每个订户设备16可以运行各种软件应用,诸如文字处理和其他办公支持软件、网络浏览软件、支持语音呼叫的软件、视频游戏、视频会议和电子邮件等等。订户设备16经由包括有线和/或无线通信链路的接入链路5而连接到接入网络6。本文中使用的术语“通信链路”包括任何形式的有线或无线的传送
介质,并且可以包括中间节点,诸如网络设备。每个接入链路5可以包括例如非对称dsl网络、wimax、t-1线路、综合业务数字网络(isdn)、有线以太网或蜂窝无线电链路的各方面。
23.网络服务提供方操作或在一些情况下租用接入网络6的元件,以在订户设备16和网关8之间提供分组传送。接入网络6表示这样一个网络,它聚合来自一个或多个订户的数据业务以用于传送去往/来自服务提供方的服务提供方核心网络7。接入网络6包括网络节点,用于执行通信协议以传送控制和用户数据以促进订户设备16和网关8之间的通信。接入网络6可以包括宽带接入网络、网络、无线lan、公共交换电话网络(pstn)或其他类型的接入网络,并且可以包括或以其他方式提供用于蜂窝接入网络的连接性,诸如图1的无线电接入网络(ran)。示例包括符合如下的网络:通用移动电信系统(umts)架构、第五代移动技术(5g)、被称为长期演进(lte)的umts演进、由互联网工程任务组(ietf)标准化的移动ip以及由第三代合作伙伴计划(3gpp)、第三代合作伙伴计划2(3ggp/2)和全球微波接入互操作性(wimax)论坛提出的其他标准。
24.服务提供方核心网络7向附接到接入网络6的订户设备16提供基于分组的连接性以用于接入公共网络12。核心网络7可以表示由服务提供方拥有和运营以互连多个网络的网络,其可以包括接入网络6。核心网络7可以实现多协议标签交换(mpls)转发并且在这种实例中可以被称为mpls网络或mpls骨干网。在一些实例中,核心网络7表示多个互连的自治系统,诸如互联网,其提供来自一个或多个服务提供方的服务。公共网络12可以表示例如通过诸如客户边缘交换机或路由器(图1中未示出)之类的客户边缘设备而被耦合到核心网络7的边缘网络。公共网络12可以包括数据中心。
25.在包括有线/宽带接入网络的服务提供方网络2的示例中,例如,网关8可以表示宽带网络网关(bng)、宽带远程接入服务器(bras)、mpls提供方边缘(pe)路由器、核心路由器或网关、或者电缆调制解调器终端系统(cmts)。在包括蜂窝接入网络作为接入网络6的服务提供方网络2的示例中,网关8可以表示移动网关,例如网关通用分组无线电服务(gprs)服务节点(ggsn)、接入网关(agw),或分组数据网络(pdn)网关(pgw)。在其他示例中,关于网关8描述的功能性可以在交换机、服务卡或其他网络元件或组件中被实现。
26.管理服务提供方网络2的至少一部分的网络服务提供方通常向与接入服务提供方网络的设备(例如,订户设备16)相关联的订户提供服务。例如,所提供的服务可以包括传统的互联网接入、互联网协议语音(voip)、视频和多媒体服务以及安全服务。如上文关于接入网络6所述,核心网络7可以支持多种类型的接入网络基础设施,其连接到服务提供方网络接入网关以提供对所提供的服务的接入。在一些实例中,网络系统可以包括附接到具有不同架构的多个不同接入网络6的订户设备16。
27.一般而言,订户设备16中的任何一个或多个可以通过向网关8发送会话请求来请求授权和数据服务。进而,网关8通常访问认证、授权和计费(aaa)服务器11以对请求网络接入的订户设备进行认证。一旦被认证,任何订户设备16都可以向服务提供方核心网络7发送订户数据业务以接入和接收公共网络12提供的服务,并且这样的分组作为至少一个分组流的一部分而穿越网关8。图1中所图示的流26a表示来自任何一个或多个订户设备16并被引导到公共网络12的一个或多个上游分组流。流26b表示来自公共网络12并被引导到任何一个或多个订户设备16的一个或多个下游分组流。
28.术语“分组流”、“业务流”或简称“流”是指源自特定源设备并被发送到特定目的地
设备的一组分组。例如,在上游(由订户设备16之一源发)或下游(以订户设备16之一为目的地)方向中的单个分组流可以通过分组的报头中使用的值来标识,诸如网络“5元组,即,源网络地址(ip地址)、目的地网络地址、源端口、目的地端口和协议。这个五元组通常标识接收分组与之相对应的分组流。n元组指的是从5元组中抽取的任何n项。例如,分组的二元组可以指的是分组的《源网络地址、目的地网络地址》或《源网络地址、源端口》的组合。此外,订户设备可以在向服务提供方网络2认证并建立用于接收数据服务的通信会话时源发多个分组流。本公开中描述的技术可以应用于任意两个计算设备之间的分组流并且不局限于应用于图1中所描绘的流26。
29.如本文所述,服务提供方网络2包括服务综合体9,其具有为网络服务提供执行环境的服务功能实例10a-10n。也就是说,服务功能实例10中的每一个应用一个或多个服务功能。服务功能被应用于接收到的分组流的分组,并且可以在协议堆栈的各个层(例如,网络层、应用层)起作用。
30.作为示例,由服务功能实例10所应用的服务功能可以包括防火墙和安全服务、运营商级网络地址转换(cg-nat)、媒体优化(语音/视频)、wan优化、nat44、nat64、http报头丰富、tcp优化器、ipsec/vpn服务、深度分组检测(dpi)、http过滤、计数、计账、计费和分组流的负载平衡或应用于网络业务的其他类型的服务。服务功能可以可替代地被称为虚拟化网络功能(vnf),但是服务功能不必是虚拟的。以这种方式,每个服务功能实例10都表示服务功能的实例。每个服务功能实例10表示一个组件,该组件可以被实现为计算设备(例如,真实服务器)的虚拟元件和/或被嵌入到物理网络元件(例如,防火墙或nat设备)中。多个服务功能实例10可以在单个计算设备或物理网络元件计算设备中被执行。托管一个或多个服务功能实例10的计算设备可以指的是真实服务器或物理网络元件。
31.虽然被图示为服务综合体9的一部分,其可以表示数据中心,但是服务功能实例10例如可以位于核心网络内并且通过核心网络7的一个或多个交换机或虚拟交换机互连。在一些实例中,服务功能实例10可以位于多个不同的数据中心中。一个或多个服务功能实例10可以位于附接到服务提供方核心7的企业/客户站点内。在一些示例中,每个服务功能实例10可以由虚拟计算环境中的虚拟机执行。此外,计算环境可以包括通用计算设备的可扩展集群,诸如基于x86处理器的服务器。作为另一个示例,服务功能实例10可以由通用计算设备和专用设备的组合来执行。由于被虚拟化,由服务功能实例10提供的个体网络服务可以像现代数据中心一样通过虚拟化存储器的分配、处理器利用率、存储和网络策略以及通过添加附加的负载平衡虚拟机来横向扩展。服务综合体9可以表示或以其他方式使用公共云、私有云、混合云或它们的组合来实现。用于将网络业务递送到服务综合体9的其他网络架构可以被设想,并且这些技术不限于如图1中所图示的网络服务提供方架构。
32.在图1的示例中,网关8通过由服务功能实例10提供的一组已定义的服务功能来指引个体分组流26。也就是说,每个分组流可以通过服务功能的特定有序组合而被转发,每个有序组合提供整体“网络服务
””
或“复合服务”,并且在本文中被称为“服务功能链”或更简单地称为“服务链”。服务功能链可以包括提供服务功能的特定服务功能实例10,或者可以指示服务功能可以由提供该服务功能的任何服务功能实例10应用。以这种方式,根据由服务提供方配置的服务功能链,当分组在接入网络6和公共网络12之间流动时分组流26可以被服务功能实例10处理。特定的服务功能实例10可以支持多个服务功能链。图1中描绘了示
例服务链28,并且依次包括服务功能实例10a、服务功能实例10b和服务功能实例10n。
[0033]“服务功能链”定义了以特定顺序应用的一个或多个服务,以提供复合服务以应用到绑定到服务功能链的分组流,“服务隧道”或“服务路径”是指由服务功能链处理的分组流所采取的逻辑和/或物理路径以及用于根据服务功能链排序转发分组流的转发状态。每个服务功能链可以与相应的服务路径相关联。
[0034]
网关8或托管服务功能实例10的一个或多个计算设备可以将分组流26分类到服务功能链。分类粒度可能基于设备能力、客户要求、服务提供方网络策略和所提供的服务而异。初始分类确定用于处理分组流的服务功能链。后续分类可能会发生在服务功能链内,以改变所应用的服务功能的顺序。
[0035]
服务功能实例10可以使用内部配置的转发状态来实现每个服务功能链,该转发状态沿着服务功能链引导分组流的分组,以用于根据所标识的一组服务功能实例10进行处理。这样的转发状态可以指定用于使用诸如互联网协议(ip)或通用路由封装(gre)隧道之类的网络隧道或通过使用虚拟局域网(vlan)、多协议标签交换(mpls)技术等在服务功能实例10之间隧道传输的隧道接口。用于服务功能链的隧道封装可以被称为服务功能链封装,它使得能够在服务提供方网络2的数据平面中创建服务功能链。在一些实例中,真实或虚拟交换机、路由器或互连服务功能实例10的其他网络元件可以被配置为根据服务功能链将分组流引导到服务功能实例10。
[0036]
服务功能链封装使得能够在通过物理底层网络提供服务功能覆盖网络的服务功能实例10之间进行转发,物理底层网络由通过用于在计算设备之间交换分组数据的路由和切换设备来互连的计算设备(诸如真实服务器)的现有第3层网络拓扑组成。服务功能覆盖网络可以使得网络服务提供方能够创建服务功能实例10之间的路径,并以网络拓扑无关的方式(例如,不需要改变底层网络拓扑)定位服务提供方网络2中的服务功能。
[0037]
实现服务功能实例10的计算设备可以分发描述服务功能实例10的服务功能数据。作为一个示例,计算设备可以利用第3层路由协议,诸如边界网关协议(bgp)消息(例如,bgp update消息)来分发服务功能数据。更具体地,托管至少一个服务功能实例10的计算设备可以输出服务功能实例路由20。一般而言,服务功能实例路由(sfir)描述特定服务功能的特定服务功能实例以及通过底层网络将分组转发给服务功能实例的方式。例如,服务功能实例路由20可以包括计算设备的网络地址和服务功能实例数据,该数据为计算设备所托管的一个或多个服务功能实例10指定服务功能的服务功能类型和服务标识符(例如,由iana(互联网号码分配机构)定义),其中服务功能类型和服务标识符的组合标识服务提供方网络2中的服务功能实例10。服务功能实例路由20可以在一些实例中为服务功能实例数据指定一个地址族,该地址族不同于底层计算机网络的地址族,并且以这种方式,服务功能实例路由20为覆盖由计算设备组成的计算机网络的服务功能实例10的覆盖网络分发服务功能数据。
[0038]
在一些情况下,服务功能实例路由20可以由托管所描述的服务功能实例10的计算设备源发。然而,服务功能实例路由20可以由控制器19或其他另一设备源发。服务功能实例路由20包括用于托管所描述的服务功能实例10的计算设备的网络地址,诸如ipv4或ipv6地址。在一些示例中,服务功能实例路由20还可以包括封装数据,该封装数据描述了要被计算设备接收的分组的隧道封装以便到达服务功能实例10。
[0039]
在图1中,控制器19可以管理服务综合体9的操作环境内的服务功能实例的部署。
例如,控制器19可以协调服务功能并将服务功能部署为服务功能实例,例如服务功能实例10中的任一个。在一些示例中,控制器19可以协调虚拟机、容器或其他操作环境,以托管被协调的服务功能。控制器19可以响应于来自应用或网络服务提供方运营商的请求来协调服务功能。
[0040]
在一些示例中,控制器19可以分发描述用于服务功能链的覆盖拓扑的服务功能链数据,每个服务功能链由服务功能链数据描述的一个或多个服务功能实例10组成。作为一个示例,控制器19可以利用第3层路由协议来向服务提供方网络2输出服务功能链路由21,该服务功能链路由21包括一个或多个服务功能实例10的有序集合以定义用于处理至少一个分组流26的服务链。控制器19可以通过将服务功能链路由21发送到服务功能实例10、路由反射器或服务提供方网络2的另一路由设备中的任一个来将服务功能链路由21注入到服务提供方网络2中,以用于由网络中的路由设备进行通告。控制器19可以是第3层路由协议发言者,并且直接通告服务功能链路由21。控制器19可以输出多个服务功能链路由,服务功能链路由21只是一个示例。一般来说,控制器19为每个服务功能链源发一个服务功能链路由,并且每个服务功能链路由可以包括用于所描述的服务功能链的服务路径标识符、链包括的服务功能类型和/或服务功能实例的序列,并且对于每个这样的服务功能类型和/或服务功能实例,包括在所描述的服务功能链中表示它的服务索引。
[0041]
控制器19可以经由第3层协议接收服务功能实例路由20。控制器19可以使用包括在服务功能实例路由20中的服务功能实例数据来生成服务功能链和用于服务功能链的服务功能链路由21。例如,控制器19可以从运营商接收请求以创建服务功能链,该服务功能链具有一系列服务功能(每个具有不同的服务功能类型)以应用于分组流。控制器19可以标识与服务功能的服务功能类型相匹配的服务功能实例,如服务功能实例路由20中所指示的。在2016年12月2日提交的题为“distributed service function chain data and service function instance data in a network”的美国专利申请第15/368,282号中描述了服务功能实例路由和服务功能链路由的附加示例,其全部内容通过引用并入本文。使用第3层路由协议来分发服务功能链数据仅仅是一个示例,并且控制器19可以使用任何协议来分发服务功能数据和/或服务功能链数据,诸如网络配置协议(netconf)。
[0042]
在图1的示例中,服务功能实例10a可以操作为用于服务功能覆盖网络的入口服务功能实例,以将分类服务功能应用于分组流。在这种情况下,服务功能实例10a可以被称为“分类器”,其是位于服务功能覆盖网络的入口点处的特殊服务功能。在这种实例中,操作为分类器的服务功能实例10a将给定分组流的分组指派给特定服务功能链。为了使用服务功能链对分组流进行分类以进行处理,服务功能实例10a可以将策略应用于分组流分组的分组报头字段(例如,5元组值,诸如源/目的地地址、源/目的地端口、协议)以确定用于分组的服务链。例如,策略可以特定于订户设备16的订户、特定于网络或特定于使用分组流传送的应用服务。策略可以指定服务路径标识符,该服务路径标识符标识用于处理与策略相匹配的分组的服务功能链。在一些情况下,操作为分类器的服务功能实例10a为分组流选择服务功能链,为服务功能链设置服务路径标识符,为所选择的服务功能链中的第一跳设置服务索引,并将指示服务路径标识符和服务索引的网络服务报头(nsh)添加到分组流的分组。p.quinn,ed.等人的“network service header(nsh),”(请求评论(rfc)8300,2018年1月)中描述了网络服务报头的其他示例,其全部内容通过引用并入本文。
[0043]
在图1的示例中,服务功能实例10a可以将分组流26中的一个或多个分类到服务功能链28。虽然服务功能实例10a是服务功能链28中的第一服务功能实例,但是服务功能实例10a可以将一些分组流26分类到不具有服务功能实例10a作为第一服务功能实例的服务功能链。此外,除了服务功能实例10中的一个之外,计算设备还可以将分组流分类到服务功能链并且将分组流引导到服务功能链中的第一服务功能实例10。
[0044]
为了应用由服务功能链所指示的服务功能,服务功能实例10通过服务功能实例10的有序组合来转发分组,以应用对应的服务功能。将服务功能应用到分组的服务功能实例10确定服务功能链中的下一个服务功能实例10并将该分组转发到下一个服务功能实例10(在本文中被称为“服务功能下一跳”)。在一些示例中,可以基于服务链的下一跳信息来确定服务功能下一跳,诸如服务路径标识符和服务功能类型,其组合地将服务功能实例标识为服务链中的下一服务功能实例。例如,服务功能实例10a可以向分组添加网络服务报头(nsh),nsh包括服务路径标识符和服务索引中的至少一个。
[0045]
可以将具有nsh的分组进一步封装在隧道封装报头中,该隧道封装报头包括针对托管服务功能下一跳(例如,服务功能实例10b)的计算设备的底层网络中的ip地址。作为一个示例,隧道封装报头可以基于被包括在服务功能实例10b的服务功能实例路由20中的封装数据。如果一个以上的服务功能实例10可以被用作服务功能链中的服务功能的下一个服务功能实例,那么底层网络中的任播地址或底层网络拓扑的直接知识可以被用来选择下一个服务功能实例10以应用所指示的服务功能。
[0046]
服务功能实例10b接收分组并将其对应的服务功能应用于该分组以进一步实现服务功能链28。托管服务功能实例10b的计算设备使用该分组中包括的nsh来确定服务链中的下一个服务功能实例10,并且在一些情况下是下一个服务索引。例如,服务路径标识符和服务索引的组合提供了服务功能及其在服务功能链中的顺序的标识。在该示例中,托管服务功能实例10b的计算设备确定下一个服务功能实例是服务功能实例10n并且将分组转发到托管服务功能实例10n的计算设备。
[0047]
服务功能实例10n接收分组并将其对应的服务功能应用于该分组以进一步实现服务功能链28。托管服务功能实例10n的计算设备使用该分组中包括的nsh来确定服务链中的下一个服务功能实例10。在这种情况下,服务功能实例10n是服务链28中的终端服务功能实例。托管服务功能实例10n的计算设备因此可以将分组输出到底层网络中的分组的ip下一跳。
[0048]
为了提供服务功能的高可用性,服务功能可以作为同一服务功能链的一部分或跨多个服务功能链而被部署在集群中。集群中的服务功能可以被配置为用于给定服务功能链的活动服务功能和/或备份服务功能。例如,服务功能链28可以包括由服务功能实例10a提供的第一服务功能(例如,防火墙)、由服务功能实例10b提供的第二服务功能(例如,网络地址转换)和由服务功能实例10n提供的第三服务功能(例如,wan优化)。在图1的示例中,服务功能实例10c还可以提供网络地址转换并且可以在服务功能实例10b故障或以其他方式不可用的情况下操作为备份服务功能。通常,控制器静态配置活动服务功能和备份服务功能。例如,网络运营商可以为给定的服务功能链预先配置活动服务功能和针对活动服务功能的一个或多个备份服务功能。但是,集群中的服务功能实例可能更改,并且控制器可能无法在这种拓扑更改中动态地更新备份服务功能。
[0049]
根据本公开中描述的技术,服务提供方网络2提供备份服务功能通知和同步。在图1的示例中,当操作为分类器的服务功能实例10a接收分组并将该分组分类到服务功能链28时,服务功能实例10a确定在服务功能链28中是否存在针对活动服务功能的任何备份服务功能。例如,服务功能实例10a可以存储包括备份服务功能信息的表格,例如表格30。在图1的示例中,表格30包括托管针对给定服务路径的活动服务功能的备份服务功能的计算设备的网络地址。在该示例中,服务链28可以由服务路径标识符(spi)“10”来标识。为其提供备份服务功能信息的网络服务的位置由服务索引(si)“3”指示。备份服务功能信息针对给定服务功能链的活动服务功能指定了活动服务功能下一跳的网络地址和备份服务功能下一跳的一个或多个网络地址。在该示例中,由服务索引3所指示的位置处的针对服务链28的备份服务功能信息包括位于203.0.113.1处的活动服务功能下一跳及其位于203.0.113.3处的备份服务功能下一跳。在该示例中,由服务索引3所指示的位置处的针对服务链28的备份服务功能信息包括位于203.0.113.2处的另一个活动服务功能下一跳及其位于203.0.113.3处的备份服务功能下一跳。业务可以在活动服务功能之间进行负载平衡。
[0050]
在一些示例中,备份服务功能信息指定用于活动服务功能的多个备份服务功能下一跳的网络地址。在该示例中,由服务索引3所指示的位置处的服务链28的备份服务功能信息包括位于203.0.113.3处的另一个活动服务功能下一跳和位于203.0.113.1处的第一备份服务功能下一跳和位于203.0.113.2处的第二备份服务功能下一跳。表格30只是存储备份服务功能信息的数据结构的一个示例并且可以包括附加信息,诸如度量信息。在一些示例中,控制器19可以推送存储在表格30中的活动和备份服务功能。在其他示例中,表格30可以基于诸如与服务功能实例路由20一起分发的数据之类的服务功能实例数据和/或包括在服务功能链路由21中的服务功能链信息来生成。
[0051]
当分类器(例如,服务功能实例10a)接收到分组并将该分组分类到服务功能链28(在该示例中服务路径标识符为10)时,服务功能实例10a对表格30执行查找以确定是否存在针对服务功能链28中的活动服务功能实例的任何备份服务功能。服务功能实例10a可以包括备份服务功能信息(例如,托管备份服务功能实例的计算设备的网络地址)。例如,服务功能实例10a封装具有网络服务报头的分组——该网络服务报头包括服务路径标识符“10”、服务索引“3”和托管备份服务功能实例10c的计算设备的地址(例如,203.0.113.3),并将封装有网络服务报头的分组发送到服务功能下一跳,例如作为活动服务功能的服务功能实例10b。在一些示例中,分类器可以在初始化期间或者当备份服务功能信息被更新或改变时将备份服务功能信息包括在网络服务报头中。
[0052]
响应于接收到分组,服务功能下一跳可以使用网络服务报头中的备份服务功能信息来标识与其会话(例如,流状态)同步的备份服务功能。例如,响应于接收到包括备份服务功能信息的网络服务报头,服务功能实例10b可以将nat会话与由备份服务功能信息所标识的服务功能实例10c同步。作为一个示例,托管活动服务功能的计算设备可以与托管备份服务功能的计算设备建立通信会话(例如,tcp或udp会话),以使得活动服务功能可以将状态信息与备份服务功能同步。以这种方式,通过发送带有包括备份服务功能信息的网络服务报头的分组,分类器可以利用数据平面中的分组在不需要由控制器静态配置备份服务功能信息的情况下提供活动服务功能和备份服务功能之间的状态同步,例如,在托管分类器或服务功能链中的在先服务功能的计算设备中。通过同步用于分组流的服务功能状态数据,
活动服务功能和备份服务功能可以实现向备份服务功能的低时延切换,因为备份服务功能与活动服务功能具有相似的状态并且可以假设流的状态处理先前由活动服务功能处理。
[0053]
在一些示例中,对于给定的服务功能链,备份服务功能可能更改。例如,针对服务功能链28的活动服务功能10b的备份服务功能可以从服务功能实例10c更改为服务功能10d(图1中未示出)。在该示例中,操作为分类器的服务功能实例10a可以添加包括标识服务功能10d的更新后的备份服务功能信息在内的网络服务报头,以使得服务功能下一跳(例如,服务功能实例10b)可以使用包括在更新后的备份网络服务报头中的服务功能信息来执行状态同步。
[0054]
图2是图示了根据本公开中描述的技术提供一个或多个服务功能实例的示例计算设备的框图。计算设备200可以表示真实或虚拟服务器并且在该示例中包括耦合计算设备200硬件环境的硬件组件的系统总线242。系统总线242耦合存储器244、网络接口卡(nic)240、存储盘246和微处理器210。网络接口卡240包括一个或多个接口,其被配置为使用底层物理网络的链路来交换分组。微处理器210可以包括一个或多个处理器,每个处理器包括独立执行单元以执行符合指令集架构的指令。执行单元可以被实现为单独的集成电路(ic),或者可以被组合在一个或多个多核处理器(或“多核”处理器)内,每个多核处理器都使用单个ic(即芯片多处理器)来实现。
[0055]
磁盘246表示计算机可读存储介质,其包括以任何方法或技术实现的易失性和/或非易失性、可移动和/或不可移动介质,以用于存储诸如处理器可读指令、数据结构、程序模块之类的信息或其他数据。计算机可读存储介质包括但不限于随机存取存储器(ram)、只读存储器(rom)、eeprom、闪存、cd-rom、数字多功能光盘(dvd)或其他光存储装置、磁带、磁盒、磁盘存储或其他磁存储设备,或者可以被用来存储所需信息并可由微处理器210访问的任何其他介质。
[0056]
存储器244包括一个或多个计算机可读存储介质,其可以包括随机存取存储器(ram),诸如各种形式的动态ram(dram),例如ddr2/ddr3 sdram,或静态ram(sram),闪存,或任何可以被用来以指令或数据结构的形式携带或存储所需程序代码和程序数据并可被计算机访问的其他形式的固定或可移动存储介质。存储器244提供由可寻址存储器位置组成的物理地址空间。
[0057]
存储器244、nic 240、存储盘246和微处理器210为执行管理程序214和一个或多个虚拟机216a-216m(统称为“虚拟机216”)的软件堆栈提供操作环境。虽然相关于虚拟机进行图示和描述,但是服务功能实例203a-203m(统称为“服务功能实例203”)可以由诸如容器(例如,docker容器)之类的其他操作环境执行。操作系统内核(图2中未示出)可以在内核空间中执行并且可以包括例如linux、伯克利软件分发(bsd)、另一个unix变体内核或可从微软公司获得的windows服务器操作系统内核。
[0058]
计算设备200执行管理程序214以管理虚拟机216。示例管理程序包括用于linux内核的基于内核的虚拟机(kvm)、xen、可从vmware获得的esxi、可从microsoft获得的windows hyper-v以及其他开源和专有虚拟机管理程序。
[0059]
虚拟机216托管对应的服务功能实例203。服务功能实例203中的每一个都可以表示图1的服务功能实例10的示例实例。在一些示例中,虚拟机216可以托管一个或多个服务功能实例203。服务功能实例203在下文中关于服务功能实例203a进行描述。服务功能实例
203包括用于应用到分组流的服务功能220a。计算设备200的一些示例仅托管一个服务功能实例203。
[0060]
服务功能220a表示可以应用在上面关于服务功能实例10描述的前述任何一种服务功能的软件。服务功能实例203a可以由诸如控制器19之类的控制器协调,以由虚拟机216a执行,从而应用服务功能220a。服务功能实例配置数据226包括描述服务功能实例203a的数据。例如,服务功能实例配置数据226可以指定服务功能220a的服务功能类型和服务功能实例203a的服务标识符。服务功能实例配置数据226可以进一步描述虚拟机216a的虚拟机抽头或其他标识符,其使得虚拟路由器221能够将接收分组引导到虚拟机216a以用于使用服务功能实例203a进行处理。
[0061]
示例计算设备200中的管理程序214为路由协议模块228提供操作环境,其可以表示在网络堆栈的不同层执行各种协议的过程。在图2的示例中,网络协议包括边界网关协议(bgp)219,它是第3层路由协议。bgp 219可以包括多协议bgp(mp-bgp)。路由协议模块228可以执行图2中未示出的其他协议,诸如mpls标签分发协议和/或其他mpls协议。路由协议模块228负责维护路由信息224以反映计算设备200经由nic 240连接到的网络的当前拓扑。特别地,bgp219基于由计算设备200接收的路由协议消息来更新路由信息224,以准确地反映网络和其他实体的拓扑。
[0062]
路由协议模块228使用bgp来发送和接收服务功能路由,该服务功能路由分发用于描述服务功能覆盖网络节点和拓扑的服务功能链数据和服务功能实例数据。路由协议模块228可以接收一个或多个服务功能实例(sfi)路由230和一个或多个服务功能链路由232,并将这些服务功能路由存储到路由信息224。服务功能实例路由230和服务功能链路由232可以分别表示图1的服务功能实例路由20和服务功能链路由21的实例。
[0063]
路由协议模块228可以生成并输出服务功能实例路由230以通告计算设备200的服务功能实例203。也就是说,路由协议模块228可以源发这样的服务功能实例路由230。例如,针对服务功能实例203a,路由协议模块228可以从服务功能实例配置数据226中获得服务功能220a的服务功能类型和用于服务功能实例203a的服务标识符。路由协议模块228可以根据服务功能类型和服务标识符来生成服务功能实例路由,并经由网络接口卡240输出服务功能实例路由。
[0064]
管理程序214的虚拟路由器221可以管理为计算设备200配置的一个或多个虚拟网络,诸如用于服务功能实例203的覆盖网络。在2014年3月26日提交的美国专利第9,571,394号中可以找到对虚拟路由器的附加描述,其全部内容通过引用并入本文。例如,由网络接口卡240从底层物理网络接收的分组可以包括外部报头以允许物理网络将有效负载或“内部分组”通过隧道传输到用于执行虚拟路由器221的计算设备200的nic 240的物理网络地址。外部报头不仅可以包括计算设备的nic 240的物理网络地址,还可以包括网络服务报头。虚拟路由器221的各方面可以在用户空间在而不是在管理程序214中执行。例如,包括服务功能转发器222的各方面的虚拟路由器221的各方面可以由虚拟机216执行。
[0065]
服务功能转发器222提供服务功能数据平面并根据服务功能链来确定分组的转发。在一些示例中,计算设备200可以包括用于每个服务功能实例203的服务功能转发器222的单独实例。在一些示例中,服务功能转发器222可以部分地由被设计为支持虚拟联网的专用硬件来执行。服务功能转发器222可以由用户空间中而不是管理程序214中的应用来执
行。
[0066]
服务功能转发器222可以被概念化为底层网络中的门户,通过该门户可以到达服务功能实例203。注意,虽然服务功能转发器222和路由协议模块228被图示并描述为单独的模块,但是路由协议模块228导入和导出并处理路由的操作例如可以被认为是服务功能转发器222的控制平面操作。另外,如本文中所使用的,术语“服务功能转发器”可以作为一个整体来指代计算设备200,因为这样的操作涉及服务功能路由导入/导出/选择、服务覆盖网络中的分组转发等,但是不包括服务功能实例的操作203。
[0067]
当服务功能转发器222接收到服务功能链路由时,服务功能转发器222可以基于路由目标来确定是否导入服务功能链路由。如果服务功能转发器222导入该路由,则通过确定用于计算设备200的路由区分符是否被指定用于服务功能链的任何服务索引/跳,服务功能转发器222可以确定它是否在所描述的服务功能链上。如果是,则服务功能转发器222可以为已经由服务功能实例203之一处理的传入分组创建转发状态并为传出分组创建转发状态。
[0068]
服务功能转发器222可以创建本地转发状态,使得服务路径标识符/服务索引和特定服务功能实例之间建立关联,如由用于服务功能实例路由和服务类型组合的路由区分符所标识的。服务功能转发器222还可以为从本地服务功能实例203接收回来的需要被转发到服务功能链中的下一跳的分组创建下一跳转发状态。可能会有下一跳的选择。服务功能转发器222可以为所有潜在的下一跳安装转发状态,或者可以做出选择并且仅将转发状态安装到潜在的下一跳的子集。安装的转发状态可以随着时间对特定服务功能实例203的可用性和底层网络中的变化做出反应而改变。注意,在一些情况下,服务功能转发器222可以仅创建和存储针对其被包括在其上的服务功能链的转发状态。也就是说,服务功能转发器222可能不会为所有被通告的服务功能链维护状态。
[0069]
这种转发状态的选择包括:从服务功能链路由中确定服务索引以放入出站分组的网络服务报头中。该选择可以以从本地服务功能实例203返回的信息为条件。服务功能转发器222还可以安装转发状态以支持循环、跳跃和分支。
[0070]
网络接口卡240接收分组流的分组。分组流可以被分类到包括服务功能实例203a的服务功能链。由网络接口卡240接收到的分组可以包括隧道封装报头,该隧道封装报头标识用于由服务功能转发器222处理的分组。服务功能转发器222可以移除隧道封装报头。要由服务功能转发器222处理并从先前服务功能实例(由计算设备200或另一个计算设备执行)接收的分组可以包括具有服务路径标识符和服务索引的网络服务报头。
[0071]
服务功能转发器222可以基于网络服务报头来确定服务功能实例203a将服务功能220a应用到分组。例如,服务功能转发器222可以确定具有匹配服务路径标识符的服务功能链路由232,并且对来自网络服务报头的服务索引加密钥以确定服务功能实例203a被指示用于服务索引。可以使用标识服务功能实例203a的服务功能类型和服务标识符的组合来为匹配的服务功能链路由232中的服务索引指示服务功能实例203a。在一些情况下,服务功能实例可以仅由服务功能类型来指示,服务功能类型对应于服务功能220中的至少一个。例如,如果服务标识符指示任何支持该服务功能类型的服务功能实例都可以应用该服务功能的话,则服务功能实例可以仅由服务功能类型指示。在计算设备200的示例实例中,其中每个服务功能实例203都有一个服务功能转发器222的实例(例如,只有一个服务功能转发器
222和一个服务功能实例203),服务功能转发器222可以引导其对应的服务功能实例203将服务功能应用于接收到的分组,而不必首先确定用于应用服务功能的特定服务功能实例203。
[0072]
服务功能转发器222可以部分地基于网络服务报头来引导服务功能实例203a处理分组。服务功能实例203a通过应用服务功能220a来处理分组。除了通过应用服务功能220a来处理分组或者作为其一部分,服务功能实例203a可以为分组确定新的网络服务报头。也就是说,服务功能实例203a可以选择用于处理该分组的沿着服务链(或另一服务链)的下一个服务功能实例。服务功能203a可以在(在一些情况下,不同服务功能类型的)多个服务功能实例之间进行选择。新的网络服务报头中的服务索引和服务路径标识符可以指示服务链中的下一个服务功能、链中的前一个服务功能(称为“循环”)或链下游的服务功能(称为“跳跃(jumping)”)。新的网络服务报头中的服务索引和服务路径标识符可以可替代地指示不同服务功能链上的服务功能(称为“分支”)。
[0073]
服务功能转发器222随后选择提供由下一个网络服务报头中的服务路径标识符和服务索引所标示的服务功能的服务功能实例,并且服务功能转发器222将分组转发给支持被选择的服务功能实例的服务功能转发器。
[0074]
从服务功能实例203a接收到的新的网络服务报头中的服务索引可以让服务功能转发器222选择下一跳服务功能类型和针对每个服务功能类型的服务功能实例。也就是说,服务索引指示用于服务路径标识符的服务功能链路由232中的一组一个或多个条目,每个条目对应于通告特定服务功能实例的服务功能实例路由230的服务功能类型和服务标识符(例如,路由区分符)。服务功能转发器222选择这些服务功能实例中的一个,标识支持被选择的服务功能实例的服务功能转发器,并将分组发送到该下一跳服务功能转发器。在美国专利申请第15/368,282号中描述了处理用于服务功能下一跳的分组的计算设备200的附加示例,其通过引用并入上文。
[0075]
根据本公开中描述的技术,操作为分类器的服务功能实例203可以添加包括备份服务功能信息的网络服务报头。在该示例中,服务功能实例203a可以操作为服务功能分类器。服务功能实例203a可以将分组分类到服务功能链。为了向服务功能链中的活动服务功能通知其备份服务功能,服务功能实例203a封装包括备份服务功能信息的网络服务报头。
[0076]
例如,服务功能实例203a可以从备份服务功能信息234确定针对服务功能链的活动服务功能的一个或多个备份服务功能。备份服务功能信息234可以表示包括备份服务功能信息的表格(例如,图1的表格30)。计算设备200可以执行备份服务功能信息234的查找以标识针对给定服务链的活动服务功能的一个或多个备份服务功能。
[0077]
响应于确定针对服务功能链的活动服务功能的一个或多个备份服务功能,服务功能实例203a封装具有网络服务报头的接收分组——该网络服务报头包括从备份服务功能信息234确定的一个或多个备份服务功能的位置,并且将分组转发给服务功能下一跳,以使得服务功能下一跳将其状态信息与其备份服务功能同步。
[0078]
例如,假设计算设备200的网络接口卡240从前一个服务功能实例(例如,由另一计算设备200执行的分类器)接收分组,该分组被封装有包括备份服务功能信息的网络服务报头。服务功能转发器222处理该分组并且可以确定由另一个计算设备托管的服务功能实例可以应用服务功能作为针对服务功能实例203a的备份。在该示例中,服务功能实例203a可
以将状态信息250a发送到托管备份服务功能的其他计算设备以将其状态与备份服务功能同步。如果网络服务报头包括多个备份服务功能,则服务功能实例203a可以将状态信息250a发送给托管备份服务功能的每个计算设备,以将其转发状态与每个备份服务功能同步。
[0079]
图3a-图3b分别图示了根据本公开的技术的示例隧道分组和网络服务报头。图3a图示了根据本公开的技术的沿着服务功能链引导内部分组的示例隧道分组。在图3a的示例中,具有报头308和有效负载310的原始内部分组309封装有网络服务报头304并且使用外部(或封装)报头302封装为有效负载306以形成隧道分组300。
[0080]
外部报头302可以包括在封装属性314中通告或以其他方式被包括在服务功能实例路由中的隧道封装数据。外部报头302使得底层网络能够将隧道分组300转发到托管在网络服务报头304中标识的服务功能实例的计算设备。如图3b中进一步描述的,网络服务报头304可以包括基本报头311,该基本报头311包括实现服务功能路径的信息。例如,网络服务报头304可以包括服务路径标识符和服务索引。
[0081]
根据本公开中描述的技术,网络服务报头304还可以包括备份服务功能信息312。接收被分类到服务功能链的分组的服务功能分类器可以添加包括服务路径标识符的网络服务报头304、服务索引和备份服务功能信息。
[0082]
接收隧道分组300的计算设备可以基于由计算设备存储的描述由网络服务报头304标识的服务功能链的服务功能实例路由来确定由计算设备托管的服务功能实例以处理内部分组309。计算设备还可以根据网络服务报头304中包括的备份服务功能信息312来确定一个或多个计算设备,这些计算设备为所述计算设备托管的服务功能实例托管一个或多个备份服务功能。
[0083]
图3b是更详细的网络服务报头304的示例。例如,网络服务报头304包括基本报头311(也称为“nsh服务路径头”)以实现服务路径和备份服务功能信息312。基本报头311至少包括标识服务功能链的服务路径标识符。在一些示例中,网络服务报头304可以包括服务路径标识符和另一个服务功能链标识符,其组合地标识服务功能链。网络服务报头304还可以包括服务索引,该服务索引标识要被应用的服务功能链中的下一个服务功能。基本报头311还可以包括其他信息,诸如元数据类型(在图3b中被图示为“md类型”)以指示网络服务报头304包括一个或多个可变长度上下文报头,其根据本公开中描述的技术包括备份服务功能信息,诸如托管备份服务功能的计算设备的一个或多个网络地址,例如服务功能备份节点314a-314n(统称为“备份服务功能节点314”)。
[0084]
作为一个示例,可变长度上下文报头可以包括诸如元数据类、类型、未指派位、可变长度元数据的长度以及指定托管备份服务功能的计算设备的一个或多个网络地址的可变长度元数据之类的字段。元数据类可以定义类型字段的范围。类型字段可以指定被携带的元数据的类型。长度字段可以指定可变长度元数据的长度。作为一个特定示例,可变长度上下文报头可以指定:0x0000的元数据类,这是一种可以由互联网编号指派机构(iana)指派以指定基本nsh元数据类的类型;以及元数据类型的值,其指示网络服务报头包括备份服务功能信息。
[0085]
操作为分类器的服务功能实例(例如,图1的服务功能实例10a)可以添加包括网络服务报头304的分组——该网络服务报头304包括备份服务功能信息312,并且将封装的分
组转发到服务功能下一跳,以使得服务功能下一跳可以与由服务功能备份节点314标识的计算设备执行有状态同步。
[0086]
图4是图示了根据本公开的一种或多种技术操作的计算设备的一个示例的进一步细节的框图。图4可以图示包括一个或多个处理器402的服务器或其他计算设备400的特定示例,处理器402用于执行控制器19、服务功能实例10或本文描述的任何其他计算设备中的任何一个或多个。在其他实例中,可以使用计算设备400的其他示例。虽然出于示例的目的,在图4中示出为独立计算设备400,但是计算设备可以是任何组件或系统,其包括一个或多个处理器或用于执行软件指令的其他合适计算环境,并且例如不必包括图4中所示的一个或多个元件(例如,通信单元406;并且在一些示例中,诸如(多个)存储设备408之类的组件可能不与其他组件位于同一位置或在同一机架中)。
[0087]
如图4的具体示例所示,计算设备400包括一个或多个处理器402、一个或多个输入设备404、一个或多个通信单元406、一个或多个输出设备412、一个或多个存储设备408和用户界面(ui)设备410,以及通信单元406。在一个示例中,计算设备400还包括可由计算设备400执行的一个或多个应用422、协调模块430、路由协议模块432、操作系统416。计算设备400还包括路由信息434。组件402、404、406、408、410和412被耦合(物理地、可通信地和/或可操作地)用于组件间通信。在一些示例中,通信信道414可以包括系统总线、网络连接、进程间通信数据结构或用于传送数据的任何其他方法。作为一个示例,组件402、404、406、408、410和412可以通过一个或多个通信信道414耦合。
[0088]
在一个示例中,处理器402被配置为实现用于在计算设备400内执行的功能性和/或过程指令。例如,处理器402可以能够处理存储在存储设备408中的指令。处理器402的示例可以包括微处理器、控制器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或等效的分立或集成逻辑电路中的任何一个或多个。
[0089]
一个或多个存储设备408可以被配置为在操作期间在计算设备400内存储信息。在一些示例中,存储设备408被描述为计算机可读存储介质。在一些示例中,存储设备408是瞬态存储器,意味着存储设备408的主要目的不是长期存储。在一些示例中,存储设备408被描述为易失性存储器,意味着当计算机关闭时存储设备408不保持所存储的内容。易失性存储器的示例包括随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)和本领域已知的其他形式的易失性存储器。在一些示例中,存储设备408被用来存储用于由处理器402执行的程序指令。在一个示例中,存储设备408由在计算设备400上运行的软件或应用使用,以用于在程序执行期间临时存储信息。
[0090]
在一些示例中,存储设备408还包括一个或多个计算机可读存储介质。存储设备408可以被配置为存储比易失性存储器更大量的信息。存储设备408可以进一步被配置用于信息的长期存储。在一些示例中,存储设备408包括非易失性存储元件。这种非易失性存储元件的示例包括磁性硬盘、光盘、软盘、闪存或电可编程存储器(eprom)或电可擦除可编程(eeprom)存储器的形式。
[0091]
在一些示例中,计算设备400还包括一个或多个通信单元406。在一个示例中,计算设备400利用通信单元406经由一个或多个网络(诸如一个或多个有线/无线/移动网络)来与外部设备通信。通信单元406可以包括网络接口卡,诸如以太网卡、光收发器、射频收发器或可以发送和接收信息的任何其他类型的设备。这种网络接口的其他示例可以包括无线移
动网络技术(例如,3g、lte、5g)和wifi无线电。在一些示例中,计算设备400使用通信单元406来与外部设备通信。
[0092]
在一个示例中,计算设备400还包括一个或多个用户接口设备410。在一些示例中,用户接口设备410被配置为通过触觉、音频或视频反馈从用户接收输入。(多个)用户接口设备410的示例包括存在感应显示器、鼠标、键盘、语音响应系统、摄像机、麦克风或用于检测来自用户的命令的任何其他类型的设备。在一些示例中,存在感应显示器包括触敏屏幕。
[0093]
一个或多个输出设备412也可以被包括在计算设备400中。在一些示例中,输出设备412被配置为使用触觉、音频或视频刺激向用户提供输出。在一个示例中,输出设备412包括存在感应显示器、声卡、视频图形适配卡或用于将信号转换成人类或机器可理解的适当形式的任何其他类型的设备。输出设备412的附加示例包括扬声器、阴极射线管(crt)监视器、液晶显示器(lcd)或可以向用户示出可理解输出的任何其他类型的设备。
[0094]
计算设备400可以包括操作系统416。在一些示例中,操作系统416控制计算设备400的组件的操作。例如,在一个示例中,操作系统416促进一个或多个应用与处理器402、通信单元406、存储设备408、输入设备404、用户接口设备410和输出设备412的通信。
[0095]
协调模块430可以协调服务功能覆盖网络中的服务功能实例并生成服务功能链。网络服务提供方运营商可以使用用户接口设备410和/或输入设备404来配置服务功能链。
[0096]
路由协议模块432可以表示在网络堆栈的不同层执行各种协议的过程。在图4的示例中,网络协议包括边界网关协议(bgp)419,它是第3层路由协议。bgp 419可以包括多协议bgp(mp-bgp)。路由协议模块432可以执行图4中未示出的其他协议,诸如mpls标签分发协议和/或其他mpls协议。路由协议模块432负责维护路由信息434以反映计算设备400经由通信单元406之一连接到的网络的当前拓扑。特别地,bgp 419基于由计算设备400接收的路由协议消息来更新路由信息434,以准确地反映网络和其他实体的拓扑。
[0097]
路由协议模块432使用bgp来发送和接收服务功能路由,该服务功能路由分发用于描述服务功能覆盖网络节点和拓扑的服务功能实例数据和服务功能链数据。路由协议模块432可以接收一个或多个服务功能实例路由440并且可以接收一个或多个服务功能链路由442,并将这些服务功能路由存储到路由信息434。服务功能实例路由440和服务功能链路由442可以表示实例图1的服务功能实例路由20和服务功能链路由21。
[0098]
使用由计算设备400接收或生成的服务功能实例路由440,路由协议模块432可以生成和输出服务功能链路由442以通告为至少部分地由计算设备控制的服务功能覆盖网络所配置的服务功能链400。也就是说,路由协议模块432可以源发这样的服务功能链路由442并且将这些路由注入到服务功能覆盖网络中。
[0099]
根据本文描述的技术,计算设备400包括网络服务报头模块446以提供备份服务功能通知和同步。在其中计算设备400的(多个)处理器402执行操作为服务功能分类器的服务功能实例(例如,到服务功能覆盖网络的入口,诸如图1的服务功能实例10a)的示例中,网络服务报头模块446可以存储备份服务功能信息444(例如,在路由信息434中)。在一些示例中,网络服务报头模块446可以基于服务功能实例路由440和服务功能链路由442来生成备份服务功能信息。在其他示例中,网络服务报头模块446可以从控制器接收备份服务功能信息。如上所述,备份服务功能信息444可以包括托管备份服务功能的计算设备的网络地址。
[0100]
网络服务报头模块446可以为服务链的活动服务功能确定一个或多个备份服务功
能。例如,响应于接收到分组并将该分组分类到服务链,网络服务报头模块446可以确定从备份服务功能信息444的查找产生的一个或多个备份服务功能。网络服务报头模块446可以封装具有包括备份服务功能信息444的网络服务报头的分组。例如,网络服务报头可以包括服务路径标识符、服务索引和托管一个或多个备份服务功能的计算设备的一个或多个网络地址(例如,ip地址),诸如图3a和图3b中所示的网络服务报头。
[0101]
在其中计算设备400的(多个)处理器402执行服务功能实例的示例中,该服务功能实例接收封装有包括备份服务功能信息的网络服务报头的分组(例如,图1的服务功能实例10b),网络服务模块446可以从网络服务报头信息中标识托管一个或多个备份服务功能的一个或多个计算设备,并将计算设备400的状态信息发送到从网络服务报头中包括的备份服务功能信息中标识的计算设备。
[0102]
图5是图示了根据本文描述的技术的示例服务功能链路架构参考模型的框图。在该示例中,服务功能覆盖网络501在互连的计算设备的物理底层网络上操作,每个计算设备为一个或多个服务功能转发器504a-504d提供操作环境。每个服务功能转发器504可以表示服务功能转发器222或本文描述的任何服务功能转发器的示例实例。隧道510通过底层网络连接成对的服务功能转发器504。
[0103]
服务功能覆盖网络501包括服务功能实例506a-506d(统称为“服务功能实例506”)和分类器502,其也可以表示服务功能实例。分类器502和服务功能实例506中的每一个被托管或以其他方式位于服务功能转发器504之一的本地。例如,服务功能实例506a、506b对于服务功能转发器504b是本地的,而服务功能实例506d对于服务功能转发器504d是本地的。服务功能实例506可以具有不同的服务功能类型508。例如,服务功能实例506a、506b和506c都具有服务功能类型508a,而服务功能实例506d具有不同的服务功能类型508b。
[0104]
服务功能覆盖网络501仅仅是一个示例。服务功能覆盖网络501的示例可以具有任意数量的服务功能转发器504、服务功能实例506,并且可以按照由隧道510的隧道接口的配置所确定的各种覆盖拓扑来进行布置。
[0105]
分组512在分类器502处进入,分类器502将每个分组分类到一个或多个服务功能实例506的服务功能链。服务功能转发器504交换服务功能链路由和服务功能实例路由,如本文别处所述。服务功能转发器504选择下一个服务功能实例506并且经由隧道510将每个分类的分组沿着其服务功能链经由隧道510转发到对于下一个服务功能实例506而言是本地的下一跳服务功能转发器504。一旦服务功能链中的最后一个服务功能实例506d处理分组,则最后一个服务功能转发器504d可以将处理后的分组514从服务功能覆盖网络501出口到它们相应的目的地。
[0106]
在图5的示例中,服务功能链可以包括服务功能实例506a和服务功能实例的下一跳506d。也就是说,服务功能实例506a和服务功能实例506d是服务功能链的活跃服务功能。服务功能实例506c可以操作为针对服务功能链的服务功能实例506a的备份服务功能。
[0107]
分类器502接收分组512并将该分组分类到服务功能链。分类器502可以确定针对服务功能链的活动服务功能的一个或多个备份服务功能。例如,分类器502可以确定服务功能实例506c可以操作为服务功能实例506a的备份服务功能。分类器502封装具有包括服务路径标识符、服务索引和备份服务功能信息的网络服务报头的分组512。如本公开中所述,备份服务功能信息503(例如,存储在图1的表格30中的备份服务信息)可以包括例如托管备
份服务功能的计算设备的一个或多个网络地址。在该示例中,网络服务报头包括服务功能转发器504c的网络地址,其托管备份服务功能实例506c并将分组转发到服务功能转发器504b,服务功能转发器504b将分组转发到服务功能下一跳,例如服务功能实例506a。响应于接收到该分组,服务功能转发器504b可以从该分组中解封装网络服务报头并将该分组发送到服务功能实例506a。服务功能转发器504b还可以基于被包括在网络服务报头中的备份服务功能信息来标识服务功能转发器504c托管备份服务功能实例506c。服务功能转发器504b可以通知服务功能实例506a:服务功能转发器504c托管备份服务功能实例506c。作为响应,服务功能实例506a可以将状态信息发送到托管服务功能实例506c的服务功能转发器504c,以将其状态信息与备份服务功能实例506c同步。
[0108]
图6是图示了根据本文描述的技术的示例服务功能覆盖网络的框图。服务功能覆盖网络601可以是服务功能覆盖网络501的示例实例。在该示例中,服务功能覆盖网络601包括服务功能转发器604、服务功能实例606、分类器502,并且由控制器19管理。为了便于说明,没有示出隧道。每个服务功能实例606具有图6中所图示的对应的服务功能类型608值。例如,服务功能类型608a值为41并且由服务功能实例606a、606c共享,服务功能类型608b值为42并且由服务功能实例606e提供,服务功能类型608c值为43并且由服务功能实例606d、606g共享,并且服务功能类型608d值为44并且由服务功能实例606b、606f、606h共享。
[0109]
服务功能转发器604a-604d中的每一个都具有图6中所图示的对应的网络地址。尽管是关于ipv4地址进行图示和描述的,但是其他类型的网络地址例如ipv6也可以被设想。例如,服务功能转发器604a具有ip地址192.0.2.1,服务功能转发器604b具有ip地址192.0.2.2,服务功能转发器604c具有ip地址192.0.2.3,并且服务功能转发器具有ip地址192.0.2.4。服务功能转发器604a提供对服务功能实例606a、606b的访问。服务功能转发器604b提供对服务功能实例606c、606d的访问。服务功能转发器604c提供对服务功能实例606e、606f的访问。服务功能转发器604d提供对服务功能实例606g、606h的访问。服务功能转发器604e提供对分类器502的访问。控制器19具有ip地址198.51.100.1。
[0110]
每个服务功能转发器604将路由通告给其提供访问的服务功能实例606。以下是用于服务功能实例606的示例服务功能实例路由:
[0111]
·
rd=192.0.2.1,1,sft=41[606a]
[0112]
·
rd=192.0.2.1,2,sft=44[606b]
[0113]
·
rd=192.0.2.2,1,sft=41[606c]
[0114]
·
rd=192.0.2.2,2,sft=43[606d]
[0115]
·
rd=192.0.2.3,7,sft=42[606e]
[0116]
·
rd=192.0.2.3,8,sft=44[606f]
[0117]
·
rd=192.0.2.4,5,sft=43[606g]
[0118]
·
rd=192.0.2.4,6,sft=44[606h]
[0119]
路由区分符(rd)是服务区分符的一个示例,并且包括通告托管的ip地址和另一个值,并且sft是正被通告的服务功能实例的服务功能类型。用于在服务功能转发器604之间进行通信的寻址取自服务功能实例路由的隧道封装属性,而不是取自该路由的rd。
[0120]
服务功能链路由可以定义显式服务功能链(即,定义特定的服务功能下一跳)、提供服务功能实例的选择的服务功能链(即,定义用于执行链中下一跳的下一跳服务功能转
发器的选择)、具有服务功能实例的开放选择的服务功能链(例如,定义支持特定服务功能类型的服务功能的下一跳服务功能转发器的选择)、具有服务功能类型选择的服务功能链、相关的双向服务功能链、相关的双向和非对称服务功能链、非对称的双向服务功能链、用于提供循环、跳跃或分支的服务链。
[0121]
以下是服务功能链的示例。考虑以下服务功能链路线:
[0122]
·
sfc1:rd=198.51.100.1,101,spi=15,[si=255,sft=41,rd=192.0.2.1,1],[si=250,sft=43,rd=192.0.2.2,2]
[0123]
用于sfc1的服务功能链由位于服务功能转发器604a处的类型41的服务功能和随后位于服务功能转发器604b处的类型43的服务功能组成。在一个示例中,分类器502可以接收被分类到sfc1的多个分组514的分组。分类器502为sfc1的活动服务功能确定备份服务功能信息。例如,服务功能实例606c可以操作为具有值为41的类型608a的服务功能实例606a的备份服务功能。在该示例中,备份服务功能信息503可以将活动服务功能下一跳指定为服务功能转发器604a的网络地址(例如,rd=192.0.2.1,1)并且将备份服务功能下一跳指定为托管备份服务功能实例606c的服务功能转发器604b的网络地址(例如,rd=192.0.2.2,1)。
[0124]
分类器502将链上的分组发送到服务功能转发器604a,该分组包括指定服务路径标识符(spi)(值=15)、服务索引255和备份服务功能信息的网络服务报头,如下所述:
[0125]
·
[sfi=15,si=255,active sf rd=192.0.2.1,1,backup sf rd=192.0.2.2,1]
[0126]
服务功能转发器604a可以接收封装有包括备份服务功能信息的网络服务报头的分组,并从spi和服务索引标识服务功能链。服务功能转发器604a确定:对于初始服务索引255,服务功能转发器604a将向具有值为41的服务功能类型608a的服务功能实例606a递送分组。服务功能转发器604a还确定:对于初始服务索引255,服务功能转发器604b提供对备份服务功能实例606c的访问。服务功能转发器604a将分组递送到具有值为41的服务功能类型608a的服务功能实例606a。服务功能转发器604a还可以向服务功能实例606a通知其备份服务功能实例的位置。服务功能实例606a可以将其状态信息(在图6中图示为610)发送到托管服务功能实例606c的服务功能转发器604b,以将状态信息与服务功能实例606c同步。
[0127]
当分组由服务功能实例606a返回到服务功能转发器604a时,针对下一跳的服务索引将减少到250。服务功能转发器604a将分组转发到服务功能转发器604b,其在将分组转发到它们的目的地之前将分组发送到具有值为43的服务功能类型608c的服务功能实例606d。服务功能转发器604b确定:对于服务索引250,服务功能转发器604b将向具有值为43的服务功能类型608c的服务功能实例606d递送分组。
[0128]
在一些示例中,活动服务功能可以具有多个备份服务功能。考虑以下示例服务功能链路由:
[0129]
·
sfc2:rd=198.51.100.1,101,spi=16,[si=255,sft=41,rd=192.0.2.1,1],[si=250,sft=44,rd=192.0.2.3,7]
[0130]
用于sfc2的服务功能链由位于服务功能转发器604a处的类型41的服务功能和随后位于服务功能转发器604c处的类型44的服务功能组成。在一个示例中,分类器502可以接收被分类到sfc2的分组514的分组。分类器502为sfc2的活动服务功能确定备份服务功能信
息。例如,服务功能实例606b和服务功能实例606h可以各自操作为具有值为44的类型608b的服务功能实例606f的备份服务功能。在该示例中,备份服务功能信息503可以将活动服务功能下一跳指定为服务功能转发器604c的网络地址(例如,rd=192.0.2.3,7)并且将第一备份服务功能下一跳指定为服务功能转发器604a的网络地址(例如,rd=192.0.2.1,2)并且将第二备份服务功能下一跳指定为服务功能转发器604d的网络地址(例如,rd=192.0.2.4,6)。
[0131]
分类器502将链上的分组发送到服务功能转发器604a,该分组包括指定服务路径标识符(spi)(值=16)、服务索引250和备份服务功能信息的网络服务报头,如下所述:
[0132]
·
[sfi=16,si=250,active sf rd=192.0.2.2.3,7,backup sf rd=192.0.2.1,2;192.0.2.4,6]
[0133]
服务功能转发器604a可以接收封装有包括备份服务功能信息的网络服务报头的分组,并从spi和服务索引标识服务功能链。服务功能转发器604a确定:对于初始服务索引255,服务功能转发器604a将向具有值为41的服务功能类型608a的服务功能实例606a递送分组。当分组由服务功能实例606a返回到服务功能转发器604a时,针对下一跳的服务索引将减少到250。服务功能转发器604a将分组转发到服务功能转发器604c,其在将分组转发到它们的目的地之前将分组发送到具有值为44的服务功能类型608d的服务功能实例606f。服务功能转发器604c还可以向服务功能实例606f通知其备份服务功能实例的位置,例如,服务功能转发器604a(例如,192.0.2.1,2)和服务功能转发器604d(例如,192.0.2.4,6)。服务功能实例606f可以将其状态信息(在图6中图示为612a)发送到托管服务功能实例606b的服务功能转发器604a,以将状态信息与服务功能实例606b同步。类似地,服务功能实例606f可以将其状态信息(在图6中图示为612b)发送到托管服务功能实例606h的服务功能转发器604d,以将状态信息与服务功能实例606h同步。
[0134]
图7是图示了根据本发明的技术的示例操作模式的流程图。关于图6来描述操作700。操作700还关于图2的计算设备200来描述,但是可以由任何计算或网络设备执行。
[0135]
分类器502可以接收(例如,多个分组514的)分组并且将该分组分类到服务功能链(702)。例如,操作为分类器502的计算机设备200可以将分组与策略相匹配,每个策略指定标识给定服务功能链的服务路径标识符。作为一个示例,分类器502接收图6的sfc1的服务功能链路由。响应于接收到分组,分类器502可以将策略应用到分组的分组报头字段(例如,5元组值)以确定服务功能链(例如,图6的sfc1)被应用到分组。如上所述,sfc1可以标识包括服务功能实例606a随后是服务功能实例606d的服务功能链。
[0136]
分类器502确定针对服务功能链的活动服务功能的一个或多个备份服务功能(704)。例如,分类器502可以执行对表格的查找,该表格包括备份服务功能信息(例如,图6的备份服务功能信息503),并确定针对服务功能实例606a和服务功能实例606d的备份服务功能的位置。在该示例中,备份服务功能信息503可以将活动服务功能下一跳指定为服务功能转发器604a的网络地址(例如,rd=192.0.2.1,1)并且将备份服务功能下一跳指定为服务功能转发器604b的网络地址(例如,rd=192.0.2.2,1)。备份服务功能信息503还可以将活动服务功能下一跳指定为服务功能转发器604b的网络地址(例如,rd=192.0.2.2,2)并且将备份服务功能下一跳指定为服务功能转发器604d的网络地址(例如,rd=192.0.2.4,5)。
[0137]
为了实现服务路径,分类器502封装具有网络服务报头的分组,该网络服务报头包括用于服务功能链的服务路径标识符(例如,spi=15)和用于被选择的服务功能链中的第一跳的服务索引(si=255)。根据本公开中描述的技术,分类器502还包括网络服务报头中的备份服务功能信息(706)。例如,分类器502包括托管备份服务功能实例的计算设备的网络地址。例如,分类到sfc1的分组被封装有网络服务报头,该网络服务报头包括服务路径标识符15、服务索引255和服务功能转发器604b的网络地址,以指示针对活动服务功能实例606a的备份服务功能实例606d的位置。
[0138]
分类器502向服务链中的第一服务功能实例(例如,服务功能实例606a)发送封装有包括备份服务功能信息的网络服务报头的分组(708)。例如,分类器502将分组发送到服务功能转发器604a,其将分组递送到服务链中的服务功能实例606a。
[0139]
服务功能实例606a可以接收封装有包括备份服务功能信息的网络服务报头的分组(710),并且至少基于被包括在网络服务报头中的备份服务功能信息,将用于活动服务功能的状态信息发送到托管一个或多个备份服务功能的计算设备(712)。例如,服务功能实例606a可以从服务路径标识符15中标识服务链,以及在网络服务报头的可变长度上下文报头中指定的托管一个或多个备份服务功能的一个或多个计算设备。
[0140]
服务功能实例606a可以将状态信息发送到托管一个或多个备份服务功能的一个或多个计算设备(714)。在该示例中,服务功能实例606a(例如,活动服务功能)可以向服务功能实例606d(例如,备份服务功能)发送状态信息。
[0141]
虽然没有在图7中图示,但是每个服务功能下一跳可以接收封装有包括备份服务功能信息的网络服务报头的分组,并将其会话状态与从备份服务功能信息中标识的计算设备同步。例如,分类器502可以发送封装有网络服务报头的另一个分组,该网络服务报头包括用于服务功能链的服务路径标识符(例如,spi=15)和用于被选择的服务链中的第二服务功能实例的服务索引(si=250)以及备份服务信息,以使得托管服务链中的第二服务功能实例的计算设备能够至少基于备份服务功能信息将状态信息与从备份服务功能信息标识的一个或多个备份服务功能同步。
[0142]
本文描述的技术可以以硬件、软件、固件或其任何组合来实现。被描述为模块、单元或组件的各种特征可以在集成逻辑设备中一起被实现或单独实现为分立但可互操作的逻辑设备或其他硬件设备。在一些情况下,电子电路的各种特征可以被实现为一个或多个集成电路器件,诸如集成电路芯片或芯片组。
[0143]
如果以硬件来实现,则本公开可以涉及诸如处理器或集成电路设备之类的装置,诸如集成电路芯片或芯片组。可替代地或另外地,如果以软件或固件来实现,则这些技术可以至少部分地通过包括指令的计算机可读数据存储介质来实现,指令在被执行时使处理器执行上述方法中的一个或多个。例如,计算机可读数据存储介质可以存储这样的指令以供处理器执行。
[0144]
计算机可读介质可以形成计算机程序产品的一部分,该计算机程序产品可以包括包装材料。计算机可读介质可以包括计算机数据存储介质,诸如随机存取存储器(ram)、只读存储器(rom)、非易失性随机存取存储器(nvram)、电可擦除可编程只读存储器(eeprom)、闪存、磁性或光学数据存储介质等。在一些示例中,制品可以包括一个或多个计算机可读存储介质。
[0145]
在一些示例中,计算机可读存储介质可以包括非瞬态介质。术语“非瞬态”可以指示存储介质未被体现在载波或传播信号中。在某些示例中,非瞬态存储介质可以存储可以随时间改变的数据(例如,在ram或缓存中)。
[0146]
代码或指令可以是由处理电路执行的软件和/或固件,处理电路包括一个或多个处理器,诸如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程门阵列(fpga)或其他等效的集成或分立逻辑电路。因此,如本文中所使用的术语“处理器”可以指代任何前述结构或适合于实现本文所描述的技术的任何其他结构。此外,在一些方面,本公开中描述的功能性可以在软件模块或硬件模块内被提供。
再多了解一些

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

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

相关文献