[go: up one dir, main page]

CN116615898A - Maintaining quality of service handling of packets using security parameter index values - Google Patents

Maintaining quality of service handling of packets using security parameter index values Download PDF

Info

Publication number
CN116615898A
CN116615898A CN202180073935.0A CN202180073935A CN116615898A CN 116615898 A CN116615898 A CN 116615898A CN 202180073935 A CN202180073935 A CN 202180073935A CN 116615898 A CN116615898 A CN 116615898A
Authority
CN
China
Prior art keywords
traffic
spi
data packet
spi value
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180073935.0A
Other languages
Chinese (zh)
Inventor
格热戈兹·博古斯瓦夫·杜拉杰
利奥纳多·兰赫尔·奥古斯托
凯尔·安德鲁·唐纳德·迈斯特利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cisco Technology Inc
Original Assignee
Cisco Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US17/171,604 external-priority patent/US11652747B2/en
Application filed by Cisco Technology Inc filed Critical Cisco Technology Inc
Priority claimed from PCT/US2021/062673 external-priority patent/WO2022125814A1/en
Publication of CN116615898A publication Critical patent/CN116615898A/en
Pending legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Techniques for load balancing encrypted traffic based on a Security Parameter Index (SPI) value of a packet header and a set of five tuple values of the packet header are described herein. Further, techniques for including quality of service (QoS) type information in an SPI value field of a packet header are described herein. The QoS type information may indicate a particular traffic class from which the packet is to be processed. In addition, techniques for pre-configuring a back-end host such that encrypted traffic may migrate from another back-end host to the back-end host without causing a temporary service disruption are also described herein.

Description

使用安全参数索引值维护分组的服务质量处理Quality of service handling of maintenance packets using security parameter index values

相关申请related application

本申请要求于2021年2月9日提交的美国实用新型专利申请No.17/171,604的优先权,其要求于2020年12月11日提交的美国临时专利申请No.63/124,317的优先权,这两个申请的全部内容通过引用并入本文。This application claims priority to U.S. Utility Patent Application No. 17/171,604, filed February 9, 2021, which claims priority to U.S. Provisional Patent Application No. 63/124,317, filed December 11, 2020, The entire contents of both applications are incorporated herein by reference.

技术领域technical field

本公开总体上涉及用于使用分组头部的安全参数索引(SPI)值对加密流量进行负载平衡的改进技术。The present disclosure generally relates to improved techniques for load balancing encrypted traffic using security parameter index (SPI) values in packet headers.

背景技术Background technique

构建云交付的软件即服务(SaaS)产品涉及创建分布式系统,该系统被交付给云中的用户。通常,流量根据一种或多种路由策略(例如等价多路径(ECMP)路由)被发送到这些服务中。ECMP和其他路由策略允许基于“五元组(5-tuples)”固定流,以便将分组发送到特定的后端实例。分组的五元组通常指的是包含传输控制协议/互联网协议(TCP/IP)连接的五个不同值的集合。五元组的值的集合包括源IP地址、源端口号、目的地IP地址、目的地端口号和正在使用的特定协议。Building a cloud-delivered software-as-a-service (SaaS) product involves creating a distributed system that is delivered to users in the cloud. Typically, traffic is sent into these services according to one or more routing policies, such as Equal Cost Multipath (ECMP) routing. ECMP and other routing strategies allow fixed flows based on "5-tuples" to send packets to specific backend instances. A grouped quintuple generally refers to a set of five distinct values comprising a Transmission Control Protocol/Internet Protocol (TCP/IP) connection. The set of values for the 5-tuple includes the source IP address, source port number, destination IP address, destination port number, and the particular protocol being used.

然而,由于ECMP和其他路由策略使用五元组,因此它们没有考虑加密连接(例如互联网协议安全(IPsec)连接,其包括互联网密钥交换(IKE)流量和封装安全负载(ESP)流量)的各个流。此外,加密连接(例如IPsec)由于其加密的本质,很难为其提供流量分类。一旦分组被加密和封装,执行任何形式的服务质量(QoS)几乎变得不可能。However, because ECMP and other routing strategies use quintuples, they do not take into account the individual components of encrypted connections such as Internet Protocol Security (IPsec) connections, which include Internet Key Exchange (IKE) traffic and Encapsulating Security Payload (ESP) traffic. flow. Additionally, encrypted connections (such as IPsec) are difficult to provide traffic classification for due to their encrypted nature. Once the packets are encrypted and encapsulated, it becomes nearly impossible to enforce any form of Quality of Service (QoS).

此外,在负载平衡器放置在负责处理加密流量的工作者节点池之前的联网环境中,当工作者节点离线时,分配给工作者节点的加密会话必须迁移到一个或多个其他主机。这通常会导致临时服务中断,同时(一个或多个)新的主机工作者节点和客户端协商新的加密连接。Additionally, in networked environments where a load balancer is placed in front of a pool of worker nodes responsible for handling encrypted traffic, when a worker node goes offline, the encrypted sessions assigned to the worker node must migrate to one or more other hosts. This typically results in a temporary service interruption while (one or more) new host worker nodes and clients negotiate new encrypted connections.

附图说明Description of drawings

下面结合附图进行详细描述。在附图中,参考标号最左边的(一个或多个)数字标识该参考标号首次出现的附图。在不同附图中使用相同的参考标号表示相似或相同的项目。附图中描绘的系统不是按比例绘制的,并且附图中的组件可能被描绘成不是彼此按比例绘制的。A detailed description will be made below in conjunction with the accompanying drawings. In the figures, the leftmost digit(s) of a reference number identifies the figure in which the reference number first appears. The use of the same reference numbers in different drawings indicates similar or identical items. The systems depicted in the figures are not to scale and components in the figures may be depicted not to scale with each other.

图1示出了包括隧道通信会话的联网环境的示例系统架构的示意图,该隧道通信会话包括分离的控制平面和数据平面流量流。1 shows a schematic diagram of an example system architecture of a networking environment including a tunneled communication session that includes separate control plane and data plane traffic flows.

图2示出了负载平衡器节点根据一个或多个路由策略向下游节点发送流量的示例流量流的示意图。2 shows a schematic diagram of an example traffic flow in which a load balancer node sends traffic to downstream nodes according to one or more routing policies.

图3示出了用于使用分组头部的SPI值建立流量的负载平衡的通信会话的各个节点和/或设备之间的示例流量流的数据流图。3 illustrates a data flow diagram of an example traffic flow between various nodes and/or devices for establishing a load-balanced communication session of traffic using SPI values of packet headers.

图4A和图4B示出了用于指示分组头部的SPI值中的QoS类型信息的通信会话的各个节点和/或设备之间的示例流量流的数据流图。4A and 4B illustrate data flow diagrams of example traffic flows between various nodes and/or devices of a communication session for indicating QoS type information in SPI values in packet headers.

图5A-图5C共同示出了与执行加密隧道迁移相关联的示例数据流的示意图。5A-5C collectively illustrate a schematic diagram of example data flows associated with performing encrypted tunnel migration.

图6示出了用于通过使用SPI值来维护分组的QoS处理的示例方法的逻辑流程图。6 illustrates a logic flow diagram of an example method for maintaining QoS handling of packets by using SPI values.

图7示出了用于基于分组头部的SPI值来负载平衡流量的示例方法的逻辑流程图。7 illustrates a logic flow diagram of an example method for load balancing traffic based on SPI values in packet headers.

图8示出了用于执行加密隧道迁移的示例方法的逻辑流程图。8 illustrates a logic flow diagram of an example method for performing encrypted tunnel migration.

图9示出了用于执行加密隧道迁移的另一示例方法的逻辑流程图。9 illustrates a logic flow diagram of another example method for performing encrypted tunnel migration.

图10示出了用于实现网络节点和/或设备(例如负载平衡器、控制节点、数据节点等)的示例计算机硬件架构的示意图,该网络节点和/或设备可用于实现本文呈现的各种技术的各个方面。10 shows a schematic diagram of an example computer hardware architecture for implementing network nodes and/or devices (e.g., load balancers, control nodes, data nodes, etc.) that can be used to implement the various aspects presented herein. all aspects of technology.

具体实施方式Detailed ways

概述overview

本发明的各个方面在独立权利要求中阐述并且优选特征在从属权利要求中阐述。一个方面的特征可以单独或与其他方面组合应用于每个方面。Various aspects of the invention are set out in the independent claims and preferred features are set out in the dependent claims. Features of one aspect may apply to each aspect alone or in combination with the other aspects.

本公开描述了系统和方法,这些系统和方法通过使用分组头部的安全参数索引(SPI)值来改进与负载平衡加密流量有关的技术。作为示例而非限制,根据本公开中描述的各种技术的方法可以包括从客户端设备并且在网络的网络设备处接收通过网络建立加密隧道以使得数据平面流量可以经由加密隧道在客户端设备和服务之间流动的请求。该方法还可以包括生成要由客户端设备用于数据平面流量的SPI值并且向客户端设备发送关于SPI值的指示。另外,该方法可以包括在负载平衡器处接收包括SPI值的数据分组,并且至少部分地基于SPI值,确定将数据分组发送到支持该服务的一组服务器中的服务器。相应地,负载平衡器可以将数据分组发送到服务器。This disclosure describes systems and methods that improve techniques related to load balancing encrypted traffic by using security parameter index (SPI) values in packet headers. By way of example and not limitation, methods according to various techniques described in this disclosure may include receiving from a client device and at a network device of the network establishing an encrypted tunnel through the network such that data plane traffic can be transmitted between the client device and the network device via the encrypted tunnel. Requests that flow between services. The method may also include generating an SPI value to be used by the client device for data plane traffic and sending an indication of the SPI value to the client device. Additionally, the method can include receiving, at the load balancer, the data packet including the SPI value, and based at least in part on the SPI value, determining to send the data packet to a server of the set of servers supporting the service. Accordingly, the load balancer can send data packets to the servers.

在一些情况下,该方法可以附加地或替代地包括确定数据平面流量属于一组流量类别中的特定流量类别。特定流量类别可以与特定服务质量(QoS)性能度量相关联。因此,该方法可以包括生成要由客户端设备用于数据平面流量的SPI值。SPI值可以对应于特定的流量类别。以此方式,负载平衡器可以接收包括SPI值的数据平面流量的数据分组,并且至少部分地基于包括SPI值的数据分组,负载平衡器可以通过网络发送数据分组,使得根据特定的QoS性能度量处理数据分组。In some cases, the method may additionally or alternatively include determining that data plane traffic belongs to a particular traffic class within a set of traffic classes. Certain traffic classes can be associated with certain Quality of Service (QoS) performance metrics. Accordingly, the method may include generating an SPI value to be used by the client device for data plane traffic. SPI values may correspond to specific traffic classes. In this manner, the load balancer can receive data packets of data plane traffic that include SPI values, and based at least in part on the data packets that include SPI values, the load balancer can send the data packets over the network such that processing according to a particular QoS performance metric Data grouping.

在附加或替代示例中,该方法可以包括在负载平衡器处并且从客户端设备接收具有第一SPI值和一组五元组值的第一数据平面流量。至少部分地基于第一SPI值和该组五元组值,负载平衡器可以将第一数据平面流量发送到第一节点。该方法还可以包括在负载平衡器处接收第一数据平面流量的至少一部分要被发送到第二节点的指示。至少部分地基于该指示,负载平衡器可以提示第二节点提供一个或多个接口,使得第一数据平面流量的至少一部分可以被发送到第二节点。以此方式,负载平衡器可以从客户端设备接收具有第二SPI值和该组五元组值的第二数据平面流量。至少部分地基于第二SPI值和该组五元组值,负载平衡器可以确定第二数据平面流量包括第一数据平面流量的至少该部分,并且作为响应,发送第二数据平面流量到第二节点。In an additional or alternative example, the method can include receiving, at the load balancer and from the client device, the first data plane traffic having the first SPI value and the set of quintuple values. Based at least in part on the first SPI value and the set of 5-tuple values, the load balancer can send the first data plane traffic to the first node. The method may also include receiving, at the load balancer, an indication that at least a portion of the first data plane traffic is to be sent to the second node. Based at least in part on the indication, the load balancer can prompt the second node to provide one or more interfaces such that at least a portion of the first data plane traffic can be sent to the second node. In this manner, the load balancer can receive second data plane traffic from the client device having the second SPI value and the set of 5-tuple values. Based at least in part on the second SPI value and the set of 5-tuple values, the load balancer may determine that the second data plane traffic includes at least the portion of the first data plane traffic, and in response, send the second data plane traffic to the second node.

另外,本文描述的技术可以作为一种方法和/或由具有存储计算机可执行指令的非暂态计算机可读介质的系统来执行,指令在由一个或多个处理器执行时执行本文描述的技术。Additionally, the techniques described herein can be performed as a method and/or by a system having a non-transitory computer-readable medium storing computer-executable instructions that, when executed by one or more processors, perform the techniques described herein .

示例实施例example embodiment

如上所述,通常根据一种或多种路由策略(例如等价多路径(ECMP)路由)将流量发送到各种服务。但是,由于这些路由策略使用五元组,因此它们没有考虑加密连接(例如互联网协议安全(IPsec)连接,其包括互联网密钥交换(IKE)流量和封装安全负载(ESP)流量)的各个流。这意味着这些流的熵可能远小于在每隧道熵由针对IPsec IKE和ESP流的安全关联(SA)提供的情况下所能达到的。例如,IPsec IKE和ESP流量包含称为安全参数索引(SPI)的附加标识符。SPI值用于唯一标识已建立的IPsec SA。As mentioned above, traffic is typically sent to various services according to one or more routing policies, such as equal-cost multi-path (ECMP) routing. However, because these routing policies use quintuples, they do not take into account individual flows of encrypted connections such as Internet Protocol Security (IPsec) connections, which include Internet Key Exchange (IKE) traffic and Encapsulating Security Payload (ESP) traffic. This means that the entropy of these flows may be much smaller than would be achievable if the per-tunnel entropy was provided by Security Associations (SAs) for IPsec IKE and ESP flows. For example, IPsec IKE and ESP traffic contain additional identifiers called Security Parameter Indexes (SPIs). The SPI value is used to uniquely identify the established IPsec SA.

因此,本公开的一个方面提供用于利用SPI值以允许负载平衡和将每IPsec IKE和ESP流固定到特定后端的技术。通过执行这些技术,可以实现多种优势,包括能够在多个系统上终止相同的加密隧道/SA,这允许扩展容量。此外,可以通过对控制平面和数据平面流量会话可能落在后端节点/服务器上的位置进行更细粒度的控制来实现更高的性能。此外,可以相应地处理不同的流量(例如,性能级别,允许客户拥有自己的后端)。Accordingly, one aspect of the present disclosure provides techniques for utilizing SPI values to allow load balancing and pinning each IPsec IKE and ESP flow to a specific backend. By implementing these techniques, several advantages can be realized, including the ability to terminate the same encrypted tunnel/SA on multiple systems, which allows scaling capacity. Additionally, higher performance can be achieved by having finer-grained control over where control-plane and data-plane traffic sessions may land on backend nodes/servers. Furthermore, different traffic can be handled accordingly (e.g. performance levels, allowing customers to have their own backend).

此外,加密连接(例如IPsec)由于其被加密的本质,很难为其提供流量分类。一旦分组被加密和封装,执行任何形式的服务质量(QoS)几乎变得不可能。例如,当专门查看构建IPsec云交付的虚拟专用网络(VPN)产品时,您正在处理IP分组中的ESP和/或UDP分组中的ESP。因此,本公开的另一方面包括用于将QoS类型信息编码和映射成SPI值以使得即使在分组被加密和封装之后也可以对分组执行QoS的技术。执行这些技术可以允许对加密流量进行分类,从而允许在数据节点上进行区分服务型(DiffServ-style)资源分配,使得可以在更适合该流量类别的数据节点上分配单独的SA,并且还可以调整数据节点内的流量整形规则以在分配给它的流中调整网络吞吐量。Additionally, encrypted connections (such as IPsec) are difficult to provide for traffic classification due to their encrypted nature. Once the packets are encrypted and encapsulated, it becomes nearly impossible to enforce any form of Quality of Service (QoS). For example, when looking specifically at building an IPsec cloud-delivered virtual private network (VPN) product, you're dealing with ESP in IP packets and/or ESP in UDP packets. Accordingly, another aspect of the present disclosure includes techniques for encoding and mapping QoS type information into SPI values so that QoS can be performed on packets even after the packets are encrypted and encapsulated. Executing these techniques can allow the classification of encrypted traffic, allowing DiffServ-style resource allocation on data nodes, making it possible to allocate individual SAs on data nodes more appropriate for that traffic class, and also to adjust Traffic shaping rules within a data node to adjust network throughput among the streams assigned to it.

此外,在负载平衡器放置在负责处理加密流量的工作者节点池之前的联网环境中,当工作者节点离线时,分配给工作者节点的加密会话必须迁移到一个或多个其他主机。这通常会导致临时服务中断,同时(一个或多个)新的主机工作者节点和客户端协商新的加密连接。因此,本公开的又一方面包括用于添加对后端工作者节点(例如数据节点)的支持以向负载平衡器发信号以指示工作者节点即将从后端工作者节点队列中移除的技术。通过这种方式,这些技术可以通过在某个工作者节点进入不健康状态或设置为由另一个节点替换时将加密隧道迁移出该工作者节点来减少计划内或计划外关闭的影响。此外,这些技术可以降低跨服务器池重新平衡负载的影响。Additionally, in networked environments where a load balancer is placed in front of a pool of worker nodes responsible for handling encrypted traffic, when a worker node goes offline, the encrypted sessions assigned to the worker node must migrate to one or more other hosts. This typically results in a temporary service interruption while (one or more) new host worker nodes and clients negotiate new encrypted connections. Accordingly, yet another aspect of the present disclosure includes techniques for adding support for backend worker nodes (e.g., data nodes) to signal a load balancer to indicate that a worker node is about to be removed from the backend worker node queue . In this way, these techniques can reduce the impact of planned or unplanned shutdowns by migrating encrypted tunnels out of a worker node when it goes into an unhealthy state or is set to be replaced by another node. Additionally, these techniques can reduce the impact of rebalancing load across server pools.

因此,根据本公开中描述的各种技术,可以实现计算机相关技术的改进。如前所述,针对加密流的熵可能比在提供每隧道熵的情况下所能达到的要小得多。例如,大多数路由策略(如ECMP)使用一组五元组值进行散列。然而,利用分组的SPI值可以允许使用六元组逻辑,从而更好地将流分配到头端节点。此外,即使分组已被封装,SPI值也可进一步用于指示数据分组的QoS类型信息,从而可以在更适合该流量类别的数据节点上分配单独的SA。这些只是可以根据本公开中描述的技术实现的多个改进的一些示例。本领域的普通技术人员将容易了解和理解这些改进和其他改进。Therefore, according to various techniques described in this disclosure, improvements in computer-related techniques can be realized. As mentioned earlier, the entropy for an encrypted stream may be much smaller than would be achievable if per-tunnel entropy was provided. For example, most routing policies (like ECMP) use a set of five-tuple values for hashing. However, exploiting the packet's SPI value may allow the use of six-tuple logic for better distribution of flows to headend nodes. In addition, even if the packet has been encapsulated, the SPI value can be further used to indicate the QoS type information of the data packet, so that a separate SA can be allocated on the data node that is more suitable for this traffic class. These are just a few examples of the many improvements that can be made in accordance with the techniques described in this disclosure. These and other improvements will be readily apparent and understandable to those of ordinary skill in the art.

作为示例而非限制,根据本公开描述的各种技术的方法可以包括从客户端设备接收分组,该分组指示通过网络建立加密隧道以使得数据平面流量可以经由加密隧道在客户端设备和服务之间流动的请求。在一些示例中,请求分组可以由网络的负载平衡器或路由器在网络处接收并且负载平衡器或路由器可以将请求发送到网络的控制节点。另外,负载平衡器或路由器可以至少部分地基于等价多路径(ECMP)路由策略和/或与请求分组相关联的五元组将请求分组发送到控制节点。在一些示例中,建立加密隧道的请求可以包括建立IPsec连接的请求和/或建立IPsec SA或子SA的请求。By way of example and not limitation, methods according to various techniques described in this disclosure may include receiving a packet from a client device indicating establishment of an encrypted tunnel through the network such that data plane traffic may pass between the client device and the service via the encrypted tunnel Flow requests. In some examples, the request packet may be received at the network by a load balancer or router of the network and the load balancer or router may send the request to a control node of the network. Additionally, the load balancer or router can send the request packet to the control node based at least in part on an equal cost multipath (ECMP) routing policy and/or a 5-tuple associated with the request packet. In some examples, the request to establish an encrypted tunnel may include a request to establish an IPsec connection and/or a request to establish an IPsec SA or sub-SA.

在一些示例中,网络可以被配置为使得网络包括单独的控制节点和数据节点。换句话说,网络可以配置为将控制平面流量(例如,IKE流量)和数据平面流量(例如,ESP流量)的处理拆分到不同的节点(例如,用于处理控制平面的控制节点或“IKE”节点和用于处理数据平面的数据节点)。这可以允许网络单独地和/或独立地扩展每个节点类型。控制节点和数据节点可以包括与服务相关联的头端服务器。在一些示例中,控制节点可以在与网络相关联的第一组计算资源上操作,并且数据节点可以在与网络相关联的第二组不同的计算资源上操作。In some examples, a network may be configured such that the network includes separate control nodes and data nodes. In other words, the network can be configured to split the processing of control plane traffic (e.g., IKE traffic) and data plane traffic (e.g., ESP traffic) to different nodes (e.g., a control node or "IKE " nodes and data nodes for processing the data plane). This may allow the network to scale each node type individually and/or independently. Control nodes and data nodes may include head-end servers associated with the service. In some examples, the control nodes can operate on a first set of computing resources associated with the network, and the data nodes can operate on a second, different set of computing resources associated with the network.

在一些示例中,该方法可以包括确定数据平面流量属于一组流量类别中的特定流量类别。特定流量类别可以与特定服务质量(QoS)性能度量相关联。在一些示例中,为了让控制节点创建与正确的流量类别相匹配的SPI值,可以在建立SA之前调用分类器。这可以以多种不同的方式完成。例如,负载平衡器或路由器可以调用分类器,并在控制平面流量被转发到控制节点之前将类别信息作为头部注入。这可以通过使用IP头部中当前未使用的字段(例如DSCP字段)或通过创建新字段来完成。此外,或者替代地,控制节点可以在其发起SA时调用分类器。通过这些方式中的任何一种,可以为控制节点提供类别信息,使得控制节点可以创建对应于流量类别的SPI值。In some examples, the method can include determining that data plane traffic belongs to a particular traffic class of a set of traffic classes. Certain traffic classes can be associated with certain Quality of Service (QoS) performance metrics. In some examples, the classifier may be invoked prior to establishing the SA in order for the control node to create an SPI value that matches the correct traffic class. This can be done in a number of different ways. For example, a load balancer or router can invoke a classifier and inject the class information as a header before control plane traffic is forwarded to the control node. This can be done by using currently unused fields in the IP header (such as the DSCP field) or by creating new fields. Additionally, or alternatively, the control node may invoke the classifier when it initiates an SA. By any of these means, the control node can be provided with class information so that the control node can create an SPI value corresponding to the traffic class.

在一些示例中,该方法可以包括生成要由客户端设备用于数据平面流量的SPI值。SPI值可以包括标识特定SA的位组合。在某些情况下,可以生成多个SPI值,并且多个SPI值中的每个单独的SPI值可以标识相应的SA。另外,SPI值可以由控制节点生成。In some examples, the method can include generating an SPI value to be used by the client device for data plane traffic. An SPI value may include a bit combination that identifies a particular SA. In some cases, multiple SPI values may be generated, and each individual SPI value of the multiple SPI values may identify a corresponding SA. Additionally, SPI values can be generated by the control node.

如上所述,在各种示例中,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位映射,因为它们具有相似的位大小。As noted above, in various examples, the SPI value may include QoS type information (e.g., Differentiated Services (DiffServ) Type Information, Type of Service (ToS), Differentiated Services Code Point (DSCP) Type Information, and/or Experimental Bit (EXP ) type information) indicating the specific traffic class according to which the packet is processed. Thus, in some examples, generating the SPI value may include generating a first bit combination representing a particular traffic class according to which the packet is to be processed, generating a second bit combination representing a particular SA, and masking or combining the first bit combination and the second bit combination. The two bits are combined such that the first bit combination includes a first part of the SPI value and the second bit combination includes a second part of the SPI value. For example, the SPI field of a packet is defined as an arbitrary value of 32 bits, and the range of 0-255 is defined as reserved. This leaves values from 256 (0x00000100) to 4294967295 (Oxffffffff) to be used as SPI values. Thus, in some examples, the first part (e.g., the "front" part) of the 32-bit field can be used for QoS mapping, and the first hex digit can be "reserved" by offsetting the SPI value by 4 bits for map. For example, using the hexadecimal values 0x[0]3ec7b2a to 0x[f]3ec7b2a, the hexadecimal digits [0] to [f] could represent the QoS mapping, and 0x3ec7b2a could represent the actual SPI offset of the consumed 4 bits . That is, the first part of the SPI value (for example, hexadecimal digits [0] to [f]) may represent a specific traffic class QoS mapping, and the second part of the SPI value (for example, hexadecimal digits 3ec7b2a ) can identify a specific SA. This results in 15 mapped values being used. Additionally or alternatively, the already established 802.1q Class of Service (CoS) or Multiprotocol Label Switching (MPLS) EXP to DSCP bitmaps may be followed since they have similar bit sizes.

在生成SPI之后,该方法可以包括向客户端设备发送关于SPI值的指示。在一些示例中,控制节点可以执行直接服务器返回(DSR)以将指示发送到客户端设备。在一些示例中,包括SPI值的数据分组可以由负载平衡器接收。数据分组可以包括数据平面流量的数据分组。也就是说,与数据分组相关联的协议可以对应于数据平面流量协议,例如ESP。在一些示例中,数据分组可以包括一组五元组值。例如,数据分组的一组五元组值可以包括源IP地址值、源端口值、目的地IP地址值、目的地端口值和与数据分组相关联的协议。如本文所述,一组六元组值可用于指代SPI值和一组五元组值。也就是说,一组六元组值可以包括源IP地址值、源端口值、目的地IP地址值、目的地端口值、与数据分组关联的协议以及SPI值。然而,可以使用不同的值。After generating the SPI, the method may include sending an indication of the value of the SPI to the client device. In some examples, the control node may perform a direct server return (DSR) to send the indication to the client device. In some examples, data packets including SPI values may be received by a load balancer. The data packets may include data packets of data plane traffic. That is, the protocol associated with the data packets may correspond to a data plane traffic protocol, such as ESP. In some examples, a data packet may include a set of five-tuple values. For example, a set of 5-tuple values for a data packet may include a source IP address value, a source port value, a destination IP address value, a destination port value, and a protocol associated with the data packet. As described herein, a set of six-tuple values may be used to refer to an SPI value and a set of five-tuple values. That is, a set of six-tuple values may include a source IP address value, a source port value, a destination IP address value, a destination port value, a protocol associated with the data packet, and an SPI value. However, different values can be used.

在一些情况下,负载平衡器可以确定将数据分组发送到支持该服务的一组服务器或节点中的服务器(例如,数据节点)。例如,至少部分地基于SPI值和/或该组五元组值,负载平衡器可以确定将数据分组发送到服务器。在一些示例中,负载平衡器可以接收表示SPI值和与客户端设备相关联的该组五元组值之间的关联的数据,并且确定向服务器发送数据分组可以进一步至少部分地基于该数据。也就是说,负载平衡器可以用指示SPI值和五元组值之间的关联的映射来更新。在一些示例中,确定向服务器发送数据分组可以至少部分地基于计算表示SPI值和/或该组五元组值的散列值。负载平衡器可以使用散列函数来计算散列。附加地或替代地,负载平衡器可以至少部分地基于一个或多个路由策略(例如,ECMP)来确定将数据分组发送到服务器。In some cases, a load balancer may determine to send a data packet to a server (eg, a data node) in a set of servers or nodes that support the service. For example, based at least in part on the SPI value and/or the set of 5-tuple values, the load balancer can determine to send the data packet to the server. In some examples, the load balancer can receive data representing an association between the SPI value and the set of 5-tuple values associated with the client device, and determining to send the data packet to the server can be further based at least in part on the data. That is, the load balancer can be updated with a map indicating the association between SPI values and quintuple values. In some examples, determining to send the data packet to the server may be based at least in part on computing a hash value representing the SPI value and/or the set of 5-tuple values. The load balancer can use a hash function to calculate the hash. Additionally or alternatively, the load balancer may determine to send the data packet to the server based at least in part on one or more routing policies (eg, ECMP).

在一些示例中,该方法可以包括将数据分组发送到服务器。另外,可以通过网络发送数据分组,使得根据特定的QoS性能度量和/或流量类别来处理数据分组。例如,如果SPI值包括关于要根据其处理数据分组的特定流量类别和/或QoS性能度量的指示,则负载平衡器可以根据该特定流量类别和/或QoS性能度量通过网络发送分组。In some examples, the method can include sending the data packet to the server. Additionally, data packets may be sent over the network such that the data packets are processed according to a particular QoS performance metric and/or traffic class. For example, if the SPI value includes an indication of a particular traffic class and/or QoS performance metric according to which the data packet is to be processed, the load balancer may send the packet over the network according to the particular traffic class and/or QoS performance metric.

在附加或替代示例中,该方法可以包括生成第二SPI值以供客户端设备用于数据平面流量。第二SPI值可以标识第二SA。第二SPI值可以由控制节点生成。在一些示例中,生成第二SPI值可以至少部分地基于对请求分组进行分类以确定与请求分组相关联的流量类别,如上所述。在生成第二SPI之后,该方法可以包括向客户端设备发送关于第二SPI值的指示。在一些示例中,控制节点可以执行直接服务器返回(DSR)以将关于第二SPI值的指示发送到客户端设备。In an additional or alternative example, the method can include generating a second SPI value for use by the client device for data plane traffic. The second SPI value may identify a second SA. The second SPI value may be generated by the control node. In some examples, generating the second SPI value may be based at least in part on classifying the request packet to determine a traffic class associated with the request packet, as described above. After generating the second SPI, the method may include sending an indication of the second SPI value to the client device. In some examples, the control node may perform a direct server return (DSR) to send an indication of the second SPI value to the client device.

在一些示例中,该方法可以包括在负载平衡器处接收包括第二SPI值的第二数据分组。另外,第二数据分组可以包括该组五元组值、该组五元组值的一部分或新的一组五元组值。在一些情况下,该组五元组值可以指示第二数据分组是由客户端设备或不同的客户端设备发送的。至少部分地基于包括第二SPI值和/或该组五元组值的第二数据分组,负载平衡器可以将第二数据分组发送到服务器组中的第二服务器(例如,第二数据节点)。在一些示例中,第二SPI值的第一部分可以对应于第二流量类别,第二流量类别与第二QoS性能度量相关联。这样,至少部分地基于包括第二SPI值的第二数据分组,负载平衡器可以通过网络发送第二数据分组,使得根据第二QoS性能度量来处理第二数据分组。In some examples, the method can include receiving, at the load balancer, a second data packet including a second SPI value. Additionally, the second data packet may comprise the set of 5-tuple values, a portion of the set of 5-tuple values, or a new set of 5-tuple values. In some cases, the set of 5-tuple values may indicate that the second data packet was sent by the client device or a different client device. Based at least in part on the second data packet including the second SPI value and/or the set of 5-tuple values, the load balancer may send the second data packet to a second server (e.g., a second data node) in the server group . In some examples, the first portion of the second SPI value may correspond to a second traffic class associated with a second QoS performance metric. As such, based at least in part on the second data packet including the second SPI value, the load balancer can send the second data packet over the network such that the second data packet is processed according to the second QoS performance metric.

如上所述,本文描述的技术的一个方面还可以包括添加对后端工作者节点(例如数据节点)的支持以向负载平衡器发送信号以指示工作者节点即将从后端工作者节点队列中移除。因此,在附加或替代示例中,该方法可以包括在负载平衡器处从客户端设备接收具有第一SPI值和一组五元组值的第一数据平面流量。第一SPI值可以标识客户端设备和第一节点之间的第一安全关联(SA)。As noted above, an aspect of the techniques described herein may also include adding support for backend worker nodes (such as data nodes) to signal the load balancer that a worker node is about to be removed from the backend worker node queue. remove. Accordingly, in an additional or alternative example, the method can include receiving, at the load balancer, from the client device, the first data plane traffic having the first SPI value and the set of quintuple values. The first SPI value may identify a first security association (SA) between the client device and the first node.

在一些示例中,该方法可以包括将第一数据平面流量发送到一组节点中的第一节点。在至少一个示例中,第一节点可以包括一组数据节点中的第一数据节点。第一节点可以与第一加密隧道(例如,IPsec SA)相关联。在一些示例中,向第一节点发送第一数据平面流量可以至少部分地基于第一SPI值和该组五元组值。例如,负载平衡器可以计算表示第一SPI值和该组五元组值的散列值(例如,六元组)。至少部分地基于散列值,负载平衡器可以根据ECMP路由策略将第一数据平面流量发送到第一节点。In some examples, the method can include sending the first data plane traffic to a first node of a set of nodes. In at least one example, the first node may include a first data node in a set of data nodes. The first node may be associated with a first encrypted tunnel (eg, IPsec SA). In some examples, sending the first data plane traffic to the first node may be based at least in part on the first SPI value and the set of 5-tuple values. For example, the load balancer may compute a hash value (eg, a six-tuple) representing the first SPI value and the set of five-tuple values. Based at least in part on the hash value, the load balancer can send the first data plane traffic to the first node according to the ECMP routing policy.

在各种示例中,该方法可以包括在负载平衡器处接收关于将从客户端设备接收的附加数据平面流量将被发送到该组节点中的第二节点。在至少一个示例中,第二节点可以包括该组数据节点中的第二数据节点。第二节点可以与第二加密隧道(例如,第二IPsecSA)相关联。在一些情况下,该指示可以包括至少一部分第一数据平面流量要被发送到第二节点的指示。也就是说,该指示可以通知负载平衡器它需要调整它将数据平面流量发送到的位置。例如,与第一节点相关联的负载容量可以达到或超过阈值负载容量。附加地或替代地,该指示可以通知负载平衡器第一节点将要从该组节点中移除(例如,脱机、被服务等)。In various examples, the method can include receiving, at the load balancer, information that additional data plane traffic to be received from the client device is to be sent to a second node of the set of nodes. In at least one example, the second node may include a second data node in the set of data nodes. The second node may be associated with a second encrypted tunnel (eg, a second IPsec SA). In some cases, the indication may include an indication that at least a portion of the first data plane traffic is to be sent to the second node. That is, the indication can inform the load balancer that it needs to adjust where it sends data plane traffic. For example, the load capacity associated with the first node may meet or exceed a threshold load capacity. Additionally or alternatively, the indication may inform the load balancer that the first node is about to be removed from the set of nodes (eg, taken offline, serviced, etc.).

在一些示例中,与网络相关联的控制器可以将指示发送到负载平衡器或使指示被发送。例如,控制器可以从该组节点接收遥测数据。至少部分地基于遥测数据,控制器可以确定负载平衡器将调整它将数据平面流量和/或控制平面流量发送到的位置。例如,遥测数据可以指示与该组节点中的相应节点相关联的负载容量。附加地或替代地,遥测数据可以指示与该组节点中的相应节点相关联的状态(例如,节点是否处于不健康、挂起或崩溃状态,主机是否要轮换等)。因此,控制器可以向负载平衡器发送指示和/或在一些示例中,向第一节点发送通知以提示第一节点向负载平衡器发送指示。在一些示例中,控制器可以包括分布式系统,其包括键值存储装置。In some examples, a controller associated with the network may send or cause the indication to be sent to the load balancer. For example, a controller may receive telemetry data from the set of nodes. Based at least in part on the telemetry data, the controller may determine that the load balancer will adjust where it sends data plane traffic and/or control plane traffic. For example, telemetry data may indicate load capacity associated with respective nodes of the set of nodes. Additionally or alternatively, the telemetry data may indicate a state associated with a respective node of the set of nodes (eg, whether a node is unhealthy, hung, or crashed, whether a host is about to be rotated, etc.). Accordingly, the controller may send an indication to the load balancer and/or, in some examples, a notification to the first node prompting the first node to send the indication to the load balancer. In some examples, the controller may include a distributed system that includes a key-value store.

至少部分地基于该指示,在一些示例中,负载平衡器和/或控制器可以提示第二节点提供一个或多个资源,使得第一数据平面流量的一部分可以被发送到第二节点。一个或多个资源可以包括接口、信道、计算资源等。以此方式,通过提示第二节点提供一个或多个资源,第二节点可以在数据平面流量被发送到第二节点之前“预热”。在部分数据平面流量从第一节点重定向到第二节点的示例中,预热或预配置第二节点可以有助于减少停机时间和/或临时服务中断,同时第二节点和客户端设备协商新的加密连接。在至少一个示例中,提示第二节点提供一个或多个资源可以包括生成和/或发送空封装安全有效载荷(ESP)分组到第二节点。空ESP分组可以包括互联网协议(IP)地址和与客户端设备关联的端口,以及在某些情况下的其他五元组值。Based at least in part on the indication, in some examples, the load balancer and/or controller may prompt the second node to provide one or more resources such that a portion of the first data plane traffic may be sent to the second node. One or more resources may include interfaces, channels, computing resources, and the like. In this way, by prompting the second node to provide one or more resources, the second node can "warm up" before data plane traffic is sent to the second node. In examples where part of the data plane traffic is redirected from a first node to a second node, warming up or pre-configuring the second node can help reduce downtime and/or temporary service disruption while the second node and client devices negotiate A new encrypted connection. In at least one example, prompting the second node to provide the one or more resources may include generating and/or sending an empty Encapsulating Security Payload (ESP) packet to the second node. An empty ESP packet may include an Internet Protocol (IP) address and port associated with the client device, and in some cases other five-tuple values.

在一些示例中,负载平衡器和/或控制器可以向第三节点发送请求以供第三节点生成第二SPI值。负载平衡器和/或控制器可以至少部分地基于该指示来发送请求。在至少一个示例中,第三节点包括一组控制节点中的第一控制节点(例如,IKE节点)。此外,该请求可以包括“密钥更新(rekey)”请求。即,该请求可以是第三节点在客户端设备和第二节点之间创建第二SA以代替客户端设备和第一节点之间的第一SA。因此,在一些示例中,该方法可以包括在负载平衡器处接收关于第二SPI值的指示。关于第二SPI值的指示可以包括关于第二SPI值与该组五元组值之间的关联的指示。In some examples, the load balancer and/or the controller may send a request to the third node for the third node to generate the second SPI value. The load balancer and/or controller can send the request based at least in part on the indication. In at least one example, the third node includes a first control node (eg, an IKE node) in a set of control nodes. Additionally, the request may include a "rekey" request. That is, the request may be for the third node to create a second SA between the client device and the second node in place of the first SA between the client device and the first node. Accordingly, in some examples, the method may include receiving, at the load balancer, an indication of the second SPI value. The indication of the second SPI value may include an indication of an association between the second SPI value and the set of 5-tuple values.

在一些示例中,该方法可以包括在负载平衡器处并且从客户端设备接收具有第二SPI值和该组五元组值的第二数据平面流量。第二数据平面流量可以包括负载平衡器先前发送到第一节点的第一数据平面流量的一些(例如,一部分)或全部。至少部分地基于具有第二SPI值和该组五元组值的第二数据平面流量,该方法可以包括,在一些情况下,确定第二数据平面流量包括第一数据平面流量的一些(例如,一部分)或全部。例如,负载平衡器可能不知道第二SPI值,并且负载平衡器可以跟踪与特定的一组五元组值相关联的所有SPI值。一旦负载平衡器发出密钥更新请求,它可以开始监视与该组五元组值相关的新的/未知的SPI,并将所有具有新的/未知的SPI的数据平面流量发送到第二节点。In some examples, the method can include receiving, at the load balancer and from the client device, second data plane traffic having the second SPI value and the set of 5-tuple values. The second data plane traffic may include some (eg, a portion) or all of the first data plane traffic that the load balancer previously sent to the first node. Based at least in part on the second data plane traffic having the second SPI value and the set of quintuple values, the method may include, in some cases, determining that the second data plane traffic includes some (e.g., part) or all. For example, the load balancer may not know the second SPI value, and the load balancer may keep track of all SPI values associated with a particular set of quintuple values. Once the load balancer issues a rekey request, it may start monitoring for new/unknown SPIs associated with this set of quintuple values and send all data plane traffic with new/unknown SPIs to the second node.

在一些示例中,至少部分地基于第二SPI值和该组五元组值,该方法可以包括将第二数据平面流量发送到第二节点。另外,在一些情况下,该方法可以包括去除第一SPI值和该组五元组值之间的第一关联和/或存储第二SPI值和该组五元组值之间的第二关联。In some examples, based at least in part on the second SPI value and the set of 5-tuple values, the method can include sending the second data plane traffic to the second node. Additionally, in some cases, the method may include removing a first association between a first SPI value and the set of quintuple values and/or storing a second association between a second SPI value and the set of quintuple values .

现在将在下面参考附图更全面地描述本公开的某些实施方式和实施例,其中示出了各个方面。然而,各个方面可以以许多不同的形式来实现,并且不应被解释为限于本文阐述的实现方式。例如,虽然本文的许多示例是针对ECMP路由进行描述的,但是应当理解,可以使用其他路由策略。此外,虽然许多示例被示出为分布式系统,但是应当理解,所描述的各种过程和方法可以由更多或更少的设备来执行。如本文所述,本公开包含实施例的变体。相同的数字始终指代相同的元素。Certain embodiments and examples of the present disclosure will now be described more fully below with reference to the accompanying drawings, in which various aspects are shown. Aspects may, however, be implemented in many different forms and should not be construed as limited to the implementations set forth herein. For example, while many of the examples herein are described with respect to ECMP routing, it should be understood that other routing strategies may be used. Additionally, while many examples are shown as distributed systems, it should be understood that the various processes and methods described may be performed by more or fewer devices. As described herein, the present disclosure encompasses variations of the examples. Like numbers refer to like elements throughout.

图1示出了包括隧道通信会话的联网环境102的示例系统架构100的示意图,该隧道通信会话包括分离的控制平面和数据平面流量流。通常,联网环境102可以包括容纳或位于一个或多个数据中心104中的设备,该数据中心104可以位于不同的物理位置。例如,联网环境102可以由公共云计算平台、私有/企业计算平台和/或其任何组合中的设备的网络支持。一个或多个数据中心104可以是被指定来存储作为联网环境102的一部分的联网设备的位于地理区域上的物理设施或建筑物。数据中心104可以包括各种网络设备,以及用于电源、数据通信连接、环境控制和各种安全设备的冗余或备份组件和基础设施。在一些示例中,数据中心104可以包括一个或多个虚拟数据中心,它们是专门为企业需求和/或基于云的服务提供商需求而设计的云基础设施资源的池或集合。通常,数据中心104(物理的和/或虚拟的)可以提供诸如处理器(CPU)、存储器(RAM)、存储装置(磁盘)和网络(带宽)之类的基本资源。然而,在一些示例中,联网环境102中的设备可能不位于明确定义的数据中心104中,而是可以位于其他位置或建筑物中。FIG. 1 shows a schematic diagram of an example system architecture 100 including a networked environment 102 of tunneled communication sessions that include separate control-plane and data-plane traffic flows. Generally, networked environment 102 may include equipment housed or located in one or more data centers 104, which may be located in different physical locations. For example, networked environment 102 may be supported by a network of devices in a public cloud computing platform, a private/enterprise computing platform, and/or any combination thereof. One or more data centers 104 may be physical facilities or buildings located over a geographic area designated to store networked devices that are part of networked environment 102 . Data center 104 may include various networking equipment, as well as redundant or backup components and infrastructure for power, data communication connections, environmental controls, and various security equipment. In some examples, data center 104 may include one or more virtual data centers, which are pools or collections of cloud infrastructure resources specifically designed for enterprise needs and/or cloud-based service provider needs. In general, data centers 104 (physical and/or virtual) may provide basic resources such as processors (CPUs), memory (RAM), storage (disks), and networks (bandwidth). However, in some examples, devices in networked environment 102 may not be located in well-defined data center 104, but may be located in other locations or buildings.

联网环境102可以通过一个或多个网络108被客户端设备106访问。联网环境102和网络108各自可以分别包括一个或多个由任何可行的通信技术(例如有线和/或无线模态和/或技术)实现的网络。联网环境102和网络108各自可以包括个域网(PAN)、局域网(LAN)、校园网(CAN)、城域网(MAN)、外联网、内联网、互联网、短距离无线通信网络(例如ZigBee、蓝牙等)、虚拟专用网(VPN)、广域网(WAN)-集中式和/或分布式-和/或其任何组合、排列和/或聚合。联网环境102可以包括通过计算机网络中的节点将分组从一个网络段中继到另一网络段的设备、虚拟资源或其他节点。Networked environment 102 may be accessed by client devices 106 over one or more networks 108 . Networked environment 102 and network 108 may each include one or more networks implemented by any feasible communication technology (eg, wired and/or wireless modalities and/or technologies), respectively. Networked environment 102 and network 108 may each include a personal area network (PAN), a local area network (LAN), a campus network (CAN), a metropolitan area network (MAN), an extranet, an intranet, the Internet, a short-range wireless communication network such as ZigBee , Bluetooth, etc.), Virtual Private Network (VPN), Wide Area Network (WAN) - centralized and/or distributed - and/or any combination, permutation and/or aggregation thereof. Networked environment 102 may include devices, virtual resources, or other nodes that relay packets from one network segment to another through nodes in a computer network.

在一些示例中,联网环境102可以提供一个或多个服务110、托管一个或多个服务110、提供到一个或多个服务110的连接或以其他方式支持一个或多个服务110以供客户端设备106连接和使用。客户端设备106可以包括被配置为在网络108上使用各种通信协议(例如,VPN、SSL、TLS、DTLS和/或任何其他协议)进行通信的任何类型的设备。例如,客户端设备106可以包括个人用户设备(例如,台式计算机、膝上型计算机、电话、平板电脑、可穿戴设备、诸如电视等娱乐设备等)、网络设备(例如,服务器、路由器、交换机、接入点等)和/或任何其他类型的计算设备。In some examples, networked environment 102 may provide one or more services 110, host one or more services 110, provide a connection to or otherwise support one or more services 110 for client Device 106 is connected and used. Client device 106 may include any type of device configured to communicate over network 108 using various communication protocols (eg, VPN, SSL, TLS, DTLS, and/or any other protocol). For example, client devices 106 may include personal user devices (e.g., desktop computers, laptop computers, phones, tablets, wearable devices, entertainment devices such as televisions, etc.), network devices (e.g., servers, routers, switches, access point, etc.) and/or any other type of computing device.

在一些示例中,联网环境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的任何设备/系统/节点能够直接相互通信。In some examples, networked environment 102 may include edge routers 112(1) and 112(2) (hereinafter collectively referred to as "edge routers 112"), load balancers 114(1)-114(N) (hereinafter collectively referred to as "load balancer 114") (where N represents any number greater than or equal to one), data nodes 116(1)-116(N), control nodes 118(1)-118(N), firewall nodes 120(1)-120 (N), a key-value storage device 122 and a controller 124 . In various examples, various systems/devices/nodes of networked environment 102 may communicate with each other via a management plane and/or a message bus associated with networked environment 102 . For example, a common message bus associated with networked environment 102 may enable a data node to signal to a load balancer that it is about to be removed from the data node queue, that the load balancer needs to adjust where it will flow to, and so on. Additionally, a message bus associated with networked environment 102 may enable any devices/systems/nodes of networked environment 102 to communicate directly with each other.

在某些示例中,边缘路由器112和负载平衡器114可以使用ECMP,ECMP是一种策略,其中到单个目的地的下一跳分组转发可以发生在多个“最佳路径”上,这些路径在路由度量计算中并列首位。此外,边缘路由器112和负载平衡器114可以结合或替代ECMP路由使用任何路由策略,例如开放最短路径优先(OSPF)、中间系统到中间系统(ISIS)、增强型内部网关路由协议(EIGRP)、域名系统(DNS)负载平衡和/或边界网关协议(BGP)。虽然图1中示出为单独的实体,但要理解的是,在某些情况下,边缘路由器112和负载平衡器114可以驻留在相同的硬件设备和/或节点上。In some examples, edge routers 112 and load balancers 114 may use ECMP, which is a policy in which next-hop packet forwarding to a single destination may occur over multiple "best paths" between Tied for first place in routing metric calculations. Additionally, edge routers 112 and load balancers 114 may use any routing strategy in conjunction with or instead of ECMP routing, such as Open Shortest Path First (OSPF), Intermediate System to Intermediate System (ISIS), Enhanced Interior Gateway Routing Protocol (EIGRP), domain name System (DNS) load balancing and/or Border Gateway Protocol (BGP). Although shown in FIG. 1 as separate entities, it is to be understood that in some cases edge router 112 and load balancer 114 may reside on the same hardware device and/or node.

在某些情况下,边缘路由器112可以基于网络五元组的散列来平衡流量126,以便将分组路由到负载平衡器114。流量126可以包括控制平面流量128和数据平面流量130。此外,负载平衡器114可以基于网络六元组的散列来平衡流量126,以便将控制平面流量128路由到控制节点118并将数据平面流量130路由到数据节点116。分组的网络六元组可以包括分组的SPI值、源IP地址、源端口、目的地IP地址、目的地端口和协议。In some cases, edge router 112 may balance traffic 126 based on a hash of the network quintuple in order to route packets to load balancer 114 . Traffic 126 may include control plane traffic 128 and data plane traffic 130 . Additionally, load balancer 114 may balance traffic 126 based on the hash of the network six-tuple to route control plane traffic 128 to control node 118 and data plane traffic 130 to data node 116 . The packet's network six-tuple may include the packet's SPI value, source IP address, source port, destination IP address, destination port, and protocol.

如图所示,联网环境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中的第一数据节点的第二接口可以与第二流量类别相关联,等等。As shown, networked environment 102 may include data nodes 116(1)-116(N) (collectively hereinafter "data nodes 116") (where N represents any number greater than or equal to one). In some examples, data nodes 116 may process data plane traffic 130 on behalf of networked environment 102 . Data plane traffic 130 may include ESP traffic associated with IPsec connections. In some examples, data node 116(1) of data nodes 116 may be associated with one or more IPsec security associations. Additionally, data nodes 116 may forward data plane traffic 130 to one or more downstream nodes and/or devices, such as firewall nodes 120(1)-120(N) (hereinafter collectively referred to as "firewall nodes 120") (where N represents any number greater than or equal to one). In some examples, a first one of data nodes 116 may be associated with a first traffic class, a second one of data nodes 116 may be associated with a second traffic class, and so on. Additionally or alternatively, the first interface of the first data node in the data nodes 116 may be associated with the first traffic class, the second interface of the first data node in the data nodes 116 may be associated with the second traffic class, etc.

联网环境102还可以包括一个或多个控制节点118(1)-118(N)(下文统称为“控制节点118”)(其中N表示大于或等于一的任何数目)。在一些示例中,控制节点118可以代表联网环境102处理控制平面流量128。控制平面流量128可以包括与IPsec连接相关联的IKE流量。Networked environment 102 may also include one or more control nodes 118(1)-118(N) (collectively hereinafter "control nodes 118") (where N represents any number greater than or equal to one). In some examples, control node 118 may handle control plane traffic 128 on behalf of networked environment 102 . Control plane traffic 128 may include IKE traffic associated with IPsec connections.

如图所示,数据节点116和控制节点118都可以执行直接服务器返回(DSR)以将返回流量132发送回客户端设备106。即,数据节点116和控制节点118可以经由边缘路由器112(1)向客户端设备106发送返回流量132,绕过负载平衡器114。附加地或替代地,数据节点116和控制节点118可以绕过边缘路由器112(1)将返回流量132直接发送到客户端设备。As shown, both data node 116 and control node 118 may perform direct server return (DSR) to send return traffic 132 back to client device 106 . That is, data nodes 116 and control nodes 118 may send return traffic 132 to client device 106 via edge router 112 ( 1 ), bypassing load balancer 114 . Additionally or alternatively, data nodes 116 and control nodes 118 may send return traffic 132 directly to client devices, bypassing edge router 112(1).

联网环境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发送到的位置。The networked environment 102 may also include a key-value store 122 and a controller 124 . Key-value store 122 may include one or more databases that are accessible by various nodes and devices of networked environment 102 . In some examples, load balancers 114 , data nodes 116 , control nodes 118 , and other nodes and/or devices of networked environment 102 may read data from and write data to key-value store 122 . Key-value store 122 may store associations between SPI values and SAs, sets of SPI values and quintuple values, and the like. In some examples, controller 124 may receive telemetry data from data nodes 116 and/or control nodes 118 and determine states associated with each of data nodes 116 and/or control nodes 118 based at least in part on the telemetry data . For example, controller 124 may receive telemetry data indicative of load capacity associated with data node 116(1). Controller 124 may also determine whether the load capacity meets or exceeds a threshold load capacity, and if so, controller 124 may prompt data node 116(1) to send a notification to load balancer 114(1) to request that load balancer 114(1) ) adjusts where it sends data plane traffic 130 to.

尽管图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可以包括任何类型的网络设备,例如服务器、交换机、路由器、集线器、网桥、网关、调制解调器、中继器、接入点等。Although depicted in FIG. 1 as separate hardware components, it should be understood that edge routers 112, load balancers 114, data nodes 116, control nodes 118, firewall nodes 120, key-value stores 122, and/or controllers 124 may be at least part of A software component that resides in memory. In this manner, one or more processors may execute instructions that cause the one or more processors to perform the processing described herein with respect to edge router 112, load balancer 114, data node 116, control node 118, firewall node 120, key-value All operations described by the storage device 122 and/or the controller 124. In some cases, edge routers 112, load balancers 114, data nodes 116, control nodes 118, firewall nodes 120, key-value stores 122, and/or controllers 124 may be resident on stand-alone appliances or systems of stand-alone appliances separate hardware and/or software components. Additionally or alternatively, edge routers 112, load balancers 114, data nodes 116, control nodes 118, firewall nodes 120, key-value stores 122, and/or controllers 124 may comprise any type of network equipment, such as servers, switches, , routers, hubs, bridges, gateways, modems, repeaters, access points, etc.

图2示出了示例流量流200的示意图,其中负载平衡器114(1)根据一个或多个路由策略将流量发送到下游节点。例如,负载平衡器114(1)可以接收来自客户端设备(例如一个或多个客户端设备106)的传入隧道流量202。在一些情况下,传入隧道流量202可以包括控制平面流量128和/或数据平面流量130。另外,传入隧道流量202可以包括SPI值和一组五元组值。2 shows a schematic diagram of an example traffic flow 200 in which load balancer 114(1) sends traffic to downstream nodes according to one or more routing policies. For example, load balancer 114(1) may receive incoming tunneled traffic 202 from client devices (eg, one or more client devices 106). In some cases, incoming tunnel traffic 202 may include control plane traffic 128 and/or data plane traffic 130 . Additionally, incoming tunnel traffic 202 may include an SPI value and a set of 5-tuple values.

在一些示例中,当负载平衡器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之一。In some examples, when load balancer 114(1) receives incoming tunnel traffic 202, load balancer 114(1) may calculate a hash value representing the SPI value of incoming tunnel traffic 202 and the set of five-tuple values . Load balancer 114(1) may then determine the particular node of data nodes 116 or control nodes 118 to which incoming tunnel traffic 202 is to be sent based at least in part on the hash value and using ECMP routing policies. For example, if incoming tunnel traffic 202 includes control plane traffic 128 (eg, IKE traffic), load balancer 114(1) may send control plane traffic 128 to one of control nodes 118 based at least in part on the hash value. Likewise, if incoming tunnel traffic 202 includes data plane traffic 130 (eg, ESP traffic), load balancer 114(1) may send data plane traffic 130 to one of data nodes 116 based at least in part on the hash value.

图3示出了用于使用分组头部的SPI值建立流量的负载平衡的通信会话的各个节点和/或设备之间的示例流量流300的数据流图。示例流量流300包括客户端302、路由器/负载平衡器304、第一头端306和第二头端308。在示例中,第一头端306和第二头端308可以包括数据节点、控制节点、服务器等。例如,第一头端306可以包括控制节点并且第二头端308可以包括数据节点。3 shows a data flow diagram of an example traffic flow 300 between various nodes and/or devices for establishing a load-balanced communication session of traffic using SPI values of packet headers. Example traffic flow 300 includes client 302 , router/load balancer 304 , first headend 306 , and second headend 308 . In an example, the first headend 306 and the second headend 308 may include data nodes, control nodes, servers, and the like. For example, the first head-end 306 may include a control node and the second head-end 308 may include a data node.

为了开始示例流量流300,客户端302向路由器/负载平衡器304发送连接请求分组310。连接请求分组310可以指示建立加密隧道以使得流量可以从客户端302向第二头端308流动的请求。连接请求分组310可以包括一组五元组值。路由器/负载平衡器304在接收到连接请求分组310后,可以将连接请求分组310发送到第一头端306。路由器/负载平衡器304可以至少部分地基于计算表示包括在连接请求分组310中的该组五元组值的散列值来确定向第一头端306发送连接请求分组310。附加地或替代地,路由器/负载平衡器304可以至少部分地基于ECMP路由策略来确定将连接请求分组310发送到第一头端306。To begin the example traffic flow 300 , the client 302 sends a connection request packet 310 to the router/load balancer 304 . Connection request packet 310 may indicate a request to establish an encrypted tunnel so that traffic may flow from client 302 to second headend 308 . Connection request packet 310 may include a set of five-tuple values. After receiving the connection request packet 310 , the router/load balancer 304 can send the connection request packet 310 to the first headend 306 . Router/load balancer 304 may determine to send connection request packet 310 to first headend 306 based at least in part on computing a hash value representative of the set of quintuple values included in connection request packet 310 . Additionally or alternatively, router/load balancer 304 may determine to send connection request packet 310 to first headend 306 based at least in part on an ECMP routing policy.

在接收到连接请求分组310之后,第一头端306可以与客户端302建立IKE会话314。以这种方式,IKE流量可以在客户端302和第一头端306之间流动。在某些情况下,建立IKE会话314可以包括验证与客户端相关联的用户302,例如通过确定用户的身份。一旦建立了IKE会话,第一头端就可以向客户端302发送回复分组316。回复分组316可以指示IKE会话已建立。After receiving the connection request packet 310 , the first headend 306 can establish an IKE session 314 with the client 302 . In this way, IKE traffic can flow between client 302 and first headend 306 . In some cases, establishing the IKE session 314 may include authenticating the user 302 associated with the client, such as by determining the identity of the user. Once the IKE session is established, the first headend may send a reply packet 316 to the client 302 . Reply packet 316 may indicate that an IKE session has been established.

客户端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。Client 302 may then send ESP traffic 318 to router/load balancer 304 , and router/load balancer 304 may forward this ESP traffic 318 to second headend 308 . After receiving ESP traffic 318, second headend 308 may generate SPI value 320 for use by client 302 in sending data plane traffic over the ESP channel. The second head-end 308 may further associate the SPI value with the set of 5-tuple values. In this manner, second headend 308 can update router/load balancer 304 with quintuple and SPI mapping 322 . In some cases, quintuple and SPI map 322 may include a hash value. Additionally or alternatively, the quintuple and SPI map 322 may indicate that future data plane packets including certain sets of quintuple values and certain SPI values are to be sent to the second head-end 308 . The second head-end 308 may then send a reply packet 324 back to the client 302 . Reply packet 324 may indicate that client 302 may begin sending data plane traffic 326 using the ESP channel or encrypted tunnel.

客户端302在接收到回复分组324之后,可以开始通过ESP信道发送数据平面流量326。当路由器/负载平衡器304接收到数据平面流量时,路由器/负载平衡器304可以计算表示网络五元组的散列值和SPI值328。例如,数据平面流量326的分组可以包括SPI值和网络五元组。至少部分地基于计算散列,路由器/负载平衡器304可以将数据平面流量326发送到第二头端308。例如,路由器/负载平衡器304可以至少部分地基于五元组和SPI映射322将数据平面流量326发送到第二头端308。After receiving the reply packet 324, the client 302 may start sending data plane traffic 326 over the ESP channel. When router/load balancer 304 receives data plane traffic, router/load balancer 304 may calculate a hash value and SPI value 328 representing the network quintuple. For example, packets of data plane traffic 326 may include SPI values and network quintuples. Based at least in part on computing the hash, router/load balancer 304 may send data plane traffic 326 to second headend 308 . For example, router/load balancer 304 can send data plane traffic 326 to second headend 308 based at least in part on quintuple and SPI map 322 .

图4A和图4B示出了用于指示分组头部的SPI值和/或SPI值字段中的QoS类型信息的通信会话的各个节点和/或设备之间的示例流量流400(1)和400(2)的数据流图。示例流量流400(1)和400(2)可以包括客户端302、路由器/负载平衡器304、IKE节点402和分类器404。4A and 4B illustrate example traffic flows 400(1) and 400 between various nodes and/or devices of a communication session for indicating an SPI value in a packet header and/or QoS type information in an SPI value field. (2) The data flow diagram. Example traffic flows 400 ( 1 ) and 400 ( 2 ) may include client 302 , router/load balancer 304 , IKE node 402 , and classifier 404 .

关于图4A,客户端302可以向路由器/负载平衡器304发送连接请求分组406。在一些示例中,连接请求分组406可以包括IKE SA INIT请求分组。连接请求分组406可以指示建立加密隧道(例如,IPsec连接)以供客户端302用于向服务发送数据和/或从服务接收数据的请求。路由器/负载平衡器304在接收到连接请求分组406后,可以调用分类器404来确定与连接请求分组406相关联的流量类别。例如,连接请求分组304可以指示客户端302希望发送和/或接收的流量类型(例如,语音、视频、音频、网络等),并且分类器404可以被配置为确定那是什么类型的流量。附加地或替代地,连接请求分组406可以包括建立多个连接的请求,每个连接与不同的流量类别和/或优先级相关联。在一些示例中,调用分类器404可以包括由路由器/负载平衡器304向分类器404发送连接请求分组406。Referring to FIG. 4A , client 302 may send connection request packet 406 to router/load balancer 304 . In some examples, connection request packet 406 may include an IKE SA INIT request packet. Connection request packet 406 may indicate a request to establish an encrypted tunnel (eg, an IPsec connection) for client 302 to send data to and/or receive data from the service. Router/load balancer 304 , upon receiving connection request packet 406 , may invoke classifier 404 to determine the traffic class associated with connection request packet 406 . For example, connection request packet 304 may indicate the type of traffic that client 302 wishes to send and/or receive (eg, voice, video, audio, network, etc.), and classifier 404 may be configured to determine what type of traffic that is. Additionally or alternatively, connection request packet 406 may include a request to establish multiple connections, each connection being associated with a different traffic class and/or priority. In some examples, invoking classifier 404 may include sending, by router/load balancer 304 , connection request packet 406 to classifier 404 .

在一些示例中,分类器404可以对数据分组408进行操作以确定与连接请求数据分组406相关联的流量类别。例如,分类器404可以确定连接请求分组406包括建立语音流量信道、视频流量信道、音频流量信道、网络流量信道等中的一个或多个的请求。分类器404可以在确定流量类别之后发送指示与连接请求分组406相关联的流量类别的分类分组410。分类器404可以将分类分组410发送到路由器/负载平衡器304。继而,路由器/负载平衡器304可以将关于流量类别分类的指示注入到连接请求分组406的分组头部中。以此方式,连接请求分组406可以包括更新的连接请求分组414,其在其分组头部中包括关于流量类别分类信息的指示。In some examples, classifier 404 may operate on data packet 408 to determine a traffic class associated with connection request data packet 406 . For example, classifier 404 may determine that connection request packet 406 includes a request to establish one or more of a voice traffic channel, a video traffic channel, an audio traffic channel, a network traffic channel, and the like. Classifier 404 may send classification packet 410 indicating the traffic class associated with connection request packet 406 after determining the traffic class. Classifier 404 may send classified packet 410 to router/load balancer 304 . In turn, router/load balancer 304 may inject an indication of the traffic class classification into the packet header of connection request packet 406 . In this manner, connection request packet 406 may include an updated connection request packet 414 that includes an indication of traffic class classification information in its packet header.

路由器/负载平衡器304可以将更新的连接请求分组414发送到诸如IKE节点402的控制节点。IKE节点402可以接收更新的连接请求分组414。至少部分地基于包括在更新的连接请求分组414的分组头部中的流量类别分类信息,IKE节点402可以生成一个或多个SPI值416。一个或多个SPI值416可以全部或部分地指示要根据其处理数据平面流量的流量类别。也就是说,特定的SPI值可以包括唯一的位组合,并且该唯一的位组合的第一位组合(例如,SPI值的第一部分)可以指示流量类别,并且该唯一的位组合的第二位组合(例如,SPI值的第二部分)可以标识客户端302和与加密隧道连接相关联的一个或多个主机之间的安全关联。换句话说,数据平面分组头部的SPI值字段可以包括指示流量类别的第一位组合和标识客户端302和与加密隧道连接相关联的一个或多个主机之间的安全关联的第二位组合。Router/load balancer 304 may send updated connection request packet 414 to a control node, such as IKE node 402 . IKE node 402 may receive updated connection request packet 414 . IKE node 402 may generate one or more SPI values 416 based at least in part on the traffic class classification information included in the packet header of updated connection request packet 414 . One or more SPI values 416 may indicate, in whole or in part, a traffic class according to which data plane traffic is to be processed. That is, a particular SPI value may include a unique bit combination, and a first bit combination (e.g., the first portion of the SPI value) of the unique bit combination may indicate a traffic class, and a second bit of the unique bit combination The combination (eg, the second portion of the SPI value) can identify a security association between client 302 and one or more hosts associated with the encrypted tunnel connection. In other words, the SPI value field of the data plane packet header may include a combination of first bits indicating the traffic class and a second bit identifying a security association between the client 302 and one or more hosts associated with the encrypted tunnel connection combination.

在生成一个或多个SPI值416之后,IKE节点402可以发送响应分组418。在一些情况下,响应分组418可以包括IKE INIT响应分组。附加地或替代地,响应分组418可以包括一个或多个SPI值416中的一些或全部。以此方式,客户端302可以使用一个或多个SPI值416中的第一SPI值以根据与第一QoS度量相关联的第一流量类别发送第一数据平面流量并且可以使用一个或多个SPI值416中的第二SPI值以根据与第二QoS度量相关联的第二流量类别发送第二数据平面流量。After generating one or more SPI values 416 , IKE node 402 may send a response packet 418 . In some cases, response packet 418 may include an IKE INIT response packet. Additionally or alternatively, response packet 418 may include some or all of one or more SPI values 416 . In this manner, client 302 may use a first SPI value of one or more SPI values 416 to send first data plane traffic according to a first traffic class associated with a first QoS metric and may use one or more SPI The second SPI value in value 416 is to send the second data plane traffic according to the second traffic class associated with the second QoS metric.

关于图4B,客户端302可以向路由器/负载平衡器304发送连接请求分组406。在一些示例中,连接请求分组406可以包括指示IKE节点402建立IPsec安全关联的请求的IKE SAINIT请求分组。连接请求分组406可以指示用于建立加密隧道(例如,IPsec连接)以供客户端302用于向服务发送数据和/或从服务接收数据的请求。路由器/负载平衡器304在接收到连接请求分组304后,可以向IKE节点402发送连接请求分组406。在一些示例中,路由器/负载平衡器304可以计算表示包括在连接请求分组406中的网络五元组的散列值,并且至少部分地基于该散列值,将连接请求分组406发送到IKE节点402。例如,路由器/负载平衡器304可以使用ECMP路由策略并且至少部分地基于散列值来确定向IKE节点402发送连接请求分组。Referring to FIG. 4B , client 302 may send connection request packet 406 to router/load balancer 304 . In some examples, connection request packet 406 may include an IKE SAINIT request packet indicating a request by IKE node 402 to establish an IPsec security association. Connection request packet 406 may indicate a request to establish an encrypted tunnel (eg, an IPsec connection) for client 302 to send data to and/or receive data from the service. Router/load balancer 304 may send connection request packet 406 to IKE node 402 after receiving connection request packet 304 . In some examples, router/load balancer 304 may calculate a hash value representative of the network quintuple included in connection request packet 406 and, based at least in part on the hash value, send connection request packet 406 to the IKE node 402. For example, router/load balancer 304 may determine to send the connection request packet to IKE node 402 using an ECMP routing policy and based at least in part on the hash value.

为了使IKE节点402生成一个或多个匹配正确流量类别的SPI值,IKE节点402可以在为客户端302建立连接之前调用分类器404。例如,IKE节点402可以将连接请求分组406或连接请求分组406的一部分发送到分类器,使得分类器404可以确定与连接请求分组406相关联的流量类别。例如,连接请求分组406可以指示客户端302希望发送和/或接收的流量类型(例如,语音、视频、音频、网络等),并且分类器404可以被配置为确定那是什么类型的流量。附加地或替代地,连接请求分组406可以包括建立多个连接的请求,每个连接与不同的流量类别和/或优先级相关联。In order for IKE node 402 to generate one or more SPI values that match the correct traffic class, IKE node 402 may invoke classifier 404 before establishing a connection for client 302 . For example, IKE node 402 can send connection request packet 406 or a portion of connection request packet 406 to classifier so that classifier 404 can determine a traffic class associated with connection request packet 406 . For example, connection request packet 406 may indicate the type of traffic that client 302 wishes to send and/or receive (eg, voice, video, audio, network, etc.), and classifier 404 may be configured to determine what type of traffic that is. Additionally or alternatively, connection request packet 406 may include a request to establish multiple connections, each connection being associated with a different traffic class and/or priority.

在一些示例中,分类器404可以对连接请求分组408进行操作以确定与连接请求分组406相关联的流量类别。例如,分类器404可以确定连接请求分组406包括建立语音流量信道、视频流量信道、音频流量信道、网络流量信道等中的一个或多个的请求。分类器404可以在确定流量类别之后发送指示与连接请求分组406相关联的流量类别的分类分组410。分类器404可以将分类分组410发送到IKE节点402。In some examples, classifier 404 may operate on connection request packet 408 to determine a traffic class associated with connection request packet 406 . For example, classifier 404 may determine that connection request packet 406 includes a request to establish one or more of a voice traffic channel, a video traffic channel, an audio traffic channel, a network traffic channel, and the like. Classifier 404 may send classification packet 410 indicating the traffic class associated with connection request packet 406 after determining the traffic class. Classifier 404 may send classified packet 410 to IKE node 402 .

在一些示例中,IKE节点402可以接收分类分组410。至少部分地基于与连接请求分组406相关联的流量类别,IKE节点402可以生成一个或多个SPI值416。一个或多个SPI值416可以全部或部分地指示要根据其处理数据平面流量的流量类别。也就是说,特定的SPI值可以包括唯一的位组合,并且该唯一的位组合的第一位组合(例如,SPI值的第一部分)可以指示流量类别,并且该唯一的位组合的第二位组合(例如,SPI值的第二部分)可以标识客户端302和与加密隧道连接相关联的一个或多个主机之间的安全关联。换句话说,数据平面分组头部的SPI值字段可以包括指示流量类别的第一位组合和标识客户端302和与加密隧道连接相关联的一个或多个主机之间的安全关联的第二位组合。In some examples, IKE node 402 may receive classified packet 410 . Based at least in part on a traffic class associated with connection request packet 406 , IKE node 402 may generate one or more SPI values 416 . One or more SPI values 416 may indicate, in whole or in part, a traffic class according to which data plane traffic is to be processed. That is, a particular SPI value may include a unique bit combination, and a first bit combination (e.g., the first portion of the SPI value) of the unique bit combination may indicate a traffic class, and a second bit of the unique bit combination The combination (eg, the second portion of the SPI value) can identify a security association between client 302 and one or more hosts associated with the encrypted tunnel connection. In other words, the SPI value field of the data plane packet header may include a combination of first bits indicating the traffic class and a second bit identifying a security association between the client 302 and one or more hosts associated with the encrypted tunnel connection combination.

在生成一个或多个SPI值416之后,IKE节点402可以向客户端302发送响应分组418。在一些情况下,响应分组418可以包括IKE INIT响应分组。附加地或替代地,响应分组418可以包括一个或多个SPI值416中的一些或全部。以此方式,客户端302可以使用一个或多个SPI值416中的第一SPI值以根据与第一QoS度量相关联的第一流量类别发送第一数据平面流量并且可以使用一个或多个SPI值416中的第二SPI值以根据与第二QoS度量相关联的第二流量类别发送第二数据平面流量。After generating one or more SPI values 416 , IKE node 402 may send a response packet 418 to client 302 . In some cases, response packet 418 may include an IKE INIT response packet. Additionally or alternatively, response packet 418 may include some or all of one or more SPI values 416 . In this manner, client 302 may use a first SPI value of one or more SPI values 416 to send first data plane traffic according to a first traffic class associated with a first QoS metric and may use one or more SPI The second SPI value in value 416 is to send the second data plane traffic according to the second traffic class associated with the second QoS metric.

图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可以包括数据平面流量和/或控制平面流量。5A-5C collectively illustrate a schematic diagram of an example data flow 500 associated with performing encrypted tunnel migration. At "1," load balancer 114(1) may receive traffic 502 from one or more client devices 106 and forward traffic 502 to one or more backend nodes 504(1)-504(N) (hereinafter Collectively referred to as "backend nodes 504) (where N represents any number greater than or equal to one). Traffic 502 may include a first traffic 502(1) to be sent to node 504(1), a first traffic to be sent to node 504(2) and the Nth traffic 502(N) to be sent to node 504(N) (where N represents any number greater than or equal to one). Additionally, traffic 502 may include data plane traffic and/or Control plane traffic.

在一些示例中,负载平衡器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中的哪个节点。In some examples, load balancer 114(1) may determine that first traffic 502(1), second traffic 502(2), and Nth traffic 502(N) are to be sent to node 504, respectively, based at least in part on an ECMP routing policy. (1), 504(2), and 504(N). ECMP routing policies may use six-tuple logic to determine which of backend nodes 504 to send individual packets of traffic 502 . The six-tuple logic may include an SPI value for a single packet and a set of five-tuple values (source address, destination address, source port, destination port, and protocol) for a single packet. For example, each packet of first flow 502(1), second flow 502(2), and Nth flow 502(N) may each include a corresponding SPI value and a corresponding set of quintuple values, and load balancer 114 (1) A corresponding hash value may be calculated for each individual group, and the respective hash value represents a corresponding SPI value and a corresponding set of five-tuple values of each individual group. In this manner, each respective hash value of each individual packet of traffic 502 may indicate to which of backend nodes 504 the individual packet is to be sent.

在“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%的容量操作。在一些示例中,与后端节点关联的负载容量可以包括与后端节点关联的隧道负载容量、后端节点可用/使用的硬件资源量、后端节点可用/使用的虚拟计算资源量等中的一个或多个。At “2,” controller 124 may receive telemetry data 506 associated with backend node 504 . For example, node 504(1) may send first telemetry data to controller 124, node 504(2) may send second telemetry data to controller 124, and node 504(N) may send Nth telemetry data to controller 124 . In some examples, telemetry data 506 may indicate a load capacity associated with each of backend nodes 504 . That is, telemetry data 506 may indicate that node 504(1) is operating at 27% capacity, node 504(2) is operating at 100% capacity, and node 504(N) is operating at 17% capacity. In some examples, the load capacity associated with the backend node may include a tunnel load capacity associated with the backend node, an amount of hardware resources available/used by the backend node, an amount of virtual computing resources available/used by the backend node, etc. one or more.

在“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所示。At "3," controller 124 may send an indication 508 for load balancer 114(1) to adjust the data flow. That is, adjust where load balancer 114(1) sends various portions of traffic 502 (eg, which of backend nodes 504). For example, based at least in part on telemetry data 506, controller 124 may determine that the load capacity of node 504(2) exceeds a threshold load capacity. The threshold load capacity may include, for example, a percentage value (eg, 80%, 85%, 90%, 100%, etc.). Additionally, the threshold load capacity may be dynamic and change (eg, from 80% to 90%) depending on the time of day, day of the week, current demand, etc. In some cases, controller 124 may send the indication directly to load balancer 114(1). Additionally or alternatively, controller 124 may send an indication to node 504(2), as shown in FIG. 5B.

在“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会话的控制节点发送密钥更新请求。At “4,” node 504(2) may send or forward indication 508 to load balancer 114(1) based at least in part on receiving the indication from controller 124. Indication 508 may be configured to prompt load balancer 114(1) to perform one or more actions to adjust where it sends data streams. Thus, at "5," load balancer 114(1), based at least in part on receiving indication 508, may send indication 510 to node 504(N) to prompt node 504(N) to prepare one or more interfaces for the second traffic A portion of 502(2) may be sent/redirected to node 504(N). In at least one example, node 504(N) may include a data node for processing ESP traffic and indication 510 may include an empty ESP packet including a client device associated with one or more client devices 106 source IP address and port. In this manner, when node 504(N) receives a null ESP packet, node 504(N) may begin setting up the interface in preparation for receiving IPsec security associations. Additionally, load balancer 114(1) may send a key update request to the control node responsible for the corresponding IKE session associated with the IPsec security association.

在“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值和该组五元组值之间的关联。At "6," load balancer 114(1) may begin sending additional traffic 512 to nodes 504(N). Additional traffic 512 may include at least a portion of second traffic 502(2) that was previously sent to node 504(2). In this manner, the load capacity of node 504(2) may be reduced (eg, to 75%) and the load capacity of node 504(N) may be increased (eg, to 42%). In some examples, load balancer 114(1) may begin sending additional traffic 512 to nodes 504(N) based at least in part on receiving indication 508 of adjusted data flow. Furthermore, load balancer 114(1) may determine that additional traffic 512 is to be sent to node 504(N) based at least in part on the SPI value included in a separate packet of additional traffic 512. For example, in some examples, based at least in part on the load balancer 114(1) sending the key update request, the load balancer 114(1) may not be aware of the SPI value included in the separate packet because the IKE node may have issued The new SPI value to be used by the client device. Accordingly, load balancer 114(1) may identify a set of quintuple values included in a separate packet and determine additional traffic 512 based at least in part on identifying the set of quintuple values and based at least in part on issuing an update key request will be sent to node 504(N). In addition, load balancer 114(1) may store an association between new/unknown SPI values and the set of 5-tuple values.

图6、图7、图8和图9示出了与本文呈现的用于基于SPI值对加密流量进行负载平衡的技术相关联的各种示例方法的逻辑流程图。本文参考图6、图7、图8和图9描述的逻辑操作可以被实现为(1)作为在计算系统上运行的一系列计算机实现的动作或程序模块和/或(2)作为计算系统内互连的机器逻辑电路或电路模块。6, 7, 8, and 9 illustrate logic flow diagrams of various example methods associated with the techniques presented herein for load balancing encrypted traffic based on SPI values. The logical operations described herein with reference to FIGS. 6, 7, 8, and 9 may be implemented (1) as a series of computer-implemented acts or program modules running on a computing system and/or (2) as Interconnected machine logic circuits or circuit modules.

本文描述的各种组件的实现是取决于计算系统的性能和其他要求的选择问题。因此,本文描述的逻辑操作被不同地称为操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可以用软件、固件、专用数字逻辑及其任意组合来实现。还应当理解,可以执行比图6、图7、图8和图9中所示以及本文描述的更多或更少的操作。这些操作也可以并行执行,或者以与本文描述的顺序不同的顺序执行。这些操作中的一些或全部也可以由具体标识的那些组件之外的组件执行。尽管本公开中描述的技术是参考特定组件的,但是在其他示例中,这些技术可以由更少的组件、更多的组件、不同的组件或组件的任何配置来实现。Implementation of the various components described herein is a matter of choice depending on the performance and other requirements of the computing system. Accordingly, the logical operations described herein are referred to variously as operations, structural devices, acts or modules. These operations, structural devices, acts and modules may be implemented in software, firmware, special purpose digital logic and any combination thereof. It should also be understood that more or fewer operations may be performed than shown in FIGS. 6 , 7 , 8 , and 9 and described herein. Operations may also be performed in parallel, or in an order different from that described herein. Some or all of these operations may also be performed by components other than those specifically identified. Although the techniques described in this disclosure are described with reference to specific components, in other examples the techniques may be implemented with fewer components, more components, different components, or any configuration of components.

图6示出了用于通过使用SPI值来维护分组的QoS处理的示例方法600的逻辑流程图。示例方法600开始于操作602,其包括从客户端设备并且在网络的网络设备处接收通过网络建立加密隧道以使得数据平面流量可以经由加密隧道在客户端设备和服务之间流动的请求。例如,负载平衡器114(1)和/或控制节点118(1)可以从一个或多个客户端设备106中的第一客户端设备接收请求。此外,在一些示例中,该请求可以包括IKE SA INIT请求分组以在第一客户端设备和第一数据节点116(1)之间建立IPsec SA,使得数据平面流量130可以在客户端设备和服务110之间流动。6 illustrates a logic flow diagram of an example method 600 for maintaining QoS handling of packets using SPI values. Example method 600 begins at operation 602, which includes receiving, from a client device and at a network device of the network, a request to establish an encrypted tunnel through a network so that data plane traffic may flow between the client device and a service via the encrypted tunnel. For example, load balancer 114(1) and/or control node 118(1) may receive a request from a first client device of one or more client devices 106. Additionally, in some examples, the request may include an IKE SA INIT request packet to establish an IPsec SA between the first client device and the first data node 116(1), such that the data plane traffic 130 may flow between the client device and the service Flow between 110.

在操作604,示例方法600包括确定数据平面流量属于一组流量类别中的特定流量类别,该特定流量类别与特定服务质量(QoS)性能度量相关联。在一些示例中,控制节点118(1)可以调用分类器来确定特定流量类别。附加地或替代地,负载平衡器114(1)可以调用分类器来确定特定流量类别。At operation 604 , the example method 600 includes determining that the data plane traffic belongs to a particular traffic class of a set of traffic classes, the particular traffic class being associated with a particular quality of service (QoS) performance metric. In some examples, control node 118(1) may invoke a classifier to determine a particular traffic class. Additionally or alternatively, load balancer 114(1) may invoke a classifier to determine a particular traffic class.

在操作606,示例方法600包括生成要由客户端设备用于数据平面流量的安全参数索引(SPI)值,该SPI值对应于特定流量类别。例如,控制节点118(1)可以生成要由一个或多个客户端设备106中的第一客户端设备使用的SPI值。SPI值和/或SPI值字段的一部分可以对应于特定的流量类别。也就是说,在一些示例中,SPI值可以包括唯一的位组合,并且该唯一的位组合的部分位可以对应于特定的流量类别。At operation 606 , the example method 600 includes generating a Security Parameter Index (SPI) value to be used by the client device for data plane traffic, the SPI value corresponding to a particular traffic class. For example, control node 118(1) may generate an SPI value to be used by a first client device of one or more client devices 106 . The SPI value and/or a portion of the SPI value field may correspond to a particular traffic class. That is, in some examples, an SPI value may include a unique bit combination, and some bits of the unique bit combination may correspond to a particular traffic class.

在操作608,示例方法600包括向客户端设备发送关于SPI值的指示。例如,控制节点118(1)可以通过执行直接服务器返回(DSR)以至少绕过负载平衡器114,将关于SPI值的指示直接发送到一个或多个客户端设备106中的第一客户端设备。在一些示例中,该指示可以包括指示已经为一个或多个客户端设备106中的第一客户端设备建立了IPsec SA的IKEINIT响应分组。At operation 608, the example method 600 includes sending an indication of the SPI value to the client device. For example, control node 118(1) may send an indication of the SPI value directly to a first of one or more client devices 106 by performing a direct server return (DSR) to bypass at least load balancer 114 . In some examples, the indication may include an IKEINIT response packet indicating that an IPsec SA has been established for a first client device of the one or more client devices 106 .

在操作610,示例方法600包括在与网络相关联的负载平衡节点处接收包括SPI值的数据平面流量的数据分组。例如,负载平衡器114(1)可以从边缘路由器112(1)接收数据平面流量130的数据分组,或者在负载平衡技术可以由边缘路由器112(1)执行的情况下,直接从第一客户端设备接收数据平面流量130的数据分组。在一些情况下,边缘路由器112(1)可以基于计算表示包括在数据分组中的一组网络五元组值的散列值来执行ECMP路由策略并且确定将数据分组发送到负载平衡器114(1)。At operation 610 , example method 600 includes receiving, at a load balancing node associated with the network, a data packet of data plane traffic that includes the SPI value. For example, load balancer 114(1) may receive data packets for data plane traffic 130 from edge router 112(1), or in the case where the load balancing technique may be performed by edge router 112(1), directly from the first client The device receives data packets of data plane traffic 130 . In some cases, edge router 112(1) may enforce an ECMP routing policy and determine to send the data packet to load balancer 114(1) based on computing a hash value representing a set of network quintuple values included in the data packet. ).

在操作612,示例方法600包括至少部分地基于包括SPI值的数据分组,通过网络发送数据分组,使得根据特定QoS性能度量来处理数据分组。例如,负载平衡器114(1)可以基于执行ECMP路由策略将数据分组发送到数据节点116(1),该ECMP路由策略包括计算表示SPI值和包括在数据分组中的该组网络五元组值的散列值。另外,数据节点116(1)可以与流量类别相关联,并且负载平衡器114(1)可以至少部分地基于散列值和/或确定SPI值与流量类别相关联来确定将数据分组发送到数据节点116(1)。At operation 612 , example method 600 includes sending the data packet over the network based at least in part on the data packet including the SPI value such that the data packet is processed according to the particular QoS performance metric. For example, load balancer 114(1) may send the data packet to data node 116(1) based on enforcing an ECMP routing policy that includes computing a representative SPI value and the set of network quintuple values included in the data packet the hash value of . Additionally, data node 116(1) may be associated with a traffic class, and load balancer 114(1) may determine to send the data packet to the data packet based at least in part on the hash value and/or determining that the SPI value is associated with the traffic class. Node 116(1).

图7示出了用于基于分组头部的SPI值来对流量进行负载平衡的示例方法700的逻辑流程图。示例方法700开始于操作702,其包括从客户端设备并且在网络的网络设备处接收通过网络建立加密隧道以使得数据平面流量可以经由加密隧道在客户端设备和服务之间流动的请求。例如,负载平衡器114(1)和/或控制节点118(1)可以从一个或多个客户端设备106中的第一客户端设备接收请求。此外,在一些示例中,该请求可以包括IKE SA INIT请求分组以在第一客户端设备和第一数据节点116(1)之间建立IPsec SA,使得数据平面流量130可以在客户端设备和服务110之间流动。7 illustrates a logic flow diagram of an example method 700 for load balancing traffic based on SPI values in packet headers. The example method 700 begins at operation 702, which includes receiving, from a client device and at a network device of the network, a request to establish an encrypted tunnel through a network so that data plane traffic may flow between the client device and a service via the encrypted tunnel. For example, load balancer 114(1) and/or control node 118(1) may receive a request from a first client device of one or more client devices 106. Additionally, in some examples, the request may include an IKE SA INIT request packet to establish an IPsec SA between the first client device and the first data node 116(1), such that the data plane traffic 130 may flow between the client device and the service Flow between 110.

在操作704,示例方法700包括生成要由客户端设备用于数据平面流量的安全参数索引(SPI)值。例如,控制节点118(1)可以生成要由一个或多个客户端设备118(1)中的第一客户端设备使用的SPI值。在一些示例中,SPI值可以标识第一客户端设备与一个或多个数据节点116和/或数据节点116的一个或多个接口之间的IPsec SA。At operation 704 , example method 700 includes generating a Security Parameter Index (SPI) value to be used by the client device for data plane traffic. For example, control node 118(1) may generate an SPI value to be used by a first client device of one or more client devices 118(1). In some examples, the SPI value may identify an IPsec SA between the first client device and one or more data nodes 116 and/or one or more interfaces of data nodes 116 .

在操作706,示例方法700包括向客户端设备发送关于SPI值的指示。例如,控制节点118(1)可以通过执行直接服务器返回(DSR)以至少绕过负载平衡器114,将关于SPI值的指示直接发送到一个或多个客户端设备106中的第一客户端设备。在一些示例中,该指示可以包括指示已经为一个或多个客户端设备106中的第一客户端设备建立了IPsec SA的IKEINIT响应分组。At operation 706, the example method 700 includes sending an indication of the SPI value to the client device. For example, control node 118(1) may send an indication of the SPI value directly to a first of one or more client devices 106 by performing a direct server return (DSR) to bypass at least load balancer 114 . In some examples, the indication may include an IKEINIT response packet indicating that an IPsec SA has been established for a first client device of the one or more client devices 106 .

在操作708,示例方法700包括在负载平衡器处接收包括SPI值的数据分组。例如,负载平衡器114(1)可以从边缘路由器112(1)接收数据平面流量130的数据分组,或者在负载平衡技术可以由边缘路由器112(1)执行的情况下,直接从第一客户端设备接收数据平面流量130的数据分组。在一些情况下,边缘路由器112(1)可以基于计算表示包括在数据分组中的一组网络五元组值的散列值来执行ECMP路由策略并且确定将数据分组发送到负载平衡器114(1)。At operation 708 , the example method 700 includes receiving, at the load balancer, a data packet including the SPI value. For example, load balancer 114(1) may receive data packets for data plane traffic 130 from edge router 112(1), or in the case where the load balancing technique may be performed by edge router 112(1), directly from the first client The device receives data packets of data plane traffic 130 . In some cases, edge router 112(1) may enforce an ECMP routing policy and determine to send the data packet to load balancer 114(1) based on computing a hash value representing a set of network quintuple values included in the data packet. ).

在操作710,示例方法700包括由负载平衡器并且至少部分地基于SPI值来确定将数据分组发送到支持该服务的一组服务器中的一个服务器。在一些示例中,确定将数据分组发送到该组服务器中的服务器还可以包括确定负载平衡器和服务器之间的加密隧道,该加密隧道将用于将数据分组发送到服务器。例如,负载平衡器114(1)可以基于执行ECMP路由策略将数据分组发送到数据节点116(1),该ECMP路由策略包括计算表示SPI值和包括在数据分组中的该组网络五元组值的散列值。At operation 710 , example method 700 includes determining, by the load balancer and based at least in part on the SPI value, to send the data packet to a server of a set of servers supporting the service. In some examples, determining the server in the set of servers to send the data packet to may also include determining an encrypted tunnel between the load balancer and the server that will be used to send the data packet to the server. For example, load balancer 114(1) may send the data packet to data node 116(1) based on enforcing an ECMP routing policy that includes computing a representative SPI value and the set of network quintuple values included in the data packet the hash value of .

在操作712,示例方法700包括将数据分组发送到服务器。例如,负载平衡器114(1)可以将数据平面流量130的数据分组发送到数据节点116(1),使得数据节点116(1)可以将数据分组转发到防火墙节点120(1),然后防火墙节点120(1)可以将数据分组向下游转发到服务110。At operation 712, the example method 700 includes sending the data packet to the server. For example, load balancer 114(1) may send data packets of data plane traffic 130 to data node 116(1), such that data node 116(1) may forward the data packets to firewall node 120(1), which in turn 120(1) can forward the data packet downstream to service 110.

图8示出了用于执行加密隧道迁移的示例方法800的逻辑流程图。示例方法800开始于操作802,其包括在负载平衡器处并且从客户端设备接收具有第一安全参数索引(SPI)值和一组五元组值的第一数据平面流量。例如,负载平衡器114(1)可以从边缘路由器112(1)接收第一数据平面流量,或者在负载平衡技术可以由边缘路由器112(1)执行的情况下,直接从第一客户端设备接收第一数据平面流量。在某些情况下,边缘路由器112(1)可以基于计算表示包括在第一数据平面流量中的该组网络五元组值的第一散列值来执行ECMP路由策略,并确定将第一数据平面流量发送到负载平衡器114(1)。FIG. 8 illustrates a logic flow diagram of an example method 800 for performing encrypted tunnel migration. Example method 800 begins at operation 802, which includes receiving, at a load balancer and from a client device, first data plane traffic having a first security parameter index (SPI) value and a set of quintuple values. For example, load balancer 114(1) may receive first data plane traffic from edge router 112(1) or, where load balancing techniques may be performed by edge router 112(1), directly from a first client device First data plane traffic. In some cases, edge router 112(1) may enforce an ECMP routing policy based on computing a first hash value representing the set of network quintuple values included in the first data plane traffic, and determine that the first data plane traffic Plane traffic is sent to load balancer 114(1).

在操作804,示例方法800包括至少部分地基于第一SPI值将第一数据平面流量发送到第一节点,第一节点与第一加密隧道相关联。例如,负载平衡器114(1)可以将第一数据平面流量130发送到数据节点116(1)。例如,第一SPI值可以标识客户端设备和数据节点116(1)之间的IPsec SA。在某些示例中,将第一数据平面流量发送到第一节点可以至少部分地基于计算表示第一SPI值和第一数据平面流量的一组网络五元组值的第二散列值。At operation 804 , the example method 800 includes sending the first data plane traffic to a first node based at least in part on the first SPI value, the first node being associated with the first encrypted tunnel. For example, load balancer 114(1) may send first data plane traffic 130 to data node 116(1). For example, the first SPI value may identify an IPsec SA between the client device and data node 116(1). In some examples, sending the first data plane traffic to the first node may be based at least in part on computing a second hash value representing the first SPI value and a set of network quintuple values of the first data plane traffic.

在操作806,示例方法800包括在负载平衡器处接收从客户端设备接收的附加数据平面流量要被发送到第二节点的指示,第二节点与第二加密隧道相关联。例如,该指示可以指示第一节点正在以最大负载容量操作或者第一节点即将失去连接、离开、被服务等。负载平衡器可以从诸如控制器124的控制器和/或诸如控制节点118或数据节点116之一的节点接收指示。在一些示例中,该指示可以提示负载平衡器向控制节点118之一发送例如为客户端设备建立新的IPsec SA的密钥更新请求。附加地或替代地,该指示可以提示负载平衡器向第二数据节点(例如数据节点116(N))发送空ESP分组,该空ESP分组包括客户端设备的IP地址和端口,使得第二数据节点可以开始设置接口以接收附加数据平面流量。At operation 806 , example method 800 includes receiving, at the load balancer, an indication that additional data plane traffic received from the client device is to be sent to a second node, the second node being associated with the second encrypted tunnel. For example, the indication may indicate that the first node is operating at maximum load capacity or that the first node is about to lose connection, leave, be served, etc. The load balancer may receive indications from a controller such as controller 124 and/or a node such as one of control node 118 or data node 116 . In some examples, the indication may prompt the load balancer to send one of the control nodes 118 a rekey request, eg, to establish a new IPsec SA for the client device. Additionally or alternatively, the indication may prompt the load balancer to send a null ESP packet to the second data node (e.g., data node 116(N)), the null ESP packet including the client device's IP address and port such that the second data node Nodes can start setting up interfaces to receive additional data plane traffic.

在操作808,示例方法800包括在负载平衡器处并且从客户端设备接收具有第二SPI值和该组五元组值的第二数据平面流量。例如,负载平衡器114(1)可以从边缘路由器112(1)接收第二数据平面流量,或者在负载平衡技术可以由边缘路由器112(1)执行的情况下,直接从第一客户端设备接收第二数据平面流量。在一些情况下,边缘路由器112(1)可以基于计算第三散列值来执行ECMP路由策略,第三散列值表示包括在第二数据平面流量中的该组网络五元组值。因为数据分组包括该组网络五元组值,所以第三散列值可以等于第一散列值并且边缘路由器112(1)可以将第二数据平面流量转发到负载平衡器114(1)。At operation 808 , the example method 800 includes receiving, at the load balancer and from the client device, second data plane traffic having the second SPI value and the set of 5-tuple values. For example, load balancer 114(1) may receive second data plane traffic from edge router 112(1) or, where load balancing techniques may be performed by edge router 112(1), directly from a first client device Second data plane traffic. In some cases, edge router 112(1) may enforce the ECMP routing policy based on computing a third hash value representing the set of network quintuple values included in the second data plane traffic. Because the data packet includes the set of network quintuple values, the third hash value may be equal to the first hash value and edge router 112(1) may forward the second data plane traffic to load balancer 114(1).

在操作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)。At operation 810 , example method 800 includes sending the second data plane traffic to the second node based at least in part on the second data plane traffic having the set of quintuple values. For example, load balancer 114(1) may send the second data plane traffic to data nodes 116(N). In some examples, load balancer 114(1) may send second data plane traffic 130 to data node 116(N) based at least in part on not identifying the second SPI value. Additionally, load balancer 114(1) may send second data plane traffic 130 to data node 116(N) based at least in part on identifying that second data plane traffic 130 includes the set of network quintuple values. For example, load balancer 114(1) may not have an association stored between the second SPI value and the set of network quintuple values. However, because load balancer 114(1) may have issued a key update request, load balancer 114(1) may associate a second SPI value with the set of network quintuple values. In other words, because load balancer 114(1) issues a key update request, when load balancer 114(1) receives a data plane load balancer 114(1) may associate the new/unknown SPI value with a known set of network quintuple values and send the data plane traffic to data node 116(N) accordingly.

图9示出了用于执行加密隧道迁移的另一示例方法900的逻辑流程图。示例方法900开始于操作902,其包括在负载平衡器处并且从客户端设备接收具有第一安全参数索引(SPI)值和一组五元组值的第一数据平面流量。FIG. 9 illustrates a logic flow diagram of another example method 900 for performing encrypted tunnel migration. The example method 900 begins at operation 902, which includes receiving, at a load balancer and from a client device, first data plane traffic having a first security parameter index (SPI) value and a set of quintuple values.

在操作904,示例方法900包括至少部分地基于第一SPI值和该组五元组值将第一数据平面流量发送到第一节点。例如,负载平衡器114(1)可以将第一数据平面流量130发送到数据节点116(1)。例如,第一SPI值可以标识客户端设备和数据节点116(1)之间的IPsecSA。在一些示例中,向第一节点发送第一数据平面流量可以至少部分地基于计算表示第一SPI值和第一数据平面流量的该组网络五元组值的散列值。At operation 904 , example method 900 includes sending first data plane traffic to the first node based at least in part on the first SPI value and the set of 5-tuple values. For example, load balancer 114(1) may send first data plane traffic 130 to data node 116(1). For example, the first SPI value may identify an IPsec SA between the client device and data node 116(1). In some examples, sending the first data plane traffic to the first node may be based at least in part on computing a hash value representing the set of network quintuple values of the first SPI value and the first data plane traffic.

在操作906,示例方法900包括在负载平衡器处接收第一数据平面流量的至少一部分要被发送到第二节点的指示。例如,该指示可以指示第一节点正在以最大负载容量操作或者第一节点即将失去连接、离开、被服务等。负载平衡器可以从诸如控制器124的控制器和/或诸如控制节点118或数据节点116之一的节点接收指示。在一些示例中,该指示可以提示负载平衡器向控制节点118之一发送例如为客户端设备建立新IPsec SA的密钥更新请求。附加地或替代地,该指示可以提示负载平衡器向第二数据节点(例如数据节点116(N))发送空ESP分组,该空ESP分组包括客户端设备的IP地址和端口,使得第二数据节点可以开始设置接口以接收第一数据平面流量的该部分。At operation 906 , example method 900 includes receiving, at the load balancer, an indication that at least a portion of the first data plane traffic is to be sent to the second node. For example, the indication may indicate that the first node is operating at maximum load capacity or that the first node is about to lose connection, leave, be served, etc. The load balancer may receive indications from a controller such as controller 124 and/or a node such as one of control node 118 or data node 116 . In some examples, the indication may prompt the load balancer to send one of the control nodes 118 a rekey request, eg, to establish a new IPsec SA for the client device. Additionally or alternatively, the indication may prompt the load balancer to send a null ESP packet to the second data node (e.g., data node 116(N)), the null ESP packet including the client device's IP address and port such that the second data node The node may begin setting up the interface to receive the portion of the first data plane traffic.

在操作908,示例方法900包括,至少部分地基于该指示,提示第二节点提供一个或多个接口,使得第一数据平面流量的至少该部分可以被发送到第二节点。例如,负载平衡器114(1)可以向数据节点116(N)发送空ESP分组。空ESP数据分组可以包括与客户端设备相关联的IP地址和/或端口,使得数据节点116(N)可以开始为第一数据平面流量的该部分提供一个或多个接口。At operation 908 , example method 900 includes, based at least in part on the indication, prompting the second node to provide one or more interfaces such that at least the portion of the first data plane traffic may be sent to the second node. For example, load balancer 114(1) may send a null ESP packet to data node 116(N). Null ESP data packets may include an IP address and/or port associated with the client device such that data node 116(N) may begin providing one or more interfaces for the portion of the first data plane traffic.

在操作910,示例方法900包括在负载平衡器处并且从客户端设备接收具有第二SPI值和该组五元组值的第二数据平面流量。第二SPI值可以包括新的或未知的SPI值。也就是说,负载平衡器可能尚未将第二SPI值与该组五元组值相关联。在操作912,示例方法900包括至少部分地基于第二SPI值和该组五元组值,确定第二数据平面流量包括第一数据平面流量的至少该部分。例如,负载平衡器114(1)可以跟踪与该组五元组值相关联的所有SPI值。以此方式,如果负载平衡器114(1)发出密钥更新请求,则负载平衡器114(1)可以开始监视与该组五元组值相关的新的/未知的SPI值以确定包括第一数据平面流量的该部分的第二数据平面流量,其包括该组五元组值和第二(新的/未知的)SPI值。At operation 910 , example method 900 includes receiving, at the load balancer and from the client device, second data plane traffic having the second SPI value and the set of 5-tuple values. The second SPI value may include a new or unknown SPI value. That is, the load balancer may not have associated the second SPI value with the set of 5-tuple values. At operation 912 , example method 900 includes determining, based at least in part on the second SPI value and the set of quintuple values, that the second data plane traffic includes at least the portion of the first data plane traffic. For example, load balancer 114(1) may track all SPI values associated with the set of 5-tuple values. In this manner, if load balancer 114(1) issues a key update request, load balancer 114(1) may begin monitoring new/unknown SPI values associated with the set of quintuple values to determine which key is included. A second data plane traffic of the portion of the data plane traffic comprising the set of 5-tuple values and a second (new/unknown) SPI value.

在操作914,示例方法900包括将第二数据平面流量发送到第二节点。例如,负载平衡器114(1)可以将第二数据平面流量发送到数据节点116(N)。在一些情况下,向第二节点发送第二数据平面流量可以至少部分地基于确定第二数据平面流量包括第一数据平面流量的该部分。附加地或替代地,向第二节点发送第二数据平面流量可以至少部分地基于ECMP路由策略并计算表示第二SPI值和该组五元组值的散列值。At operation 914, the example method 900 includes sending the second data plane traffic to the second node. For example, load balancer 114(1) may send the second data plane traffic to data nodes 116(N). In some cases, sending the second data plane traffic to the second node may be based at least in part on determining that the second data plane traffic includes the portion of the first data plane traffic. Additionally or alternatively, sending the second data plane traffic to the second node may be based at least in part on an ECMP routing policy and calculating a hash value representative of the second SPI value and the set of quintuple values.

图10示出了用于实现网络节点和/或设备(例如负载平衡器、控制节点、数据节点等)的示例计算机硬件架构的示意图,该网络节点和/或设备可用于实现本文呈现的各种技术的各个方面。计算机结构如图10所示,图10示出了传统的服务器计算机、网络设备、工作站、台式计算机、膝上型计算机、平板电脑、网络设备、电子阅读器、智能手机和/或其他计算设备,并且可以用于执行本文呈现的任何软件组件。计算机1000可以包括诸如服务器、交换机、路由器、集线器、网桥、网关、调制解调器、中继器、接入点等联网设备。10 shows a schematic diagram of an example computer hardware architecture for implementing network nodes and/or devices (e.g., load balancers, control nodes, data nodes, etc.) that can be used to implement the various aspects presented herein. all aspects of technology. The computer structure is shown in Figure 10, which shows a traditional server computer, network device, workstation, desktop computer, laptop computer, tablet computer, network device, e-reader, smart phone and/or other computing devices, and can be used to execute any of the software components presented herein. Computer 1000 may include networking devices such as servers, switches, routers, hubs, bridges, gateways, modems, repeaters, access points, and the like.

计算机1000包括基板1002或“母板”,其是可以通过系统总线或其他电通信路径连接到许多组件或设备的印刷电路板。在一个说明性配置中,一个或多个中央处理单元(“CPU”)1004结合芯片组1006操作。CPU 1004可以是执行计算机1000的操作所必需的算术和逻辑操作的标准可编程处理器。The computer 1000 includes a base board 1002 or "motherboard," which is a printed circuit board that can be connected to a number of components or devices through a system bus or other electrical communication paths. In one illustrative configuration, one or more central processing units (“CPUs”) 1004 operate in conjunction with chipset 1006 . CPU 1004 may be a standard programmable processor that performs the arithmetic and logical operations necessary for the operation of computer 1000 .

CPU 1004通过从一个离散的物理状态转换到下一离散的物理状态(通过操纵区分和改变这些状态的开关元件)来执行操作。开关元件通常包括保持两个二进制状态之一的电子电路,例如触发器,并且包括基于一个或多个其他开关元件的状态的逻辑组合提供输出状态的电子电路,例如逻辑门。这些基本的开关元件可以组合起来创建更复杂的逻辑电路,包括寄存器、加减法器、算术逻辑单元、浮点单元等。CPU 1004 performs operations by transitioning from one discrete physical state to the next by manipulating switching elements that distinguish and change the states. A switching element typically includes electronic circuitry, such as a flip-flop, that maintains one of two binary states, and includes electronic circuitry, such as a logic gate, that provides an output state based on a logical combination of the states of one or more other switching elements. These basic switching elements can be combined to create more complex logic circuits, including registers, adder and subtractors, arithmetic logic units, floating point units, and more.

芯片组1006提供CPU 1004与基板1002上的其余组件和设备之间的接口。芯片组1006可以提供到用作计算机1000中的主存储器的RAM 1008的接口。芯片组1006可以进一步提供到计算机可读存储介质的接口,计算机可读存储介质例如是只读存储器(“ROM”)1010或非易失性RAM(“NVRAM”),用于存储有助于启动计算机1000和在各种组件和设备之间传输信息的基本例程。根据本文描述的配置,ROM 1010或NVRAM还可以存储计算机1000的操作所必需的其他软件组件。Chipset 1006 provides the interface between CPU 1004 and the remaining components and devices on substrate 1002 . Chipset 1006 may provide an interface to RAM 1008 used as main memory in computer 1000 . Chipset 1006 may further provide an interface to a computer-readable storage medium, such as read-only memory (“ROM”) 1010 or non-volatile RAM (“NVRAM”), for storing The computer 1000 and the basic routines that transfer information between various components and devices. Depending on the configuration described herein, ROM 1010 or NVRAM may also store other software components necessary for the operation of computer 1000 .

计算机1000可以在联网环境中使用通过网络(例如网络108和/或网络1024)到远程计算设备和计算机系统的逻辑连接进行操作。芯片组1006可以包括用于通过NIC 1012提供网络连接的功能,例如千兆位以太网适配器。NIC 1012能够通过网络将计算机800连接到其他计算设备。应当理解,多个NIC 1012可以存在于计算机1000中,将计算机连接到其他类型的网络和远程计算机系统。在一些示例中,NIC 1012可以被配置为执行至少一些本文描述的技术,并且可以包括用于执行本文描述的技术的组件。Computer 1000 may operate in a networked environment using logical connections through a network (eg, network 108 and/or network 1024 ) to remote computing devices and computer systems. Chipset 1006 may include functionality for providing network connectivity through NIC 1012, such as a Gigabit Ethernet adapter. NIC 1012 is capable of connecting computer 800 to other computing devices over a network. It should be appreciated that multiple NICs 1012 may be present in computer 1000, connecting the computer to other types of networks and remote computer systems. In some examples, NIC 1012 may be configured to perform at least some of the techniques described herein and may include components for performing the techniques described herein.

计算机1000可以连接到为计算机提供非易失性存储的存储设备1018。存储设备1018可以存储操作系统1020、程序1022和数据,这些数据在本文中已经被更详细地描述。存储设备1018可以通过连接到芯片组1006的存储控制器1014连接到计算机1000。存储设备1018可以由一个或多个物理存储单元组成。存储控制器1014可以通过串行附加SCSI(“SAS”)接口、串行高级技术附接(“SATA”)接口、光纤信道(“FC”)接口或其他类型的接口与物理存储单元连接以用于在计算机和物理存储单元之间进行物理连接和传输数据。The computer 1000 can be connected to a storage device 1018 that provides non-volatile storage for the computer. The storage device 1018 can store an operating system 1020, programs 1022, and data, which have been described in greater detail herein. Storage device 1018 may be connected to computer 1000 through storage controller 1014 connected to chipset 1006 . Storage device 1018 may consist of one or more physical storage units. The storage controller 1014 may interface with the physical storage unit via a Serial Attached SCSI (“SAS”) interface, a Serial Advanced Technology Attachment (“SATA”) interface, a Fiber Channel (“FC”) interface, or other type of interface for use in Used to physically connect and transfer data between a computer and a physical storage unit.

计算机1000可以通过变换物理存储单元的物理状态以反映正在存储的信息来将数据存储在存储设备1018上。在本说明书的不同实施例中,物理状态的具体转变可以取决于各种因素。这样的因素的示例可以包括但不限于用于实现物理存储单元的技术、存储设备1018的特征是主存储器还是辅助存储器等。Computer 1000 may store data on storage devices 1018 by transforming the physical state of the physical storage elements to reflect the information being stored. The specific transition in physical state may depend on various factors in different embodiments of the present description. Examples of such factors may include, but are not limited to, the technology used to implement the physical storage unit, whether the storage device 1018 features primary or secondary memory, and the like.

例如,计算机1000可以通过经由存储控制器1014发出指令来将信息存储到存储设备1018,以改变磁盘驱动单元内特定位置的磁特性、光学存储单元件中特定位置的反射或折射特性、或者特定电容器、晶体管或固态存储单元中其他分立元件的电气特性。在不脱离本说明书的范围和精神的情况下,物理介质的其他转换是可能的,提供前述示例只是为了便于描述。计算机1000可以通过检测物理存储单元内的一个或多个特定位置的物理状态或特性来进一步从存储设备1018读取信息。For example, computer 1000 may store information to storage device 1018 by issuing instructions via storage controller 1014 to change the magnetic properties of a specific location within a disk drive unit, the reflective or refractive properties of a specific location in an optical storage unit element, or a specific capacitor , transistors, or the electrical characteristics of other discrete components in solid-state memory cells. Other transformations of physical media are possible without departing from the scope and spirit of the present description, and the foregoing examples are provided for ease of description only. Computer 1000 may further read information from storage device 1018 by detecting a physical state or characteristic of one or more specific locations within the physical storage unit.

除了上述大容量存储设备1018之外,计算机1000可以访问其他计算机可读存储介质以存储和取回信息,例如程序模块、数据结构或其他数据。本领域的技术人员应当理解,计算机可读存储介质是提供数据的非暂态存储并且可以被计算机1000访问的任何可用介质。在一些示例中,由系统架构100和/或其中包括的任何组件执行的操作可以由类似于计算机1000的一个或多个设备支持。换句话说,由系统架构100和/或其中包括的任何组件执行的一些或所有操作可以由在基于云的布置中操作的一个或多个计算机设备1000执行。In addition to mass storage device 1018 described above, computer 1000 may have access to other computer-readable storage media to store and retrieve information such as program modules, data structures, or other data. Those skilled in the art should understand that a computer readable storage medium is any available medium that provides non-transitory storage of data and that can be accessed by the computer 1000 . In some examples, operations performed by system architecture 100 and/or any components included therein may be supported by one or more devices similar to computer 1000 . In other words, some or all operations performed by system architecture 100 and/or any components included therein may be performed by one or more computing devices 1000 operating in a cloud-based arrangement.

作为示例而非限制,计算机可读存储介质可以包括以任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机可读存储介质包括但不限于RAM、ROM、可擦除可编程ROM(“EPROM”)、电可擦除可编程ROM(“EEPROM”)、闪存或其他固态存储技术、光盘ROM(“CD-ROM”)、数字通用光盘(“DVD”)、高清DVD(“HD-DVD”)、BLU-RAY或其他光学存储设备、磁带盒、磁带、磁盘存储设备或其他磁性存储设备设备或任何其他可用于以非暂态方式存储所需信息的介质。By way of example, and not limitation, computer readable storage media may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology. Computer-readable storage media include, but are not limited to, RAM, ROM, Erasable Programmable ROM (“EPROM”), Electrically Erasable Programmable ROM (“EEPROM”), flash memory or other solid-state storage technologies, compact disc ROM (“CD -ROM"), digital versatile disc ("DVD"), high-definition DVD ("HD-DVD"), BLU-RAY or other optical storage device, tape cartridge, tape, magnetic disk storage device or other magnetic storage device or any other A medium that can be used to store desired information in a non-transitory manner.

如上所述,存储设备1018可以存储用于控制计算机1000的操作的操作系统1020。根据一个实施例,操作系统包括LINUX操作系统。根据另一个实施例,操作系统包括来自华盛顿州雷德蒙德的微软公司的SERVER操作系统。根据进一步的实施例,操作系统可以包括UNIX操作系统或其变体之一。应当理解,也可以使用其他操作系统。存储设备1018可以存储计算机1000使用的其他系统或应用程序和数据。As noted above, the storage device 1018 may store an operating system 1020 for controlling the operation of the computer 1000 . According to one embodiment, the operating system includes a LINUX operating system. According to another embodiment, the operating system includes Microsoft® from Microsoft Corporation of Redmond, Washington. SERVER operating system. According to a further embodiment, the operating system may comprise the UNIX operating system or one of its variants. It should be understood that other operating systems may also be used. The storage device 1018 may store other system or application programs and data used by the computer 1000 .

在一个实施例中,存储设备1018或其他计算机可读存储介质编码有计算机可执行指令,当这些指令被加载到计算机1000中时,将计算机从通用计算系统转变为能够实现本文描述的实施例的专用计算机。如上所述,这些计算机可执行指令通过指定CPU 1004如何在状态之间转换来转换计算机1000。根据一个实施例,计算机1000可以访问存储计算机可执行指令的计算机可读存储介质,这些计算机可执行指令在由计算机1000执行时执行上面关于图1至图9描述的各种过程。计算机1000还可以包括计算机可读存储介质,其上存储有用于执行本文描述的任何其他计算机实现的操作的指令。In one embodiment, storage device 1018 or other computer-readable storage medium is encoded with computer-executable instructions that, when loaded into computer 1000, transform the computer from a general-purpose computing system into a computer-based computer capable of implementing embodiments described herein. dedicated computer. As noted above, these computer-executable instructions transform computer 1000 by specifying how CPU 1004 transitions between states. According to one embodiment, computer 1000 may have access to a computer-readable storage medium storing computer-executable instructions that, when executed by computer 1000, perform the various processes described above with respect to FIGS. 1-9 . Computer 1000 may also include a computer-readable storage medium having stored thereon instructions for performing any of the other computer-implemented operations described herein.

计算机1000还可以包括一个或多个输入/输出控制器1016,用于接收和处理来自多个输入设备的输入,这些输入设备例如是键盘、鼠标、触摸板、触摸屏、电子手写笔或其他类型的输入设备。类似地,输入/输出控制器1016可以向显示器提供输出,显示器例如是计算机监视器、平板显示器、数字投影仪、打印机或其他类型的输出设备。应当理解,计算机1000可以不包括图10所示的所有组件,可以包括未在图10中明确示出的其他组件,或者可以利用与图10中所示的架构完全不同的架构。Computer 1000 may also include one or more input/output controllers 1016 for receiving and processing input from a variety of input devices, such as a keyboard, mouse, touch pad, touch screen, electronic stylus, or other types of input device. Similarly, input/output controller 1016 may provide output to a display, such as a computer monitor, flat panel display, digital projector, printer, or other type of output device. It should be appreciated that computer 1000 may not include all of the components shown in FIG. 10, may include other components not explicitly shown in FIG. 10, or may utilize an entirely different architecture than that shown in FIG.

如本文所述,计算机1000可以包括数据节点、控制节点、防火墙节点、边缘路由器和/或键值存储装置中的一个或多个。计算机1000可以包括一个或多个硬件处理器1004(处理器),其被配置为执行一个或多个存储的指令。处理器1004可以包括一个或多个核心。此外,计算机1000可以包括一个或多个网络接口(例如,NIC 1012),其被配置为通过网络(例如网络108和1024)提供计算机1000和其他设备之间的通信。网络接口可以包括被配置为耦合到个域网(PAN)、有线和无线局域网(LAN)、有线和无线广域网(WAN)等的设备。例如,网络接口可以包括与以太网、Wi-FiTM等兼容的设备。As described herein, computer 1000 may include one or more of a data node, a control node, a firewall node, an edge router, and/or a key-value store. Computer 1000 may include one or more hardware processors 1004 (processors) configured to execute one or more stored instructions. Processor 1004 may include one or more cores. Additionally, computer 1000 may include one or more network interfaces (eg, NIC 1012 ) configured to provide communication between computer 1000 and other devices over a network (eg, networks 108 and 1024 ). Network interfaces may include devices configured to couple to personal area networks (PANs), wired and wireless local area networks (LANs), wired and wireless wide area networks (WANs), and the like. For example, network interfaces may include devices compatible with Ethernet, Wi-Fi , and the like.

程序1022可以包括任何类型的程序或过程以执行本公开中描述的技术以基于分组头部的SPI值来对加密流量进行负载平衡,以及使用SPI值指示QoS并将加密连接迁移到不同的主机。Program 1022 may include any type of program or process to perform the techniques described in this disclosure to load balance encrypted traffic based on SPI values in packet headers, and use SPI values to indicate QoS and migrate encrypted connections to different hosts.

总之,本文描述了用于基于分组头部的安全参数索引(SPI)值和分组头部的五元组值集合来对加密流量进行负载平衡的技术。此外,本文还描述了用于在分组头部的SPI值字段中包括服务质量(QoS)类型信息的技术。QoS类型信息可以指示处理数据分组所依据的特定流量类别。此外,本文还描述了用于预先配置后端主机以使得加密流量可以从另一后端主机迁移到后端主机而不引起临时服务中断的技术。In summary, this document describes techniques for load balancing encrypted traffic based on a Security Parameter Index (SPI) value of a packet header and a set of 5-tuple values of the packet header. Additionally, techniques are described herein for including quality of service (QoS) type information in the SPI value field of a packet header. The QoS type information may indicate a specific traffic class according to which the data packets are processed. Additionally, this article describes techniques for pre-configuring a backend host so that encrypted traffic can be migrated from another backend host to the backend host without causing a temporary service interruption.

虽然本发明是关于特定示例进行描述的,但是应当理解,本发明的范围不限于这些特定示例。例如,虽然许多示例是针对IPsec协议进行描述的,但应当理解,所描述的技术适用于其他协议。由于为适应特定操作要求和环境而变化的其他修改和变化对于本领域技术人员而言将是显而易见的,因此本发明不被认为限于为公开目的而选择的示例,并且涵盖不构成背离本发明的真正精神和范围的所有变化和修改。While the invention has been described with respect to specific examples, it should be understood that the scope of the invention is not limited to these specific examples. For example, while many examples are described with respect to the IPsec protocol, it should be understood that the techniques described are applicable to other protocols. Since other modifications and variations as appropriate to particular operating requirements and circumstances will be apparent to those skilled in the art, the present invention is not to be considered limited to the examples chosen for purposes of disclosure and covers All changes and modifications are true in spirit and scope.

尽管本申请描述了具有特定结构特征和/或方法动作的实施例,但应理解,权利要求不一定限于所描述的特定特征或动作。而是,具体特征和动作仅仅是说明性的一些实施例,这些实施例落在本申请的权利要求的范围内。Although this application describes embodiments having specific structural features and/or methodological acts, it is to be understood that claims are not necessarily limited to the specific features or acts described. Rather, the specific features and acts are merely illustrative of some embodiments that are within the scope of the claims of the present application.

Claims (23)

1.一种方法,包括:1. A method comprising: 从客户端设备并且在网络的网络设备处接收通过所述网络建立加密隧道以使得数据平面流量经由所述加密隧道在所述客户端设备和服务之间流动的请求;receiving, from a client device and at a network device of the network, a request to establish an encrypted tunnel through the network such that data plane traffic flows between the client device and a service via the encrypted tunnel; 确定所述数据平面流量属于一组流量类别中的特定流量类别,所述特定流量类别与特定服务质量(QoS)性能度量相关联;determining that the data plane traffic belongs to a particular traffic class of a set of traffic classes, the particular traffic class being associated with a particular quality of service (QoS) performance metric; 生成要由所述客户端设备用于所述数据平面流量的安全参数索引(SPI)值,所述SPI值对应于所述特定流量类别;generating a Security Parameter Index (SPI) value to be used by the client device for the data plane traffic, the SPI value corresponding to the particular traffic class; 向所述客户端设备发送关于所述SPI值的指示;sending an indication of the SPI value to the client device; 在与所述网络相关联的负载平衡节点处接收所述数据平面流量的包括所述SPI值的数据分组;以及receiving a data packet of the data plane traffic comprising the SPI value at a load balancing node associated with the network; and 至少部分地基于包括所述SPI值的所述数据分组,通过所述网络发送所述数据分组,使得根据所述特定QoS性能度量来处理所述数据分组。Based at least in part on the data packet including the SPI value, the data packet is sent over the network such that the data packet is processed according to the particular QoS performance metric. 2.如权利要求1所述的方法,其中,生成所述SPI值包括:2. The method of claim 1, wherein generating the SPI value comprises: 至少部分地基于所述特定流量类别生成表示要处理的所述数据分组的所述特定QoS性能度量的第一位组合;generating a first bit pattern representative of the particular QoS performance metric of the data packet to be processed based at least in part on the particular traffic class; 生成表示安全关联的第二位组合;以及generate a second combination representing the security association; and 掩蔽所述第一位组合和所述第二位组合,使得所述第一位组合包括所述SPI值的第一部分并且所述第二位组合包括所述SPI值的第二部分。The first bit combination and the second bit combination are masked such that the first bit combination includes a first portion of the SPI value and the second bit combination includes a second portion of the SPI value. 3.如权利要求2所述的方法,其中,所述第一位组合由第一十六进制数字表示,并且所述第二位组合由多个十六进制数字表示。3. The method of claim 2, wherein the first bit combination is represented by a first hexadecimal digit and the second bit combination is represented by a plurality of hexadecimal digits. 4.如权利要求1至3中任一项所述的方法,其中,所述SPI值的第一部分是与所述特定流量类别对应的第一标识符,并且所述SPI值的第二部分是与所述网络的安全关联对应的第二标识符。4. The method of any one of claims 1 to 3, wherein a first part of the SPI value is a first identifier corresponding to the particular traffic class, and a second part of the SPI value is A second identifier corresponding to the security association for the network. 5.如权利要求1至4中任一项所述的方法,其中,所述数据分组是第一数据分组,所述SPI值是第一SPI值,所述特定流量类别是第一流量类别,并且所述特定QoS性能度量是第一QoS性能度量,所述方法进一步包括:5. The method according to any one of claims 1 to 4, wherein said data packet is a first data packet, said SPI value is a first SPI value, said specific traffic class is a first traffic class, And the specific QoS performance metric is a first QoS performance metric, the method further comprising: 在所述负载平衡节点处接收第二数据分组,所述第二数据分组包括对应于第二流量类别的第二SPI值,所述第二流量类别与第二QoS性能度量相关联;以及receiving a second data packet at the load balancing node, the second data packet including a second SPI value corresponding to a second traffic class, the second traffic class being associated with a second QoS performance metric; and 至少部分地基于包括所述第二SPI值的所述第二数据分组,通过所述网络发送所述第二数据分组,使得根据所述第二QoS性能度量来处理所述第二数据分组。Based at least in part on the second data packet including the second SPI value, the second data packet is sent over the network such that the second data packet is processed according to the second QoS performance metric. 6.如权利要求1至5中任一项所述的方法,其中通过所述网络发送所述数据分组包括至少部分地基于所述SPI值和所述数据分组的五元组使用等价多路径(ECMP)路由算法通过所述网络发送所述数据分组。6. The method of any one of claims 1 to 5, wherein sending the data packet over the network comprises using equivalent multipathing based at least in part on the SPI value and a quintuple of the data packet (ECMP) routing algorithm to send the data packets through the network. 7.如权利要求1至6中任一项所述的方法,其中生成所述SPI值包括生成要由所述客户端设备用于所述数据平面流量的多个SPI值,所述多个SPI值中的每一个对应于相应的流量类别,每个相应的流量类别与相应的QoS性能度量相关联。7. The method of any one of claims 1 to 6, wherein generating the SPI value comprises generating a plurality of SPI values to be used by the client device for the data plane traffic, the plurality of SPI values Each of the values corresponds to a respective traffic class, each respective traffic class being associated with a respective QoS performance metric. 8.一种系统,包括:8. A system comprising: 一个或多个处理器;以及one or more processors; and 一个或多个存储指令的非暂态计算机可读介质,所述指令在由所述一个或多个处理器执行时,使所述一个或多个处理器执行操作,所述操作包括:One or more non-transitory computer-readable media storing instructions that, when executed by the one or more processors, cause the one or more processors to perform operations, the operations comprising: 从客户端设备接收通过网络建立加密隧道以使得数据平面流量经由所述加密隧道在所述客户端设备和服务之间流动的请求;receiving from a client device a request to establish an encrypted tunnel over a network such that data plane traffic flows between the client device and a service via the encrypted tunnel; 确定所述数据平面流量属于一组流量类别中的特定流量类别,所述特定流量类别与特定服务质量(QoS)性能度量相关联;determining that the data plane traffic belongs to a particular traffic class of a set of traffic classes, the particular traffic class being associated with a particular quality of service (QoS) performance metric; 生成要由所述客户端设备用于所述数据平面流量的安全参数索引(SPI)值,所述SPI值对应于所述特定流量类别;generating a Security Parameter Index (SPI) value to be used by the client device for the data plane traffic, the SPI value corresponding to the particular traffic class; 向所述客户端设备发送关于所述SPI值的指示;sending an indication of the SPI value to the client device; 从所述客户端设备接收所述数据平面流量的包括所述SPI值的数据分组;以及receiving a data packet of the data plane traffic from the client device comprising the SPI value; and 至少部分地基于包括所述SPI值的所述数据分组,通过所述网络发送所述数据分组,使得根据所述特定QoS性能度量来处理所述数据分组。Based at least in part on the data packet including the SPI value, the data packet is sent over the network such that the data packet is processed according to the particular QoS performance metric. 9.如权利要求8所述的系统,其中,生成所述SPI值包括:9. The system of claim 8, wherein generating the SPI value comprises: 至少部分地基于所述特定流量类别生成表示要处理的所述数据分组的所述特定QoS性能度量的第一位组合;generating a first bit pattern representative of the particular QoS performance metric of the data packet to be processed based at least in part on the particular traffic class; 生成表示安全关联的第二位组合;以及generate a second combination representing the security association; and 掩蔽所述第一位组合和所述第二位组合,使得所述第一位组合包括所述SPI值的第一部分并且所述第二位组合包括所述SPI值的第二部分。The first bit combination and the second bit combination are masked such that the first bit combination includes a first portion of the SPI value and the second bit combination includes a second portion of the SPI value. 10.如权利要求9所述的系统,其中,所述第一位组合由第一十六进制数字表示,并且所述第二位组合由多个十六进制数字表示。10. The system of claim 9, wherein the first bit combination is represented by a first hexadecimal digit and the second bit combination is represented by a plurality of hexadecimal digits. 11.如权利要求8至10中任一项所述的系统,其中,所述SPI值的第一部分是与所述特定流量类别对应的第一标识符,并且所述SPI值的第二部分是与所述网络的安全关联对应的第二标识符。11. The system of any one of claims 8 to 10, wherein the first part of the SPI value is a first identifier corresponding to the particular traffic class, and the second part of the SPI value is A second identifier corresponding to the security association for the network. 12.如权利要求8至11中任一项所述的系统,其中,所述数据分组是第一数据分组,所述SPI值是第一SPI值,所述特定流量类别是第一流量类别,并且所述特定QoS性能度量是第一QoS性能度量,所述操作进一步包括:12. The system of any one of claims 8 to 11, wherein the data packet is a first data packet, the SPI value is a first SPI value, and the specific traffic class is a first traffic class, And the specific QoS performance metric is a first QoS performance metric, the operations further comprising: 接收第二数据分组,所述第二数据分组包括对应于第二流量类别的第二SPI值,所述第二流量类别与第二QoS性能度量相关联;以及receiving a second data packet comprising a second SPI value corresponding to a second traffic class associated with a second QoS performance metric; and 至少部分地基于包括所述第二SPI值的所述第二数据分组,通过所述网络发送所述第二数据分组,使得根据所述第二QoS性能度量来处理所述第二数据分组。Based at least in part on the second data packet including the second SPI value, the second data packet is sent over the network such that the second data packet is processed according to the second QoS performance metric. 13.如权利要求8至12中任一项所述的系统,其中通过所述网络发送所述数据分组包括至少部分地基于所述SPI值和所述数据分组的五元组使用等价多路径(ECMP)路由算法通过所述网络发送所述数据分组。13. The system of any one of claims 8 to 12, wherein sending the data packet over the network comprises using equivalent multipathing based at least in part on the SPI value and a quintuple of the data packet (ECMP) routing algorithm to send the data packets through the network. 14.如权利要求8至13中任一项所述的系统,其中生成所述SPI值包括生成要由所述客户端设备用于所述数据平面流量的多个SPI值,所述多个SPI值中的每一个对应于相应的流量类别,每个相应的流量类别与相应的QoS性能度量相关联。14. The system of any one of claims 8 to 13, wherein generating the SPI value comprises generating a plurality of SPI values to be used by the client device for the data plane traffic, the plurality of SPI values Each of the values corresponds to a respective traffic class, each respective traffic class being associated with a respective QoS performance metric. 15.一种存储指令的非暂态计算机可读介质,所述指令在由一个或多个计算设备执行时,使所述计算设备执行操作,所述操作包括:15. A non-transitory computer-readable medium storing instructions that, when executed by one or more computing devices, cause the computing devices to perform operations, the operations comprising: 从客户端设备接收通过网络建立加密隧道以使得数据平面流量经由所述加密隧道在所述客户端设备和服务之间流动的请求;receiving from a client device a request to establish an encrypted tunnel over a network such that data plane traffic flows between the client device and a service via the encrypted tunnel; 确定所述数据平面流量属于一组流量类别中的特定流量类别,所述特定流量类别与特定服务质量(QoS)性能度量相关联;determining that the data plane traffic belongs to a particular traffic class of a set of traffic classes, the particular traffic class being associated with a particular quality of service (QoS) performance metric; 生成要由所述客户端设备用于所述数据平面流量的安全参数索引(SPI)值,其中所述SPI值的第一部分对应于所述特定流量类别;generating a security parameter index (SPI) value to be used by the client device for the data plane traffic, wherein a first portion of the SPI value corresponds to the particular traffic class; 向所述客户端设备发送关于所述SPI值的指示;sending an indication of the SPI value to the client device; 从所述客户端设备接收所述数据平面流量的包括所述SPI值的数据分组;以及receiving a data packet of the data plane traffic from the client device comprising the SPI value; and 至少部分地基于包括所述SPI值的所述数据分组,通过所述网络发送所述数据分组,使得根据所述特定QoS性能度量来处理所述数据分组。Based at least in part on the data packet including the SPI value, the data packet is sent over the network such that the data packet is processed according to the particular QoS performance metric. 16.如权利要求15所述的非暂态计算机可读介质,其中生成所述SPI值包括:16. The non-transitory computer readable medium of claim 15 , wherein generating the SPI value comprises: 至少部分地基于所述特定流量类别生成表示要处理的所述数据分组的所述特定QoS性能度量的第一位组合;generating a first bit pattern representative of the particular QoS performance metric of the data packet to be processed based at least in part on the particular traffic class; 生成表示安全关联的第二位组合;以及generate a second combination representing the security association; and 掩蔽所述第一位组合和所述第二位组合,使得所述第一位组合包括所述SPI值的第一部分并且所述第二位组合包括所述SPI值的第二部分。The first bit combination and the second bit combination are masked such that the first bit combination includes a first portion of the SPI value and the second bit combination includes a second portion of the SPI value. 17.如权利要求16所述的非暂态计算机可读介质,其中所述第一位组合由第一十六进制数字表示,并且所述第二位组合由多个十六进制数字表示。17. The non-transitory computer readable medium of claim 16 , wherein the first bit combination is represented by a first hexadecimal digit, and the second bit combination is represented by a plurality of hexadecimal digits . 18.如权利要求15至17中任一项所述的非暂态计算机可读介质,其中,所述SPI值的第二部分是与所述网络的安全关联对应的第二标识符。18. The non-transitory computer readable medium of any one of claims 15 to 17, wherein the second portion of the SPI value is a second identifier corresponding to a security association for the network. 19.如权利要求15至18中任一项所述的非暂态计算机可读介质,其中,所述数据分组是第一数据分组,所述SPI值是第一SPI值,所述特定流量类别是第一流量类别,并且所述特定QoS性能度量是第一QoS性能度量,所述操作进一步包括:19. The non-transitory computer readable medium of any one of claims 15 to 18, wherein the data packet is a first data packet, the SPI value is a first SPI value, and the specific traffic class is the first traffic category, and the specific QoS performance metric is the first QoS performance metric, the operations further include: 接收包括第二SPI值的第二数据分组,所述第二SPI值的第一部分对应于第二流量类别,所述第二流量类别与第二QoS性能度量相关联;以及receiving a second data packet comprising a second SPI value, a first portion of the second SPI value corresponding to a second traffic class associated with a second QoS performance metric; and 至少部分地基于包括所述第二SPI值的所述第二数据分组,通过所述网络发送所述第二数据分组,使得根据所述第二QoS性能度量来处理所述第二数据分组。Based at least in part on the second data packet including the second SPI value, the second data packet is sent over the network such that the second data packet is processed according to the second QoS performance metric. 20.如权利要求15至19中任一项所述的非暂态计算机可读介质,其中生成所述SPI值包括生成要由所述客户端设备用于所述数据平面流量的多个SPI值,所述多个SPI值中的每一个对应于相应的流量类别,每个相应的流量类别与相应的QoS性能度量相关联。20. The non-transitory computer readable medium of any one of claims 15 to 19, wherein generating the SPI value comprises generating a plurality of SPI values to be used by the client device for the data plane traffic , each of the plurality of SPI values corresponds to a corresponding traffic class, and each corresponding traffic class is associated with a corresponding QoS performance metric. 21.一种装置,包括:21. A device comprising: 用于从客户端设备并且在网络的网络设备处接收通过所述网络建立加密隧道以使得数据平面流量经由所述加密隧道在所述客户端设备和服务之间流动的请求的装置;means for receiving, from a client device and at a network device of the network, a request to establish an encrypted tunnel through the network such that data plane traffic flows between the client device and a service via the encrypted tunnel; 用于确定所述数据平面流量属于一组流量类别中的特定流量类别的装置,所述特定流量类别与特定服务质量(QoS)性能度量相关联;means for determining that the data plane traffic belongs to a particular traffic class of a set of traffic classes, the particular traffic class being associated with a particular quality of service (QoS) performance metric; 用于生成要由所述客户端设备用于所述数据平面流量的安全参数索引(SPI)值的装置,所述SPI值对应于所述特定流量类别;means for generating a Security Parameter Index (SPI) value to be used by said client device for said data plane traffic, said SPI value corresponding to said particular traffic class; 用于向所述客户端设备发送关于所述SPI值的指示的装置;means for sending an indication of the SPI value to the client device; 用于在与所述网络相关联的负载平衡节点处接收所述数据平面流量的包括所述SPI值的数据分组的装置;以及means for receiving, at a load balancing node associated with the network, a data packet of the data plane traffic comprising the SPI value; and 用于执行以下操作的装置:至少部分地基于包括所述SPI值的所述数据分组,通过所述网络发送所述数据分组,使得根据所述特定QoS性能度量来处理所述数据分组。Means for: sending the data packet over the network based at least in part on the data packet including the SPI value such that the data packet is processed according to the particular QoS performance metric. 22.如权利要求21所述的装置,还包括用于实施如权利要求2至7中任一项所述的方法的装置。22. The apparatus of claim 21, further comprising means for carrying out the method of any one of claims 2-7. 23.一种包括指令的计算机程序、计算机程序产品或计算机可读介质,所述指令在由计算机执行时使所述计算机执行如权利要求1至7中任一项所述的方法的步骤。23. A computer program, computer program product or computer readable medium comprising instructions which, when executed by a computer, cause the computer to perform the steps of the method as claimed in any one of claims 1 to 7.
CN202180073935.0A 2020-12-11 2021-12-09 Maintaining quality of service handling of packets using security parameter index values Pending CN116615898A (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US63/124,317 2020-12-11
US17/171,604 US11652747B2 (en) 2020-12-11 2021-02-09 Maintaining quality of service treatment of packets using security parameter index values
US17/171,604 2021-02-09
PCT/US2021/062673 WO2022125814A1 (en) 2020-12-11 2021-12-09 Maintaining quality of service treatment of packets using security parameter index values

Publications (1)

Publication Number Publication Date
CN116615898A true CN116615898A (en) 2023-08-18

Family

ID=87682331

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180073935.0A Pending CN116615898A (en) 2020-12-11 2021-12-09 Maintaining quality of service handling of packets using security parameter index values

Country Status (1)

Country Link
CN (1) CN116615898A (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020104020A1 (en) * 2001-01-30 2002-08-01 Strahm Frederick William Processing internet protocol security traffic
US20160057108A1 (en) * 2014-08-20 2016-02-25 Alcatel-Lucent Usa Inc. Method for load-balancing ipsec traffic
US20190173841A1 (en) * 2017-12-06 2019-06-06 Nicira, Inc. Load balancing ipsec tunnel processing with extended berkeley packet filer (ebpf)

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020104020A1 (en) * 2001-01-30 2002-08-01 Strahm Frederick William Processing internet protocol security traffic
US20160057108A1 (en) * 2014-08-20 2016-02-25 Alcatel-Lucent Usa Inc. Method for load-balancing ipsec traffic
US20190173841A1 (en) * 2017-12-06 2019-06-06 Nicira, Inc. Load balancing ipsec tunnel processing with extended berkeley packet filer (ebpf)

Similar Documents

Publication Publication Date Title
US12166677B2 (en) Encrypted tunnel migration
US12003424B2 (en) Load balancing communication sessions in a networked computing environment
EP3235176B1 (en) Method and system for load balancing in a software-defined networking (sdn) system upon server reconfiguration
JP6200586B2 (en) Method and apparatus for providing software-defined network flow delivery
CN116391350A (en) Quality of service handling of maintenance packets using security parameter index values
JP6670109B2 (en) Scalable flow and congestion control in networks
US10097465B2 (en) Data transfer between endpoints using a multipath connection
US20160057108A1 (en) Method for load-balancing ipsec traffic
US11962506B2 (en) Dynamic traffic class upgrading
CN116158063A (en) Multi-edge Ethernet channel (MEEC) creation and management
CN112997452B (en) Cloud-based router with policy enforcement
US20240106755A1 (en) Dynamic load adjustment
US12413650B2 (en) Routing application control and data-plane traffic in support of cloud-native applications
CN115769556A (en) Path visibility, packet loss and delay measurements of service chain data flows
WO2025075846A1 (en) Using client-hello for intelligent routing and firewalling in multipath secure access systems
US12335093B2 (en) Orchestrated reconnect for client-unaware rolling of network nodes
EP3026851B1 (en) Apparatus, network gateway, method and computer program for providing information related to a specific route to a service in a network
CN116615898A (en) Maintaining quality of service handling of packets using security parameter index values
WO2022125814A1 (en) Maintaining quality of service treatment of packets using security parameter index values
US12009998B1 (en) Core network support for application requested network service level objectives

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination