IP Library Granted Patent US 10,958,479
Granted Patent B2
US 10,958,479 · App. 15/972,095 · Granted Mar 23, 2021

Selecting one node from several candidate nodes in several public clouds to establish a virtual network that spans the 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 10,958,479
App. No.
15/972,095
Granted
Mar 23, 2021
Kind
B2
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 (34)

1. A method of connecting a location of external machines, outside of a plurality of public cloud datacenters, of an entity to a virtual network that is defined over the plurality of public cloud datacenters, the method comprising:

sending a DNS (domain name server) request to identify a particular managed forwarding node (MFN) from a plurality of MFNs in the plurality of public cloud datacenters that are candidate edge MFNs for connecting the location of the external machines to the virtual network, wherein the virtual network is formed by the plurality of MFNs;

in response to the DNS request, receiving an identifier that identifies the particular MFN as an ingress node of the virtual network to forward packets from the external machines at the location to other external machines at another location outside of the plurality of public cloud datacenters;

establishing a network connection between the location of the external machines and the particular MFN in order to connect the location of the external machines to the virtual network;

performing the sending, receiving and establishing operations after determining that a network connection needs to be established between the location of the external machines and the virtual network; and

repeatedly sending the DNS request to ensure that the particular MFN is an optimal ingress node of the virtual network for the location of the external machines, and upon receiving an identifier of another MFN as the ingress node of the virtual network for the location, establishing a new network connection between the location of the external machines and the other MFN in order to connect the location to the virtual network through the other MFN.

2. The method of claim 1 , wherein said determination is based on a determination that a virtual private network (VPN) connection needs to be established between the location of the external machines and the virtual network, and wherein the established network connection is a VPN connection.

3. The method of claim 1 , wherein the location of the external machines is an office or a private datacenter of the entity.

4. The method of claim 1 , wherein the plurality of MFNs are candidate ingress/egress edge MFNs, and the particular MFN is the selected ingress/egress MFN (i) for receiving data messages from the location of the external machines into the virtual network to forward to other external machines of the entity that are connected to the virtual network and (ii) for supplying data messages from the other external machines of the entity through the virtual network to the location of the external machines.

5. The method of claim 1 , wherein the sending, receiving and establishing operations are performed by a virtual-network gateway at the location of the external machines.

6. The method of claim 1 , wherein sending the DNS request comprises sending the DNS request to a set of one or more authoritative DNS machines in one or more public clouds.

7. The method of claim 6 , wherein

the virtual network is deployed in the public cloud datacenter by a virtual network provider that manages a particular domain and deploys other virtual networks for other entities over public cloud datacenters; and

the DNS request to the set of authoritative DNS machines comprises a hierarchical domain name formed by concatenating at least three labels, with a right-most first label identifying the particular domain, a second label to the left of the first label that identifies that entity, and a third label to the left of the second label that identifies the location of the external machines of the entity in case the entity has more than one location of external machines.

8. The method of claim 1 , wherein receiving the identifier comprises receiving a set of at least two identifiers for at least two MFNs, the method further comprising selecting one of the two MFNs as the edge MFN.

9. The method of claim 8 , wherein selecting one of the two MFNs comprises:

sending a message that needs a reply to each of the two MFNs identified by the received two identifiers; and

selecting one of the two MFNs based on a response time of the two MFNs to the two sent messages.

10. The method of claim 9 , wherein the two messages are Internet Control Message Protocol (ICMP) echo request packets.

11. The method of claim 9 , wherein selecting the MFN comprises selecting the MFN because another location of external machines of the entity has picked the selected MFN as the edge MFN.

12. The method of claim 1 , wherein the identifier that identifies the particular MFN is a network address of the MFN.

13. A non-transitory machine readable medium storing a program for connecting a location of external machines, outside of a plurality of public cloud datacenters, of an entity to a virtual network that is defined over the plurality of public cloud datacenters, the program comprising sets of instructions for:

sending a DNS (domain name server) request to identify a particular managed forwarding node (MFN) from a plurality of MFNs in the plurality of public cloud datacenters that are candidate edge MFNs for connecting the location of the external machines to the virtual network, wherein the virtual network is formed by the plurality of MFNs;

receiving, in response to the DNS request, an identifier that identifies the particular MFN as an ingress node of the virtual network to forward packets from the external machines at the location to other external machines at another location outside of the plurality of public cloud datacenters;

establishing a network connection between the location of the external machines and the particular MFN in order to connect the location of the external machines to the virtual network;

performing the sending, receiving and establishing operations after determining that a network connection needs to be established between the location of the external machines and the virtual network; and

repeatedly sending the DNS request to ensure that the particular MFN is an optimal ingress node of the virtual network for the location of the external machines, and upon receiving an identifier of another MFN as the ingress node of the virtual network for the location, establishing a new network connection between the location of the external machines and the other MFN in order to connect the location to the virtual network through the other MFN.

14. The non-transitory machine readable medium of claim 13 , wherein said determination is based on a determination that a virtual private network (VPN) connection needs to be established between the location of the external machines and the virtual network, and wherein the established network connection is a VPN connection.

15. The non-transitory machine readable medium of claim 13 , wherein the location of the external machines is an office or a private datacenter of the entity.

16. The non-transitory machine readable medium of claim 13 , wherein the set of instructions for receiving the identifier comprises a set of instructions for receiving a set of at least two identifiers for at least two MFNs, the method further comprising selecting one of the two MFNs as the edge MFN.

17. The non-transitory machine readable medium of claim 16 , wherein the set of instructions for selecting one of the two MFNs comprises sets of instructions for:

sending a message that needs a reply to each of the two MFNs identified by the received two identifiers; and

selecting one of the two MFNs based on a response time of the two MFNs to the two sent messages.

18. The non-transitory machine readable medium of claim 17 , wherein the two messages are Internet Control Message Protocol (ICMP) echo request packets.

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 29, 2019
From: CIDON, ISRAEL; DAR, CHEN; VENUGOPAL, PRASHANTH; ZOHAR, EYAL; MARKUZE, ALEX; BERGMAN, ARAN
To: NICIRA, INC.
Reel/Frame 048737/0934 →
Continuity (2)
Provisional Application 62566524 · Oct 2, 2017
Related Publication 20190103992A1 · Apr 4, 2019
Cited By (33)
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,719,782