IP Library › Granted Patent US 12,003,380
Granted Patent B2
US 12,003,380 · App. 17/663,289 · Granted Jun 4, 2024

Providing virtual networking device functionality for managed computer networks

Inventors: Eric Jason Brandwine (Haymarket, VA); Kevin Christopher Miller (Herndon, VA); Andrew J. Doane (Vienna, VA)
Assignee: Amazon Technologies, Inc.
H04L41/12G06F9/45558H04L41/0816H04L45/02H04L45/586H04L45/64H04L67/34G06F2009/45595H04L41/5096
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 12,003,380
App. No.
17/663,289
Granted
Jun 4, 2024
Kind
B2
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 (48)

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.

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

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

4. 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.

5. 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.

6. 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.

7. 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.

8. 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.

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

10. 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.

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.

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

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

14. 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.

15. 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.

16. 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.

17. 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.

18. 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.

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.

20. 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.

Continuity (5)
Continuation 16798070 · Feb 21, 2020
Continuation 15996371 · Jun 1, 2018
Continuation 14952519 · Nov 25, 2015
Continuation 12632678 · Dec 7, 2009
Related Publication 20220278903A1 · Sep 1, 2022