IP Library Granted Patent US 12,107,834
Granted Patent B2
US 12,107,834 · App. 17/570,363 · Granted Oct 1, 2024

Multi-uplink path quality aware IPsec

Inventors: Yong Wang (Sunnyvale, CA); Awan Kumar Sharma (Pune, IN); Sourabh Bhattacharya (Pune, IN); Deepika Solanki (Pune, IN); Sarthak Ray (Pune, IN)
Assignee: VMware LLC
H04L63/029H04L45/123H04L45/24H04L45/42H04L47/125H04L63/0435H04L63/20
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,107,834
App. No.
17/570,363
Granted
Oct 1, 2024
Kind
B2
Abstract

Some embodiments provide a method that collects metrics for one or more paths of a first tunnel implementing a first security association (SA) and for one or more paths of a second tunnel implementing a second SA. The method selects a path based on the collected metrics of the paths of the first and second tunnels. When the selected path belongs to the first tunnel, the method encrypts data transmitted as encrypted payload of the first SA and transmits the encrypted payload in the first tunnel. When the selected path belongs to the second tunnel, the method encrypts data to be transmitted as encrypted payload of the second SA and transmits the encrypted payload in the second tunnel.

Claims (50)

1. A method comprising:

collecting metrics for one or more paths of a first tunnel implementing a first security association (SA) and for one or more paths of a second tunnel implementing a second SA;

providing load balancing over a plurality of paths, the load balancing avoiding choosing from multiple SAs;

selecting a path based on the collected metrics of the paths of the first and second tunnels;

when the selected path belongs to the first tunnel, encrypting data transmitted as a first encrypted payload of the first SA and transmitting the first encrypted payload in the first tunnel; and

when the selected path belongs to the second tunnel, encrypting data for transmitting as a second encrypted payload of the second SA and transmitting the second encrypted payload in the second tunnel.

2. The method of claim 1 , wherein the first encrypted data to be transmitted are received at a virtual tunnel interface for encryption and transmission in the first tunnel using the first SA and in the second tunnel using the second SA.

3. The method of claim 1 , wherein the first encrypted data to be transmitted is received at a bonded interface at an application layer, the bonded interface combining multiple tunnels, wherein the bonded interface comprises

a first virtual tunnel interface for encrypting the received data for transmission in the first tunnel using the first SA and

a second virtual tunnel interface for encrypting the received data for transmission in the second tunnel using the second SA.

4. The method of claim 1 further comprising sending probe messages and receiving responses to the probe messages, wherein the collected metrics for the one or more paths of the first and second tunnels are determined based on the received responses to the probe messages.

5. The method of claim 4 , wherein the metric of a path comprises at least one of connectivity, latency, drop rate, and jitter of the path.

6. The method of claim 1 , wherein the first encrypted data comprises a user datagram protocol (UDP) header that stores a first source port.

7. The method of claim 1 , wherein:

the first encrypted data to be transmitted is from a first network endpoint to a second network endpoint;

the first network endpoint is hosted by a first datacenter and the second network endpoint is hosted by a second datacenter; and

the gateway is an edge appliance of the first datacenter.

8. The method of claim 1 , wherein the first tunnel comprises paths through the Internet and the second tunnel does not comprise paths through the Internet.

9. The method of claim 1 , wherein:

the first encrypted payload is encapsulated by appending (i) a first source address identifying the first tunnel and (ii) a first source port identifying the selected path when the selected path belongs to the first tunnel; and

the second encrypted payload is encapsulated by appending (i) a second source address identifying the second tunnel and (ii) a second source port identifying the selected path when the selected path belongs to the second tunnel.

10. The method of claim 1 , wherein the collected metrics are used to identify a pool of high performing paths and the selected path is selected form the pool of high performing paths for load balancing, the high performing paths being characterized by performance having performance metrics above a certain threshold.

11. A non-transitory machine-readable medium storing a program for execution by at least one processing unit, the program comprising sets of instructions for:

collecting metrics for one or more paths of a first tunnel implementing a first security association (SA) and for one or more paths of a second tunnel implementing a second SA;

providing load balancing over a plurality of paths, the load balancing avoiding choosing from multiple SAs;

selecting a path based on the collected metrics of the paths of the first and second tunnels;

when the selected path belongs to the first tunnel, encrypting data transmitted as a first encrypted payload of the first SA and transmitting the first encrypted payload in the first tunnel; and

when the selected path belongs to the second tunnel, encrypting data for transmitting as a second encrypted payload of the second SA and transmitting the second encrypted payload in the second tunnel.

12. The non-transitory machine-readable medium of claim 11 , wherein the first encrypted data to be transmitted are received at a virtual tunnel interface for encryption and transmission in the first tunnel using the first SA and in the second tunnel using the second SA.

13. The non-transitory machine-readable medium of claim 11 , wherein the data to be transmitted is received at a bonded interface at an application layer, the bonded interface combining multiple tunnels, wherein the bonded interface comprises:

a first virtual tunnel interface for encrypting the received data for transmission in the first tunnel using the first SA; and

a second virtual tunnel interface for encrypting the received data for transmission in the second tunnel using the second SA.

14. The non-transitory machine-readable medium of claim 11 , wherein the program further comprises a set of instructions for sending probe messages and receiving responses to the probe messages, wherein the collected metrics for the one or more paths of the first and second tunnels are determined based on the received responses to the probe messages, wherein the metric of a path comprises at least one of connectivity, latency, drop rate, and jitter of the path.

15. A computing device comprising:

a set of processing units; and

a non-transitory machine-readable medium storing a program for execution by at least one of the processing units, the program comprising sets of instructions for:

collecting metrics for one or more paths of a first tunnel implementing a first security association (SA) and for one or more paths of a second tunnel implementing a second SA;

providing load balancing over a plurality of paths, the load balancing avoiding choosing from multiple SAs;

selecting a path based on the collected metrics of the paths of the first and second tunnels;

when the selected path belongs to the first tunnel, encrypting data transmitted as a first encrypted payload of the first SA and transmitting the first encrypted payload in the first tunnel; and

when the selected path belongs to the second tunnel, encrypting data for transmitting as a second encrypted payload of the second SA and transmitting the second encrypted payload in the second tunnel.

16. The computing device of claim 15 , wherein the encapsulated encrypted payload comprises a user datagram protocol (UDP) header that stores the first source port.

17. The computing device of claim 15 , wherein:

the first network endpoint is hosted by a first datacenter and the second network endpoint is hosted by a second datacenter; and

the gateway is an edge appliance of the first datacenter.

18. The computing device of claim 15 , wherein the first tunnel comprises paths through the Internet and the second tunnel does not comprise paths through the Internet.

19. The computing device of claim 15 , wherein:

the encrypted payload is encapsulated by appending (i) a first source address identifying the first tunnel and (ii) a first source port identifying the selected path when the selected path belongs to the first tunnel; and

the encrypted payload is encapsulated by appending (i) a second source address identifying the second tunnel and (ii) a second source port identifying the selected path when the selected path belongs to the second tunnel.

20. The computing device of claim 15 , wherein the collected metrics are used to identify a pool of high performing paths and the path is selected form the pool of high performing paths for load balancing, the high performing paths being characterized by performance having performance metrics above a certain threshold.

Assignments (2)
CHANGE OF NAME Recorded Feb 27, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 066692/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 7, 2022
From: WANG, YONG; SHARMA, AWAN KUMAR; BHATTACHARYA, SOURABH; SOLANKI, DEEPIKA; RAY, SARTHAK
To: VMWARE, INC.
Reel/Frame 060126/0734 →