计算机网络内的会话感知服务链的制作方法

文档序号:7816218阅读:575来源:国知局
计算机网络内的会话感知服务链的制作方法
【专利摘要】描述了用于向用户分组流提供会话感知的有状态网络服务的技术。在服务提供商网络中的设备沿着服务链引导用户分组。建立每个隧道以根据用于对应服务链的具体的网络服务的有序集引导流量。针对隧道的入口设备封装用户分组并嵌入不透明的会话cookie,每个会话cookie在由给定其服务隧道传输的其他分组流中唯一标识用户会话的分组流的集合。每个服务节点只需要标识服务隧道以及被嵌入在隧道分组内的会话cookie,隧道分组在该服务隧道上被接收,不需要进一步检查所封装的用户分组以及另外索引或者另外恢复强迫网络节点被编程以递送网络服务所需的状态或统计。
【专利说明】计算机网络内的会话感知服务链

【技术领域】
[0001]本公开涉及计算机网络并且更具体地涉及将网络服务应用到遍历计算机网络的用户数据流量。

【背景技术】
[0002]计算机网络是能够交换数据并共享资源的互联计算设备的集合。在基于分组的网络中,计算设备通过将数据划分为称作分组的小块来传送数据,其从源设备到目的设备被单独路由通过网络。目的设备从分组中提取数据并组装数据成其原始形式。划分数据为分组使源设备能够只重新发送那些可能在传输期间丢失的各个分组。
[0003]参照如路由器,某些设备维护描述通过网络的路线的路由信息。路线可能一般定义为网络设备的两个位置之间的路径。路由器包括控制平台,有时称作管理平台,其维护路由信息,以及转发平台,其根据路由信息转发接收的分组。
[0004]网络服务提供商向传入的分组提供服务,诸如安全、隧道、虚拟个人网络、过滤、负载均衡、VoIP/多媒体处理和各种类型的应用代理(HTTP、XML、WAP,等等)。服务提供商也提供设计为改善用户体验的质量的内容特定的服务,例如,视频流和缓存。为了提供这些新服务,服务提供商已经经常转到专业的、专用的器具。在一些情况下,路由器已经修改为包括将各种服务应用到传入的分组上的附加的硬件或者软件。例如,安装在路由器的服务平台内的线卡可以被配置为执行具体的服务,诸如上述服务。
[0005]在现有路由基础设施中部署专用器具或者传统硬件刀(hardware blade)片可能是昂贵的或者耗时的,从而阻止了服务提供商快速部署支持新服务的硬件。部署专用器具增加了可操作成本,因为现有技术经常要求很多不同的定制设备互联并且以静态方式配置,并且几乎不提供与路由器或者其他网络元素的整合。


【发明内容】

[0006]总体上描述了用于向与用户会话相关联的分组流提供会话感知、有状态网络服务的技术。例如,描述了网络系统,服务提供商在网络系统中能够利用服务节点的服务综合,以用于例如使用执行网络服务软件的通用计算服务器来应用网络服务。本文所描述的技术通过允许沿着“服务链”容易地引导分组流来促进面向会话服务的应用,其中每个服务链表示由服务节点应用的有状态服务的有序集。
[0007]而且,设备通过在对应的流量工程隧道内为用户分组形成隧道,沿着服务链引导用户分组,其中每个隧道被建立以便根据用于对应的服务链的网络服务的具体有序集引导流量。作为去往隧道的入口操作的设备封装用户分组。而且,该设备,诸如在服务提供商网络内的网关路由器以不透明会话cookie的形式嵌入附加信息。以这种方式,每个隧道分组承载不透明会话cookie,并且每个会话cookie的内容在由给定的服务隧道传输的其他分组流中唯一标识会话特定的分组流的集合。如此,当接收隧道分组时,每个服务节点为了将所封装的用户分组与用户会话唯一关联只需要标识服务隧道以及被嵌入在隧道分组内的会话cookie,隧道分组在该服务隧道上被接收。与相同会话cookie相关联的分组流的集合可以唯一标识源自用户会话的所有分组流,所有这种流源自用户访问连接。作为备选方案,给定的会话cookie不需要表示来自该用户的所有分组流,但是可以用于表示具有公共特征的分组流的子集,诸如与公共多媒体会话相关联的分组流。
[0008]使用会话cookie唯一标识会话特定的分组流的集合可以使服务节点能够将会话特定的有状态服务应用于被封装的用户分组,作为具体分组流集合内的所有用户分组流的一部分,而不需要首先检查用户分组本身(比如,用户分组的报头或者净荷)的部分以标识该用户或者与具有给定用户分组流的用户分组相关联。换句话说,本文所描述的技术可以有效地消除在服务节点上的进程各个分组的任何负担以标识每个会话的服务要求或者与用户会话相关联的本地网络状态。
[0009]在一个示例中,方法包括通过服务提供商网络的网络设备接收分组流的用户分组,该分组流源自用户设备并去往分组数据网络。该方法包括通过在隧道分组的净荷内封装用户分组以及构造用于通过与服务链相关联的隧道传输的隧道分组的报头来形成隧道分组。服务链包括用于通过服务节点集应用于来自多个用户设备的多个分组流的一个或者多个有状态服务的有序集。此外,该方法包括在隧道分组内嵌入存储唯一标识源自用户设备的分组流的集合的值的会话cookie,并且通过网络设备向服务节点转发隧道分组。
[0010]在另一个示例中,设备,诸如路由器或者开关,包括多个网络接口以及控制单元,该控制单元包括执行流量工程协议以针对服务链建立隧道的处理器。服务链包括用于通过服务节点集应用于与服务链相关联的分组流的一个或者多个有状态服务的有序集。该设备进一步包括用与隧道相关联的转发信息编程的转发电路,用于沿着隧道转发分组流。一般地,转发电路接收源自用户设备的分组流的用户分组,并根据转发信息通过在隧道分组的净荷内封装用户分组以及构造隧道分组的报头来形成隧道分组。当形成隧道分组时,转发电路在隧道分组内嵌入会话cookie,会话cookie存储将分组流与源自相同用户的分组流的集合唯一相关联并且从其他分组流中区分分组流的值,其他分组流与源自其他用户的服务链相关联。最后,转发电路输出隧道分组到一个网络接口以用于向服务节点转发。
[0011]在进一步的示例中,服务节点包括网络接口以在多个隧道上接收隧道分组。每个隧道对应多个服务链中的相应的服务链,并且每个服务链包括与用户相关联的分组流的一个或者多个有状态服务的不同有序集。每个隧道分组封装用户分组并且包括会话cookie,会话cookie存储将用户分组与源自相同用户的分组流的集合唯一相关联的值。服务节点包括处理器,该处理器执行执行网络服务软件以将一个或者多个有状态网络服务应用到分组流。网络服务软件基于会话cookie的值和隧道将每个用户分组与对应的分组流相关联,隧道分组在隧道上被接收,而不对用户分组进行检查。
[0012]本公开内容的一个或者多个实施例的细节在附图中以及下面的描述中被阐述。其他特性、目标以及好处将从描述和附图以及从权利要求书中显而易见。

【专利附图】

【附图说明】
[0013]图1示出了根据本文所描述的技术操作的示例网络系统的框图。
[0014]图2示出了由示例控制器支持的服务链的示例集合的框图。
[0015]图3示出了由SDN控制器或者网关生成的示例配置数据的逻辑表示,以指定图2的示例服务链。
[0016]图4示出了由网关或者其他设备输出的以沿着具体服务链引导分组的示例隧道分组。
[0017]图5示出了示例性设备框图,比如,能够实现本文所描述的技术的路由器或者网关。
[0018]图6是示出了根据本文所描述的技术的路由器的示例性操作的流程图。
[0019]图7是示出了提供用于一个或者多个服务节点的操作环境的示例服务器的框图。

【具体实施方式】
[0020]图1示出了根据本文所描述的技术的示例网络系统。图1的示例网络系统包括作为私有网络运营以向用户设备16A-16N(统称为“用户设备16”)提供基于分组的网络服务的服务提供商网络2。就是说,服务提供商网络2提供了对用于用户设备16的网络访问的认证和建立以便用户设备可以用公共网络12开始交换数据分组,该公共网络可以是内部的或者外部的基于分组的网络,诸如互联网。
[0021]在图1的示例中,服务提供商网络2包括接入网6(“接入网6”),接入网6经由服务提供商核心网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执行一个或者多个分组数据协议(TOPs),诸如IP(IPv4和/或IPv6), X.25或者点对点协议(PPP),以便能够进行公共网络12服务的基于分组的传输。
[0022]用户设备16经由接入网6连接网关8以接收到用户服务的链接,该用户服务针对由用户设备16托管的应用。用户可以表示,譬如,企业、居民用户、或者移动用户。用户设备16可以是,例如,个人计算机、笔记本电脑或者其他类型的与用户相关联的计算设备。此夕卜,用户设备16可以包括经由无线电接入网(RAN)4访问服务提供商网络2的数据服务的移动设备。示例移动用户设备包括移动电话、笔记本电脑或者具有比如3G无线卡的台式计算机、具有无线能力的上网本、视频游戏设备、寻呼机、智能电话、个人数据助手(PDA)等设备。每个用户设备16可以运行各种软件应用,诸如文字处理和其他支持办公的软件、网页浏览软件、支持语音呼叫的团建、视频游戏、视频会议、以及电子邮件等等。用户设备16经由访问链路5连接接入网6,访问链路包括有限的和/或无线的通信链路。术语“通信链路”,如本人所用,包括任何形式的传输媒体、有线的或者无线的,并且可能包括中间节点诸如网络设备。每个访问链路5可以包括,譬如,不对称DSL网络、WiMAX、T-l线、综合流量数字网(ISDN)、有线的以太网、或者蜂窝无线电链路。
[0023]网络服务提供商运营,或者在一些情况下租赁接入网6的元素以提供用户设备16和网关8之间的分组传输。接入网6表示从一个或者多个用户汇总数据流量的网络以用于向/从服务提供商的服务提供商核心网7传输。接入网6包括网络节点,该网络节点执行通信协议以便传输控制及用户数据以帮助用户设备16与网关8之间的通信。接入网6可以包括宽带接入网、网络、无线LAN、公共交换电话网、或者其他类型的接入网,并且可以包括或以其他方式提供用于蜂窝接入网的连接,诸如图1的无线电接入网(RAN)4。示例包括符合通用移动电信系统(UMTS)结构的网络、称作长期演进(LTE)的UMTS的演进、由互联网工程任务组(IETF)标准化的移动IP,以及由第三代合作伙伴项目(3GPP)、第三代合作伙伴项目2(3GPP2)以及全球微波互联接入(WiMAX)论坛提出的其他标准。
[0024]服务提供商核心网7 (以下为,“核心网7”)提供到被附接到接入网6的用户设备16的基于分组的链接用于访问TON12。核心网7可以表示由服务提供商所有或者运营的与多个网络互联的公共网络,该多个网络可以包括接入网6。核心网7可以实现多协议标签互换(MPLS)转发以及在这种情况下可以称作MPLS网或者MPLS骨干。在一些实例中,核心网7表示多个互联的自主系统,诸如互联网,互联的自主系统从一个或者多个服务提供商提供服务。公共网络12可以表示与核心网7耦合的边缘网络,比如,由用户边缘设备(诸如用户边缘开关或者路由器)耦合。公共网络12可以包括数据中心。
[0025]在包括有线/宽带接入网的网络2的示例中,网关8可以表示宽带网络网关(BNG)、宽带远程接入服务器(BRAS)、MPLS提供商边缘(PE)路由器、核心路由器或者网关、或者电缆调制解调器终端系统(CMTS),譬如。在包括蜂窝网作为接入网6的网络2的示例中,网关8可以表示移动网关,例如,网关通用分组无线电服务(GPRS)服务节点(GGSN)、接入网关(aGW)、或者分组数据网(TON)网关(PGW)。在其他示例中,对于网关8所描述的功能可以在开关、服务卡或者其他网元或者网络组件中实现。
[0026]至少管理部分网络2的网络服务提供商典型地向与设备(比如访问服务提供商网络的用户设备16)相关联的用户提供服务。所提供的服务可以包括,例如,传统互联网访问、互联网协议上的语音(VoIP)、视频或者多媒体服务以及安全服务。如以上对于接入网6的描述,核心网7可以支持多种类型的连接服务提供商网络接入网关以提供对所提供的服务的访问的接入网基础设施。在一些实例中,网络系统可以包括附接到具有各种架构的多个不同接入网6的用户设备16。
[0027]—般地,任何一个或者多个用户设备16可以通过向网关8发送会话请求来请求认证和数据服务。反过来,网关8典型地访问认证、授权及计费(AAA)服务器11以认证请求网络访问的用户设备。一旦被认证,任何用户设备16可以向服务提供商核心网7发送用户数据以便访问及接收由公共网络12提供的服务,并且这种分组至少作为一个分组流的一部分来遍历网关8。图1中所示出的流26表示一个或者多个来自任何一个或者多个用户设备16并去往TON 12的上行分组流。术语“分组流”、“流量流”、或者简单地“流”指源自具体源设备并向具体目标设备发送的分组集。单个分组流,或者在上行方向(源自用户设备16)或者下行方向(去往用户设备16),例如可以由5元组标识:〈源网络地址、目标网络地址、源端口、目标端口、协议 >。该5元组一般标识接收的分组对应的分组流。η元组指的是从5元组抽取的任何η项。例如,分组的2元组可以指针对该分组的〈源网络地址、目标网络地址 > 的组合或者〈源网络地址、源端口 >的组合。而且,在认证服务提供商网络2以及建立用于接收数据服务的通信会话时,用户设备可以源发多个数据流。
[0028]如本文所述,服务提供商网络包括具有提供用于网络服务的执行环境的一簇服务节点10Α-10Ν的服务复合体9。也就是说,每个服务节点10应用一个或者多个服务。例如,服务节点10可以应用防火墙和安全服务、运营商级网络地址翻译(CG-NAT)、媒体优化(语音/视频)、IPSec/VPN服务、深度分组检查(DPI)、HTTP过滤、计数、计费、收费以及分组流的负载均衡或者应用于网络流量的其他类型服务。以这种方式,每个服务节点10表示一个服务实例。
[0029]尽管如服务复合体9所示出的,服务复合体可以表示数据中心,但服务节点10,譬如,可以被核心网7的一个或者多个开关或者虚拟开关耦合。在一个示例中,每个服务节点10可以作为虚拟机算环境中的虚拟机运行。而且,计算环境可以包括通用计算设备(诸如基于X86处理器的服务器)的可扩展的簇。作为另一个示例,服务节点10可以包括通用计算设备和特定用途器具。如被虚拟化,由服务节点10提供的各个网络服务,正如在现代数据中心,可以通过虚拟内存的分配、处理器使用、存储和网络规则以及通过增加额外的被负载均衡的虚拟机进行缩放。
[0030]如在图1中所示,网关8通过由服务节点10提供的定义的服务组引导各个用户分组流26。也就是说,每个用户分组流可以通过服务节点10提供的具体的有序服务集被转发,本文每个有序集称作“服务链”。在图1的示例中,沿着第一服务链28A引导一个或者多个用户分组流26并且,因此,按顺序接收服务节点10AU0B和1N应用的服务。类似地,沿着第二服务链28B引导一个或者多个用户分组流26并且,因此,接收由服务节点10CU0B和1N应用的服务。
[0031]以这种方式,用户流26可以作为接入网6和公共网络12之间的分组流,根据服务提供商配置的服务链由服务节点10处理。在所示的示例中,服务链28A根据所列的顺序标识节点10A、10BU0N的有序集。服务链28B标识节点10C、10B、1N的有序集。因此,根据服务链28A被处理的分组流26跟随遍历节点10A、10B、最终到达作为服务链28A终端节点的节点1N的服务路径。具体的节点10可以支持多个服务链。在该示例中,服务节点1B支持服务链28A、28B。
[0032]一旦在服务链的终端节点被处理,即最后的节点10沿着具体服务路径向服务应用分组流,终端节点可以引导流量回到网关8用于进一步处理或者/和转发到公共网络12。例如,流量工程服务路径可以开始和终结在网关8。
[0033]尽管“服务链”定义了以特定顺序被应用的一个或者多个服务以提供用于应用于与服务链绑定的分组流的组合服务,但是“服务隧道”或者“服务路径”指根据服务链排序随着用于转发分组流的转发状态,由服务链处理的分组流所走的逻辑路径和/或物理路径。每个服务链可以与相应的服务隧道相关联,并且与每个用户设备16的相关联的分组流根据与相应的用户相关联的服务简档沿着服务隧道流动。表示为服务链28A、28B的箭头示出了映射到服务链28A或者28B的分组流所走的路径。例如,给定的用户可以与特定的服务简档相关联,服务简档按顺序映射到与服务链28A相关联的服务隧道。类似地,另一个用户可以对不同的服务简档相关联,该服务简档按顺序映射到与服务链28B相关联的服务隧道。在认证及为用户建立访问会话之后,网关8沿着适当的服务隧道引导用户的分组流,从而引起服务复合体9针对给定的用户应用所需订购的服务。
[0034]节点10可以使用内部配置的转发状态实现服务链28A、28B,根据服务节点10的被标识的集,转发状态沿着服务链28A、28B引导分组流的分组。使用网络隧道,诸如互联网协议(IP)或者通用路由封装(GRE)隧道,或者使用虚拟局域网(VLAN)、多协议标签交换(MPLS)技术,等等,这种转发状态可以指定用于在服务节点间形成隧道的隧道接口。在一些实例中,真实的开关或者虚拟的开关、路由器或者互联连接服务节点10的其他网元可以被配置为根据服务链28A、28B引导分组流到服务节点10。
[0035]在图1中,软件定义网络(SDN)控制器19提供了用于配置和管理服务提供商网络2(比如,网关8、核心网7以及节点10)的路由及交换基础设施的高层控制器。在一些实例中,SDN控制器19管理增值服务复合体9的操作环境内的虚拟机的部署。例如,SDN控制器19可以与网关8互动以指定服务链28A、28B的信息。例如,由SDN控制器19提供的服务链信息可指定服务节点10提供的增值服务的任何组合和排序、用于形成隧道或者以其他方式(比如,MPLS或者IP隧道)沿着服务路径传输分组流的流量工程信息(比如,标签或者下一中继段)、速率限制、服务类型(TOS)标记或者指定用于将分组流与具体的服务链28A、28B匹配的标准的分组分类机。SDN控制器的进一步示例细节在与2013年6月5日提交的PCT国际专利申请PCT/US13/44378中描述,其整体内容通过引用并入本文。
[0036]根据本文所描述的技术,在网关8引导分组进入适当的服务链时,网关8修改分组流26的分组。例如,网关8可以为每个用户分组前置一个流量工程报头或者标签(比如,附加的IP报头或者MPLS标签)以形成“隧道分组”,用户分组在“隧道分组”内作为净荷被封装。这时,网关8基于具体的用户选择具体流量工程报头,并且,更具体地,选择服务链,给定用户的具体类型的分组流被分配给该服务链。换句话说,由网关8进行的引导分组流的用户分组流26的处理是会话感知的(即,基于分组流源自的具体用户)并且可以基于分组流本身的特性,比如,流的类型(比如,VoIP、HTTP,等等)。
[0037]如本文所描述的,服务提供商网络2利用会话cookie唯一标识经过服务链所引导的会话特定的分组流的集合。由给定会话cookie唯一标识的分组流的集合可以表示,例如,源自用户会话的分组流的集合,所有这种流源自用户的PPP或者GTP访问连接。作为备选方案,给定的会话cookie不需要表示来自用户的所有分组流,但是可以用于表示具有公共特征的分组流的子集。例如,会话cookie可以表示与用户的公共多媒体会话相关联或者与用户的web (HTTP)流量或者其他具体协议相关联的分组流。
[0038]如所解释的,网络节点10利用会话cookie为与用户设备116相关联的分组流提供会话感知的有状态网络服务。每个会话cookie包括对于分组流集合正被引导通过的具体服务链的唯一的值。在一些示例中,服务节点10用会话cookie的唯一值作为进入本地存储的会话状态信息和/或针对用户的服务请求的索引以便快速检索与分组流集合相关联的具体状态信息。以这种方式,会话cookie有效地消除在服务节点上的进程各个分组的任何负担以标识服务要求或者与用户会话相关联的本地网络状态。
[0039]在运行中,网关8在每个分组内嵌入会话cookie以减小服务节点10上对于用户分组的后续处理的负担。在一个示例中,网关8以不透明会话cookie的形式在流量工程报头与封装的用户分组之间嵌入会话cookie。以这种方式,每个分组承载一个不透明的会话cookie,并且每个会话cookie的内容从由服务隧道传输的来自其他分组流唯一标识相应的用户分组流集合。因此,在接收隧道分组时,为了将封装的会话cookie与用户会话分组流唯一关联,每个服务节点10只需要标识服务隧道和在隧道分组内嵌入的会话cookie,隧道分组在该服务隧道上接收。这可以使服务节点10能够基于用户特定的要求应用用户特定的有状态服务,能使所封装的用户分组作为具体用户分组流的部分,无需首先检查用户分组的部分(比如,用户分组的报头或者净荷)以标识用户。
[0040]因此,每个单独的服务节点10可能利用与具体隧道相关联的隐含的服务语义,分组在该隧道上接收,并且可能基于会话cookie容易产生并维护针对用户会话的本地会话状态,无需重新对每个传入分组分类,也不需对对应的会话重新授权。由服务节点10生成并维护的针对每个会话的该状态信息可能包括用于策略执行的本地状态和网络服务的应用,以及本地统计,比如,计费数据和计费记录。简单凭借检测之前未用的会话cookie,服务节点10可以动态产生与分组流的新集合一起使用的新的本地状态。类似地,服务节点10可能通过执行本地动作,诸如通过老化用于分组流的状态信息或者通过针对用户分组流的具体分组/消息的检测,或者与SDN控制器19或者网关8的一些外部互动,更容易管理用于分组流的本地状态。
[0041]在标识分组流的新集合被通过具体服务链被引导时,网关8可以动态构造会话cookie.,作为另一个示例,在向服务提供商网络2认证用户时,网关8可以从外部设备(诸如AAA服务器11)请求和接收会话cookie。
[0042]在一些实施方式中,各个服务节点10可以可选地将会话cookie作为相关机制以用于动态存储用户特定的信息和/或从服务提供商网络2的其他网元检索用户特定的信息。例如,如在图1中所示,任一服务节点10可以发出查询17并从其他网元接收响应19,诸如AAA服务器11、策略控制服务器14和/或SDN控制器19。在这些示例中,服务节点10包括查询17内的会话cookielO作为用于存储信息以及从其他元素检索信息的有效机制,其中会话cookie允许其他元素将该信息与具体用户和相关的用户会话容易地相关,无需各个服务节点处理分组流、标识具体用户以及向其他网元提供该标识。以这种方式,本文所描述的技术允许服务节点10在网关8与AM服务器11之间利用所执行的授权,从而允许向服务节点10派发会话感知服务执行部分,而不需请求服务节点在每个会话基础上与用户控制系统互动。
[0043]在一些示例实现中,服务节点10可以向服务提供商2的一个或者多个元素发出查询17,服务提供商的元素作为用户特定的状态信息的中央存储库运营。也就是说,在该示例中,服务节点10将会话cookie用作用于存储和可选地从中央存储库检索用户特定的状态信息的有效机制。例如,一个或者多个服务节点10可以随着统计和其他相关信息向计费和收费系统,诸如AAA服务器11,发出包括会话cookie的查询17,从而进一步利用会话cookie。在该实例中,AAA服务器11,或者不同的网元,基于有关服务节点提供的会话cookie随着数据,作为集中计费系统和日志系统运营并且存储从服务节点10接收的数据。这可以是有用的,例如,对于存储计费信息、日志、和/或针对用户设备16的批量统计,并且在每个用户的原始认证,使用分配给用户会话的会话cookie可能容易地将所存储的信息与具体用户相关。
[0044]作为另一个示例,一个或者多个服务节点10可以发出查询以从服务提供商网络,诸如SDN控制器19、AAA服务器11、策略控制服务器14或者其他用户控制系统,检索用户特定的服务要求。例如,当处理分组流时,服务节点10可以基于唯一的会话cookie发出查询17以请求用户特定的服务要求。由SDN控制器19或者AAA服务器11返回的用户特定的服务要求的示例包括策略、服务水平协商参数、描述将应用于具体用户的服务的信息,以及类似信息。
[0045]作为具体示例,一个或者多个服务节点10可以实现用于用户设备10的策略和收费控制(PCC)功能。响应于由任一服务节点10发出的查询17,策略控制服务器14发出响应19而为策略接口请求的服务节点提供一个或者多个策略规则,每个策略规则指定了信息集,该信息集能够进行服务数据流检测以及定义策略控制、计费、或者由接入网6的网元应用的应用检测参数。策略控制服务器14可以为用于移动(比如,3GPP)用户设备或者备选地或者附加地用于宽带/有线用户设备的策略控制及计费规则功能(PCRF)提供一个或者多个服务节点10。
[0046]—个或者多个用户节点10可以,例如,提供用于策略执行模块的操作环境,策略执行模块根据策略规则执行基于用户的策略和收费控制。在一些示例中,由服务节点10呈现的策略接口可以表示由一个或者多个服务节点提供的Gx接口 /参考点和/或Sd接口 /参考点。在一些实例中,由策略控制服务器14为网关8提供的策略规则包括PCC规则以及在服务节点10上执行的策略执行模块表示策略与计费执行功能(PCEF)。在一些实例中,策略规则也可以或者备选地包括应用检测与控制(ADC)规则以及由一个或者多个服务节点实现的策略执行可以表示流量检测功能(TDF)。在一些实例中,服务节点10的策略执行模块可以表示用于BPCF框架的策略决策点。在第三代合作伙伴项目技术规范组服务和系统方面2010年9月的“3GPP TS23.203——策略与计费控制结构(发布10) ”的版本10.1.0中以及在2012年2月的“3GPP TS29.212——策略与计费控制(PCC),参考点(发布11) ”的版本11.7.0中发现了关于策略和计费控制的进一步细节,每一个都通过整体引用被并入本文。
[0047]服务提供商网络2内的会话cookie也可以提供用于负载均衡器的简洁机制以对经过服务节点10的分组流集合进行负载均衡。例如,在对经过服务节点的多个集合(会话)进行负载均衡时负载均衡器只需要对嵌入隧道分组内的应用会话cookie应用散列或者其他确定的操作以确保分组的整个集合流向相同的服务节点。
[0048]一般地,术语有状态网络服务意味着网络服务可以独立于针对分组流的之前的分组的处理,分组流内的给定的分组在该网络服务内进行处理,并且该网络服务可以产生处理分组流的后续分组所使用的状态。在一些情况下,网络服务应用可以引起用户分组,诸如NAT或者应用代理服务的修改,并且会话cookie的使用允许下行服务节点对于用户特定的要求仍然有效的解决用户分组流。网络服务的其他示例可以不必引起用户分组,诸如计费、收费和负载均衡服务的修改。嵌入隧道分组内的会话cookie本文可以统称为在网络基础设施中对于网关8是“不透明的”,该网络基础设施被耦合到服务节点10,随着任何传统服务节点10,传统服务节点10不支持使用会话cookie、可以忽略并且一般不受包括网关8输出的每个隧道分组内的附加信息的影响。而且,尽管相对于作为示例的网关8进行描述,但是直接相对于用于用户特定的服务的服务复合体9的分组流在本文所描述的技术可以由其他网络设备实现,诸如任一路由器、开关或者其他组件或者设备。
[0049]图2是示出有示例控制器所支持的示例服务链集的框图。具体地,图2示出了网关30所支持的服务链集34A-34E。网关30可以在一个示例中表示图1的网关8,从而服务链34表示由服务节点10所提供的示例服务链集28。
[0050]在一个示例中,一个或者多个用户分组流36A被沿着第一服务链34A引导以接收网络地址翻译(NAT)服务38。类似地,一个或者多个用户分组流36B被沿着第二服务链34B引导用于HTTP过滤器服务40、NAT服务42以及用户IP上的语音的处理和控制的会话边界控制器(SBC)服务43的应用。在服务链34C中,分组流36c仅被引导至HTTP过滤器44。在服务链34D中,分组流36D被引导到HTTP过滤器46并且后续被引导到防火墙服务48。作为另一个示例,分组流36E被沿着服务链34E引导用于HTTP过滤器50、NAT52和入侵检测与预防(比如,深度分组检查)服务54的应用。
[0051]图3示出了由SDN控制器(比如,SDN控制器19)或者网关(如,图1或者图2的网关8或网关30)在指定图2-图3的示例服务链34中生成的示例配置数据50的逻辑表示。配置数据50可以采取表格、数据库、数组或者其他数据结构的形式,并且输入其指示以便定义用于每个服务链的网络服务的有序集可以由基于文本的命令行接口、控制器、网络管理系统等提供。
[0052]如图3中所示,由SDN控制器或者网关生成的配置数据50包括定义图2的五个服务链34A-34E的每一个的条目。此外,数据50定义可由服务节点使用的服务52的集,诸如图1的服务复合体9的服务节点10。
[0053]对于每个服务节点34,数据50指定将应用哪个服务52以及按照哪个顺序应用。例如,数据50定义第一服务链34A作为具有服务链标识“I”并且只请求NAT服务。作为另一个示例,数据50定义第二服务链34B具有第二服务链标识“2”并且按如下顺序请求HTTP过滤器服务、NAT服务以及SBC服务的应用。类似地,数据50定义服务链34C-34E的服务52的有序集。以这种方式,数据50内的每个记录定义将应用于对应的服务链的有序服务。
[0054]基于服务链的规范,执行流量工程协议的设备,诸如路由器或者SDN控制器,确定必要流量工程信息,该必要流量工程信息对于建立用于传输在服务节点间封装的用户分组是必要的。例如,路由器或者SDN控制器可以执行路径计算并发出路径建立消息和/分发在沿着每一服务路径的每一中继段处使用的标签或者其他报头信息。在2013年3月15日提交的标题为“具有集中控制的汇聚网络”第13/482,453号美国专利申请中描述了能够执行路径计算并向网元分发标签的SDN控制器的示例细节,其全部内容通过引用并入本文。
[0055]图4示出了由网关或者其他设备输出以沿具体服务链引导用户分组的示例隧道分组60。在图4的示例中,具有报头68和净荷70的原始用户分组69在隧道分组60的净荷66内被封装。而且,图在该实例中所示,隧道分组60包括流量工程(TE)报头62,诸如IP报头或者与具体服务路径相关联的MPLS标签,以及附加会话COOkie64。
[0056]会话C00kie64是隧道分组60的域,其存储在与服务链相关联的几个不同分组中唯一标识分组流(比如,用户数据会话)的值。在一些示例中,会话COOkie64可以是64比特域。会话COOkie64指定对于给定服务链是唯一的并且被附着每个分组的值,每个分组针对对应于会话cookie的分组流集合。在图4的示例中,隧道分组60被形成以便包括嵌入TE报头62与净荷66之间的会话cookie64。也就是说,会话cookie64不是净荷66的部分,并且服务节点不需要检查包括在净荷66内的用户分组69来标识由会话COOkie64指定的值以便将用户分组与分组流集合相关联。尽管与TE报头62分开示出,但会话COOkie64可以,在一些实例中,认为是前置于隧道分组60的净荷66的报头的一部分。在任何情况下,会话COOkie64是用户分组69外部并且服务节点不需要检查用于将用户分组与源自用户的分组流相关联的用户分组。
[0057]如本文所述,由网关插入的会话COOkie64的内容允许沿着服务路径的服务节点将用户分组与针对用于该服务路径的用户会话的唯一的对应的分组流相关联。因此,接收隧道分组60时,为了将分组与用户会话唯一关联,沿着服务路径的每个服务节点10只需要标识服务隧道和嵌入分组内的会话COOkie64,隧道分组60在该服务隧道上接收。另有说明,每个节点可以通过处理来自相同服务隧道的隧道分组以及使相同的会话cookie作为针对相同分组流承载分组,向独立的分组流提供有状态服务。这可以是服务节点能够将用户特定的有状态服务应用于封装的用户分组,作为用于给定用户的具体用户分组流的部分,无需用户分组本身的第一处理部分(比如,报头68或者净荷70)将用户分组与给定的用户会话相关联。
[0058]图5是示出了示例性设备(比如路由器或者网关)的框图,该设备能够实现本文所描述的技术。路由器80可以包括网络(诸如SP网络2)中的任何路由器。例如,路由器80可包括网关、边缘路由器、核心路由器或者在图1-图2中示出的引导分组到网络服务应用的服务复合体的其他设备。
[0059]在图5的示例中,路由器包括控制单元82,路由组件86在控制单元82内为路由器80提供控制平台功能。路由器80可以包括共同提供数据平台用于转服网络流量的多个分组转发引擎14A-114N( “PFE114”)和交换结构118。PFE114经由接口卡112( “IFC112”)接收和发送数据分组。在其他实施例中,每个PFE114可以包括更多或者更少IFC。尽管没有示出,但每个PFE114可以包括中央处理单元(CPU)和存储器。在该示例中,路由组件86通过专用内部通信链路120连接每个PFE114。例如,专用链路34可以包括千兆以太网连接。交换结构118提供高速互联用于转发PFE114之间用于在网络上传输的传入数据分组。标题为“具有多路光互联的多机架路由器”美国专利申请2008/0044181描述了多机架路由器,多机架路由器内的多阶交换结构(诸如3-阶Clos交换结构)被用作高端转发平台以中继多机架路由器的多路由节点间的分组。美国专利申请2008/0044181的全部内容通过引用并入本文。
[0060]路由组件86提供用于执行各种协议89的操作环境,各种协议89可以包括具有由计算环境执行的指令的软件进程。如下进一步的详细描述,协议89提供控制平台功能用于以路由表格或者其他结构的形式存储网络拓扑,执行与端路由设备通信以及维护和更新路由标表格路由协议,提供允许用户访问的管理接口和路由器80的配置。控制单元82提供操作环境用于路由组件86并且可以仅在软件、或者硬件中实现,或者可以作为软件、硬件或者固件的组合来实现。例如,控制单元82可以包括执行软件指令的一个或者多个处理器。在该情况下,路由组件86可以包括各种软件模块或者守护进程(比如,一个或者多个路由协议进程、用户接口等),并且控制单元82可以包括用于存储可执行指令的计算机可读的存储介质,诸如计算机存储器或者硬盘。
[0061]命令行接口守护进程92 ( “CLI92”)提供接口,管理员或者其他管理实体可以通过该接口使用基于文本的命令修改路由器80的配置。简单的网络管理协议守护进程99 ( “SNMP99”)包括SNMP代理,SNMP代理从管理实体接收SNMP命令以设置和获取针对路由80的配置和管理信息。使用CLI92和SNMP99,管理实体例如可以启用/关闭以及配置服务、安装路线、启用/关闭和配置速率限制器、以及配置接口。
[0062]一个或者多个路由协议(诸如IGP94)以路由信息库(RIB) 104的形式维护路由信息,路由信息库(RIB) 104描述网络的拓扑、以及根据路由信息提取转发信息库(FIB)信息。一般地,路由信息表示网络的总体拓扑。IGP94与内核101 (比如,通过API呼叫)互动以基于由路由器80接收的路由协议消息更新RIB104。RIB104可以包括定义网络拓扑的信息,包括一个或者多个路由表格和/或链路状态数据库。典型地,路由信息定义通过网络到目的地/在网络内的前缀的路线(即一系列下一中继段),该前缀经由距离矢量路由协议(比如,BGP)学到,或者定义具有使用链路状态路由协议(比如,IS-1S或者OSPF)学到的互联链路的网络拓扑。相反,FIB106基于对网络内的特定路线的选择而被生成,并且将分组密钥信息(比如,目的地信息和来自分组报头的其他选择信息)映射到一个或者多个特定的下一中继段并最终到IFC112的一个或者多个特定的输出接口端口。路由组件86可以以具有叶节点的基础树的形式生成FIB,叶节点表示网络内的目的地。美国专利7,184,437中提供了利用基础树用于路线决议的路由器的示例实施例的细节,该专利的内容通过整体引用并入本文。
[0063]路由组件86也提供了一个或者多个流量工程协议的操作环境,以建立用于通过服务节点的有序集转发用户分组的隧道,服务节点与不同的服务链相关联。例如,RSVP-TE96可以执行具有流量工程扩展的资源预留协议以交换流量工程(TE)信息,诸如用于启用基于标签的分组转发的MPLS标签。作为另一个示例,路由组件86可以使用GRE或者基于IP的隧道协议建立流量工程隧道。路由组件86可以维护,例如,流量工程数据库(TED) 109以存储流量工程数据。
[0064]路由组件86传送FIB106的软件副本的数据表示进入每个PFEl 14以控制数据平台内的流量转发。这允许存储在每个PFEl 14的存储器(比如,RAM)内的软件FIB被更新而没有降低路由器80的分组转发性能。在一些实例中,路由组件86可以获得单独的以及不同的软件FIB用于每个相应的PFE114。此外,一个或者多个PFE114包括专用集成电路(ASIC116),专用集成电路将具有基于软件FIB的FIB硬件副本(即,软件FIB的硬件版本)的PFEl 14程序被拷贝到每个相应的PFEl 14。
[0065]例如,内核101在主微处理器102上执行并且可以包括,例如,UNIX操作系统的衍生诸如Linux或者伯克利软件发布(BSD)。基于RIB104中所表示的网络拓扑,内核101处理来自IGP94和RSVP-TE96的内核呼叫以生成FIB106形式的转发信息,即,执行路线决议和路径选择。典型地,内核101以基础或者其他查询树的形式生成FIB106以将分组消息(比如,具有目的地信息和/或标签栈的报头信息)映射到下一中继段并且最终到与形影的PFEl 14相关联的接口卡的接口端口。FIB106可以将,例如网络目的地与特定的下一中继段和对应的IFCl 12关联。对于涉及MPLS的流量转发,针对给定的FEC,FIB106存储包括传入标签、传出标签和用于分组的下一中继段的标签信息。
[0066]执行内核101的主微处理器102对PFE114编程以安装FIB106的副本。微处理器102可以包括一个或者多个通用处理器或者专用处理器,诸如数字信号处理器(DSP),专用集成电路(ASIC)、现场可编程门矩阵(FPGA)、或者任何其他等效的逻辑器件。因此,如本文所用的术语“处理器”或者“控制器”,可以指一个或者多个上述结构或者可操作的执行本文所述技术的任何其他结构。
[0067]在该示例中,ASIC116是由每个PFE114上执行的从微处理器可编程地配置的微码控制芯片组(即,转发电路)。当转发分组时,控制逻辑与每个ASIC116遍历从路由组件86接收的转发信息(FIB106)并且,在到达分组的FIB入口(比如,叶节点)时,微码实现控制逻辑56自动选择转发下一中继段并根据在下一中继段内定义的操作处理分组。以这种方式,PFE114的ASIC116通过在相应的内部分组转发路径上对每个分组执行一系列操作来处理分组,如分组遍历路由器80的内部结构。操作可以对每一分组被执行,例如,基于一个对应的入口接口、入口 PFEl 14、出口接口或者在出口前分组被引向的路由器80的其他组件,诸如一个或者多个服务卡。每个PFE114包括转发结构,当转发结构被执行时,检查每个分组的内容(或者另一分组特性,比如,传入接口)并且基于此进行例如转发判决,应用滤波器,和/或执行计费、管理、流量分组、和负载均衡。
[0068]在一个示例中,每个PFE114布置转发结构作为下一中继段数据,下一中继段数据可以沿用于网络设备的内部分组转发路径被链接在一起成为一系列“中继段”。在一些实例中,转发结构在ASCI116的内部存储器内执行查询操作,在内部存储器内该查询可以对树(或线索)搜索,表格(或索引)搜索被执行。可以用下面的中继段进行指定的其他示例操作包括滤波器确定和应用,或者速率限制器确定和应用。查询操作在查询数据结构内(比如,查询树)定位与分组内容或者分组或分组流的其他特性(诸如分组的输入接口)匹配的项。根据由ASIC116内的下一中继段转发结构定义的操作进行分组处理的结果确定,从一个IFCl 12上的输入接口到一个IFCl 12上的输出接口,分组转发或者以其他方式由PFEl 14处理的方式。
[0069]内核101 —般可以生成FIB106并且从而对ASCI116编程以存储与每个服务链相关联的转发结构。例如,ASIC116可以被配置为具有指定流量工程信息(诸如IP报头先或者MPLS标签)的转发信息,以及用于引起可编程ASIC116根据该转发信息封装用户分组的操作。以这种方式,ASIC116可以处理用户分组以为每个分组选择具体的服务路径并且根据选择的服务路径封装用户分组。路径组件86可以生成RIB104和FIB106以基于与每个用户相关联的一个或者多个服务简档将用户分组流与具体的服务路径关联,如可以从认证、授权和计费(AAA)服务器、策略控制器、SDN控制器或者其他网元接收。
[0070]根据本文所述技术,当检测新分组流并向对应的服务链分配分组流时,PFEl 14向该流分配一个值,该值从分配给同一服务链的其他流标识该流,即使那些流源自相同的用户或者不同的用户。当针对该流处理分组时,PFEl 14以不透明的会话cookie的形式在流量工程报头和封装的用户分组间嵌入附加信息,会话cookie在封装的用户分组承载分配给该流的值,并且每个会话cookie对于用于给定服务通道的用户会话是唯一的。
[0071]例如,在一个示例性实施例中,PFE114可以被编程以维护相应的会话表(“ST”)124A-124N( “会话表 124”)和多个计数器(“CT”)122A_122N( “计数器 122,,),每个相应的计数器122对应于不同的服务链。在操作中,ASIC116可以例如执行分组检查和更新具有会话信息的会话表124,该会话信息用于每个新检测的用户会话。在向具体服务隧道分配针对用户的分组流的集合时,ASIC116记录会话信息和针对每一会话的服务路径。此外,ASIC116可以在用户会话被分配给服务隧道时更新计数器122,以针对每一会话生成会话cookie值,会话cookie值在分配给相同服务隧道的其他流中唯一标识该回话的分组流集合。为了确保PFE114上针对遍历相同服务链的分组流的会话cookies值的唯一性,用于不同PFE114的计数器122可以分配给不同的序域,或者计数器122和会话表124可以被同步或者在路由器80内,比如,通过路由器组件86集中维护。在一个示例中,计数器122是64比特计数器,该计数器因新检测的具有分配给给定服务隧道的分组流的用户会话而递增。因此,插入每个隧道内的会话cookie值是64比特的值,并且允许下行服务节点应用有状态服务,以及相反通过处理来自相同服务隧道并且具有如与单个用户会话相关联的相同会话cookie值的隧道分组执行本文所述技术。
[0072]图5中示出的路由器80的结构仅为示例的目的被示出。本公开内容不限定于该结构。在其他示例中,路由器80可以以各种方式被配置。在一个示例中,一些功能性的控制单元82可以在IFC34内分发。控制单元82可以仅在软件或者硬件中实现,或者可以作为软件、硬件或者固件的组合来实现。例如,控制单元82可以包括一个或者多个处理器、可编程处理器、通用处理器、集成电路、专用集成电路(ASIC)、现场可编程门矩阵(FPGA)、或者能够实现本文所述技术的任何类型硬件单元。控制单元82可以进一步包括执行存储在计算机可读存储介质,诸如随机访问存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦写可编程只读存储器(EPROM)、电子可擦写可编程只读存储器(EEPROM)、非易失性随机访问存储器(NVRAM)、闪存、硬盘、CD-ROM、软盘、磁带、磁介质、光介质、或者其他计算可读存储介质上的软件指令的一个或者多个处理器。在一些实例中,计算机可读存储介质可以包括引起可编程处理器执行本文所述技术的指令。
[0073]图6是示出了网络设备(诸如图1-图2、图5中示出的任何网关)的示例性操作的流程图。如图6所示,网关路由器最初接收定义服务链数目和对于每个服务链(202)的有序服务的服务链规范。例如,网关路由器可以通过API接收服务链,API提交给SDN控制器并由SDN控制器调用。作为另一个示例,网关路由器可以经由CLI或者SNMP接口接收服务链规范。服务链规范可以进一步针对每一服务指定网络地址信息(比如,IP地址)或者标识针对每一服务节点的信息,服务节点可以是虚拟的或者物理机器或者其他服务实例。
[0074]鉴于由路由器维护的拓扑信息,网关路由器处理服务链规范以计算用于针对每个服务链(204)的对应的服务路径。转发信息可以包括,例如与封装用户分组一起应用于不同服务链的隧道报头信息。网关路由器可以向服务节点分发转发信息以在沿服务路径的每一中继段处控制转发。作为备选方案,SDN控制器或者其他路径计算元素可以计算并向网关路由器和服务节点分发针对服务路径的转发信息。
[0075]网关路由器对网关路由器内的分组转发组件进行编程,网关路由器具有与每一服务链(206)相关联的转发结构。例如,如上所述,网关路由器的路由组件可以对具有转发信息的转发ASCI进行编程,该转发信息指定了流量工程信息,诸如IP报头信息或者MPLS标签,以及用于引起可编程ASIC116根据该转发信息封装用户分组的操作。
[0076]在操作中,网关路由器接收用户分组(207)并确定该分组是否表示新用户会话
(208)。这可以采用检测会话请求消息或者新会话的其他通信指示的方式。作为另一个示例,网关路由器可以检测来自现有用户的具体流正发起新流集合,诸如新多媒体会话。该操作的粒度可以是由,例如,SDN控制器可配置的和可控制的。在一些示例中,针对用户会话的流集合可以组成单个分组流。
[0077]在分组表示新会话的分组流的事件中,网关路由器确定唯一标识在将用于新流
(209)的服务链内的会话。例如,路由器可以向AAA服务器,比如通过半径或者直径协议认证新用户,并且,在此时,接收服务简档或者其他信息,该信息定义将用于用户的服务或将用户所期望的各种流量映射到一个或者多个服务流。在检测新流时,网关路由器基于服务简档和流量类型选择用于流的服务。例如,基于接收的针对用户的服务简档和/或基于流量类型,比如,HTTP流量或者VoIP流量,网关路由器选择用于流的服务链。网关路由器向分组流分配会话cookie,会话cookie具有从分配给相同服务链的其他流唯一标识该流的值,即使那些流源自相同用户或者不同用户。
[0078]网关路由器的转发组件处理用户分组以封装该分组并形成隧道分组(212)。在此时,转发组件在流量工程报头与封装的用户分组之间嵌入分组cookie,封装的用户分组中会话cookie承载分配给流的值。然后路由器转发包括会话cookie的隧道分组到服务复合体。
[0079]在接收隧道分组(214)时,服务节点标识接收分组(216)的服务隧道。例如,鉴于输入接口,隧道分组在该输入接口接收,这可以基于分组的隧道报头确定。此外,服务节点提取嵌入在隧道分组内,比如,隧道分组的报头与净荷之间或者作为报头本身的一部分
(218)的会话cookie。基于接收分组和由会话cookie承载值的服务隧道,服务节点能将用户分组与用户会话相关联,并且一旦解封装,根据具体用户(222)的服务项目和要求引导用户分组到用于有状态服务的应用的服务实例。以这种方式,服务节点能通过处理来自相同服务隧道并且具有相同会话cookie值,如涉及单个用户会话,的隧道分组,用户分组封装在隧道分组内,将有状态服务应用到用户分组,不要求检查隧道分组的净荷(用户分组)。例如,服务节点可以利用会话cookie作为密钥(比如,索引或者偏移)以便获取针对来自会话状态信息的本地库的分组流集合(即,用户会话)的会话状态信息,并根据会话状态信息将有状态服务应用到用户分组。作为另一个示例,服务节点可以向策略控制器或者其他网元发出查询、该查询包括会话cookie并可以用于从策略控制器获取将应用于用户分组的一个或者多个会话特定的规则。
[0080]在将有状态服务应用到用户分组后,服务节点沿服务链转发任何得到的用户分组给沿服务链的下一服务节点或者给网关(224)。在一些情况下,将有状态服务应用到用户分组可以导致分组被丢弃(比如,由于防火墙服务)或被修改(比如,诸如NAT)。服务节点通过封装得到的分组、插入唯一标识该分组流的会话cookie、形成出站隧道分组并转发该隧道分组。例如,服务节点的网络服务软件封装得到的用户分组以形成出站隧道分组并转发出站隧道分组给沿服务链的其他服务节点。在此时,网络服务软件在每个出站隧道分组内嵌入来自相应的用户分组的会话cookie,不对该会话cookie的值进行修改。以这种方式,下行服务节点能将分组流与对应于cookie的相同用户会话相关联。
[0081]尽管总体上通过示例对于出站用户分组进行描述,但是本公开内容的技术可以类似地应用于针对用户设备定义的入站分组。换句话说,网关或者其他设备可以在入站分组向用户设备递送之前类似地引导入站分组通过服务链(比如,应用反向NAT、防火墙及类似服务)。
[0082]图7示出了为一个或者多个服务节点303A-303M提供运营环境的示例服务器300的框图。在该示例中,服务器300包括在多个隧道304A-304N( “隧道304”)上接收隧道分组302的网络接口 301。每个隧道304对应多个服务链之一,每个服务链包括将被应用到与用户相关联的分组流的一个或者多个有状态网络服务的不同序集。每个隧道分组302封装一个用户分组并包括存储唯一将用户分组与用于用户的分组流集合相关联的值的会话cookie,分组流流过给定的随点304之一。
[0083]在图7的示例中,服务器300包括执行虚拟机管理程序以为一个或者多个虚拟机316A-316M提供执行环境的微处理器310,虚拟机316A-316M提供用于隧道304的终止点。每个虚拟机执行网络服务软件,诸如防火墙实例320和HTTP过滤器实例322,以将一个或者多个有状态网络服务应用到分组流。在虚拟机316上执行的网络服务软件基于会话cookie的值和传输隧道分组的隧道能够容易地将传输的每个用户经由隧道分组与对应的用户分组流相关联,没有检查用户分组。
[0084]本文所述的技术可以在硬件、软件、固件或者其任一组合中实现。描述为模块、单元或者组件的各种特性可以一起在集成逻辑器件中实现或者作为离散但是可互操作的逻辑器件独立实现或者其他硬件设备中实现。在一些情况下,电子电路系统的各种特性可以作为一个或者多个集成电路器件,诸如集成电路芯片或者集成电路芯片组实现。
[0085]如果在硬件中实现,该公开内容可以针对一种装置,诸如处理器或者集成电路器件,诸如集成电路芯片或者集成电路芯片组。作为备选方案或者附加地,如果在软件或者固件中实现,该技术可以至少部分地通过计算机可读数据存储介质实现,计算机可读数据存储介质包括,当被执行时,引起处理器执行上述的一个或者多个方法的指令。例如,计算机可读数据存储介质可以存储用于处理器执行的这种指令。
[0086]计算机可读介质可以形成部分可以包括包装材料的计算机程序产品。计算机可读介质可以包括计算机数据存储介质,诸如随机访问存储器(RAM)、只读存储器(ROM)、非易失性随机访问存储器(NVRAM)、电子可擦写可编程只读存储器(EEPROM)、闪存、磁数据存储介质或者光数据存储介质、以及类似的计算机数据存储介质。在一些示例中,生产制品可以包括一个或者多个计算机可读存储介质。
[0087]在一些示例中,计算机可读存储介质可以包括非临时性介质。术语“非临时性”可以指示存储介质不在载波或者传播信号中体现。在某些示例中,非临时性存储介质可以存储可能在时间上变化(比如,在RAM或者缓存中)的数据。
[0088]代码或者指令可以是由包括一个或者多个处理器,诸如一个或者多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门矩阵(FPGA)、或者其他等效的集成或者离散逻辑电路系统,的处理电路系统执行的软件和/或固件。因此,术语“处理器”如在本文中所用,可以指任一前述结构或者适合于本文所述技术的实现的任何其他结构。此外,在一些方面,本公开内容所述的功能可以在软件模块或者硬件模块内提供。
[0089]已经描述了各种实施例。这些和其他实施例在下述示例的范围内。
【权利要求】
1.一种方法,包括: 通过服务提供商网络的网络设备接收分组流的用户分组,所述分组流源自用户设备并去往分组数据网络; 通过在隧道分组的净荷内封装所述用户分组以及构造用于通过与服务链相关联的隧道传输的所述隧道分组的报头来形成所述隧道分组,其中所述服务链包括用于通过服务节点集应用于来自多个用户设备的多个分组流的一个或者多个有状态服务的有序集; 在所述隧道分组内嵌入存储唯一标识源自所述用户设备的分组流的集合的值的会话cookie ;以及 由所述网络设备向所述服务节点转发所述隧道分组。
2.根据权利要求1所述的方法,进一步包括: 用所述网络设备处理所述用户分组以将所述用户分组与与所述用户相关联的服务简档相关联。 由所述网络设备并且至少部分基于用于所述用户的所述服务简档来从多个服务链选择所述服务链,其中所述多个服务链的每一个服务链包括用于应用于与相应的服务链相关联的分组流的一个或者多个有状态服务的不同有序集,并且其中每个所述服务链与多个隧道中的不同隧道相关联;以及 在选择所述服务链时分配所述用户分组给所述服务链。
3.根据权利要求1-2中的任一项所述的方法,其中在所述隧道分组中嵌入会话cookie包括形成所述隧道分组以在所述报头与所述隧道分组的所述净荷之间包括所述会话cookie。
4.根据权利要求3所述的方法,进一步包括: 检测所述分组流的所述分组是否包括与新用户会话相关联的新分组流的第一分组;以及 响应于确定所述分组流的所述分组包括新分组流的第一分组,更新会话表以记录与所述服务链相关联的所述新用户会话,以及分配所述会话cookie的所述值以在所述分组流中唯一标识所述新用户会话的所述新分组流,所述分组流被记录在与所述服务链相关联的所述会话表中。
5.根据权利要求4所述的方法,其中分配所述会话cookie的所述值包括: 在检测到所述分组流的所述分组包括所述新分组流的第一分组时递增与所述服务链相关联的计数器;以及 基于所述计数器的更新值来设置所述会话cookie的所述值。
6.根据权利要求1-5中的任一项所述的方法,进一步包括: 利用一个所述服务节点接收由所述网络设备转发的所述隧道分组; 基于嵌入所述隧道分组和所述隧道内的所述会话cookie的所述值,将封装在所述隧道分组内的所述用户分组与源自所述用户的分组流的所述集合相关联,所述隧道分组在所述隧道上由所述服务节点接收;以及 通过提取和处理与源自所述用户的所述分组流的其他用户分组相关联的所述用户分组,利用所述服务节点向封装在所述隧道分组内的所述用户分组应用一个或者多个所述有状态服务。
7.根据权利要求6所述的方法,其中将封装在所述隧道分组内的所述用户分组与源自所述用户的所述分组流关联包括基于所述会话cookie的所述值和所述隧道将所述用户分组与所述分组流关联,所述隧道分组在所述隧道上被接收而不检查所述用户分组。
8.根据权利要求6-7中的任一项所述的方法,其中利用所述服务节点向封装在所述隧道分组内的所述用户分组应用一个或者多个所述有状态服务包括: 使用所述会话cookie作为密钥以从会话状态信息的本地资料库恢复针对分组流的所述集合的会话状态信息;以及 根据所述会话状态信息将所述有状态服务应用到所述用户分组。
9.根据权利要求6-8中的任一项所述的方法,其中利用所述服务节点向封装在所述隧道分组内的所述用户分组应用一个或者多个所述有状态服务包括: 从所述服务节点向策略控制器发出查询,其中所述查询包括所述会话cookie ; 从所述策略控制器接收对所述查询的响应,其中所述响应包括一个或者多个会话特定的策略;以及 将所述一个或者多个用户特定的策略应用到所述用户分组。
10.根据权利要求6-9中的任一项所述的方法,其中利用所述服务节点向封装在所述隧道分组内的所述用户分组应用一个或者多个所述有状态服务包括从所述服务节点向计费系统发出查询以输出与用户会话相关联的统计,其中所述查询包括所述会话cookie和与用户会话相关联的所述统计。
11.根据权利要求ι-?ο中的任一项所述的方法,进一步包括: 封装任何从所述有状态服务的应用得到的用户分组以形成出站隧道分组; 在所述出站隧道分组中嵌入来自所述用户分组的所述会话cookie,而不对所述会话cookie的值进行修改;以及 沿着所述服务链转发所述出站隧道分组到第二服务节点。
12.根据权利要求6-11中的任一项所述的方法,其中利用所述服务节点向所述用户分组应用一个或者多个所述有状态服务包括应用以下项中的至少一项:超文本传输协议(HTTP)过滤服务、代理服务、防火墙服务、网络地址翻译(NAT)服务、深度分组入侵检测与防御(IDP)服务、IP上的语音(VoIP)服务、IP上的视频服务以及负载均衡服务。
13.根据权利要求1所述的方法,进一步包括由所述网络设备从软件定义网络(SDN)控制器接收配置数据,所述配置数据指定所述服务链以及定义用于应用于与所述服务链相关联的分组流的所述一个或者多个有状态服务的所述有序集。
14.根据权利要求1所述的方法,进一步包括: 利用所述网络设备并且通过与认证设备通信来认证所述用户设备;以及 在认证所述用户设备时从所述认证设备接收所述会话cookie。
15.根据权利要求1所述的方法,进一步包括:利用位于所述网络设备和一个所述服务节点之间的负载均衡网络元素,通过散列所述隧道分组内的所述会话cookie,以确定性地在提供相同有状态服务的实例的两个或者更多所述服务节点间分派所述分组流而将负载均衡操作应用到所述隧道分组。
16.—种设备,包括: 多个网络接口; 包括处理器的控制单元,所述处理器执行流量工程协议以针对服务链建立隧道,其中所述服务链包括用于通过服务节点集应用于与所述服务链相关联的分组流的一个或者多个有状态服务的有序集; 用与所述隧道相关联的转发信息编程的转发电路,用于沿着所述隧道转发所述分组流, 其中所述转发电路接收源自用户设备的分组流的用户分组,并根据所述转发信息通过在隧道分组的净荷内封装所述用户分组以及构造所述隧道分组的报头来形成所述隧道分组,其中,当形成所述隧道分组时,所述转发电路在所述隧道分组内嵌入会话cookie,所述会话cookie存储将所述分组流与源自相同用户的分组流的集合唯一相关联并且从其他分组流中区分所述分组流的值,所述其他分组流与源自其他用户的所述服务链相关联,以及其中所述转发电路输出所述隧道分组到一个所述网络接口以用于向所述服务节点转发。
17.根据权利要求16所述的设备,其中所述设备执行权利要求1-15中的任一项所述的方法。
18.一种服务节点,包括: 接收多个隧道上的隧道分组的网络接口,其中每个所述隧道对应多个服务链中的相应的服务链,每个所述服务链包括与用户相关联的分组流的一个或者多个有状态服务的不同有序集,并且每个所述隧道分组封装用户分组并且包括会话cookie,所述会话cookie存储将所述用户分组与源自相同用户的分组流的集合唯一相关联的值;以及 基于硬件的处理器,执行网络服务软件以将一个或者多个所述有状态网络服务应用到所述分组流, 其中所述网络服务软件基于所述会话cookie的所述值和所述隧道将每个所述用户分组与对应的所述分组流相关联,所述隧道分组在所述隧道上被接收,而不对所述用户分组进行检查, 其中所述网络服务软件将所述有状态服务应用到所述用户分组以产生最终的用户分组, 其中所述网络服务软件封装所述最终的用户分组以形成出站隧道分组并将所述出站隧道分组沿着所述服务链转发给其他服务节点,以及 其中,当处理所述用户分组和封装所述最终的用户分组以形成所述出站隧道分组时,所述网络服务软件在每个所述出站隧道分组中嵌入来自相应的所述用户分组的所述会话cookie,而不对所述会话cookie的值进行修改。
【文档编号】H04L29/06GK104519121SQ201410522688
【公开日】2015年4月15日 申请日期:2014年9月30日 优先权日:2013年9月30日
【发明者】J·P·莫瓦桑, J·W·弗朗西斯 申请人:瞻博网络公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1