IP Library Granted Patent US 10,959,098
Granted Patent B2
US 10,959,098 · App. 16/192,774 · Granted Mar 23, 2021

Dynamically specifying multiple public cloud edge nodes to connect to an external multi-computer node

Inventors: Israel Cidon (San Francisco, CA); Prashanth Venugopal (San Francisco, CA); Aran Bergman (Givatayim, IL); Chen Dar (Magshimim, IL); Alex Markuze (Ramat Gan, IL); Eyal Zohar (Shimshit, IL)
Assignee: VMWARE, INC.
H04W12/08H04L12/4625H04L12/4633H04L12/4641H04L12/4679H04L41/0893H04L41/12H04L41/22H04L43/0811H04L45/123H04L63/0272H04L63/20H04L43/0835H04L43/0852
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 10,959,098
App. No.
16/192,774
Filed
Nov 15, 2018
Granted
Mar 23, 2021
Kind
B2
Examiner
CHANG, KAI J
Art Unit
2468
USPC
370/359
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 (40)

1. A method for connecting a multi-computer node (MCN) for an entity to a virtual network defined over a set of one or more one public cloud datacenters, the method comprising:

at a set of one or more controllers:

providing, to the multi-computer node (MCN), identifiers identifying a plurality of managed forwarding nodes (MFNs) in the set of public cloud datacenters for the MCN to generate a measurement for each MFN that quantifies an attribute of a connection between the MCN and the MFN;

receiving, from the MCN, measurements for the identified MFNs;

based on the received measurements, selecting a subset of at least two MFNs for the MCN to use to connect to the virtual network, the subset of MFNs not including all of the plurality of MFNs; and

providing the subset of at least two MFNs to the MCN to use to connect to the virtual network, wherein providing the subset of at least two MFNs to the MCN comprises providing a plurality of routes each of which uses one of the at least two MFNs as an ingress MFN to enter the virtual network for data message flows that are destined for another MCN connected to the virtual network.

2. The method of claim 1 , wherein each route uses an MFN in the subset of MFNs for exiting the virtual network.

3. The method of claim 2 , wherein selecting the subset of MFNs comprises:

generating a routing graph for identifying routes from the MCN through the virtual network to other compute nodes associated with the entity that are connected to the virtual network;

using the received measurements to compute weights of links in the routing graph; and

using the routing graph and the computed weights to perform route-identifying process to identify the plurality of routes.

4. The method of claim 3 , wherein each route identifies a next hop for traversing a routing path from the MCN or a routing path to the MCN, and at least two routes provided to the MCN identify a different MFN in the subset of MFNs as a next hop of a routing path from the MCN.

5. The method of claim 1 , wherein the MCN generates a plurality of measurements regarding a plurality of attributes associated with the connection between the MCN and each identified MFN, the method further comprising computing a weight value for the connection between the MCN and each identified MFN based on the plurality of measurements.

6. The method of claim 5 , wherein the plurality of measurements comprises message loss rate and message delay for the connection between the MCN and each identified MFN.

7. The method of claim 6 , wherein the plurality of measurements further comprises financial cost associated with the connection between the MCN and each identified MFN.

8. The method of claim 1 , wherein the subset of MFNs comprises a primary MFN to which the MCN has to connect and a standby MFN to which the MCN has to connect.

9. The method of claim 1 , wherein

the MCN has a measurement agent and each identified MFN has a measurement agent,

the MCN measurement agent exchanges messages with each identified MFN's measurement agent to generate a measurement for the MFN.

10. The method of claim 1 , wherein at least two identified MFNs share one measurement agent as both MFNs are associated with the same public cloud.

11. A non-transitory machine readable medium storing a controller program for connecting a multi-computer node (MCN) for an entity to a virtual network defined over a set of one or more one public cloud datacenters, the controller program comprising sets of instructions for:

providing, to the multi-computer node (MCN), a list of identifiers identifying a plurality of managed forwarding nodes (MFNs) in the set of public cloud datacenters for the MCN to generate a measurement for each identified MFN that quantifies an attribute of a connection between the MCN and the MFN, the plurality of MFNs comprising candidate MFNs through which the MCN can connect to the virtual network;

receiving, from the MCN, the measurements generated by the MCN for each of the identified MFNs;

using the received measurements to perform path searches that identify a set of one or more desired routes between the MCN and at least one other MCN for the entity connected to the virtual network, the identified set of desired routes using a subset of two or more MFNs for the MCN to use to connect to the virtual network, the subset of MFNs not including all of the plurality of MFNs; and

providing the subset of MFNs to the MCN to use to connect to the virtual network, by providing a plurality of routes each of which uses a different MFN as an ingress MFN to enter the virtual network for data message flows that are destined for another MCN connected to the virtual network.

12. The non-transitory machine readable medium of claim 11 , wherein each route uses an MFN in the subset of MFNs for exiting the virtual network.

13. The non-transitory machine readable medium of claim 12 , wherein the set of instructions for using the received measurements to perform path searches comprises sets of instructions for:

generating a routing graph for identifying routes from the MCN through the virtual network to other compute nodes associated with the entity that are connected to the virtual network;

using the received measurements to compute weights of links in the routing graph; and

using the routing graph and the computed weights to perform the path searches to identify the plurality of routes.

14. The non-transitory machine readable medium of claim 13 , wherein each route identifies a next hop for traversing a routing path from the MCN or a routing path to the MCN, and at least two routes provided to the MCN identify a different MFN in the subset of MFNs as a next hop of a routing path from the MCN.

15. The non-transitory machine readable medium of claim 11 , wherein the MCN generates a plurality of measurements regarding a plurality of attributes associated with the connection between the MCN and each identified MFN, the method further comprising computing a weight value for the connection between the MCN and each identified MFN based on the plurality of measurements.

16. The non-transitory machine readable medium of claim 15 , wherein the plurality of measurements comprises message loss rate and message delay for the connection between the MCN and each identified MFN.

17. The non-transitory machine readable medium of claim 16 , wherein the plurality of measurements further comprises financial cost associated with the connection between the MCN and each identified MFN.

18. The non-transitory machine readable medium of claim 11 , wherein the subset of MFNs comprises a primary MFN to which the MCN has to connect and a standby MFN to which the MCN has to connect.

19. The non-transitory machine readable medium of claim 11 , wherein

the MCN has a measurement agent and each identified MFN has a measurement agent,

the MCN measurement agent exchanges messages with each identified MFN's measurement agent to generate a measurement for the MFN.

20. The non-transitory machine readable medium of claim 11 , wherein at least two identified MFNs share one measurement agent as both MFNs are associated with the same public cloud.

21. The non-transitory machine readable medium of claim 11 , wherein the program further comprises a set of instructions for directing the MCN to establish a secure connection with each MFN in the selected subset of MFNs.

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 Nov 15, 2018
From: CIDON, ISRAEL; VENUGOPAL, PRASHANTH; BERGMAN, ARAN; DAR, CHEN; MARKUZE, ALEX; ZOHAR, EYAL
To: NICIRA, INC.
Reel/Frame 047519/0821 →
Cited By (54)
US 12,213,014 US 12,218,800 US 12,218,845 US 12,236,248 US 12,237,990 US 12,250,114 US 12,255,951 US 12,260,271 US 12,261,777 US 12,267,364 US 12,301,583 US 12,301,673 US 12,306,819 US 12,307,283 US 12,316,524 US 12,335,131 US 12,355,655 US 12,368,676 US 12,373,546 US 12,375,403 US 12,375,554 US 12,401,544 US 12,407,610 US 12,408,036 US 12,425,332 US 12,425,335 US 12,425,347 US 12,425,395 US 12,481,638 US 12,483,968 US 12,489,672 US 12,495,301 US 12,498,987 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,613,857 US 12,627,565 US 12,632,330 US 12,652,217 US 12,657,097 US 12,659,719 US 12,684,357 US 12,693,999 US 12,699,685 US 12,719,782