IP Library Granted Patent US 11,824,780
Granted Patent B2
US 11,824,780 · App. 17/502,081 · Granted Nov 21, 2023

Managing tunnel interface selection between gateways in a computing environment

Inventors: Yong Wang (Palo Alto, CA); Awan Kumar Sharma (Pune, IN); Xinhua Hong (Palo Alto, CA); Abhishek Goliya (Pune, IN)
Assignee: VMware, Inc.
H04L45/742H04L12/4633H04L12/66H04L2212/00
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 11,824,780
App. No.
17/502,081
Granted
Nov 21, 2023
Kind
B2
Abstract

Described herein are systems, methods, and software to manage the selection of an edge gateway or edge for processing a packet. In one implementation, a first edge may receive a packet and hash addressing information in the packet to select a second edge to process the packet. The first edge may further forward the packet to the second edge, permitting the second edge to process the packet. Once processed, the second edge may forward the packet to a destination host computing system and notify the host computing system to use the second edge for response packets directed at a source internet protocol (IP) address in the packet.

Claims (81)

1. A method of operating a first gateway, the method comprising:

receiving, from a second gateway, an encapsulated first packet at a first tunnel interface of a plurality of tunnel interfaces;

decapsulating the encapsulated first packet to obtain the first packet;

identifying addressing information in the first packet and an identifier for the first tunnel interface at which the encapsulated first packet was received;

in response to receiving the encapsulated first packet at the first tunnel interface, storing an entry in a cache that associates the addressing information from the first packet with the identifier for the first tunnel interface at which the encapsulated first packet was received;

communicating the first packet to a computing system;

receiving, from the computing system, a second packet;

identifying the entry in the cache that corresponds to addressing information in the second packet;

in response to identifying the entry that corresponds to the addressing information in the second packet, identifying that the entry includes the identifier for the first tunnel interface;

in response to the entry including the identifier for the first tunnel interface, selecting the first tunnel interface from the plurality of tunnel interfaces to communicate the second packet;

encapsulating the second packet; and

communicating the encapsulated second packet to the second gateway using the first tunnel interface.

2. The method of claim 1 , wherein the encapsulated first packet comprises an IPsec packet.

3. The method of claim 1 , wherein the addressing information in the first packet comprises a source and destination IP address.

4. The method of claim 3 , wherein the addressing information in the first packet further comprises source port, destination port, and protocol.

5. The method of claim 1 further comprising:

receiving a third packet;

determining that addressing information in the third packet does not correspond to an entry in the cache;

in response to determining that the addressing information in the third packet does not correspond to an entry in the cache, hashing header information of the third packet to select a tunnel interface from the plurality of tunnel interfaces;

encapsulating the third packet; and

forwarding the encapsulated third packet using the selected tunnel interface.

6. The method of claim 1 , wherein the computing system comprises a host computing system for one or more virtual machines, and wherein communicating the first packet to the computing system comprises:

encapsulating the first packet to create a second encapsulated packet; and

forwarding the second encapsulated packet to the host computing system.

7. The method of claim 6 , wherein the second encapsulated packet comprises a Generic Network Virtualization Encapsulation (GENEVE) packet.

8. The method of claim 6 , wherein receiving, from the computing system, the second packet comprises:

receiving the second packet in a third encapsulated packet; and

decapsulating the third encapsulated packet to identify the second packet.

9. A computing apparatus comprising:

a storage system;

a processing system operatively coupled to the storage system; and

program instructions stored on the storage system to operate a first gateway that, when executed by the processing system, direct the computing apparatus to:

receive, from a second gateway, an encapsulated first packet at a first tunnel interface of a plurality of tunnel interfaces;

decapsulate the encapsulated first packet to obtain the first packet;

identify addressing information in the first packet and an identifier for the first tunnel interface at which the encapsulated first packet was received;

in response to receiving the encapsulated first packet at the first tunnel interface, store an entry in a cache that associates the addressing information from the first packet with the identifier for the first tunnel interface at which the encapsulated first packet was received;

communicate the first packet to a computing system;

receive, from the computing system, a second packet;

identify the entry in the cache that corresponds to addressing information in the second packet;

in response to identifying the entry that corresponds to the addressing information in the second packet, identifying that the entry includes the identifier for the first tunnel interface;

in response to the entry including the identifier for the first tunnel interface, select the first tunnel interface from the plurality of tunnel interfaces to communicate the second packet;

encapsulate the second packet; and

communicate the encapsulated second packet to the second gateway using the first tunnel interface.

10. The computing apparatus of claim 9 , wherein the encapsulated packet comprises an IPsec packet.

11. The computing apparatus of claim 9 , wherein the addressing information in the first packet comprises a source and destination IP address.

12. The computing apparatus of claim 11 , wherein the addressing information in the first packet further comprises source port, destination port, and protocol.

13. The computing apparatus of claim 9 , wherein the program instructions further direct the computing apparatus to:

receive a third packet;

determine that addressing information in the third packet does not correspond to an entry in the cache;

in response to determining that the addressing information in the third packet does not correspond to an entry in the cache, hash header information of the third packet to select a tunnel interface from the plurality of tunnel interfaces;

encapsulate the third packet; and

forward the encapsulated third packet using the selected tunnel interface.

14. The computing apparatus of claim 9 , wherein the computing system comprises a host computing system for one or more virtual machines, and wherein communicating the first packet to the computing system comprises:

encapsulating the first packet to create a second encapsulated packet; and

forwarding the second encapsulated packet to the host computing system.

15. The computing apparatus of claim 14 , wherein the second encapsulated packet comprises a Generic Network Virtualization Encapsulation (GENEVE) packet.

16. The computing apparatus of claim 14 , wherein receiving, from the computing system, the second packet comprises:

receiving the second packet in a third encapsulated packet; and

decapsulating the third encapsulated packet to identify the second packet.

17. A system comprising:

a plurality of gateways;

a first gateway of the plurality of gateways configured to:

receive, from a second gateway of the plurality of gateways, an encapsulated first packet at a first tunnel interface of a plurality of tunnel interfaces;

decapsulate the encapsulated first packet to obtain the first packet;

identify addressing information in the first packet and an identifier for the first tunnel interface at which the encapsulated first packet was received;

in response to receiving the encapsulated first packet at the first tunnel interface, store an entry in a cache that associates the addressing information from the first packet with the identifier for the first tunnel interface at which the encapsulated first packet was received;

communicate the first packet to a computing system;

receive, from the computing system, a second packet;

identify the entry in the cache that corresponds to addressing information in the second packet;

in response to identifying the entry that corresponds to the addressing information in the second packet, identify that the entry includes the identifier for the first tunnel interface;

in response to the entry including the identifier for the first tunnel interface, select the first tunnel interface from the plurality of tunnel interfaces to communicate the second packet;

encapsulate the second packet; and

communicate the encapsulated second packet to the second gateway using the first tunnel interface.

18. The system of claim 17 , wherein the encapsulated packet comprises an IPsec packet.

19. The system of claim 17 , wherein the addressing information in the first packet comprises a source and destination IP address.

20. The system of claim 17 , wherein the first gateway is further configured to:

receive a third packet from the computing system;

determine that addressing information in the third packet does not correspond to an entry in the cache;

in response to determining that the addressing information in the third packet does not correspond to an entry in the cache, hash header information of the third packet to select a tunnel interface from the plurality of tunnel interfaces;

encapsulate the third packet; and

forward the encapsulated third packet using the selected tunnel interface.

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 Oct 15, 2021
From: WANG, YONG; SHARMA, AWAN KUMAR; HONG, XINHUA; GOLIYA, ABHISHEK
To: VMWARE, INC.
Reel/Frame 057801/0205 →
Priority Claims (1)
IN 202141032908 · Jul 22, 2021 · national
Continuity (1)
Related Publication 20230024885A1 · Jan 26, 2023