# US 9,521,037 B2 · Providing access to configurable private computer networks

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

- Number: US 9,521,037 B2
- Document ID: US9521037B2
- Status: Granted
- Kind: B2
- Application number: 14/059,236
- Filed: 2013-10-21
- Published: 2014-02-13
- Granted: 2016-12-13
- Earliest claimed: 2008-12-10
- Assignees: Amazon Technologies, Inc.
- Applicants: Amazon Technologies, Inc.
- Inventors: Eric Jason Brandwine; Clarissa Loree Cook Brandwine; Daniel T. Cohn; Andrew J. Doane; Carl J. Moses; Stephen E. Schmidt
- Web page: https://patentgrep.com/patent/US9521037B2

## CPC

- H04L 41/0803: Configuration setting
- H04L 12/4641: {Virtual LANs, VLANs, e.g. virtual private networks [VPN] (LAN interconnection over a bridge based backbone H04L12/462; encapsulation techniques H04L12/4633; routing of packets H04L45/00; packet switches H04L49/00; virtual private networks for security H04L63/0272)}
- H04L 45/586: of virtual routers
- H04L 63/0272: {Virtual private networks}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Techniques are described for providing users with access to computer networks, such as to enable users to interact with a remote configurable network service in order to create and configure computer networks that are provided by the configurable network service for use by the users. Computer networks provided by the configurable network service may be configured to be private computer networks that are accessible only by the users who create them, and may each be created and configured by a client of the configurable network service to be an extension to an existing computer network of the client, such as a private computer network extension to an existing private computer network of the client. If so, secure private access between an existing computer network and new computer network extension that is being provided may be enabled using one or more VPN connections or other private access mechanisms.

## Claims

### Claim 1

A computer-implemented method comprising:
receiving, by one or more computing systems configured to provide a network service, configuration information for a virtual network having multiple computing nodes, the configuration information being received via a programmatic interface of the network service;
configuring, by the one or more configured computing systems and based on the received configuration information, a virtual border router to control access of the multiple computing nodes to external nodes that are not part of the virtual network, the configuring of the virtual border router including establishing a private virtual connection between the multiple computing nodes and one or more first external nodes that are part of an indicated remote private computer network; and
providing, by the one or more configured computing systems, emulated functionality of the configured virtual border router to manage communications of the multiple computing nodes in accordance with the received configuration information.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1 wherein the received configuration information specifies one or more access policies for use with the virtual network, and wherein the managing of the communications of the multiple computing nodes includes, in accordance with the one or more specified access policies, preventing communications between the multiple computing nodes and second external nodes that are not part of the virtual network and not part of the remote private computer network.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1 wherein the received configuration information further specifies that the virtual network is to be used as a private network extension of the remote private computer network, and wherein the method further comprises forwarding, via the established private virtual connection, one or more communications between the virtual network and the remote private computer network.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1 wherein at least one of the specified access policies includes an indication to allow communications between the at least one computing node of the provided virtual network and one or more second external nodes specified by the at least one access policy, and wherein the managing of the communications in accordance with the specified access policies further includes allowing the at least one computing node to send and/or receive communications with the one or more specified second external nodes.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1 wherein the received configuration information further specifies one or more virtual network addresses for nodes of the virtual network, and wherein the method further comprises assigning, by the one or more configured computing systems, one or more of the specified virtual network addresses to the multiple computing nodes for use in the virtual network.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1 further comprising:
receiving, with the one or more configured computing systems, a request to connect the provided virtual network to one or more public networks; and
in response to the received request, further configuring the virtual border router to connect the virtual network to the one or more public networks.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1 wherein the received configuration information further includes a specified network topology to use for the virtual network, and wherein the method further comprises configuring the virtual network to have the specified network topology.

### Claim 8 (depends on 7)

The computer-implemented method of claim 7 wherein configuring the virtual network to have the specified network topology includes configuring one or more virtual network subnets as part of the provided virtual network.

### Claim 9 (depends on 8)

The computer-implemented method of claim 8 wherein a first of the virtual network subnets is provided using a first group of the multiple computing nodes located at a first geographical location, wherein a second of the virtual network subnets is provided using a distinct second group of the multiple computing nodes located at a second geographical location, and wherein the configuring of the virtual network further includes interconnecting the first and second virtual network subnets using one or more virtual networking devices.

### Claim 10 (depends on 9)

The computer-implemented method of claim 9 wherein the one or more virtual networking devices include the configured virtual border router.

### Claim 11 (depends on 1)

The computer-implemented method of claim 1 wherein the remote private computer network is associated with a client of the network service, and wherein the method further includes providing access from the nodes of the remote private computer network to the multiple computing nodes of the virtual network, the providing of the access including providing authentication credentials to the client for the virtual network.

### Claim 12 (depends on 1)

The computer-implemented method of claim 1 wherein at least some of the configuration information is received by the one or more configured computing systems via one or more API calls to the programmatic interface of the network service.

### Claim 13 (depends on 1)

The computer-implemented method of claim 1 wherein the multiple computing nodes of the provided virtual network are overlaid on a distinct substrate network interconnecting multiple physical computing systems that each host one or more of the multiple computing nodes.

### Claim 14

A non-transitory computer-readable medium having stored contents that configure a computing device to perform a method, the method comprising:
configuring, by the configured computing device, one or more physical computing systems to provide multiple virtual computing nodes as at least part of a virtual network in accordance with configuration information received from a client via an interface; and
emulating, by the configured computing device and based at least in part on the configuration information, functionality of a virtual border router to control access of the multiple virtual computing nodes to one or more computing nodes that are not part of the virtual network and are in a remote private computer network associated with the client, including establishing a private virtual connection between the multiple virtual computing nodes of the virtual network and the one or more computing nodes of the remote private computer network.

### Claim 15 (depends on 14)

The non-transitory computer-readable medium of claim 14 wherein the received configuration information includes an indication of one or more virtual network addresses to use for the virtual network, and wherein the configuring of the physical computing systems to provide the multiple virtual computing nodes includes assigning the indicated virtual network addresses to at least some of the multiple virtual computing nodes.

### Claim 16 (depends on 15)

The non-transitory computer-readable medium of claim 15 wherein the one or more indicated virtual network addresses are network addresses of the remote private computer network, and wherein the stored contents further configure the computing device to configure the virtual network as an extension of the remote private computer network.

### Claim 17 (depends on 14)

The non-transitory computer-readable medium of claim 14 wherein the client is a first client, wherein the virtual network is overlaid on a distinct substrate network that interconnects multiple physical computing systems, each of at least some of the multiple physical computing systems hosting multiple virtual machines operating as nodes of one or more distinct virtual networks, and wherein at least one of the physical computing systems concurrently hosts a first virtual machine node of the virtual network for the first client and a second virtual machine node of a distinct second virtual network provided to a distinct second client.

### Claim 18 (depends on 14)

The non-transitory computer-readable medium of claim 14 wherein the virtual network is overlaid on a distinct substrate network that interconnects multiple physical computing systems hosting the provided virtual computing nodes, and wherein the one or more computing nodes in the remote private computer network are distinct external computing systems that are accessible by at least some of the multiple physical computing systems via one or more intervening computer networks between the at least some physical computing system and the external computing systems.

### Claim 19 (depends on 14)

The non-transitory computer-readable medium of claim 14 wherein the received configuration information further specifies a network topology to use for the virtual network, and wherein the virtual network is provided for the client in accordance with the specified network topology.

### Claim 20 (depends on 19)

The non-transitory computer-readable medium of claim 19 wherein providing the virtual network in accordance with the specified network topology includes configuring a plurality of virtual network subnets, a first of the virtual network subnets being provided using a first group of the multiple virtual computing nodes at a first geographical location and a second of the virtual network subnets being provided using a distinct second group of the multiple virtual computing nodes at a second geographical location, and wherein the stored contents further include software instructions that, when executed, further configure the computing device to configure the virtual network by interconnecting the first and second virtual network subnets using one or more virtual networking devices specified in the network topology.

### Claim 21 (depends on 19)

The non-transitory computer-readable medium of claim 19 wherein the stored contents further configure the computing device to emulate functionality of the one or more virtual networking devices.

### Claim 22 (depends on 14)

The non-transitory computer-readable medium of claim 14 wherein the emulating of the functionality includes, in accordance with one or more access policies indicated by the received configuration information, managing communications for the multiple virtual computing nodes of the virtual network, including preventing communications between the multiple virtual computing nodes and other computing systems that are external to both the virtual network and the remote private computer network.

### Claim 23 (depends on 22)

The non-transitory computer-readable medium of claim 22 wherein the indicated access policies specify one or more external computing systems with which communications are to be allowed, and wherein the managing of the communications includes allowing communications between at least some of the virtual computing nodes of the virtual network and the specified one or more external computing systems.

### Claim 24

A system, comprising:
one or more processors; and
a memory including instructions that, upon execution by at least one of the one or more processors, cause the system to:
configure at least one of multiple virtual computing nodes of a virtual network for a client in accordance with configuration information received from the client via an interface; and
emulate, based at least in part on the configuration information, functionality of a virtual border router to provide access between the at least one virtual computing node and a remote computer network of the client having one or more nodes that are not part of the virtual network, including establishing a private virtual connection between the at least one virtual computing node of the virtual network and the one or more nodes of the remote computer network, and managing communications between the at least one virtual computing node and the one or more nodes of the remote computer network.

### Claim 25 (depends on 24)

The system of claim 24 wherein the configuring of the at least one virtual computing node including assigning one or more virtual network addresses specified by the configuration information to the at least one virtual computing node.

### Claim 26 (depends on 24)

The system of claim 24 wherein the providing of the access includes providing one or more access parameters to the client, the provided access parameters including authentication credentials for accessing the virtual network.

### Claim 27 (depends on 24)

The system of claim 24 wherein the multiple virtual computing nodes are configured as part of the virtual network for the client, and wherein the virtual network is overlaid on a distinct substrate network interconnecting multiple physical computing systems that each host one or more virtual machines operating as virtual machine nodes of one or more distinct virtual networks.
