IP Library Granted Patent US 12,166,677
Granted Patent B2
US 12,166,677 · App. 17/171,679 · Granted Dec 10, 2024

Encrypted tunnel migration

Inventors: Grzegorz Boguslaw Duraj (Vancouver, CA); Leonardo Rangel Augusto (Burnaby, CA); Kyle Andrew Donald Mestery (Woodbury, MN)
Assignee: Cisco Technology, Inc.
H04L47/125H04L9/0838H04L9/085H04L12/4633H04L47/24H04L47/2425H04L47/2441H04L47/29H04L63/0478H04L69/22
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,166,677
App. No.
17/171,679
Granted
Dec 10, 2024
Kind
B2
Abstract

Techniques for load balancing encrypted traffic based on security parameter index (SPI) values of packet headers and sets of 5-tuple values of the packet headers are described herein. Additionally, techniques for including quality of service (QoS)-type information in SPI value fields of packet headers are also described herein. The QoS-type information may indicate a particular traffic class according to which the packet is to be handled. Further, techniques for pre-configuring a backend host such that encrypted traffic may be migrated to the backend host from another backend host without causing temporary service disruptions are also described herein.

Claims (73)

1. A system comprising:

one or more processors; and

one or more computer-readable media storing instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:

receiving, at a load balancer and from a client device, a first packet of a data-plane traffic flow, the first packet including a first security parameter index (SPI) value and a set of 5-tuple values;

sending, by the load balancer, the first packet to a first node based at least in part on a first association between the first SPI value and the set of 5-tuple values;

receiving, at the load balancer, an indication of a status associated with the first node;

sending, from the load balancer and based on the indication of the status associated with the first node, a request to terminate the data-plane traffic flow at a second node that is different from the first node, the request including a rekey request;

causing, by the load balancer and based at least in part on the status, a migration of the data-plane traffic flow to terminate at the second node that is different from the first node;

receiving, at the load balancer and from the client device, a second packet including the set of 5-tuple values and a second SPI value that is unknown to the load balancer and unassociated with the set of 5-tuple values;

determining, by the load balancer and based at least in part on the set of 5-tuple values and the rekey request, that the second SPI value that is unknown to the load balancer is associated with the set of 5-tuple values;

determining, by the load balancer based at least in part on the set of 5-tuple values being associated with the second SPI value that is unknown to the load balancer, that the second packet is part of the data-plane traffic flow;

removing a first association between the first SPI value and the set of 5-tuple values;

storing a second association between the second SPI value and the set of 5-tuple values; and

sending, by the load balancer, the second packet to the second node.

2. The system of claim 1 , wherein the indication is sent to the load balancer by the first node, the operations further comprising:

receiving, at a controller, telemetry data indicating a load capacity associated with the first node;

determining, based at least in part on the telemetry data, that the load capacity meets or exceeds a threshold load capacity; and

prompting the first node to send the indication based at least in part on the load capacity meeting or exceeding the threshold load capacity.

3. The system of claim 2 , wherein the load capacity is a first load capacity, the operations further comprising:

determining, at the controller and based at least in part on the telemetry data, that a second load capacity associated with the second node is less than the threshold load capacity,

wherein causing the migration of the data-plane traffic flow to terminate at the second node is further based at least in part on the second load capacity being less than the threshold load capacity.

4. The system of claim 1 , the operations further comprising sending a message to the second node based at least in part on receiving the indication, the message configured to prompt the second node to provision one or more interfaces to be used to receive the data-plane traffic flow.

5. The system of claim 4 , wherein the message is a null encapsulating security payload (ESP) packet that includes at least an internet protocol (IP) address and a port associated with the client device.

6. The system of claim 1 , wherein the first node is a first data node, the second node is a second data node, and the data-plane traffic flow is encapsulating security payload (ESP) traffic, the operations further comprising sending, to a control node that processes internet key exchange (IKE) traffic and based at least in part on the indication, a request for the control node to generate the second SPI value.

7. The system of claim 1 , wherein the load balancer is configured to monitor for, based at least in part on the rekey request, SPI values that are unknown to the load balancer.

8. A method comprising:

receiving, at a load balancer and from a client device, a first packet of a data-plane traffic flow, the first packet including a first security parameter index (SPI) value and a set of 5-tuple values;

sending, by the load balancer, the first packet to a first node based at least in part on the first SPI value and the set of 5-tuple values;

sending, from the load balancer, a request to terminate the data-plane traffic flow at a second node that is different from the first node, the request including a rekey request;

determining, by the load balancer, that the data-plane traffic flow is to be migrated to terminate at the second node that is different from the first node;

based at least in part on determining that the data-plane traffic flow is to be migrated, causing, by the load balancer, the second node to provision one or more interfaces to be used by the second node to receive packets of the data-plane traffic flow;

receiving, at the load balancer and from the client device, a second packet including the set of 5-tuple values and a second SPI value that is unknown to the load balancer and unassociated with the set of 5-tuple values;

determining, by the load balancer and based at least in part on the set of 5-tuple values and the rekey request, that the second SPI value that is unknown to the load balancer is associated with the set of 5-tuple values;

determining, by the load balancer based at least in part on the second packet including the second SPI value that is unknown to the load balancer being that has yet to be associated with the set of 5-tuple values, that the second packet is part of the data-plane traffic flow;

removing a first association between the first SPI value and the set of 5-tuple values;

storing a second association between the second SPI value and the set of 5-tuple values; and

sending the second packet to the second node.

9. The method of claim 8 , further comprising:

sending, to a third node and based at least in part on determining that the data-plane traffic flow is to be migrated, a request for the third node to generate the second SPI value; and

receiving, at the load balancer, an indication of the second SPI value.

10. The method of claim 8 , further comprising:

receiving, at a controller, telemetry data indicating a load capacity associated with the first node;

determining, based at least in part on the telemetry data, that the load capacity meets or exceeds a threshold load capacity; and

wherein causing the second node to provision the one or more interfaces is further based at least in part on the load capacity associated with the first node.

11. The method of claim 10 , further comprising determining, by the controller and based at least in part on the telemetry data, that a second load capacity associated with the second node is less than the threshold load capacity.

12. The method of claim 8 , further comprising:

generating, at the load balancer, a null encapsulating security payload (ESP) packet that includes at least an internet protocol (IP) address and a port associated with the client device; and

wherein causing the second node to provision the one or more interfaces comprises sending the null ESP packet to the second node.

13. The method of claim 8 , wherein the first node is a first data node, the second node is a second data node, and the data-plane traffic flow is encapsulating security payload (ESP) traffic, the method further comprising sending, to a control node that processes internet key exchange (IKE) traffic and based at least in part on determining that the data-plane traffic flow is to be migrated, a request for the control node to generate the second SPI value.

14. The method of claim 8 , wherein determining that the second packet is part of the data-plane traffic flow is further based at least in part on a determination of an absence of an association between the second SPI value and the set of 5-tuple values.

15. The method of claim 8 , wherein the load balancer is configured to monitor for, based at least in part on the rekey request, SPI values that are unknown to the load balancer.

16. A non-transitory computer-readable media storing instructions that, when executed by one or more computing devices, cause the one or more computing devices to perform operations comprising:

receiving, at a load balancer and from a client device, a first packet of a data-plane traffic flow, the first packet including a first security parameter index (SPI) value and a set of 5-tuple values;

sending, by the load balancer, the first packet to a first node based at least in part on the first SPI value and the set of 5-tuple values;

sending, from the load balancer, a request to terminate the data-plane traffic flow at a second node that is different from the first node, the request including a rekey request;

based at least in part on determining that the data-plane traffic flow is to be migrated to the second node instead of the first node, causing by the load balancer, the second node to provision one or more interfaces to be used by the second node to receive packets of the data-plane traffic flow;

receiving, at the load balancer and from the client device, a second packet including the set of 5-tuple values and a second SPI value that is unknown to the load balancer and unassociated with the set of 5-tuple values;

determining, by the load balancer and based at least in part on the set of 5-tuple values and the rekey request, that the second SPI value that is unknown to the load balancer is associated with the set of 5-tuple values;

determining, by the load balancer and based at least in part on the second packet including the second SPI value that is unknown to the load balancer being associated with the set of 5-tuple values, that the second packet is part of the data-plane traffic flow;

removing a first association between the first SPI value and the set of 5-tuple values;

storing a second association between the second SPI value and the set of 5-tuple values; and

sending the second packet to the second node.

17. The non-transitory computer-readable media of claim 16 , the operations further comprising:

sending, to a third node and based at least in part on determining that the data-plane traffic flow is to be migrated, a request for the third node to generate the second SPI value; and

receiving, at the load balancer, an indication of the second SPI value.

18. The non-transitory computer-readable media of claim 16 , the operations further comprising:

receiving, at a controller, telemetry data indicating a load capacity associated with the first node;

determining, based at least in part on the telemetry data, that the load capacity meets or exceeds a threshold load capacity; and

wherein causing the second node to provision the one or more interfaces is further based at least in part on the load capacity associated with the first node.

19. The non-transitory computer-readable media of claim 16 , the operations further comprising:

generating, by the load balancer, a null encapsulating security payload (ESP) packet that includes at least an internet protocol (IP) address and a port associated with the client device; and

wherein causing the second node to provision the one or more interfaces comprises sending the null ESP packet to the second node.

20. The non-transitory computer-readable media of claim 16 , wherein the load balancer is configured to monitor for, based at least in part on the rekey request, SPI values that are unknown to the load balancer.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2021
From: DURAJ, GRZEGORZ BOGUSLAW; RANGEL AUGUSTO, LEONARDO; MESTERY, KYLE ANDREW DONALD
To: CISCO TECHNOLOGY, INC.
Reel/Frame 055265/0767 →
Continuity (2)
Provisional Application 63124317 · Dec 11, 2020
Related Publication 20220191141A1 · Jun 16, 2022