# US 12,003,380 B2 · Providing virtual networking device functionality for managed computer networks

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

- Number: US 12,003,380 B2
- Document ID: US12003380B2
- Status: Granted
- Kind: B2
- Application number: 17/663,289
- Filed: 2022-05-13
- Published: 2022-09-01
- Granted: 2024-06-04
- Earliest claimed: 2009-12-07
- Assignees: Amazon Technologies, Inc.
- Applicants: Amazon Technologies, Inc.
- Inventors: Eric Jason Brandwine; Kevin Christopher Miller; Andrew J. Doane
- Web page: https://patentgrep.com/patent/US12003380B2

## CPC

- H04L 41/12: Discovery or management of network topologies
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- H04L 41/0816: the condition being an adaptation, e.g. in response to network events
- H04L 41/0895: Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
- H04L 41/0897: by horizontal or vertical scaling of resources, or by migrating entities, e.g. virtual resources or entities
- H04L 41/40: using virtualisation of network functions or resources, e.g. SDN or NFV entities
- H04L 45/02: Topology update or discovery
- H04L 45/586: of virtual routers
- H04L 45/64: using an overlay routing layer
- H04L 67/34: {involving the movement of software or configuration parameters (network booting or remote initial program loading [RIPL] G06F9/4416)}
- G06F 2009/45595: {Network integration; Enabling network access in virtual machine instances}
- H04L 41/5096: {wherein the managed service relates to distributed or central networked applications}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Techniques are described for providing virtual networking functionality for managed computer networks. In some situations, a user may configure or otherwise specify a logical network topology for a managed computer network with multiple computing nodes that includes one or more virtual networking devices each associated with a specified group of the multiple computing nodes. Corresponding networking functionality may be provided for communications between the multiple computing nodes by emulating functionality that would be provided by the networking devices if they were physically present and configured to support the specified network topology. In some situations, the managed computer network is a virtual computer network overlaid on a substrate network, and the networking device functionality emulating includes receiving routing communications directed to the networking devices and using included routing information to update the specified network topology for the managed computer network.

## Claims

### Claim 1

A method, comprising:
performing, by a configurable network service implemented by one or more computing systems:
receiving configuration information for a virtual computer network hosted by the configurable network service on behalf of a client, the configuration information including:
(a) a Classless Inter-Domain Routing (CIDR) block of Internet Protocol (IP) addresses to use for the virtual computer network, and
(b) one or more switches in the virtual computer network;
configuring the virtual computer network according to the configuration information, wherein the virtual computer network includes a plurality of computing nodes implemented as virtual machines host on physical hosts, the virtual computer network is implemented over a substrate network that includes the physical hosts, and the virtual computer network implements the one or more switches specified by the configuration information;
generating, based at least part on the configuration information, a routing table for the virtual computer network, wherein the routing table includes Equal Cost Multi-Path (ECMP) routing information for routing communications to or from the virtual computer network; and
routing communications to or from the virtual computer network according to the routing table.

### Claim 2 (depends on 1)

The method of claim 1, wherein the configuration information is received via a graphical user interface (GUI) of the configurable network service.

### Claim 3 (depends on 1)

The method of claim 1, wherein the configuration information is received via an application programming interface (API) of the configurable network service.

### Claim 4 (depends on 1)

The method of claim 1, further comprising the configurable network service updating the routing table based at least in part on additional configuration information received for the virtual computer network.

### Claim 5 (depends on 1)

The method of claim 1, wherein the configurable network service implements one or more virtual routers to perform the routing of communications in the virtual computer network.

### Claim 6 (depends on 1)

The method of claim 1, wherein:
the virtual computer network implements a plurality of virtual routers; and
the virtual routers are configured to exchange routing information.

### Claim 7 (depends on 1)

The method of claim 1, wherein the routing of communications in the virtual network comprises modifying headers of IP packets prior to forwarding the IP packets.

### Claim 8 (depends on 1)

The method of claim 1, wherein the routing of communications in the virtual network comprises selecting, based on the routing table, shortest paths to destination nodes using a distance measure.

### Claim 9 (depends on 1)

The method of claim 1, wherein the routing of communications in the virtual network is performed based on Open Shortest Path First (OSPF) protocol.

### Claim 10 (depends on 1)

The method of claim 1, wherein the routing of communications in the virtual network comprises:
selecting a next computing node in the virtual computer network to forward an IP packet;
determining a substrate address in the substrate network mapped to the next computing node; and
forwarding the IP packet over the substrate network using the substrate address.

### Claim 11

A system, comprising:
one or more computing systems that implements a configurable network service, configure to:
receive configuration information for a virtual computer network hosted by the configurable network service on behalf of a client, the configuration information including:
(a) a Classless Inter-Domain Routing (CIDR) block of Internet Protocol (IP) addresses to use for the virtual computer network, and
(b) one or more switches in the virtual computer network;
configure the virtual computer network according to the configuration information, wherein the virtual computer network includes a plurality of computing nodes implemented as virtual machines host on physical hosts, the virtual computer network is implemented over a substrate network that includes the physical hosts, and the virtual computer network implements the one or more switches specified by the configuration information;
generate, based at least part on the configuration information, a routing table for the virtual computer network, wherein the routing table includes Equal Cost Multi-Path (ECMP) routing information for routing communications to or from the virtual computer network; and
route communications in the virtual computer network according to the routing table.

### Claim 12 (depends on 11)

The system of claim 11, wherein the configuration information is received via a graphical user interface (GUI) of the configurable network service.

### Claim 13 (depends on 11)

The system of claim 11, wherein the configuration information is received via an application programming interface (API) of the configurable network service.

### Claim 14 (depends on 11)

The system of claim 11, wherein the configurable network service is configured to update the routing table based at least in part on additional configuration information received for the virtual computer network.

### Claim 15 (depends on 11)

The system of claim 11, wherein the configurable network service is configured to implement one or more virtual routers to perform the routing of communications in the virtual computer network.

### Claim 16 (depends on 11)

The system of claim 11, wherein to route communications in the virtual network, the configurable network service is configured to modify headers of IP packets prior to forwarding the IP packets.

### Claim 17 (depends on 11)

The system of claim 11, wherein to route communications in the virtual network, the configurable network service is configured to select, based on the routing table, shortest paths to destination nodes using a distance measure.

### Claim 18 (depends on 11)

The system of claim 11, wherein to route communications in the virtual network, the configurable network service is configured to:
select a next computing node in the virtual computer network to forward an IP packet;
determine a substrate address in the substrate network mapped to the next computing node; and
forward the IP packet over the substrate network using the substrate address.

### Claim 19

One or more non-transitory computer-readable media having stored instructions that when executed on or across one or more processors cause the one or more processors to implement at least a portion of a configurable network service and cause the configurable network service to:
receive configuration information for a virtual computer network hosted by the configurable network service on behalf of a client, the configuration information including:
(a) a Classless Inter-Domain Routing (CIDR) block of Internet Protocol (IP) addresses to use for the virtual computer network, and
(b) one or more switches in the virtual computer network;
configure the virtual computer network according to the configuration information, wherein the virtual computer network includes a plurality of computing nodes implemented as virtual machines host on physical hosts, the virtual computer network is implemented over a substrate network that includes the physical hosts, and the virtual computer network implements the one or more switches specified by the configuration information;
generate, based at least part on the configuration information, a routing table for the virtual computer network, wherein the routing table includes Equal Cost Multi-Path (ECMP) routing information for routing communications to or from the virtual computer network; and
route communications in the virtual computer network according to the routing table.

### Claim 20 (depends on 19)

The one or more non-transitory computer-readable media of claim 19, wherein the stored instructions when executed on or across the one or more processors cause the configurable network service to update the routing table based at least in part on additional configuration information received for the virtual computer network.
