使用安全参数索引值维护分组的服务质量处理的制作方法
未命名
08-23
阅读:64
评论:0
使用安全参数索引值维护分组的服务质量处理
1.相关申请
2.本技术要求于2021年2月9日提交的美国实用新型专利申请no.17/171,604的优先权,其要求于2020年12月11日提交的美国临时专利申请no.63/124,317的优先权,这两个申请的全部内容通过引用并入本文。
技术领域
3.本公开总体上涉及用于使用分组头部的安全参数索引(spi)值对加密流量进行负载平衡的改进技术。
背景技术:
4.构建云交付的软件即服务(saas)产品涉及创建分布式系统,该系统被交付给云中的用户。通常,流量根据一种或多种路由策略(例如等价多路径(ecmp)路由)被发送到这些服务中。ecmp和其他路由策略允许基于“五元组(5-tuples)”固定流,以便将分组发送到特定的后端实例。分组的五元组通常指的是包含传输控制协议/互联网协议(tcp/ip)连接的五个不同值的集合。五元组的值的集合包括源ip地址、源端口号、目的地ip地址、目的地端口号和正在使用的特定协议。
5.然而,由于ecmp和其他路由策略使用五元组,因此它们没有考虑加密连接(例如互联网协议安全(ipsec)连接,其包括互联网密钥交换(ike)流量和封装安全负载(esp)流量)的各个流。此外,加密连接(例如ipsec)由于其加密的本质,很难为其提供流量分类。一旦分组被加密和封装,执行任何形式的服务质量(qos)几乎变得不可能。
6.此外,在负载平衡器放置在负责处理加密流量的工作者节点池之前的联网环境中,当工作者节点离线时,分配给工作者节点的加密会话必须迁移到一个或多个其他主机。这通常会导致临时服务中断,同时(一个或多个)新的主机工作者节点和客户端协商新的加密连接。
附图说明
7.下面结合附图进行详细描述。在附图中,参考标号最左边的(一个或多个)数字标识该参考标号首次出现的附图。在不同附图中使用相同的参考标号表示相似或相同的项目。附图中描绘的系统不是按比例绘制的,并且附图中的组件可能被描绘成不是彼此按比例绘制的。
8.图1示出了包括隧道通信会话的联网环境的示例系统架构的示意图,该隧道通信会话包括分离的控制平面和数据平面流量流。
9.图2示出了负载平衡器节点根据一个或多个路由策略向下游节点发送流量的示例流量流的示意图。
10.图3示出了用于使用分组头部的spi值建立流量的负载平衡的通信会话的各个节点和/或设备之间的示例流量流的数据流图。
11.图4a和图4b示出了用于指示分组头部的spi值中的qos类型信息的通信会话的各个节点和/或设备之间的示例流量流的数据流图。
12.图5a-图5c共同示出了与执行加密隧道迁移相关联的示例数据流的示意图。
13.图6示出了用于通过使用spi值来维护分组的qos处理的示例方法的逻辑流程图。
14.图7示出了用于基于分组头部的spi值来负载平衡流量的示例方法的逻辑流程图。
15.图8示出了用于执行加密隧道迁移的示例方法的逻辑流程图。
16.图9示出了用于执行加密隧道迁移的另一示例方法的逻辑流程图。
17.图10示出了用于实现网络节点和/或设备(例如负载平衡器、控制节点、数据节点等)的示例计算机硬件架构的示意图,该网络节点和/或设备可用于实现本文呈现的各种技术的各个方面。
具体实施方式
18.概述
19.本发明的各个方面在独立权利要求中阐述并且优选特征在从属权利要求中阐述。一个方面的特征可以单独或与其他方面组合应用于每个方面。
20.本公开描述了系统和方法,这些系统和方法通过使用分组头部的安全参数索引(spi)值来改进与负载平衡加密流量有关的技术。作为示例而非限制,根据本公开中描述的各种技术的方法可以包括从客户端设备并且在网络的网络设备处接收通过网络建立加密隧道以使得数据平面流量可以经由加密隧道在客户端设备和服务之间流动的请求。该方法还可以包括生成要由客户端设备用于数据平面流量的spi值并且向客户端设备发送关于spi值的指示。另外,该方法可以包括在负载平衡器处接收包括spi值的数据分组,并且至少部分地基于spi值,确定将数据分组发送到支持该服务的一组服务器中的服务器。相应地,负载平衡器可以将数据分组发送到服务器。
21.在一些情况下,该方法可以附加地或替代地包括确定数据平面流量属于一组流量类别中的特定流量类别。特定流量类别可以与特定服务质量(qos)性能度量相关联。因此,该方法可以包括生成要由客户端设备用于数据平面流量的spi值。spi值可以对应于特定的流量类别。以此方式,负载平衡器可以接收包括spi值的数据平面流量的数据分组,并且至少部分地基于包括spi值的数据分组,负载平衡器可以通过网络发送数据分组,使得根据特定的qos性能度量处理数据分组。
22.在附加或替代示例中,该方法可以包括在负载平衡器处并且从客户端设备接收具有第一spi值和一组五元组值的第一数据平面流量。至少部分地基于第一spi值和该组五元组值,负载平衡器可以将第一数据平面流量发送到第一节点。该方法还可以包括在负载平衡器处接收第一数据平面流量的至少一部分要被发送到第二节点的指示。至少部分地基于该指示,负载平衡器可以提示第二节点提供一个或多个接口,使得第一数据平面流量的至少一部分可以被发送到第二节点。以此方式,负载平衡器可以从客户端设备接收具有第二spi值和该组五元组值的第二数据平面流量。至少部分地基于第二spi值和该组五元组值,负载平衡器可以确定第二数据平面流量包括第一数据平面流量的至少该部分,并且作为响应,发送第二数据平面流量到第二节点。
23.另外,本文描述的技术可以作为一种方法和/或由具有存储计算机可执行指令的
非暂态计算机可读介质的系统来执行,指令在由一个或多个处理器执行时执行本文描述的技术。
24.示例实施例
25.如上所述,通常根据一种或多种路由策略(例如等价多路径(ecmp)路由)将流量发送到各种服务。但是,由于这些路由策略使用五元组,因此它们没有考虑加密连接(例如互联网协议安全(ipsec)连接,其包括互联网密钥交换(ike)流量和封装安全负载(esp)流量)的各个流。这意味着这些流的熵可能远小于在每隧道熵由针对ipsec ike和esp流的安全关联(sa)提供的情况下所能达到的。例如,ipsec ike和esp流量包含称为安全参数索引(spi)的附加标识符。spi值用于唯一标识已建立的ipsec sa。
26.因此,本公开的一个方面提供用于利用spi值以允许负载平衡和将每ipsec ike和esp流固定到特定后端的技术。通过执行这些技术,可以实现多种优势,包括能够在多个系统上终止相同的加密隧道/sa,这允许扩展容量。此外,可以通过对控制平面和数据平面流量会话可能落在后端节点/服务器上的位置进行更细粒度的控制来实现更高的性能。此外,可以相应地处理不同的流量(例如,性能级别,允许客户拥有自己的后端)。
27.此外,加密连接(例如ipsec)由于其被加密的本质,很难为其提供流量分类。一旦分组被加密和封装,执行任何形式的服务质量(qos)几乎变得不可能。例如,当专门查看构建ipsec云交付的虚拟专用网络(vpn)产品时,您正在处理ip分组中的esp和/或udp分组中的esp。因此,本公开的另一方面包括用于将qos类型信息编码和映射成spi值以使得即使在分组被加密和封装之后也可以对分组执行qos的技术。执行这些技术可以允许对加密流量进行分类,从而允许在数据节点上进行区分服务型(diffserv-style)资源分配,使得可以在更适合该流量类别的数据节点上分配单独的sa,并且还可以调整数据节点内的流量整形规则以在分配给它的流中调整网络吞吐量。
28.此外,在负载平衡器放置在负责处理加密流量的工作者节点池之前的联网环境中,当工作者节点离线时,分配给工作者节点的加密会话必须迁移到一个或多个其他主机。这通常会导致临时服务中断,同时(一个或多个)新的主机工作者节点和客户端协商新的加密连接。因此,本公开的又一方面包括用于添加对后端工作者节点(例如数据节点)的支持以向负载平衡器发信号以指示工作者节点即将从后端工作者节点队列中移除的技术。通过这种方式,这些技术可以通过在某个工作者节点进入不健康状态或设置为由另一个节点替换时将加密隧道迁移出该工作者节点来减少计划内或计划外关闭的影响。此外,这些技术可以降低跨服务器池重新平衡负载的影响。
29.因此,根据本公开中描述的各种技术,可以实现计算机相关技术的改进。如前所述,针对加密流的熵可能比在提供每隧道熵的情况下所能达到的要小得多。例如,大多数路由策略(如ecmp)使用一组五元组值进行散列。然而,利用分组的spi值可以允许使用六元组逻辑,从而更好地将流分配到头端节点。此外,即使分组已被封装,spi值也可进一步用于指示数据分组的qos类型信息,从而可以在更适合该流量类别的数据节点上分配单独的sa。这些只是可以根据本公开中描述的技术实现的多个改进的一些示例。本领域的普通技术人员将容易了解和理解这些改进和其他改进。
30.作为示例而非限制,根据本公开描述的各种技术的方法可以包括从客户端设备接收分组,该分组指示通过网络建立加密隧道以使得数据平面流量可以经由加密隧道在客户
端设备和服务之间流动的请求。在一些示例中,请求分组可以由网络的负载平衡器或路由器在网络处接收并且负载平衡器或路由器可以将请求发送到网络的控制节点。另外,负载平衡器或路由器可以至少部分地基于等价多路径(ecmp)路由策略和/或与请求分组相关联的五元组将请求分组发送到控制节点。在一些示例中,建立加密隧道的请求可以包括建立ipsec连接的请求和/或建立ipsec sa或子sa的请求。
31.在一些示例中,网络可以被配置为使得网络包括单独的控制节点和数据节点。换句话说,网络可以配置为将控制平面流量(例如,ike流量)和数据平面流量(例如,esp流量)的处理拆分到不同的节点(例如,用于处理控制平面的控制节点或“ike”节点和用于处理数据平面的数据节点)。这可以允许网络单独地和/或独立地扩展每个节点类型。控制节点和数据节点可以包括与服务相关联的头端服务器。在一些示例中,控制节点可以在与网络相关联的第一组计算资源上操作,并且数据节点可以在与网络相关联的第二组不同的计算资源上操作。
32.在一些示例中,该方法可以包括确定数据平面流量属于一组流量类别中的特定流量类别。特定流量类别可以与特定服务质量(qos)性能度量相关联。在一些示例中,为了让控制节点创建与正确的流量类别相匹配的spi值,可以在建立sa之前调用分类器。这可以以多种不同的方式完成。例如,负载平衡器或路由器可以调用分类器,并在控制平面流量被转发到控制节点之前将类别信息作为头部注入。这可以通过使用ip头部中当前未使用的字段(例如dscp字段)或通过创建新字段来完成。此外,或者替代地,控制节点可以在其发起sa时调用分类器。通过这些方式中的任何一种,可以为控制节点提供类别信息,使得控制节点可以创建对应于流量类别的spi值。
33.在一些示例中,该方法可以包括生成要由客户端设备用于数据平面流量的spi值。spi值可以包括标识特定sa的位组合。在某些情况下,可以生成多个spi值,并且多个spi值中的每个单独的spi值可以标识相应的sa。另外,spi值可以由控制节点生成。
34.如上所述,在各种示例中,spi值可以包括qos类型信息(例如,区分服务(diffserv)类型信息、服务类型(tos)、区分服务代码点(dscp)类型信息和/或实验位(exp)类型信息),该信息指示处理分组所依据的特定流量类别。因此,在某些示例中,生成spi值可以包括生成表示要根据其处理分组的特定流量类别的第一位组合,生成表示特定sa的第二位组合,以及掩蔽或组合第一位组合和第二位组合,使得第一位组合包括spi值的第一部分并且第二位组合包括spi值的第二部分。例如,分组的spi字段被定义为32位的任意值,0-255的范围被定义为保留。这留下了从256(0x00000100)到4294967295(oxffffffff)的值用作spi值。因此,在一些示例中,32位字段的第一部分(例如,“前面”部分)可用于qos映射,并且第一个十六进制数字可通过将spi值偏移4位来“保留”用于映射。例如,使用十六进制值0x[0]3ec7b2a到0x[f]3ec7b2a,十六进制数字[0]到[f]可以表示qos映射,并且0x3ec7b2a可以表示消耗的4位的实际spi偏移。也就是说,spi值的第一部分(例如,十六进制数字[0]到[f])可以表示特定的流量类别qos映射,并且spi值的第二部分(例如,十六进制数字3ec7b2a)可以标识特定的sa。这导致使用15个映射值。附加地或替代地,可以遵循已经建立的802.1q服务类别(cos)或多协议标签交换(mpls)exp到dscp位映射,因为它们具有相似的位大小。
[0035]
在生成spi之后,该方法可以包括向客户端设备发送关于spi值的指示。在一些示
例中,控制节点可以执行直接服务器返回(dsr)以将指示发送到客户端设备。在一些示例中,包括spi值的数据分组可以由负载平衡器接收。数据分组可以包括数据平面流量的数据分组。也就是说,与数据分组相关联的协议可以对应于数据平面流量协议,例如esp。在一些示例中,数据分组可以包括一组五元组值。例如,数据分组的一组五元组值可以包括源ip地址值、源端口值、目的地ip地址值、目的地端口值和与数据分组相关联的协议。如本文所述,一组六元组值可用于指代spi值和一组五元组值。也就是说,一组六元组值可以包括源ip地址值、源端口值、目的地ip地址值、目的地端口值、与数据分组关联的协议以及spi值。然而,可以使用不同的值。
[0036]
在一些情况下,负载平衡器可以确定将数据分组发送到支持该服务的一组服务器或节点中的服务器(例如,数据节点)。例如,至少部分地基于spi值和/或该组五元组值,负载平衡器可以确定将数据分组发送到服务器。在一些示例中,负载平衡器可以接收表示spi值和与客户端设备相关联的该组五元组值之间的关联的数据,并且确定向服务器发送数据分组可以进一步至少部分地基于该数据。也就是说,负载平衡器可以用指示spi值和五元组值之间的关联的映射来更新。在一些示例中,确定向服务器发送数据分组可以至少部分地基于计算表示spi值和/或该组五元组值的散列值。负载平衡器可以使用散列函数来计算散列。附加地或替代地,负载平衡器可以至少部分地基于一个或多个路由策略(例如,ecmp)来确定将数据分组发送到服务器。
[0037]
在一些示例中,该方法可以包括将数据分组发送到服务器。另外,可以通过网络发送数据分组,使得根据特定的qos性能度量和/或流量类别来处理数据分组。例如,如果spi值包括关于要根据其处理数据分组的特定流量类别和/或qos性能度量的指示,则负载平衡器可以根据该特定流量类别和/或qos性能度量通过网络发送分组。
[0038]
在附加或替代示例中,该方法可以包括生成第二spi值以供客户端设备用于数据平面流量。第二spi值可以标识第二sa。第二spi值可以由控制节点生成。在一些示例中,生成第二spi值可以至少部分地基于对请求分组进行分类以确定与请求分组相关联的流量类别,如上所述。在生成第二spi之后,该方法可以包括向客户端设备发送关于第二spi值的指示。在一些示例中,控制节点可以执行直接服务器返回(dsr)以将关于第二spi值的指示发送到客户端设备。
[0039]
在一些示例中,该方法可以包括在负载平衡器处接收包括第二spi值的第二数据分组。另外,第二数据分组可以包括该组五元组值、该组五元组值的一部分或新的一组五元组值。在一些情况下,该组五元组值可以指示第二数据分组是由客户端设备或不同的客户端设备发送的。至少部分地基于包括第二spi值和/或该组五元组值的第二数据分组,负载平衡器可以将第二数据分组发送到服务器组中的第二服务器(例如,第二数据节点)。在一些示例中,第二spi值的第一部分可以对应于第二流量类别,第二流量类别与第二qos性能度量相关联。这样,至少部分地基于包括第二spi值的第二数据分组,负载平衡器可以通过网络发送第二数据分组,使得根据第二qos性能度量来处理第二数据分组。
[0040]
如上所述,本文描述的技术的一个方面还可以包括添加对后端工作者节点(例如数据节点)的支持以向负载平衡器发送信号以指示工作者节点即将从后端工作者节点队列中移除。因此,在附加或替代示例中,该方法可以包括在负载平衡器处从客户端设备接收具有第一spi值和一组五元组值的第一数据平面流量。第一spi值可以标识客户端设备和第一
节点之间的第一安全关联(sa)。
[0041]
在一些示例中,该方法可以包括将第一数据平面流量发送到一组节点中的第一节点。在至少一个示例中,第一节点可以包括一组数据节点中的第一数据节点。第一节点可以与第一加密隧道(例如,ipsec sa)相关联。在一些示例中,向第一节点发送第一数据平面流量可以至少部分地基于第一spi值和该组五元组值。例如,负载平衡器可以计算表示第一spi值和该组五元组值的散列值(例如,六元组)。至少部分地基于散列值,负载平衡器可以根据ecmp路由策略将第一数据平面流量发送到第一节点。
[0042]
在各种示例中,该方法可以包括在负载平衡器处接收关于将从客户端设备接收的附加数据平面流量将被发送到该组节点中的第二节点。在至少一个示例中,第二节点可以包括该组数据节点中的第二数据节点。第二节点可以与第二加密隧道(例如,第二ipsec sa)相关联。在一些情况下,该指示可以包括至少一部分第一数据平面流量要被发送到第二节点的指示。也就是说,该指示可以通知负载平衡器它需要调整它将数据平面流量发送到的位置。例如,与第一节点相关联的负载容量可以达到或超过阈值负载容量。附加地或替代地,该指示可以通知负载平衡器第一节点将要从该组节点中移除(例如,脱机、被服务等)。
[0043]
在一些示例中,与网络相关联的控制器可以将指示发送到负载平衡器或使指示被发送。例如,控制器可以从该组节点接收遥测数据。至少部分地基于遥测数据,控制器可以确定负载平衡器将调整它将数据平面流量和/或控制平面流量发送到的位置。例如,遥测数据可以指示与该组节点中的相应节点相关联的负载容量。附加地或替代地,遥测数据可以指示与该组节点中的相应节点相关联的状态(例如,节点是否处于不健康、挂起或崩溃状态,主机是否要轮换等)。因此,控制器可以向负载平衡器发送指示和/或在一些示例中,向第一节点发送通知以提示第一节点向负载平衡器发送指示。在一些示例中,控制器可以包括分布式系统,其包括键值存储装置。
[0044]
至少部分地基于该指示,在一些示例中,负载平衡器和/或控制器可以提示第二节点提供一个或多个资源,使得第一数据平面流量的一部分可以被发送到第二节点。一个或多个资源可以包括接口、信道、计算资源等。以此方式,通过提示第二节点提供一个或多个资源,第二节点可以在数据平面流量被发送到第二节点之前“预热”。在部分数据平面流量从第一节点重定向到第二节点的示例中,预热或预配置第二节点可以有助于减少停机时间和/或临时服务中断,同时第二节点和客户端设备协商新的加密连接。在至少一个示例中,提示第二节点提供一个或多个资源可以包括生成和/或发送空封装安全有效载荷(esp)分组到第二节点。空esp分组可以包括互联网协议(ip)地址和与客户端设备关联的端口,以及在某些情况下的其他五元组值。
[0045]
在一些示例中,负载平衡器和/或控制器可以向第三节点发送请求以供第三节点生成第二spi值。负载平衡器和/或控制器可以至少部分地基于该指示来发送请求。在至少一个示例中,第三节点包括一组控制节点中的第一控制节点(例如,ike节点)。此外,该请求可以包括“密钥更新(rekey)”请求。即,该请求可以是第三节点在客户端设备和第二节点之间创建第二sa以代替客户端设备和第一节点之间的第一sa。因此,在一些示例中,该方法可以包括在负载平衡器处接收关于第二spi值的指示。关于第二spi值的指示可以包括关于第二spi值与该组五元组值之间的关联的指示。
[0046]
在一些示例中,该方法可以包括在负载平衡器处并且从客户端设备接收具有第二
spi值和该组五元组值的第二数据平面流量。第二数据平面流量可以包括负载平衡器先前发送到第一节点的第一数据平面流量的一些(例如,一部分)或全部。至少部分地基于具有第二spi值和该组五元组值的第二数据平面流量,该方法可以包括,在一些情况下,确定第二数据平面流量包括第一数据平面流量的一些(例如,一部分)或全部。例如,负载平衡器可能不知道第二spi值,并且负载平衡器可以跟踪与特定的一组五元组值相关联的所有spi值。一旦负载平衡器发出密钥更新请求,它可以开始监视与该组五元组值相关的新的/未知的spi,并将所有具有新的/未知的spi的数据平面流量发送到第二节点。
[0047]
在一些示例中,至少部分地基于第二spi值和该组五元组值,该方法可以包括将第二数据平面流量发送到第二节点。另外,在一些情况下,该方法可以包括去除第一spi值和该组五元组值之间的第一关联和/或存储第二spi值和该组五元组值之间的第二关联。
[0048]
现在将在下面参考附图更全面地描述本公开的某些实施方式和实施例,其中示出了各个方面。然而,各个方面可以以许多不同的形式来实现,并且不应被解释为限于本文阐述的实现方式。例如,虽然本文的许多示例是针对ecmp路由进行描述的,但是应当理解,可以使用其他路由策略。此外,虽然许多示例被示出为分布式系统,但是应当理解,所描述的各种过程和方法可以由更多或更少的设备来执行。如本文所述,本公开包含实施例的变体。相同的数字始终指代相同的元素。
[0049]
图1示出了包括隧道通信会话的联网环境102的示例系统架构100的示意图,该隧道通信会话包括分离的控制平面和数据平面流量流。通常,联网环境102可以包括容纳或位于一个或多个数据中心104中的设备,该数据中心104可以位于不同的物理位置。例如,联网环境102可以由公共云计算平台、私有/企业计算平台和/或其任何组合中的设备的网络支持。一个或多个数据中心104可以是被指定来存储作为联网环境102的一部分的联网设备的位于地理区域上的物理设施或建筑物。数据中心104可以包括各种网络设备,以及用于电源、数据通信连接、环境控制和各种安全设备的冗余或备份组件和基础设施。在一些示例中,数据中心104可以包括一个或多个虚拟数据中心,它们是专门为企业需求和/或基于云的服务提供商需求而设计的云基础设施资源的池或集合。通常,数据中心104(物理的和/或虚拟的)可以提供诸如处理器(cpu)、存储器(ram)、存储装置(磁盘)和网络(带宽)之类的基本资源。然而,在一些示例中,联网环境102中的设备可能不位于明确定义的数据中心104中,而是可以位于其他位置或建筑物中。
[0050]
联网环境102可以通过一个或多个网络108被客户端设备106访问。联网环境102和网络108各自可以分别包括一个或多个由任何可行的通信技术(例如有线和/或无线模态和/或技术)实现的网络。联网环境102和网络108各自可以包括个域网(pan)、局域网(lan)、校园网(can)、城域网(man)、外联网、内联网、互联网、短距离无线通信网络(例如zigbee、蓝牙等)、虚拟专用网(vpn)、广域网(wan)-集中式和/或分布式-和/或其任何组合、排列和/或聚合。联网环境102可以包括通过计算机网络中的节点将分组从一个网络段中继到另一网络段的设备、虚拟资源或其他节点。
[0051]
在一些示例中,联网环境102可以提供一个或多个服务110、托管一个或多个服务110、提供到一个或多个服务110的连接或以其他方式支持一个或多个服务110以供客户端设备106连接和使用。客户端设备106可以包括被配置为在网络108上使用各种通信协议(例如,vpn、ssl、tls、dtls和/或任何其他协议)进行通信的任何类型的设备。例如,客户端设备
106可以包括个人用户设备(例如,台式计算机、膝上型计算机、电话、平板电脑、可穿戴设备、诸如电视等娱乐设备等)、网络设备(例如,服务器、路由器、交换机、接入点等)和/或任何其他类型的计算设备。
[0052]
在一些示例中,联网环境102可以包括边缘路由器112(1)和112(2)(下文统称为“边缘路由器112”)、负载平衡器114(1)-114(n)(下文统称为“负载平衡器114”)(其中n表示大于或等于一的任何数目)、数据节点116(1)-116(n)、控制节点118(1)-118(n)、防火墙节点120(1)-120(n)、键值存储装置122和控制器124。在各种示例中,联网环境102的各种系统/设备/节点可以经由与联网环境102相关联的管理平面和/或消息总线相互通信。例如,与联网环境102相关联的公共消息总线可以使数据节点能够向负载平衡器发信号通知它即将从数据节点队列中移除,负载平衡器需要调整它将流发生到的位置,等等。此外,与联网环境102相关联的消息总线可以使联网环境102的任何设备/系统/节点能够直接相互通信。
[0053]
在某些示例中,边缘路由器112和负载平衡器114可以使用ecmp,ecmp是一种策略,其中到单个目的地的下一跳分组转发可以发生在多个“最佳路径”上,这些路径在路由度量计算中并列首位。此外,边缘路由器112和负载平衡器114可以结合或替代ecmp路由使用任何路由策略,例如开放最短路径优先(ospf)、中间系统到中间系统(isis)、增强型内部网关路由协议(eigrp)、域名系统(dns)负载平衡和/或边界网关协议(bgp)。虽然图1中示出为单独的实体,但要理解的是,在某些情况下,边缘路由器112和负载平衡器114可以驻留在相同的硬件设备和/或节点上。
[0054]
在某些情况下,边缘路由器112可以基于网络五元组的散列来平衡流量126,以便将分组路由到负载平衡器114。流量126可以包括控制平面流量128和数据平面流量130。此外,负载平衡器114可以基于网络六元组的散列来平衡流量126,以便将控制平面流量128路由到控制节点118并将数据平面流量130路由到数据节点116。分组的网络六元组可以包括分组的spi值、源ip地址、源端口、目的地ip地址、目的地端口和协议。
[0055]
如图所示,联网环境102可以包括数据节点116(1)-116(n)(下文统称为“数据节点116”)(其中n表示大于或等于一的任何数目)。在一些示例中,数据节点116可以代表联网环境102处理数据平面流量130。数据平面流量130可以包括与ipsec连接相关联的esp流量。在一些示例中,数据节点116的数据节点116(1)可以与一个或多个ipsec安全关联相关联。此外,数据节点116可以将数据平面流量130转发到一个或多个下游节点和/或设备,例如防火墙节点120(1)-120(n)(下文统称为“防火墙节点120”)(其中n表示大于或等于一的任何数目)。在一些示例中,数据节点116中的第一数据节点可以与第一流量类别相关联,数据节点116中的第二数据节点可以与第二流量类别相关联,等等。附加地或替代地,数据节点116中的第一数据节点的第一接口可以与第一流量类别相关联,数据节点116中的第一数据节点的第二接口可以与第二流量类别相关联,等等。
[0056]
联网环境102还可以包括一个或多个控制节点118(1)-118(n)(下文统称为“控制节点118”)(其中n表示大于或等于一的任何数目)。在一些示例中,控制节点118可以代表联网环境102处理控制平面流量128。控制平面流量128可以包括与ipsec连接相关联的ike流量。
[0057]
如图所示,数据节点116和控制节点118都可以执行直接服务器返回(dsr)以将返回流量132发送回客户端设备106。即,数据节点116和控制节点118可以经由边缘路由器112
(1)向客户端设备106发送返回流量132,绕过负载平衡器114。附加地或替代地,数据节点116和控制节点118可以绕过边缘路由器112(1)将返回流量132直接发送到客户端设备。
[0058]
联网环境102还可以包括键值存储装置122和控制器124。键值存储装置122可以包括一个或多个数据库,这些数据库可被联网环境102的各种节点和设备访问。在一些示例中,负载平衡器114、数据节点116、控制节点118和联网环境102的其他节点和/或设备可以从键值存储装置122读取数据和向键值存储装置122写入数据。键值存储装置122可以存储spi值和sa之间的关联、spi值和五元组值的集合等等。在一些示例中,控制器124可以从数据节点116和/或控制节点118接收遥测数据,并且至少部分地基于遥测数据来确定与数据节点116和/或控制节点118中的各个节点相关联的状态。例如,控制器124可以接收指示与数据节点116(1)相关联的负载容量的遥测数据。控制器124还可以确定负载容量是否满足或超过阈值负载容量,并且如果是,则控制器124可以提示数据节点116(1)向负载平衡器114(1)发送通知以请求负载平衡器114(1)调整它将数据平面流量130发送到的位置。
[0059]
尽管图1中描绘为单独的硬件组件,应当理解,边缘路由器112、负载平衡器114、数据节点116、控制节点118、防火墙节点120、键值存储装置122和/或控制器124可以是至少部分驻留在存储器中的软件组件。以这种方式,一个或多个处理器可以执行指令,这些指令使一个或多个处理器执行本文关于边缘路由器112、负载平衡器114、数据节点116、控制节点118、防火墙节点120、键值存储装置122和/或控制器124所描述的全部操作。在某些情况下,边缘路由器112、负载平衡器114、数据节点116、控制节点118、防火墙节点120、键值存储装置122和/或控制器124可以是驻留在独立设备或独立设备系统中的单独的硬件组件和/或软件组件。附加地或替代地,边缘路由器112、负载平衡器114、数据节点116、控制节点118、防火墙节点120、键值存储装置122和/或控制器124可以包括任何类型的网络设备,例如服务器、交换机、路由器、集线器、网桥、网关、调制解调器、中继器、接入点等。
[0060]
图2示出了示例流量流200的示意图,其中负载平衡器114(1)根据一个或多个路由策略将流量发送到下游节点。例如,负载平衡器114(1)可以接收来自客户端设备(例如一个或多个客户端设备106)的传入隧道流量202。在一些情况下,传入隧道流量202可以包括控制平面流量128和/或数据平面流量130。另外,传入隧道流量202可以包括spi值和一组五元组值。
[0061]
在一些示例中,当负载平衡器114(1)接收传入隧道流量202时,负载平衡器114(1)可以计算表示传入隧道流量202的spi值和该组五元组值的散列值。负载平衡器114(1)然后可以至少部分地基于散列值并使用ecmp路由策略来确定数据节点116或控制节点118中的特定节点,传入隧道流量202将被发送到该特定节点。例如,如果传入隧道流量202包括控制平面流量128(例如,ike流量),则负载平衡器114(1)可以至少部分地基于散列值将控制平面流量128发送到控制节点118之一。同样,如果传入隧道流量202包括数据平面流量130(例如,esp流量),则负载平衡器114(1)可以至少部分地基于散列值将数据平面流量130发送到数据节点116之一。
[0062]
图3示出了用于使用分组头部的spi值建立流量的负载平衡的通信会话的各个节点和/或设备之间的示例流量流300的数据流图。示例流量流300包括客户端302、路由器/负载平衡器304、第一头端306和第二头端308。在示例中,第一头端306和第二头端308可以包括数据节点、控制节点、服务器等。例如,第一头端306可以包括控制节点并且第二头端308
可以包括数据节点。
[0063]
为了开始示例流量流300,客户端302向路由器/负载平衡器304发送连接请求分组310。连接请求分组310可以指示建立加密隧道以使得流量可以从客户端302向第二头端308流动的请求。连接请求分组310可以包括一组五元组值。路由器/负载平衡器304在接收到连接请求分组310后,可以将连接请求分组310发送到第一头端306。路由器/负载平衡器304可以至少部分地基于计算表示包括在连接请求分组310中的该组五元组值的散列值来确定向第一头端306发送连接请求分组310。附加地或替代地,路由器/负载平衡器304可以至少部分地基于ecmp路由策略来确定将连接请求分组310发送到第一头端306。
[0064]
在接收到连接请求分组310之后,第一头端306可以与客户端302建立ike会话314。以这种方式,ike流量可以在客户端302和第一头端306之间流动。在某些情况下,建立ike会话314可以包括验证与客户端相关联的用户302,例如通过确定用户的身份。一旦建立了ike会话,第一头端就可以向客户端302发送回复分组316。回复分组316可以指示ike会话已建立。
[0065]
客户端302然后可以将esp流量318发送到路由器/负载平衡器304,并且路由器/负载平衡器304可以将该esp流量318转发到第二头端308。在接收到esp流量318之后,第二头端308可以生成spi值320以供客户端302用于通过esp信道发送数据平面流量。第二头端308还可以进一步将spi值与该组五元组值相关联。以此方式,第二头端308可以用五元组和spi映射322更新路由器/负载平衡器304。在某些情况下,五元组和spi映射322可以包括散列值。附加地或替代地,五元组和spi映射322可以指示包括某些五元组值集合和某些spi值的未来数据平面分组将被发送到第二头端308。第二头端308然后可以将回复分组324发送回客户端302。回复分组324可以指示客户端302可以开始使用esp信道或加密隧道来发送数据平面流量326。
[0066]
客户端302在接收到回复分组324之后,可以开始通过esp信道发送数据平面流量326。当路由器/负载平衡器304接收到数据平面流量时,路由器/负载平衡器304可以计算表示网络五元组的散列值和spi值328。例如,数据平面流量326的分组可以包括spi值和网络五元组。至少部分地基于计算散列,路由器/负载平衡器304可以将数据平面流量326发送到第二头端308。例如,路由器/负载平衡器304可以至少部分地基于五元组和spi映射322将数据平面流量326发送到第二头端308。
[0067]
图4a和图4b示出了用于指示分组头部的spi值和/或spi值字段中的qos类型信息的通信会话的各个节点和/或设备之间的示例流量流400(1)和400(2)的数据流图。示例流量流400(1)和400(2)可以包括客户端302、路由器/负载平衡器304、ike节点402和分类器404。
[0068]
关于图4a,客户端302可以向路由器/负载平衡器304发送连接请求分组406。在一些示例中,连接请求分组406可以包括ike sa init请求分组。连接请求分组406可以指示建立加密隧道(例如,ipsec连接)以供客户端302用于向服务发送数据和/或从服务接收数据的请求。路由器/负载平衡器304在接收到连接请求分组406后,可以调用分类器404来确定与连接请求分组406相关联的流量类别。例如,连接请求分组304可以指示客户端302希望发送和/或接收的流量类型(例如,语音、视频、音频、网络等),并且分类器404可以被配置为确定那是什么类型的流量。附加地或替代地,连接请求分组406可以包括建立多个连接的请
求,每个连接与不同的流量类别和/或优先级相关联。在一些示例中,调用分类器404可以包括由路由器/负载平衡器304向分类器404发送连接请求分组406。
[0069]
在一些示例中,分类器404可以对数据分组408进行操作以确定与连接请求数据分组406相关联的流量类别。例如,分类器404可以确定连接请求分组406包括建立语音流量信道、视频流量信道、音频流量信道、网络流量信道等中的一个或多个的请求。分类器404可以在确定流量类别之后发送指示与连接请求分组406相关联的流量类别的分类分组410。分类器404可以将分类分组410发送到路由器/负载平衡器304。继而,路由器/负载平衡器304可以将关于流量类别分类的指示注入到连接请求分组406的分组头部中。以此方式,连接请求分组406可以包括更新的连接请求分组414,其在其分组头部中包括关于流量类别分类信息的指示。
[0070]
路由器/负载平衡器304可以将更新的连接请求分组414发送到诸如ike节点402的控制节点。ike节点402可以接收更新的连接请求分组414。至少部分地基于包括在更新的连接请求分组414的分组头部中的流量类别分类信息,ike节点402可以生成一个或多个spi值416。一个或多个spi值416可以全部或部分地指示要根据其处理数据平面流量的流量类别。也就是说,特定的spi值可以包括唯一的位组合,并且该唯一的位组合的第一位组合(例如,spi值的第一部分)可以指示流量类别,并且该唯一的位组合的第二位组合(例如,spi值的第二部分)可以标识客户端302和与加密隧道连接相关联的一个或多个主机之间的安全关联。换句话说,数据平面分组头部的spi值字段可以包括指示流量类别的第一位组合和标识客户端302和与加密隧道连接相关联的一个或多个主机之间的安全关联的第二位组合。
[0071]
在生成一个或多个spi值416之后,ike节点402可以发送响应分组418。在一些情况下,响应分组418可以包括ike init响应分组。附加地或替代地,响应分组418可以包括一个或多个spi值416中的一些或全部。以此方式,客户端302可以使用一个或多个spi值416中的第一spi值以根据与第一qos度量相关联的第一流量类别发送第一数据平面流量并且可以使用一个或多个spi值416中的第二spi值以根据与第二qos度量相关联的第二流量类别发送第二数据平面流量。
[0072]
关于图4b,客户端302可以向路由器/负载平衡器304发送连接请求分组406。在一些示例中,连接请求分组406可以包括指示ike节点402建立ipsec安全关联的请求的ike sa init请求分组。连接请求分组406可以指示用于建立加密隧道(例如,ipsec连接)以供客户端302用于向服务发送数据和/或从服务接收数据的请求。路由器/负载平衡器304在接收到连接请求分组304后,可以向ike节点402发送连接请求分组406。在一些示例中,路由器/负载平衡器304可以计算表示包括在连接请求分组406中的网络五元组的散列值,并且至少部分地基于该散列值,将连接请求分组406发送到ike节点402。例如,路由器/负载平衡器304可以使用ecmp路由策略并且至少部分地基于散列值来确定向ike节点402发送连接请求分组。
[0073]
为了使ike节点402生成一个或多个匹配正确流量类别的spi值,ike节点402可以在为客户端302建立连接之前调用分类器404。例如,ike节点402可以将连接请求分组406或连接请求分组406的一部分发送到分类器,使得分类器404可以确定与连接请求分组406相关联的流量类别。例如,连接请求分组406可以指示客户端302希望发送和/或接收的流量类型(例如,语音、视频、音频、网络等),并且分类器404可以被配置为确定那是什么类型的流
量。附加地或替代地,连接请求分组406可以包括建立多个连接的请求,每个连接与不同的流量类别和/或优先级相关联。
[0074]
在一些示例中,分类器404可以对连接请求分组408进行操作以确定与连接请求分组406相关联的流量类别。例如,分类器404可以确定连接请求分组406包括建立语音流量信道、视频流量信道、音频流量信道、网络流量信道等中的一个或多个的请求。分类器404可以在确定流量类别之后发送指示与连接请求分组406相关联的流量类别的分类分组410。分类器404可以将分类分组410发送到ike节点402。
[0075]
在一些示例中,ike节点402可以接收分类分组410。至少部分地基于与连接请求分组406相关联的流量类别,ike节点402可以生成一个或多个spi值416。一个或多个spi值416可以全部或部分地指示要根据其处理数据平面流量的流量类别。也就是说,特定的spi值可以包括唯一的位组合,并且该唯一的位组合的第一位组合(例如,spi值的第一部分)可以指示流量类别,并且该唯一的位组合的第二位组合(例如,spi值的第二部分)可以标识客户端302和与加密隧道连接相关联的一个或多个主机之间的安全关联。换句话说,数据平面分组头部的spi值字段可以包括指示流量类别的第一位组合和标识客户端302和与加密隧道连接相关联的一个或多个主机之间的安全关联的第二位组合。
[0076]
在生成一个或多个spi值416之后,ike节点402可以向客户端302发送响应分组418。在一些情况下,响应分组418可以包括ike init响应分组。附加地或替代地,响应分组418可以包括一个或多个spi值416中的一些或全部。以此方式,客户端302可以使用一个或多个spi值416中的第一spi值以根据与第一qos度量相关联的第一流量类别发送第一数据平面流量并且可以使用一个或多个spi值416中的第二spi值以根据与第二qos度量相关联的第二流量类别发送第二数据平面流量。
[0077]
图5a-图5c共同示出了与执行加密隧道迁移相关联的示例数据流500的示意图。在“1”,负载平衡器114(1)可以从一个或多个客户端设备106接收流量502,并将流量502转发到一个或多个后端节点504(l)-504(n)(下文统称为“后端节点504)(其中n表示大于或等于一的任何数目)。流量502可以包括要发送到节点504(1)的第一流量502(1)、要发送到节点504(2)的第二流量502(2)和要发送到节点504(n)的第n流量502(n)(其中n表示大于或等于一的任何数目)。另外,流量502可以包括数据平面流量和/或控制平面流量。
[0078]
在一些示例中,负载平衡器114(1)可以确定第一流量502(1)、第二流量502(2)和第n流量502(n)将至少部分基于ecmp路由策略分别被发送到节点504(1)、504(2)和504(n)。ecmp路由策略可以使用六元组逻辑来确定后端节点504中的哪个节点发送流量502的各个分组。六元组逻辑可以包括单个分组的spi值和单个分组的一组五元组值(源地址、目的地地址、源端口、目的地端口和协议)。例如,第一流量502(1)、第二流量502(2)和第n流量502(n)的各个分组可以各自包括相应的spi值和相应的一组五元组值,并且负载平衡器114(1)可以为每个单独的分组计算相应的散列值,各自的散列值表示每个单独的分组的相应的spi值和相应的一组五元组值。以此方式,流量502的每个单独分组的每个相应散列值可以指示单独分组要被发送到后端节点504中的哪个节点。
[0079]
在“2”,控制器124可以接收与后端节点504相关联的遥测数据506。例如,节点504(1)可以向控制器124发送第一遥测数据,节点504(2)可以向控制器124发送第二遥测数据,并且节点504(n)可以向控制器124发送第n遥测数据。在一些示例中,遥测数据506可以指示
与后端节点504中的每一个相关联的负载容量。也就是说,遥测数据506可以指示节点504(1)以27%的容量操作,节点504(2)以100%的容量操作,并且节点504(n)以17%的容量操作。在一些示例中,与后端节点关联的负载容量可以包括与后端节点关联的隧道负载容量、后端节点可用/使用的硬件资源量、后端节点可用/使用的虚拟计算资源量等中的一个或多个。
[0080]
在“3”,控制器124可以发送指示508以供负载平衡器114(1)调整数据流。即,调整负载平衡器114(1)将流量502的各个部分发送到的位置(例如,后端节点504的哪个节点)。例如,至少部分地基于遥测数据506,控制器124可以确定节点504(2)的负载容量超过阈值负载容量。阈值负载容量可以包括例如百分比值(例如,80%、85%、90%、100%等)。此外,阈值负载容量可以是动态的并且根据一天中的时间、一周中的日子、当前需求等而改变(例如,从80%到90%)。在一些情况下,控制器124可以将指示直接发送到负载平衡器114(1)。附加地或替代地,控制器124可以将指示发送到节点504(2),如图5b所示。
[0081]
在“4”,节点504(2)可以至少部分地基于从控制器124接收到指示来发送或转发指示508到负载平衡器114(1)。指示508可以被配置为提示负载平衡器114(1)执行一个或多个动作以调整它将数据流发送到的位置。因此,在“5”,负载平衡器114(1)至少部分地基于接收到指示508,可以向节点504(n)发送指示510以提示节点504(n)准备一个或多个接口使得第二流量502(2)的一部分可以被发送/重定向到节点504(n)。在至少一个示例中,节点504(n)可以包括用于处理esp流量的数据节点并且指示510可以包括空esp分组,该空esp分组包括与一个或多个客户端设备106的客户端设备相关联的源ip地址和端口。以此方式,当节点504(n)接收到空esp分组时,节点504(n)可以开始设置接口以准备接收ipsec安全关联。另外,负载平衡器114(1)可以向负责与ipsec安全关联相关联的相应ike会话的控制节点发送密钥更新请求。
[0082]
在“6”,负载平衡器114(1)可以开始向节点504(n)发送附加流量512。附加流量512可以包括之前被发送到节点504(2)的第二流量502(2)的至少一部分。以这种方式,节点504(2)的负载容量可以降低(例如,到75%)并且节点504(n)的负载容量可以增加(例如,到42%)。在一些示例中,负载平衡器114(1)可以至少部分地基于接收到调整数据流的指示508而开始向节点504(n)发送附加流量512。此外,负载平衡器114(1)可以确定附加流量512将至少部分地基于附加流量512的单独分组中包括的spi值来被发送到节点504(n)。例如,在一些示例中,至少部分地基于发送密钥更新请求的负载平衡器114(1),负载平衡器114(1)可能不知道包括在单独分组中的spi值,因为ike节点可能已发布新的spi值以供客户端设备使用。因此,负载平衡器114(1)可以识别包括在单独分组中的一组五元组值并且至少部分地基于识别该组五元组值并且至少部分地基于发布更新密钥请求来确定附加流量512将被发送到节点504(n)。另外,负载平衡器114(1)可以存储新的/未知的spi值和该组五元组值之间的关联。
[0083]
图6、图7、图8和图9示出了与本文呈现的用于基于spi值对加密流量进行负载平衡的技术相关联的各种示例方法的逻辑流程图。本文参考图6、图7、图8和图9描述的逻辑操作可以被实现为(1)作为在计算系统上运行的一系列计算机实现的动作或程序模块和/或(2)作为计算系统内互连的机器逻辑电路或电路模块。
[0084]
本文描述的各种组件的实现是取决于计算系统的性能和其他要求的选择问题。因
此,本文描述的逻辑操作被不同地称为操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可以用软件、固件、专用数字逻辑及其任意组合来实现。还应当理解,可以执行比图6、图7、图8和图9中所示以及本文描述的更多或更少的操作。这些操作也可以并行执行,或者以与本文描述的顺序不同的顺序执行。这些操作中的一些或全部也可以由具体标识的那些组件之外的组件执行。尽管本公开中描述的技术是参考特定组件的,但是在其他示例中,这些技术可以由更少的组件、更多的组件、不同的组件或组件的任何配置来实现。
[0085]
图6示出了用于通过使用spi值来维护分组的qos处理的示例方法600的逻辑流程图。示例方法600开始于操作602,其包括从客户端设备并且在网络的网络设备处接收通过网络建立加密隧道以使得数据平面流量可以经由加密隧道在客户端设备和服务之间流动的请求。例如,负载平衡器114(1)和/或控制节点118(1)可以从一个或多个客户端设备106中的第一客户端设备接收请求。此外,在一些示例中,该请求可以包括ike sa init请求分组以在第一客户端设备和第一数据节点116(1)之间建立ipsec sa,使得数据平面流量130可以在客户端设备和服务110之间流动。
[0086]
在操作604,示例方法600包括确定数据平面流量属于一组流量类别中的特定流量类别,该特定流量类别与特定服务质量(qos)性能度量相关联。在一些示例中,控制节点118(1)可以调用分类器来确定特定流量类别。附加地或替代地,负载平衡器114(1)可以调用分类器来确定特定流量类别。
[0087]
在操作606,示例方法600包括生成要由客户端设备用于数据平面流量的安全参数索引(spi)值,该spi值对应于特定流量类别。例如,控制节点118(1)可以生成要由一个或多个客户端设备106中的第一客户端设备使用的spi值。spi值和/或spi值字段的一部分可以对应于特定的流量类别。也就是说,在一些示例中,spi值可以包括唯一的位组合,并且该唯一的位组合的部分位可以对应于特定的流量类别。
[0088]
在操作608,示例方法600包括向客户端设备发送关于spi值的指示。例如,控制节点118(1)可以通过执行直接服务器返回(dsr)以至少绕过负载平衡器114,将关于spi值的指示直接发送到一个或多个客户端设备106中的第一客户端设备。在一些示例中,该指示可以包括指示已经为一个或多个客户端设备106中的第一客户端设备建立了ipsec sa的ike init响应分组。
[0089]
在操作610,示例方法600包括在与网络相关联的负载平衡节点处接收包括spi值的数据平面流量的数据分组。例如,负载平衡器114(1)可以从边缘路由器112(1)接收数据平面流量130的数据分组,或者在负载平衡技术可以由边缘路由器112(1)执行的情况下,直接从第一客户端设备接收数据平面流量130的数据分组。在一些情况下,边缘路由器112(1)可以基于计算表示包括在数据分组中的一组网络五元组值的散列值来执行ecmp路由策略并且确定将数据分组发送到负载平衡器114(1)。
[0090]
在操作612,示例方法600包括至少部分地基于包括spi值的数据分组,通过网络发送数据分组,使得根据特定qos性能度量来处理数据分组。例如,负载平衡器114(1)可以基于执行ecmp路由策略将数据分组发送到数据节点116(1),该ecmp路由策略包括计算表示spi值和包括在数据分组中的该组网络五元组值的散列值。另外,数据节点116(1)可以与流量类别相关联,并且负载平衡器114(1)可以至少部分地基于散列值和/或确定spi值与流量类别相关联来确定将数据分组发送到数据节点116(1)。
[0091]
图7示出了用于基于分组头部的spi值来对流量进行负载平衡的示例方法700的逻辑流程图。示例方法700开始于操作702,其包括从客户端设备并且在网络的网络设备处接收通过网络建立加密隧道以使得数据平面流量可以经由加密隧道在客户端设备和服务之间流动的请求。例如,负载平衡器114(1)和/或控制节点118(1)可以从一个或多个客户端设备106中的第一客户端设备接收请求。此外,在一些示例中,该请求可以包括ike sa init请求分组以在第一客户端设备和第一数据节点116(1)之间建立ipsec sa,使得数据平面流量130可以在客户端设备和服务110之间流动。
[0092]
在操作704,示例方法700包括生成要由客户端设备用于数据平面流量的安全参数索引(spi)值。例如,控制节点118(1)可以生成要由一个或多个客户端设备118(1)中的第一客户端设备使用的spi值。在一些示例中,spi值可以标识第一客户端设备与一个或多个数据节点116和/或数据节点116的一个或多个接口之间的ipsec sa。
[0093]
在操作706,示例方法700包括向客户端设备发送关于spi值的指示。例如,控制节点118(1)可以通过执行直接服务器返回(dsr)以至少绕过负载平衡器114,将关于spi值的指示直接发送到一个或多个客户端设备106中的第一客户端设备。在一些示例中,该指示可以包括指示已经为一个或多个客户端设备106中的第一客户端设备建立了ipsec sa的ike init响应分组。
[0094]
在操作708,示例方法700包括在负载平衡器处接收包括spi值的数据分组。例如,负载平衡器114(1)可以从边缘路由器112(1)接收数据平面流量130的数据分组,或者在负载平衡技术可以由边缘路由器112(1)执行的情况下,直接从第一客户端设备接收数据平面流量130的数据分组。在一些情况下,边缘路由器112(1)可以基于计算表示包括在数据分组中的一组网络五元组值的散列值来执行ecmp路由策略并且确定将数据分组发送到负载平衡器114(1)。
[0095]
在操作710,示例方法700包括由负载平衡器并且至少部分地基于spi值来确定将数据分组发送到支持该服务的一组服务器中的一个服务器。在一些示例中,确定将数据分组发送到该组服务器中的服务器还可以包括确定负载平衡器和服务器之间的加密隧道,该加密隧道将用于将数据分组发送到服务器。例如,负载平衡器114(1)可以基于执行ecmp路由策略将数据分组发送到数据节点116(1),该ecmp路由策略包括计算表示spi值和包括在数据分组中的该组网络五元组值的散列值。
[0096]
在操作712,示例方法700包括将数据分组发送到服务器。例如,负载平衡器114(1)可以将数据平面流量130的数据分组发送到数据节点116(1),使得数据节点116(1)可以将数据分组转发到防火墙节点120(1),然后防火墙节点120(1)可以将数据分组向下游转发到服务110。
[0097]
图8示出了用于执行加密隧道迁移的示例方法800的逻辑流程图。示例方法800开始于操作802,其包括在负载平衡器处并且从客户端设备接收具有第一安全参数索引(spi)值和一组五元组值的第一数据平面流量。例如,负载平衡器114(1)可以从边缘路由器112(1)接收第一数据平面流量,或者在负载平衡技术可以由边缘路由器112(1)执行的情况下,直接从第一客户端设备接收第一数据平面流量。在某些情况下,边缘路由器112(1)可以基于计算表示包括在第一数据平面流量中的该组网络五元组值的第一散列值来执行ecmp路由策略,并确定将第一数据平面流量发送到负载平衡器114(1)。
[0098]
在操作804,示例方法800包括至少部分地基于第一spi值将第一数据平面流量发送到第一节点,第一节点与第一加密隧道相关联。例如,负载平衡器114(1)可以将第一数据平面流量130发送到数据节点116(1)。例如,第一spi值可以标识客户端设备和数据节点116(1)之间的ipsec sa。在某些示例中,将第一数据平面流量发送到第一节点可以至少部分地基于计算表示第一spi值和第一数据平面流量的一组网络五元组值的第二散列值。
[0099]
在操作806,示例方法800包括在负载平衡器处接收从客户端设备接收的附加数据平面流量要被发送到第二节点的指示,第二节点与第二加密隧道相关联。例如,该指示可以指示第一节点正在以最大负载容量操作或者第一节点即将失去连接、离开、被服务等。负载平衡器可以从诸如控制器124的控制器和/或诸如控制节点118或数据节点116之一的节点接收指示。在一些示例中,该指示可以提示负载平衡器向控制节点118之一发送例如为客户端设备建立新的ipsec sa的密钥更新请求。附加地或替代地,该指示可以提示负载平衡器向第二数据节点(例如数据节点116(n))发送空esp分组,该空esp分组包括客户端设备的ip地址和端口,使得第二数据节点可以开始设置接口以接收附加数据平面流量。
[0100]
在操作808,示例方法800包括在负载平衡器处并且从客户端设备接收具有第二spi值和该组五元组值的第二数据平面流量。例如,负载平衡器114(1)可以从边缘路由器112(1)接收第二数据平面流量,或者在负载平衡技术可以由边缘路由器112(1)执行的情况下,直接从第一客户端设备接收第二数据平面流量。在一些情况下,边缘路由器112(1)可以基于计算第三散列值来执行ecmp路由策略,第三散列值表示包括在第二数据平面流量中的该组网络五元组值。因为数据分组包括该组网络五元组值,所以第三散列值可以等于第一散列值并且边缘路由器112(1)可以将第二数据平面流量转发到负载平衡器114(1)。
[0101]
在操作810,示例方法800包括至少部分地基于具有该组五元组值的第二数据平面流量,将第二数据平面流量发送到第二节点。例如,负载平衡器114(1)可以将第二数据平面流量发送到数据节点116(n)。在一些示例中,负载平衡器114(1)可以至少部分地基于没有识别出第二spi值而将第二数据平面流量130发送到数据节点116(n)。另外,负载平衡器114(1)可以至少部分地基于识别出第二数据平面流量130包括该组网络五元组值来向数据节点116(n)发送第二数据平面流量130。例如,负载平衡器114(1)可以不具有存储在第二spi值和该组网络五元组值之间的关联。然而,因为负载平衡器114(1)可能已经发出密钥更新请求,所以负载平衡器114(1)可以将第二spi值与该组网络五元组值相关联。换句话说,因为负载平衡器114(1)发出密钥更新请求,当负载平衡器114(1)接收到包括一组已知的网络五元组值和新的/未知的spi值的数据平面流量时,负载平衡器114(1)可以将新的/未知的spi值与已知的一组网络五元组值相关联,并且因此将数据平面流量发送到数据节点116(n)。
[0102]
图9示出了用于执行加密隧道迁移的另一示例方法900的逻辑流程图。示例方法900开始于操作902,其包括在负载平衡器处并且从客户端设备接收具有第一安全参数索引(spi)值和一组五元组值的第一数据平面流量。
[0103]
在操作904,示例方法900包括至少部分地基于第一spi值和该组五元组值将第一数据平面流量发送到第一节点。例如,负载平衡器114(1)可以将第一数据平面流量130发送到数据节点116(1)。例如,第一spi值可以标识客户端设备和数据节点116(1)之间的ipsec sa。在一些示例中,向第一节点发送第一数据平面流量可以至少部分地基于计算表示第一
spi值和第一数据平面流量的该组网络五元组值的散列值。
[0104]
在操作906,示例方法900包括在负载平衡器处接收第一数据平面流量的至少一部分要被发送到第二节点的指示。例如,该指示可以指示第一节点正在以最大负载容量操作或者第一节点即将失去连接、离开、被服务等。负载平衡器可以从诸如控制器124的控制器和/或诸如控制节点118或数据节点116之一的节点接收指示。在一些示例中,该指示可以提示负载平衡器向控制节点118之一发送例如为客户端设备建立新ipsec sa的密钥更新请求。附加地或替代地,该指示可以提示负载平衡器向第二数据节点(例如数据节点116(n))发送空esp分组,该空esp分组包括客户端设备的ip地址和端口,使得第二数据节点可以开始设置接口以接收第一数据平面流量的该部分。
[0105]
在操作908,示例方法900包括,至少部分地基于该指示,提示第二节点提供一个或多个接口,使得第一数据平面流量的至少该部分可以被发送到第二节点。例如,负载平衡器114(1)可以向数据节点116(n)发送空esp分组。空esp数据分组可以包括与客户端设备相关联的ip地址和/或端口,使得数据节点116(n)可以开始为第一数据平面流量的该部分提供一个或多个接口。
[0106]
在操作910,示例方法900包括在负载平衡器处并且从客户端设备接收具有第二spi值和该组五元组值的第二数据平面流量。第二spi值可以包括新的或未知的spi值。也就是说,负载平衡器可能尚未将第二spi值与该组五元组值相关联。在操作912,示例方法900包括至少部分地基于第二spi值和该组五元组值,确定第二数据平面流量包括第一数据平面流量的至少该部分。例如,负载平衡器114(1)可以跟踪与该组五元组值相关联的所有spi值。以此方式,如果负载平衡器114(1)发出密钥更新请求,则负载平衡器114(1)可以开始监视与该组五元组值相关的新的/未知的spi值以确定包括第一数据平面流量的该部分的第二数据平面流量,其包括该组五元组值和第二(新的/未知的)spi值。
[0107]
在操作914,示例方法900包括将第二数据平面流量发送到第二节点。例如,负载平衡器114(1)可以将第二数据平面流量发送到数据节点116(n)。在一些情况下,向第二节点发送第二数据平面流量可以至少部分地基于确定第二数据平面流量包括第一数据平面流量的该部分。附加地或替代地,向第二节点发送第二数据平面流量可以至少部分地基于ecmp路由策略并计算表示第二spi值和该组五元组值的散列值。
[0108]
图10示出了用于实现网络节点和/或设备(例如负载平衡器、控制节点、数据节点等)的示例计算机硬件架构的示意图,该网络节点和/或设备可用于实现本文呈现的各种技术的各个方面。计算机结构如图10所示,图10示出了传统的服务器计算机、网络设备、工作站、台式计算机、膝上型计算机、平板电脑、网络设备、电子阅读器、智能手机和/或其他计算设备,并且可以用于执行本文呈现的任何软件组件。计算机1000可以包括诸如服务器、交换机、路由器、集线器、网桥、网关、调制解调器、中继器、接入点等联网设备。
[0109]
计算机1000包括基板1002或“母板”,其是可以通过系统总线或其他电通信路径连接到许多组件或设备的印刷电路板。在一个说明性配置中,一个或多个中央处理单元(“cpu”)1004结合芯片组1006操作。cpu 1004可以是执行计算机1000的操作所必需的算术和逻辑操作的标准可编程处理器。
[0110]
cpu 1004通过从一个离散的物理状态转换到下一离散的物理状态(通过操纵区分和改变这些状态的开关元件)来执行操作。开关元件通常包括保持两个二进制状态之一的
电子电路,例如触发器,并且包括基于一个或多个其他开关元件的状态的逻辑组合提供输出状态的电子电路,例如逻辑门。这些基本的开关元件可以组合起来创建更复杂的逻辑电路,包括寄存器、加减法器、算术逻辑单元、浮点单元等。
[0111]
芯片组1006提供cpu 1004与基板1002上的其余组件和设备之间的接口。芯片组1006可以提供到用作计算机1000中的主存储器的ram 1008的接口。芯片组1006可以进一步提供到计算机可读存储介质的接口,计算机可读存储介质例如是只读存储器(“rom”)1010或非易失性ram(“nvram”),用于存储有助于启动计算机1000和在各种组件和设备之间传输信息的基本例程。根据本文描述的配置,rom 1010或nvram还可以存储计算机1000的操作所必需的其他软件组件。
[0112]
计算机1000可以在联网环境中使用通过网络(例如网络108和/或网络1024)到远程计算设备和计算机系统的逻辑连接进行操作。芯片组1006可以包括用于通过nic 1012提供网络连接的功能,例如千兆位以太网适配器。nic 1012能够通过网络将计算机800连接到其他计算设备。应当理解,多个nic 1012可以存在于计算机1000中,将计算机连接到其他类型的网络和远程计算机系统。在一些示例中,nic 1012可以被配置为执行至少一些本文描述的技术,并且可以包括用于执行本文描述的技术的组件。
[0113]
计算机1000可以连接到为计算机提供非易失性存储的存储设备1018。存储设备1018可以存储操作系统1020、程序1022和数据,这些数据在本文中已经被更详细地描述。存储设备1018可以通过连接到芯片组1006的存储控制器1014连接到计算机1000。存储设备1018可以由一个或多个物理存储单元组成。存储控制器1014可以通过串行附加scsi(“sas”)接口、串行高级技术附接(“sata”)接口、光纤信道(“fc”)接口或其他类型的接口与物理存储单元连接以用于在计算机和物理存储单元之间进行物理连接和传输数据。
[0114]
计算机1000可以通过变换物理存储单元的物理状态以反映正在存储的信息来将数据存储在存储设备1018上。在本说明书的不同实施例中,物理状态的具体转变可以取决于各种因素。这样的因素的示例可以包括但不限于用于实现物理存储单元的技术、存储设备1018的特征是主存储器还是辅助存储器等。
[0115]
例如,计算机1000可以通过经由存储控制器1014发出指令来将信息存储到存储设备1018,以改变磁盘驱动单元内特定位置的磁特性、光学存储单元件中特定位置的反射或折射特性、或者特定电容器、晶体管或固态存储单元中其他分立元件的电气特性。在不脱离本说明书的范围和精神的情况下,物理介质的其他转换是可能的,提供前述示例只是为了便于描述。计算机1000可以通过检测物理存储单元内的一个或多个特定位置的物理状态或特性来进一步从存储设备1018读取信息。
[0116]
除了上述大容量存储设备1018之外,计算机1000可以访问其他计算机可读存储介质以存储和取回信息,例如程序模块、数据结构或其他数据。本领域的技术人员应当理解,计算机可读存储介质是提供数据的非暂态存储并且可以被计算机1000访问的任何可用介质。在一些示例中,由系统架构100和/或其中包括的任何组件执行的操作可以由类似于计算机1000的一个或多个设备支持。换句话说,由系统架构100和/或其中包括的任何组件执行的一些或所有操作可以由在基于云的布置中操作的一个或多个计算机设备1000执行。
[0117]
作为示例而非限制,计算机可读存储介质可以包括以任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机可读存储介质包括但不限于ram、rom、可擦
除可编程rom(“eprom”)、电可擦除可编程rom(“eeprom”)、闪存或其他固态存储技术、光盘rom(“cd-rom”)、数字通用光盘(“dvd”)、高清dvd(“hd-dvd”)、blu-ray或其他光学存储设备、磁带盒、磁带、磁盘存储设备或其他磁性存储设备设备或任何其他可用于以非暂态方式存储所需信息的介质。
[0118]
如上所述,存储设备1018可以存储用于控制计算机1000的操作的操作系统1020。根据一个实施例,操作系统包括linux操作系统。根据另一个实施例,操作系统包括来自华盛顿州雷德蒙德的微软公司的server操作系统。根据进一步的实施例,操作系统可以包括unix操作系统或其变体之一。应当理解,也可以使用其他操作系统。存储设备1018可以存储计算机1000使用的其他系统或应用程序和数据。
[0119]
在一个实施例中,存储设备1018或其他计算机可读存储介质编码有计算机可执行指令,当这些指令被加载到计算机1000中时,将计算机从通用计算系统转变为能够实现本文描述的实施例的专用计算机。如上所述,这些计算机可执行指令通过指定cpu 1004如何在状态之间转换来转换计算机1000。根据一个实施例,计算机1000可以访问存储计算机可执行指令的计算机可读存储介质,这些计算机可执行指令在由计算机1000执行时执行上面关于图1至图9描述的各种过程。计算机1000还可以包括计算机可读存储介质,其上存储有用于执行本文描述的任何其他计算机实现的操作的指令。
[0120]
计算机1000还可以包括一个或多个输入/输出控制器1016,用于接收和处理来自多个输入设备的输入,这些输入设备例如是键盘、鼠标、触摸板、触摸屏、电子手写笔或其他类型的输入设备。类似地,输入/输出控制器1016可以向显示器提供输出,显示器例如是计算机监视器、平板显示器、数字投影仪、打印机或其他类型的输出设备。应当理解,计算机1000可以不包括图10所示的所有组件,可以包括未在图10中明确示出的其他组件,或者可以利用与图10中所示的架构完全不同的架构。
[0121]
如本文所述,计算机1000可以包括数据节点、控制节点、防火墙节点、边缘路由器和/或键值存储装置中的一个或多个。计算机1000可以包括一个或多个硬件处理器1004(处理器),其被配置为执行一个或多个存储的指令。处理器1004可以包括一个或多个核心。此外,计算机1000可以包括一个或多个网络接口(例如,nic 1012),其被配置为通过网络(例如网络108和1024)提供计算机1000和其他设备之间的通信。网络接口可以包括被配置为耦合到个域网(pan)、有线和无线局域网(lan)、有线和无线广域网(wan)等的设备。例如,网络接口可以包括与以太网、wi-fi
tm
等兼容的设备。
[0122]
程序1022可以包括任何类型的程序或过程以执行本公开中描述的技术以基于分组头部的spi值来对加密流量进行负载平衡,以及使用spi值指示qos并将加密连接迁移到不同的主机。
[0123]
总之,本文描述了用于基于分组头部的安全参数索引(spi)值和分组头部的五元组值集合来对加密流量进行负载平衡的技术。此外,本文还描述了用于在分组头部的spi值字段中包括服务质量(qos)类型信息的技术。qos类型信息可以指示处理数据分组所依据的特定流量类别。此外,本文还描述了用于预先配置后端主机以使得加密流量可以从另一后端主机迁移到后端主机而不引起临时服务中断的技术。
[0124]
虽然本发明是关于特定示例进行描述的,但是应当理解,本发明的范围不限于这些特定示例。例如,虽然许多示例是针对ipsec协议进行描述的,但应当理解,所描述的技术
适用于其他协议。由于为适应特定操作要求和环境而变化的其他修改和变化对于本领域技术人员而言将是显而易见的,因此本发明不被认为限于为公开目的而选择的示例,并且涵盖不构成背离本发明的真正精神和范围的所有变化和修改。
[0125]
尽管本技术描述了具有特定结构特征和/或方法动作的实施例,但应理解,权利要求不一定限于所描述的特定特征或动作。而是,具体特征和动作仅仅是说明性的一些实施例,这些实施例落在本技术的权利要求的范围内。
技术特征:
1.一种方法,包括:从客户端设备并且在网络的网络设备处接收通过所述网络建立加密隧道以使得数据平面流量经由所述加密隧道在所述客户端设备和服务之间流动的请求;确定所述数据平面流量属于一组流量类别中的特定流量类别,所述特定流量类别与特定服务质量(qos)性能度量相关联;生成要由所述客户端设备用于所述数据平面流量的安全参数索引(spi)值,所述spi值对应于所述特定流量类别;向所述客户端设备发送关于所述spi值的指示;在与所述网络相关联的负载平衡节点处接收所述数据平面流量的包括所述spi值的数据分组;以及至少部分地基于包括所述spi值的所述数据分组,通过所述网络发送所述数据分组,使得根据所述特定qos性能度量来处理所述数据分组。2.如权利要求1所述的方法,其中,生成所述spi值包括:至少部分地基于所述特定流量类别生成表示要处理的所述数据分组的所述特定qos性能度量的第一位组合;生成表示安全关联的第二位组合;以及掩蔽所述第一位组合和所述第二位组合,使得所述第一位组合包括所述spi值的第一部分并且所述第二位组合包括所述spi值的第二部分。3.如权利要求2所述的方法,其中,所述第一位组合由第一十六进制数字表示,并且所述第二位组合由多个十六进制数字表示。4.如权利要求1至3中任一项所述的方法,其中,所述spi值的第一部分是与所述特定流量类别对应的第一标识符,并且所述spi值的第二部分是与所述网络的安全关联对应的第二标识符。5.如权利要求1至4中任一项所述的方法,其中,所述数据分组是第一数据分组,所述spi值是第一spi值,所述特定流量类别是第一流量类别,并且所述特定qos性能度量是第一qos性能度量,所述方法进一步包括:在所述负载平衡节点处接收第二数据分组,所述第二数据分组包括对应于第二流量类别的第二spi值,所述第二流量类别与第二qos性能度量相关联;以及至少部分地基于包括所述第二spi值的所述第二数据分组,通过所述网络发送所述第二数据分组,使得根据所述第二qos性能度量来处理所述第二数据分组。6.如权利要求1至5中任一项所述的方法,其中通过所述网络发送所述数据分组包括至少部分地基于所述spi值和所述数据分组的五元组使用等价多路径(ecmp)路由算法通过所述网络发送所述数据分组。7.如权利要求1至6中任一项所述的方法,其中生成所述spi值包括生成要由所述客户端设备用于所述数据平面流量的多个spi值,所述多个spi值中的每一个对应于相应的流量类别,每个相应的流量类别与相应的qos性能度量相关联。8.一种系统,包括:一个或多个处理器;以及一个或多个存储指令的非暂态计算机可读介质,所述指令在由所述一个或多个处理器
执行时,使所述一个或多个处理器执行操作,所述操作包括:从客户端设备接收通过网络建立加密隧道以使得数据平面流量经由所述加密隧道在所述客户端设备和服务之间流动的请求;确定所述数据平面流量属于一组流量类别中的特定流量类别,所述特定流量类别与特定服务质量(qos)性能度量相关联;生成要由所述客户端设备用于所述数据平面流量的安全参数索引(spi)值,所述spi值对应于所述特定流量类别;向所述客户端设备发送关于所述spi值的指示;从所述客户端设备接收所述数据平面流量的包括所述spi值的数据分组;以及至少部分地基于包括所述spi值的所述数据分组,通过所述网络发送所述数据分组,使得根据所述特定qos性能度量来处理所述数据分组。9.如权利要求8所述的系统,其中,生成所述spi值包括:至少部分地基于所述特定流量类别生成表示要处理的所述数据分组的所述特定qos性能度量的第一位组合;生成表示安全关联的第二位组合;以及掩蔽所述第一位组合和所述第二位组合,使得所述第一位组合包括所述spi值的第一部分并且所述第二位组合包括所述spi值的第二部分。10.如权利要求9所述的系统,其中,所述第一位组合由第一十六进制数字表示,并且所述第二位组合由多个十六进制数字表示。11.如权利要求8至10中任一项所述的系统,其中,所述spi值的第一部分是与所述特定流量类别对应的第一标识符,并且所述spi值的第二部分是与所述网络的安全关联对应的第二标识符。12.如权利要求8至11中任一项所述的系统,其中,所述数据分组是第一数据分组,所述spi值是第一spi值,所述特定流量类别是第一流量类别,并且所述特定qos性能度量是第一qos性能度量,所述操作进一步包括:接收第二数据分组,所述第二数据分组包括对应于第二流量类别的第二spi值,所述第二流量类别与第二qos性能度量相关联;以及至少部分地基于包括所述第二spi值的所述第二数据分组,通过所述网络发送所述第二数据分组,使得根据所述第二qos性能度量来处理所述第二数据分组。13.如权利要求8至12中任一项所述的系统,其中通过所述网络发送所述数据分组包括至少部分地基于所述spi值和所述数据分组的五元组使用等价多路径(ecmp)路由算法通过所述网络发送所述数据分组。14.如权利要求8至13中任一项所述的系统,其中生成所述spi值包括生成要由所述客户端设备用于所述数据平面流量的多个spi值,所述多个spi值中的每一个对应于相应的流量类别,每个相应的流量类别与相应的qos性能度量相关联。15.一种存储指令的非暂态计算机可读介质,所述指令在由一个或多个计算设备执行时,使所述计算设备执行操作,所述操作包括:从客户端设备接收通过网络建立加密隧道以使得数据平面流量经由所述加密隧道在所述客户端设备和服务之间流动的请求;
确定所述数据平面流量属于一组流量类别中的特定流量类别,所述特定流量类别与特定服务质量(qos)性能度量相关联;生成要由所述客户端设备用于所述数据平面流量的安全参数索引(spi)值,其中所述spi值的第一部分对应于所述特定流量类别;向所述客户端设备发送关于所述spi值的指示;从所述客户端设备接收所述数据平面流量的包括所述spi值的数据分组;以及至少部分地基于包括所述spi值的所述数据分组,通过所述网络发送所述数据分组,使得根据所述特定qos性能度量来处理所述数据分组。16.如权利要求15所述的非暂态计算机可读介质,其中生成所述spi值包括:至少部分地基于所述特定流量类别生成表示要处理的所述数据分组的所述特定qos性能度量的第一位组合;生成表示安全关联的第二位组合;以及掩蔽所述第一位组合和所述第二位组合,使得所述第一位组合包括所述spi值的第一部分并且所述第二位组合包括所述spi值的第二部分。17.如权利要求16所述的非暂态计算机可读介质,其中所述第一位组合由第一十六进制数字表示,并且所述第二位组合由多个十六进制数字表示。18.如权利要求15至17中任一项所述的非暂态计算机可读介质,其中,所述spi值的第二部分是与所述网络的安全关联对应的第二标识符。19.如权利要求15至18中任一项所述的非暂态计算机可读介质,其中,所述数据分组是第一数据分组,所述spi值是第一spi值,所述特定流量类别是第一流量类别,并且所述特定qos性能度量是第一qos性能度量,所述操作进一步包括:接收包括第二spi值的第二数据分组,所述第二spi值的第一部分对应于第二流量类别,所述第二流量类别与第二qos性能度量相关联;以及至少部分地基于包括所述第二spi值的所述第二数据分组,通过所述网络发送所述第二数据分组,使得根据所述第二qos性能度量来处理所述第二数据分组。20.如权利要求15至19中任一项所述的非暂态计算机可读介质,其中生成所述spi值包括生成要由所述客户端设备用于所述数据平面流量的多个spi值,所述多个spi值中的每一个对应于相应的流量类别,每个相应的流量类别与相应的qos性能度量相关联。21.一种装置,包括:用于从客户端设备并且在网络的网络设备处接收通过所述网络建立加密隧道以使得数据平面流量经由所述加密隧道在所述客户端设备和服务之间流动的请求的装置;用于确定所述数据平面流量属于一组流量类别中的特定流量类别的装置,所述特定流量类别与特定服务质量(qos)性能度量相关联;用于生成要由所述客户端设备用于所述数据平面流量的安全参数索引(spi)值的装置,所述spi值对应于所述特定流量类别;用于向所述客户端设备发送关于所述spi值的指示的装置;用于在与所述网络相关联的负载平衡节点处接收所述数据平面流量的包括所述spi值的数据分组的装置;以及用于执行以下操作的装置:至少部分地基于包括所述spi值的所述数据分组,通过所述
网络发送所述数据分组,使得根据所述特定qos性能度量来处理所述数据分组。22.如权利要求21所述的装置,还包括用于实施如权利要求2至7中任一项所述的方法的装置。23.一种包括指令的计算机程序、计算机程序产品或计算机可读介质,所述指令在由计算机执行时使所述计算机执行如权利要求1至7中任一项所述的方法的步骤。
技术总结
本文描述了用于基于分组头部的安全参数索引(SPI)值和分组头部的五元组值集合来负载平衡加密流量的技术。此外,本文还描述了用于在分组头部的SPI值字段中包括服务质量(QoS)类型信息的技术。QoS类型信息可以指示处理分组将依据的特定流量类别。此外,本文还描述了用于预配置后端主机以使得加密流量可以从另一后端主机迁移到该后端主机而不引起临时服务中断的技术。务中断的技术。务中断的技术。
技术研发人员:格热戈兹
受保护的技术使用者:思科技术公司
技术研发日:2021.12.09
技术公布日:2023/8/21
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:微机械结构元件的制作方法 下一篇:聚烯烃微多孔膜的制作方法
