# US 10,313,225 B1 · Scalable routing service

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

- Number: US 10,313,225 B1
- Document ID: US10313225B1
- Status: Granted
- Kind: B1
- Application number: 14/274,534
- Filed: 2014-05-09
- Granted: 2019-06-04
- Earliest claimed: 2014-05-09
- Assignees: Amazon Technologies, Inc.
- Applicants: Amazon Technologies, Inc.
- Inventors: Upendra Bhalchandra Shevade; Kyle Benjamin Schultheiss; Gregory Rustin Rogers
- Web page: https://patentgrep.com/patent/US10313225B1

## CPC

- H04L 41/0895: Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
- H04L 41/0806: for initial configuration or provisioning, e.g. plug-and-play
- H04L 41/40: using virtualisation of network functions or resources, e.g. SDN or NFV entities
- H04L 43/0811: by checking connectivity
- H04L 43/20: the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
- H04L 45/14: {Routing performance; Theoretical aspects}
- H04L 45/44: Distributed routing
- H04L 41/0631: using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
- H04L 43/08: Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L 47/125: by balancing the load, e.g. traffic engineering
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A message indicating a route to a network destination is received at a routing service from a particular routing device of a provider network. The message is formatted in accordance with a set of APIs implemented using a stateless protocol, and indicates a route to a particular network destination associated with a particular RIB stored at a persistent data store accessible from various nodes of the routing service. The RIB is modified accordingly. A routing service back-end node generates an entry of a forwarding information base (FIB) associated with the particular RIB. The FIB entry is transmitted to one or more routing devices including the particular routing device, and is used to forward data packets of one or more other services.

## Claims

### Claim 1

A system, comprising:
one or more computing devices configured to:
receive, at a routing service of a provider network from a particular routing device, a particular message formatted in accordance with a set of application programmatic interfaces (APIs) implemented using a stateless application-layer protocol at the routing service that generates and includes, as part of the stateless application layer protocol, application-layer message ordering information within a body of messages, wherein a body of the particular message includes a sequence number inserted by the particular routing device, the sequence number indicative of an ordering of the message relative to other messages comprising routing information sent by the particular routing device to the routing service, wherein the particular message indicates a route to a particular network destination at a customer data center, wherein the same routing service is configured to receive routing information from a plurality of routing devices, and wherein the routing service provides a central source and destination of routing information for the plurality of routing devices in the provider network;
modify, in accordance with the particular message received in accordance with the set of APIs using the stateless application-layer protocol, a routing information base (RIB) stored at a persistent data store for the routing service that is accessible from a plurality of nodes of the routing service, wherein the RIB stored at the persistent data store comprises routing entries of endpoints of a virtual private network (VPN) connection established between a first set of resources and a second set of resources, wherein the first set of resources is located within the customer data center and the second set of resources is located within the provider network;
generate, at the routing service, based at least in part on a plurality of messages comprising routing information received from one or more routing devices, including the particular routing device, an entry of a forwarding information base (FIB) associated with the RIB;
transmit, from the routing service to one or more routing devices within the provider network including the particular routing device, an indication of the entry of the FIB, using another message formatted in accordance with the set of APIs; and
forward, from the particular routing device, one or more network packets using the entry of the FIB.

### Claim 2 (depends on 1)

The system as recited in claim 1 wherein the stateless application-layer protocol comprises one of: (a) HTTP or (b) HTTPS.

### Claim 3 (depends on 1)

The system as recited in claim 1, wherein the particular message is generated at the particular routing device in response to receiving a route advertisement formatted in accordance with a peer-to-peer session-oriented routing protocol.

### Claim 4 (depends on 1)

The system as recited in claim 1, wherein the one or more computing devices are further configured to:
transmit, from the routing service to the particular routing device via a particular API of the set of APIs, an indication of a particular route to a first destination within the provider network, wherein the particular routing device is configured to transmit an advertisement indicating the particular route to a router outside the provider network, wherein the advertisement is formatted in accordance with a peer-to-peer session-oriented routing protocol.

### Claim 5

A method, comprising:
performing, by one or more computing devices:
receiving, at a routing service from a particular routing device of the provider network, a message formatted in accordance with a set of application programmatic interfaces (APIs) implemented using a stateless application-layer protocol that includes, as part of the stateless application layer protocol, application-layer message ordering information within a body of messages, wherein the message includes a sequence number within a body portion of the message, the sequence number indicative of an ordering of the message relative to other messages comprising routing information sent by the particular routing device to the routing service, wherein the message indicates a route to a particular network destination, wherein the same routing service is configured to receive routing information from a plurality of routing devices, and wherein the routing service provides a central source and destination of routing information for the plurality of routing devices in the provider network;
modifying, in accordance with the message, a particular routing information base (RIB) stored at a persistent data store for the routing service that is accessible from a plurality of nodes of the routing service;
generating, at the routing service, based at least in part on said modifying the particular RIB, an entry of a forwarding information base (FIB) associated with the particular RIB; and
transmitting, from the routing service to one or more routing devices within the provider network including the particular routing device, an indication of the entry of the FIB.

### Claim 6 (depends on 5)

The method as recited in claim 5, wherein the API is implemented using one of: (a) HTTP or (b) HTTPS.

### Claim 7 (depends on 5)

The method as recited in claim 5, further comprising performing, by the one or more computing devices:
including, by the particular routing device, the sequence number within the body portion of the message received at the routing service.

### Claim 8 (depends on 5)

The method as recited in claim 5, further comprising performing, by the one or more computing devices:
receiving, by the particular routing device, a route advertisement formatted in accordance with a peer-to-peer session-oriented routing protocol; and
transmitting, from the particular routing device, the message to the routing service in response to receiving the route advertisement.

### Claim 9 (depends on 8)

The method as recited in claim 8, wherein the route advertisement is received from a customer data center.

### Claim 10 (depends on 8)

The method as recited in claim 8, wherein the route advertisement is received from a router co-location facility that houses a dedicated physical link between a customer network and the provider network.

### Claim 11 (depends on 5)

The method as recited in claim 5, wherein the routing service comprises a plurality of nodes including a first node at which the message from the particular routing device was received, further comprising performing, by the one or more computing devices:
determining, based at least in part on an analysis performed by a health monitoring service of the provider network, that the first node is in an unhealthy state; and
configuring a different node of the plurality of nodes to receive subsequent messages from the particular routing device.

### Claim 12 (depends on 5)

The method as recited in claim 5, wherein the routing service comprises a plurality of nodes including a first node at which the message from the particular routing device was received, further comprising performing, by the one or more computing devices:
receiving, at a load balancer configured for the routing service, the message from the particular routing device; and
transmitting the message from the load balancer to the first node in accordance with a load balancing policy established for the routing service.

### Claim 13 (depends on 5)

The method as recited in claim 5, further comprising performing, by the one or more computing devices:
transmitting, from the routing service to the particular routing device via a particular API of the set of APIs, an indication of a particular route to a first destination within the provider network;
transmitting, from the particular routing device to a router outside the provider network, an advertisement indicating the particular route, wherein the advertisement is formatted in accordance with a peer-to-peer session-oriented routing protocol.

### Claim 14 (depends on 5)

The method as recited in claim 5, wherein the particular routing device comprises a protocol processing engine of a virtual private gateway configured to enable virtual private network (VPN) access to the provider network from a customer data center.

### Claim 15

A non-transitory computer-accessible storage medium storing program instructions that when executed on one or more processors implements a node of a routing service of a provider network, wherein the node is configured to:
receive, from a particular routing device of the provider network, a message formatted in accordance with a set of application programmatic interfaces (APIs) implemented using a stateless application-layer protocol that includes, as part of the stateless application layer protocol, application-layer message ordering information within the body of messages, wherein a body of the message includes a sequence number within a body portion of the received message, the sequence number indicative of an ordering of the message relative to other messages comprising routing information sent by the particular routing device to the routing service, wherein the set of APIs is defined by the routing service for use within the provider network, wherein the message indicates a route to a particular network destination associated with a particular RIB (routing information base) stored at a persistent data store for the routing service that is accessible by the routing service, wherein the same routing service is configured to receive routing information from a plurality of routing devices, and wherein the routing service provides a central source and destination of routing information for the plurality of routing devices in the provider network;
modify, in accordance with the message, the particular RIB;
generate, based at least in part on said modifying the particular RIB, an entry of a forwarding information base (FIB) associated with the particular RIB; and
transmit, to one or more routing devices within the provider network including the particular routing device, a representation of the entry of the FIB.

### Claim 16 (depends on 15)

The non-transitory computer-accessible storage medium as recited in claim 15, wherein the message is transmitted using one of: (a) HTTP, (b) HTTPS or (c) SSH (secure shell).

### Claim 17 (depends on 15)

The non-transitory computer-accessible storage medium as recited in claim 15, wherein to generate the entry of the FIB, the node is further configured to:
utilize the sequence number included within the body portion of the message, to determine an ordering of the message relative to other messages comprising routing information sent by the particular routing device to the routing service.

### Claim 18 (depends on 15)

The non-transitory computer-accessible storage medium as recited in claim 15, wherein the node is further configured to:
receive, from another routing device of the provider network, an indication of a particular route to a first destination within the provider network; and
transmit, to the particular routing device via a particular API of the set of APIs, an indication of the particular route.

### Claim 19 (depends on 15)

The non-transitory computer-accessible storage medium as recited in claim 15, wherein the particular routing device comprises a protocol processing engine of a virtual private gateway configured to enable virtual private network (VPN) access to the provider network from a customer data center.
