IP Library Granted Patent US 11,102,032
Granted Patent B2
US 11,102,032 · App. 15/972,088 · Granted Aug 24, 2021

Routing data message flow through multiple public clouds

Inventors: Israel Cidon (San Francisco, CA); Chen Dar (Magshimim, IL); Prashanth Venugopal (San Francisco, CA); Eyal Zohar (Shimshit, IL); Alex Markuze (Ramat Gan, IL); Aran Bergman (Givatayim, IL)
Assignee: VMWARE, INC.
H04L12/4641H04L12/14H04L12/1403H04L12/1428H04L12/2854H04L12/2859H04L12/4633H04L41/0803H04L43/0829H04L43/0852H04L43/0888H04L45/04H04L45/12H04L45/14H04L45/64H04L45/74H04L45/745H04L61/1511H04L61/25H04L61/255H04L61/2514H04L61/305H04L63/0245H04L63/20H04L67/10H04M15/00H04M15/51H04L41/046H04L43/08H04L63/0263H04L63/0272H04L63/0281H04L2212/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,102,032
App. No.
15/972,088
Filed
May 4, 2018
Granted
Aug 24, 2021
Kind
B2
Art Unit
2466
USPC
370/392
Abstract

Some embodiments establish for an entity a virtual network over several public clouds of several public cloud providers and/or in several regions. In some embodiments, the virtual network is an overlay network that spans across several public clouds to interconnect one or more private networks (e.g., networks within branches, divisions, departments of the entity or their associated datacenters), mobile users, and SaaS (Software as a Service) provider machines, and other web applications of the entity. The virtual network in some embodiments can be configured to optimize the routing of the entity's data messages to their destinations for best end-to-end performance, reliability and security, while trying to minimize the routing of this traffic through the Internet. Also, the virtual network in some embodiments can be configured to optimize the layer 4 processing of the data message flows passing through the network.

Claims (39)

1. A method of routing data message flows through a plurality of virtual networks defined over a plurality of public cloud datacenters for a plurality of tenants of a virtual network provider, the method comprising:

at an ingress forwarding element of a first virtual network for a first tenant;

receiving a data message from an external machine outside of the public cloud datacenters;

determining that the data message is associated with the first tenant;

performing a first lookup operation to identify an egress forwarding element at which the data message should exit the first virtual network by examining a set of one or more route tables to identify a network address of the egress forwarding element at which the data message should exit the first virtual network;

using the network address of the identified egress forwarding element to perform a second lookup operation to identify a next hop forwarding element to receive the data message by using the network address of the egress forwarding element to examine the set of route tables to identify a local interface or a network address associated with the next hop forwarding element to receive the data message; and

forwarding the data message to the next hop forwarding element by encapsulating the data message with at least one encapsulating header that includes the network addresses of the next hop forwarding element, the ingress forwarding element and the egress forwarding element.

2. The method of claim 1 , wherein:

performing the first lookup operation comprises examining a first route table for the first virtual network to identify the network address of the egress forwarding element at which the data message should exit the first virtual network; and

using the network address comprises using the network address of the identified egress forwarding element to examine a second route table of the virtual network provider to identify a local interface or a network address of the next hop forwarding element to receive the data message.

3. The method of claim 1 ,

wherein: the second lookup operation identifies a local interface of the ingress forwarding element as being connected to the next hop forwarding element;

the forwarding of the data message comprises providing the data message to the local interface to forward the data message to the next hop forwarding element; and

the next hop forwarding element is the egress forwarding element.

4. The method of claim 1 further comprising:

based on a network address of the next hop forwarding element identified in the second lookup operation, performing a third lookup operation to identify a local interface of the ingress forwarding element that is connected to the next hop forwarding element,

wherein the forwarding of the data message comprises providing the data message to the local interface to forward the data message to the next hop forwarding element, and the next hop forwarding element is not the egress forwarding element.

5. The method of claim 1 , wherein said forwarding elements are software forwarding elements.

6. The method of claim 5 , wherein the first and second lookup operations are performed by reference to different portions of a VRF (virtual routing and forwarding) namespace of the software forwarding elements.

7. The method of claim 1 , wherein the public cloud datacenters are multi-tenant public cloud datacenters.

8. A non-transitory machine readable medium storing a program for routing data message flows through a plurality of virtual networks defined over a plurality of public cloud datacenters for a plurality of tenants of a virtual network provider, the program for execution by at least one processing unit of a computer that implements an ingress forwarding element of a first virtual network for a first tenant, the program comprising sets of instructions for:

receiving a data message from an external machine outside of the public cloud datacenters;

determining that the data message is associated with the first tenant;

performing a first lookup operation to identify an egress forwarding element at which the data message should exit the first virtual network by examining a set of one or more route tables to identify a network address of the egress forwarding element at which the data message should exit the first virtual network;

using the network address of the identified egress forwarding element to perform a second lookup operation to identify a next hop forwarding element to receive the data message by using the network address of the egress forwarding element to examine the set of route tables to identify a local interface or a network address associated with the next hop forwarding element to receive the data message; and

forwarding the data message to the next hop forwarding element by encapsulating the data message with at least one encapsulating header that includes the network addresses of the next hop forwarding element, the ingress forwarding element and the egress forwarding element.

9. The non-transitory machine readable medium of claim 8 , wherein:

the set of instructions for performing the first lookup operation comprises a set of instructions for examining a first route table for the first virtual network to identify the network address of the egress forwarding element at which the data message should exit the first virtual network; and

using the network address comprises using the network address of the egress forwarding element to examine a second route table of the virtual network provider to identify a local interface or a network address of the next hop forwarding element to receive the data message.

10. The non-transitory machine readable medium of claim 8 ,

wherein: the second lookup operation identifies a local interface of the ingress forwarding element as being connected to the next hop forwarding element; and

the forwarding of the data message comprises providing the data message to the local interface to forward the data message to the next hop forwarding element;

the next hop forwarding element is the egress forwarding element.

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

based on a network address of the next hop forwarding element identified in the second lookup operation, performing a third lookup operation to identify a local interface of the ingress forwarding element that is connected to the next hop forwarding element,

wherein the forwarding of the data message comprises providing the data message to the local interface to forward the data message to the next hop forwarding element, and the next hop forwarding element is not the egress forwarding element.

12. The non-transitory machine readable medium of claim 8 , wherein said forwarding elements are software forwarding elements.

13. The non-transitory machine readable medium of claim 12 , wherein the first and second lookup operations are performed by reference to different portions of a VRF (virtual routing and forwarding) namespace of the software forwarding elements.

14. The non-transitory machine readable medium of claim 8 , wherein the public cloud datacenters are multi-tenant public cloud datacenters.

Assignments (3)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 12, 2019
From: NICIRA, INC.
To: VMWARE, INC.
Reel/Frame 049743/0073 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2019
From: CIDON, ISRAEL; DAR, CHEN; VENUGOPAL, PRASHANTH; ZOHAR, EYAL; MARKUZE, ALEX; BERGMAN, ARAN
To: NICIRA, INC.
Reel/Frame 048733/0009 →
Continuity (2)
Provisional Application 62566524 · Oct 2, 2017
Related Publication 20190104050A1 · Apr 4, 2019
Cited By (34)
US 12,218,800 US 12,218,845 US 12,237,990 US 12,250,114 US 12,261,777 US 12,267,364 US 12,316,524 US 12,335,131 US 12,355,655 US 12,368,676 US 12,375,403 US 12,401,544 US 12,425,332 US 12,425,335 US 12,425,347 US 12,425,395 US 12,483,968 US 12,489,672 US 12,506,678 US 12,507,120 US 12,507,148 US 12,507,153 US 12,526,183 US 12,549,465 US 12,563,438 US 12,568,039 US 12,587,468 US 12,603,827 US 12,603,848 US 12,632,330 US 12,652,217 US 12,659,719 US 12,665,833 US 12,719,782