# US 10,372,480 B2 · Automated network configuration of virtual machines in a virtual lab environment

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,372,480 B2
- Document ID: US10372480B2
- Status: Granted
- Kind: B2
- Application number: 15/949,065
- Filed: 2018-04-09
- Published: 2018-11-22
- Granted: 2019-08-06
- Earliest claimed: 2009-07-27
- Assignees: VMware, Inc.
- Applicants: Nicira, Inc.
- Inventors: Anupam Dalal; Min-Ken Lai; Aastha Bhardwaj
- Web page: https://patentgrep.com/patent/US10372480B2

## CPC

- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- H04L 41/0843: {based on generic templates}
- H04L 41/0856: {by backing up or archiving configuration information}
- H04L 41/0873: Checking configuration conflicts between network elements
- H04L 47/783: Distributed allocation of resources, e.g. bandwidth brokers
- H04L 61/5007: Internet protocol [IP] addresses
- G06F 2009/45562: {Creating, deleting, cloning virtual machine instances}
- G06F 2009/4557: {Distribution of virtual machine instances; Migration and load balancing}
- G06F 2009/45595: {Network integration; Enabling network access in virtual machine instances}
- H04L 41/0895: Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
- H04L 45/586: of virtual routers
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Methods, systems, and computer programs for creating virtual machines (VM) and associated networks in a virtual infrastructure are presented. The method defines virtual network templates in a database, where each virtual network template includes network specifications. A configuration of a virtual system is created, which includes VMs, virtual lab networks associated with virtual network templates, and connections from the VMs to the virtual lab networks. Further, the configuration is deployed in the virtual infrastructure resulting in a deployed configuration. The deployment of the configuration includes instantiating in the virtual infrastructure the VMs of the configuration, instantiating in the virtual infrastructure the virtual lab networks, retrieving information from the database, and creating and executing programming instructions for the VMs. The database information includes the network specifications from the virtual network templates associated with the virtual lab networks, and network resources for the virtual lab networks from a pool of available network resources. The programming instructions are created for the particular Guest Operating System (GOS) running in each VM based on the GOS and on the retrieved database information. When executed in the corresponding VM GOS, the programming instructions configure the VMs network interfaces with the corresponding network specifications.

## Claims

### Claim 1

An apparatus comprising:
a user interface to receive characteristics of a virtual system definition and virtual network specifications that represent an abstraction of a network including virtual machines;
a datastore to store the virtual network specifications in association with the virtual system definition, the virtual system definition including templates of virtual machines; and
a processor programmed to, in response to a request to deploy the virtual system definition to create a first virtual system in a virtual infrastructure:
instantiate virtual machines of the virtual system definition;
retrieve the virtual network specifications from the virtual system definition; and
configure virtual network interfaces of the virtual machines according to the retrieved virtual network specifications.

### Claim 2 (depends on 1)

An apparatus as defined in claim 1, wherein the user interface presents a graphical user interface.

### Claim 3 (depends on 2)

An apparatus as defined in claim 2, wherein the virtual network specifications include parameters defining an external network.

### Claim 4 (depends on 2)

An apparatus as defined in claim 2, wherein the virtual network specifications include a subnet mask.

### Claim 5 (depends on 2)

An apparatus as defined in claim 2, wherein the user interface provides an interface for associating the virtual network specifications with a definition of a virtual machine in the virtual system definition.

### Claim 6 (depends on 2)

An apparatus as defined in claim 2, wherein the virtual network specifications are included in a virtual network template that includes data, settings, and the virtual network specifications that represent the abstraction of the network.

### Claim 7 (depends on 2)

An apparatus as defined in claim 2, wherein the request is a first request and the processor is programmed to deploy a second virtual system in the virtual infrastructure in response to a second request.

### Claim 8

A computer readable storage disk or storage device comprising instructions that, when executed cause a machine to:
receive, via a user interface, characteristics of a virtual system definition and virtual network specifications that represent an abstraction of a network including virtual machines;
store the virtual network specifications in association with the virtual system definition, the virtual system definition including templates of virtual machines;
in response to a request to deploy the virtual system definition to create a first virtual system in a virtual infrastructure:
instantiate virtual machines of the virtual system definition;
retrieve the virtual network specifications from the virtual system definition; and
configure virtual network interfaces of the virtual machines according to the retrieved virtual network specifications.

### Claim 9 (depends on 8)

A computer readable storage disk or storage device as defined in claim 8, wherein the user interface is a graphical user interface.

### Claim 10 (depends on 9)

A computer readable storage disk or storage device as defined in claim 9, wherein the virtual network specifications include parameters defining an external network.

### Claim 11 (depends on 9)

A computer readable storage disk or storage device as defined in claim 9, wherein the virtual network specifications include a subnet mask.

### Claim 12 (depends on 9)

A computer readable storage disk or storage device as defined in claim 9, wherein the user interface provides an interface for associating the virtual network specifications with a definition of a virtual machine in the virtual system definition.

### Claim 13 (depends on 9)

A computer readable storage disk or storage device as defined in claim 9, wherein the virtual network specifications are included in a virtual network template that includes data, settings, and the virtual network specifications that represent the abstraction of the network.

### Claim 14 (depends on 9)

A computer readable storage disk or storage device as defined in claim 9, wherein the request is a first request and wherein the instructions, when executed, cause the machine to deploy a second virtual system in the virtual infrastructure in response to a second request.

### Claim 15

A method comprising:
receiving, via a user interface, characteristics of a virtual system definition and virtual network specifications that represent an abstraction of a network including virtual machines;
storing the virtual network specifications in association with the virtual system definition, the virtual system definition including templates of virtual machines;
in response to a request to deploy the virtual system definition to create a first virtual system in a virtual infrastructure:
instantiating virtual machines of the virtual system definition;
retrieving the virtual network specifications from the virtual system definition; and
configuring virtual network interfaces of the virtual machines according to the retrieved virtual network specifications.

### Claim 16 (depends on 15)

A method as defined in claim 15, wherein the user interface is a graphical user interface.

### Claim 17 (depends on 16)

A method as defined in claim 16, wherein the virtual network specifications include parameters defining an external network.

### Claim 18 (depends on 16)

A method as defined in claim 16, wherein the virtual network specifications include a subnet mask.

### Claim 19 (depends on 16)

A method as defined in claim 16, wherein the user interface provides an interface for associating the virtual network specifications with a definition of a virtual machine in the virtual system definition.

### Claim 20 (depends on 16)

A method as defined in claim 16, wherein the virtual network specifications are included in a virtual network template that includes data, settings, and the virtual network specifications that represent the abstraction of the network.

### Claim 21 (depends on 16)

A method as defined in claim 16, wherein the request is a first request and further including deploying a second virtual system in the virtual infrastructure in response to a second request.
