IP Library Granted Patent US 9,294,524
Granted Patent B2
US 9,294,524 · App. 14/108,277 · Granted Mar 22, 2016

Mapping virtual machines from a private network to a multi-tenant public datacenter

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 9,294,524
App. No.
14/108,277
Granted
Mar 22, 2016
Kind
B2
Abstract

A method for creating a set of virtual machines on a public datacenter. The method, from a first network controller of a private network, commands a second network controller of the public datacenter to create the virtual machines. The method, from the first network controller of the private network, communicates with the second network controller of the public datacenter to determine a type of the second network controller. When the first network controller includes instructions for using application programming interfaces (APIs) of the type of the second network controller, the method uses the APIs to set up a VLAN for the set of virtual machines in order to allow the virtual machines of the set of virtual machines to communicate securely with each other without sending the communications through the private network. In some embodiments, the VLAN is a private VLAN (PVLAN).

Claims (44)

1. A method for creating a plurality of virtual machines (“VMs”) on a public datacenter, the method comprising:

from a first network controller of a private network, directing a second network controller of the public datacenter to create the VMs;

from the first network controller of the private network, communicating with the second network controller of the public datacenter to determine a type of the second network controller;

when the type of the second network controller is one of a pre-defined set of network controller types:

using application programming interfaces (APIs) of the second network controller to set up a primary virtual local area network (VLAN) between the plurality of VMs; and

using the APIs of the second network controller to set up a plurality of secondary VLANs, wherein each secondary VLAN is between a subset of the plurality of VMs that restricts communication within the primary VLAN between VMs on the secondary VLAN to communication with other VMs on the secondary VLAN, wherein a set of host machines implement each secondary VLAN to send signals between the secondary VLAN's subset of the plurality of VMs on the public datacenter without passing the signals through the private network; and

when the type of the second network controller is not one of the pre-defined set of network controller types, setting up a system of communication in which all communication between the VMs created on the public datacenter pass through the private network.

2. The method of claim 1 , wherein determining the type of the second network controller comprises sending a query from the first network controller to the second network controller and receiving an identifying message from the second network controller at the first network controller.

3. The method of claim 1 , wherein each secondary VLAN is implemented by adding a VLAN tag to packets sent between the VMs within the secondary VLAN.

4. The method of claim 1 , wherein the primary VLAN and the secondary VLANs comprise a private VLAN (PVLAN).

5. The method of claim 1 , wherein the set of host machines implement the primary VLAN to communicatively connect machines on a single host machine of the public datacenter.

6. The method of claim 1 , wherein the VMs are initially implemented on the private network and moved to the public datacenter by said commanding the second network controller of the public datacenter to create the VMs.

7. The method of claim 1 , wherein the first network controller directs the second network controller of the public datacenter to create the VMs in response to commands received from a cloud management platform to create the VMs.

8. The method of claim 7 , wherein the commands received from the cloud management platform are generated in response to one of a dynamic scheduling algorithm and a command received from a network administrator.

9. A non-transitory machine readable medium storing a program which, when implemented by at least one processing unit of a first network controller of a private network sets up communications between a plurality of virtual machines (“VMs”) on a public datacenter, the program comprising sets of instructions for:

from the first network controller of the private network, directing a second network controller of the public datacenter to create the VMs;

from the first network controller of the private network, communicating with the second network controller of the public datacenter to determine a type of second network controller;

when the type of the second network controller is one of a pre-defined set of network controller types;

using application programming interfaces (APIs) of the second network controller to set up a primary virtual local area network (VLAN) between the plurality of VMs; and

using the APIs of the second network controller to set up a plurality of secondary VLANs, wherein each secondary VLAN is between a subset of the plurality of VMs that restricts communication within the primary VLAN between VMs on the secondary VLAN to communication with other VMs on the secondary VLAN, wherein a set of host machines implement each secondary VLAN to send signals between the secondary VLAN's subset of the plurality of VMs on the public datacenter without passing the signals through the private network; and

when the type of the second network controller is not one of the pre-defined set of network controller types, setting up a system of communication in which all communication between the VMs created on the public datacenter pass through the private network.

10. The non-transitory machine readable medium of claim 9 , wherein the set of instructions for determining the type of the second network controller comprises sets of instructions for:

sending a query to the public datacenter; and

receiving an identifying message from the public datacenter.

11. The non-transitory machine readable medium of claim 9 , wherein the pre-defined set of network controller types comprises a set of network controller types with APIs that the program has instructions to use.

12. The non-transitory machine readable medium of claim 9 , wherein the primary VLAN and the secondary VLANs comprise a private VLAN (PVLAN).

13. The non-transitory machine readable medium of claim 9 , wherein the set of host machines implement the primary VLAN to communicatively connect machines on a single host machine of the public datacenter.

14. The non-transitory machine readable medium of claim 9 , wherein the VMs on the public datacenter are initially implemented on the private network and moved to the public datacenter.

15. An electronic device implementing a first network controller for a private network, the electronic device comprising:

a set of processing units; and

a non-transitory machine readable medium storing a program which, when implemented by at least one of the processing units sets up communications between a plurality of virtual machines (“VMs”) on a public datacenter, the program comprising sets of instructions for:

directing a second network controller of the public datacenter to create the VMs;

communicating with the second network controller of the public datacenter to determine a type of the second network controller;

when the type of the second network controller is one of a pre-defined set of network controller types:

using application programming interfaces (APIs) of the second network controller to set up a primary virtual local area network (VLAN) between the plurality of VMs; and

using the APIs of the second network controller to set up a plurality of secondary VLANs, wherein each secondary VLAN is between a subset of the plurality of VMs that restricts communication within the primary VLAN between VMs on the secondary VLAN to communication with other VMs on the secondary VLAN, wherein a set of host machines implement each secondary VLAN to send signals between the secondary VLAN's subset of the plurality of VMs on the public datacenter without passing the signals through the private network; and

when the type of the second network controller is not one of the pre-defined set of network controller types, setting up a system of communication in which all communication between the VMs created on the public datacenter pass through the private network.

16. The electronic device of claim 15 , wherein the primary VLAN and the secondary VLANs comprise a private VLAN (PVLAN).

17. The electronic device of claim 15 , wherein the set of instructions for determining the type of the second network controller comprises sets of instructions for:

sending a query to the public datacenter; and

receiving an identifying message from the public datacenter.

18. The electronic device of claim 15 , wherein the set of host machines implement the primary VLAN to communicatively connect machines on a plurality of host machines of the public datacenter.

19. The electronic device of claim 15 , wherein the set of host machines implement the primary VLAN to communicatively connect machines on a single host machine of the public datacenter.

20. The electronic device of claim 15 , wherein the VMs on the public datacenter are initially implemented on the private network using separate VLANs and moved to the public datacenter.

Assignments (3)
MERGER Recorded Jan 27, 2025
From: NICIRA, INC.
To: VMWARE LLC
Reel/Frame 070187/0487 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2014
From: VMWARE, INC.
To: NICIRA, INC.
Reel/Frame 033487/0352 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2013
From: RAMAN, CHIDAMBARESWARAN
To: VMWARE, INC.
Reel/Frame 031794/0661 →