IP Library Granted Patent US 11,743,191
Granted Patent B1
US 11,743,191 · App. 17/871,996 · Granted Aug 29, 2023

Load balancing over tunnel endpoint groups

Inventors: Subin Cyriac Mathew (San Jose, CA); Prerit Rodney (Union City, CA); Chidambareswaran Raman (Sunnyvale, CA)
Assignee: VMWARE, INC.
H04L47/125H04L12/4633
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,743,191
App. No.
17/871,996
Granted
Aug 29, 2023
Kind
B1
Abstract

Some embodiments provide a method of forwarding data messages between source and destination host computers that execute source and destination machines. At a source computer on which a source machine for a data message flow executes, the method in some embodiments identifies a source tunnel endpoint group (TEPG) associated with the source machine. For the flow, the method selects one TEP of the TEPG as the source TEP. The method then uses the selected source TEP to forward the flow to the destination computer on which the destination machine executes.

Claims (32)

1. A method of forwarding data messages between source and destination host computers that execute source and destination machines, the method comprising:

at the source host computer on which the source machine for a particular data message flow executes:

identifying a source tunnel endpoint group (TEPG) associated with the source machine, the source TEPG comprising a plurality of tunnel endpoints (TEPs) on a plurality of different layer 3 subnets;

performing a multi-pathing operation to select for the particular data message flow one TEP associated with one path from a plurality of paths between the source and destination host computers, each path using a different source TEP with a different L3 subnet; and

using the selected source TEP to forward the particular data message flow to the destination host computer on which the destination machine executes.

2. The method of claim 1 , wherein two different source TEPs are connected to two different switches that are part of two different L3 subnets.

3. The method of claim 2 , wherein the two switches are top-of-rack switches.

4. The method of claim 2 , wherein the two source TEPs include a first source TEP associated with a first physical network interface controller (PNIC) of the source host computer and a second source TEP associated with a second PNIC of the source host computer, each PNIC connected to a different switch.

5. The method of claim 4 , wherein each TEP is associated with an uplink port of a virtual switch executing on the source host computer.

6. The method of claim 2 further comprising using different selected source TEPs connected to different switches to send encapsulated data messages of different flows along different paths to the destination host computer, each path commencing at a different switch, wherein each encapsulated data message is encapsulated with a tunnel header that specifies a network address of a selected source TEP.

7. The method of claim 6 further comprising

identifying, at the source host computer, a destination TEPG associated with the destination machine;

selecting one TEP from the destination TEPG for the particular data message flow; and

storing in the tunnel header used for the particular data message flow the network addresses of the selected source and destination TEPs for the particular data message flow.

8. The method of claim 7 comprising further storing in the tunnel header identifiers for the selected source and destination TEPGs.

9. The method of claim 7 comprising further storing in the tunnel header identifiers for the selected source and destination TEPs.

10. The method of claim 7 , wherein the particular data message flow is for an overlay logical network and the TEPs and switches are part of an underlay network over which the overlay logical network is defined.

11. A non-transitory machine readable medium storing a program for forwarding data messages between source and destination host computers that execute source and destination machines, the program for execution on the source host computer, the source program comprising sets of instructions for:

identifying, for a particular data message flow from the source machine, a source tunnel endpoint group (TEPG) associated with the source machine, the source TEPG comprising a plurality of tunnel endpoints (TEPs) on a plurality of different layer 3 subnets;

performing a multi-pathing operation to select for the particular data message flow one TEP associated with one path from a plurality of paths between the source and destination host computers, each path using a different source TEP with a different L3 subnet; and

using the selected source TEP to forward the particular data message flow to the destination host computer on which the destination machine executes.

12. The non-transitory machine readable medium of claim 11 , wherein two different source TEPs are connected to two different switches that are part of two different L3 subnets.

13. The non-transitory machine readable medium of claim 12 , wherein the two switches are top-of-rack switches.

14. The non-transitory machine readable medium of claim 12 , wherein the two source TEPs include a first source TEP associated with a first physical network interface controller (PNIC) of the source host computer and a second source TEP associated with a second PNIC of the source host computer, each PNIC connected to a different switch.

15. The non-transitory machine readable medium of claim 14 , wherein each TEP is associated with an uplink port of a virtual switch executing on the source host computer.

16. The non-transitory machine readable medium of claim 12 , wherein the program further comprises a set of instructions for using different selected source TEPs connected to different switches to send encapsulated data messages of different flows along different paths to the destination host computer, each path commencing at a different switch, wherein each encapsulated data message is encapsulated with a tunnel header that specifies a network address of a selected source TEP.

17. The non-transitory machine readable medium of claim 16 , wherein the program further comprises sets of instructions for:

identifying, at the source host computer, a destination TEPG associated with the destination machine;

selecting one TEP from the destination TEPG for the particular data message flow; and

storing in the tunnel header used for the particular data message flow the network addresses of the selected source and destination TEPs for the particular data message flow.

18. The non-transitory machine readable medium of claim 17 , wherein the program further comprises a set of instructions for storing in the tunnel header identifiers for the selected source and destination TEPGs.

19. The non-transitory machine readable medium of claim 17 , wherein the program further comprises a set of instructions for storing in the tunnel header identifiers for the selected source and destination TEPs.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2023
From: MATHEW, SUBIN CYRIAC; RODNEY, PRERIT; RAMAN, CHIDAMBARESWARAN
To: VMWARE, INC.
Reel/Frame 062904/0667 →
Cited By (2)
US 12,483,505 US 12,712,761