IP Library Granted Patent US 11,652,736
Granted Patent B2
US 11,652,736 · App. 16/917,788 · Granted May 16, 2023

Transmitting network traffic to a pool of redundant network appliances

Inventors: Dheerendra Talur (Sammamish, WA); Milind Madhukar Kulkarni (Sammamish, WA); Bashuman Deb (Aldie, VA); Jose De Jesus Camacho Ruiz (Woodinville, WA)
Assignee: Amazon Technologies, Inc.
H04L45/20H04L12/4641H04L41/0627H04L43/0817H04L43/0823H04L45/42H04L45/54H04L45/586G06F2009/45595
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 11,652,736
App. No.
16/917,788
Granted
May 16, 2023
Kind
B2
Abstract

Systems and methods are provided to enable packets of network traffic to be hashed to available network gateway. Each packet can include a route table with a pool of network gateways as a next-hop of the packet. A network device may intercept the packet and hash the packet to a network gateway of the pool of network gateways. The network gateway can correspond to a stateful network router and the stateful network router can transmit the packet to a network appliance. The network device can monitor and perform health-checks on the network gateways, the stateful network routers, and the network appliances. The network device can remove components that are no longer healthy or available and can add components that subsequently become healthy.

Claims (83)

1. A system, comprising:

a first fleet of network appliances operating within a first availability zone of a cloud provider network;

a second fleet of network appliances operating within a second availability zone of the cloud provider network;

a first gateway operating within the first availability zone, the first gateway configured to route traffic to particular network appliances within the first fleet;

a second gateway operating within the second availability zone, the second gateway configured to route traffic to particular network appliances within the second fleet;

a virtual private environment of a cloud computing environment associated with a routing rule indicating that traffic exiting the virtual private environment is to be processed by a network appliance of the first fleet or the second fleet; and

a network device associated with the virtual private environment configured to:

maintain a routing table comprising a routing entry, the routing entry indicating that traffic exiting the virtual private environment is to be routed to a pool of gateways associated with the first fleet and the second fleet, the pool of gateways including the first gateway and the second gateway,

receive network traffic from the virtual private environment addressed to a destination,

based at least in part on the routing entry indicating that traffic exiting the virtual private environment is to be routed to the pool of gateways, determine that the network traffic is to be routed to a gateway selected from the pool of gateways,

select the gateway from the pool of gateways to which to route the network traffic, wherein the selected gateway is one of the first gateway or the second gateway, and

route the network traffic to the selected gateway, wherein the selected gateway is configured to transmit the network traffic to a network appliance of the corresponding one of the first fleet or the second fleet for processing prior to transmitting the network traffic to the destination.

2. The system of claim 1 , wherein the network device is further configured to:

receive subsequent network traffic from the virtual private environment addressed to a destination;

based at least in part on routing the network traffic to the selected gateway, determine that the subsequent network traffic should be routed to the selected gateway;

determine that the selected gateway is unavailable, wherein the selected gateway is the first gateway;

based at least in part on the routing entry indicating that traffic exiting the virtual private environment is to be routed to the pool of gateways, determine that the subsequent network traffic is to be routed to a gateway selected from the pool of gateways;

select the second gateway from the pool of gateways to which to route the subsequent network traffic, based at least in part on determining that the first gateway is unavailable; and

route the subsequent network traffic to the second gateway.

3. The system of claim 1 , wherein the network device is further configured to determine that a zonal outage has occurred, wherein the zonal outage indicates that one or more of a gateway, network appliance, or a fleet of network appliances is unavailable.

4. The system of claim 1 , wherein a number of fleets of network appliances are scalable.

5. A system, comprising:

a plurality of network appliances distributed among a plurality of fleets of network appliances, wherein each fleet of network appliances includes a respective subset of the plurality of network appliances and a respective gateway, wherein each fleet of network appliances operates within a respective availability zone of a cloud provider network, wherein the respective gateway is configured to route traffic to particular network appliances within the respective fleet of network appliances;

a plurality of virtual private environments of a cloud computing environment, wherein a virtual private environment of the plurality of virtual private environments is associated with a routing rule indicating that traffic exiting the virtual private environment is to be processed by a network appliance of a first fleet of network appliances; and

a network device associated with the cloud computing environment and configured to:

based at least in part on the routing rule, maintain a routing table comprising a routing entry, the routing entry indicating that traffic exiting the virtual private environment is to be routed to a pool of gateways associated with the plurality of fleets of network appliances,

receive network traffic from the virtual private environment addressed to a destination,

based at least in part on the routing entry indicating that traffic exiting the virtual private environment is to be routed to the pool of gateways, select a gateway from the pool of gateways to which to route the network traffic, and

route the network traffic to the selected gateway, wherein the selected gateway is configured to transmit the network traffic to a network appliance of the corresponding one of the plurality of fleets of network appliances for processing prior to transmitting the network traffic to the destination.

6. The system of claim 5 , wherein the network device is further configured to:

receive subsequent network traffic from the virtual private environment;

based at least in part on routing the network traffic to the selected gateway, determine that the subsequent network traffic should be routed to the selected gateway;

determine that the selected gateway is unavailable, wherein the selected gateway is a first gateway;

based at least in part on the routing entry indicating that traffic exiting the virtual private environment is to be routed to the pool of gateways, determine that the subsequent network traffic is to be routed to a gateway selected from the pool of gateways;

select a second gateway from the pool of gateways to which to route the subsequent network traffic, based at least in part on determining that the first gateway is unavailable; and

route the subsequent network traffic to the second gateway.

7. The system of claim 5 , wherein the network device is further configured to:

receive subsequent network traffic from the virtual private environment;

based at least in part on routing the network traffic to the selected gateway, determine that the subsequent network traffic should be routed to the selected gateway;

determine that the network appliance is unavailable;

based at least in part on the routing entry indicating that traffic exiting the virtual private environment is to be routed to the pool of gateways, determine that the subsequent network traffic is to be routed to a gateway selected from the pool of gateways;

select a second gateway from the pool of gateways to which to route the subsequent network traffic, based at least in part on determining that the network appliance is unavailable; and

route the subsequent network traffic to the second gateway, wherein the selected second gateway is configured to transmit the subsequent network traffic to a second network appliance of the plurality of network appliances.

8. The system of claim 5 , wherein a second virtual private environment of the plurality of virtual private environments is associated with a second routing rule indicating that network traffic exiting the second virtual private environment is to be processed by a network appliance of the plurality of fleets of network appliances, wherein the network device is further configured to:

based at least in part on the second routing rule, maintain a second routing table comprising a second routing entry, the second routing entry indicating that traffic exiting the second virtual private environment is to be routed to the pool of gateways associated with the plurality of fleets of network appliances;

receive network traffic from the second virtual private environment and addressed to a second destination;

based at least in part on the second routing entry indicating that traffic exiting the second virtual private environment is to be routed to the pool of gateways, determine that the network traffic from the second virtual private environment is to be routed to the selected gateway; and

route the network traffic from the second virtual private environment to the selected gateway, wherein the selected gateway is configured to transmit the network traffic from the second virtual private environment to a second network appliance of the corresponding one of the plurality of fleets of network appliances for processing prior to transmitting the network traffic to the second destination.

9. The system of claim 5 , wherein the network device is further configured to:

perform a health-check on one or more gateways of the pool of gateways;

determine that a second gateway is unavailable based on the health-check; and

remove the second gateway from the pool of gateways.

10. The system of claim 5 , wherein the network device is further configured to:

perform a health-check on a second gateway, wherein the second gateway is not included in the pool of gateways;

determine the second gateway is available based on the health-check; and

add the second gateway to the pool of gateways.

11. The system of claim 5 , wherein the network device is further configured to generate an updated route table based at least in part on selecting the gateway from the pool of gateways to which to route the network traffic, wherein the updated route table indicates that traffic exiting the virtual private environment is to be routed to the selected gateway.

12. The system of claim 5 , wherein determining that the network traffic is to be routed to the gateway selected from the pool of gateways is based at least in part on evenly distributing a plurality of network traffic to the pool of gateways.

13. The system of claim 5 , wherein a number of the plurality of fleets of network appliances are scalable.

14. The system of claim 5 , wherein the virtual private environment corresponds to a first security protocol and the network appliance corresponds to a second security protocol.

15. A computer-implemented method comprising:

receiving network traffic from a virtual private environment and addressed to a destination, the virtual private environment of a cloud computing environment associated with a routing rule indicating that traffic exiting the virtual private environment is to be processed by a network appliance of one of a plurality of fleets of network appliances, wherein a plurality of network appliances are distributed among the plurality of fleets of network appliances, wherein each fleet of network appliances corresponds to a particular availability zone and includes a respective subset of the plurality of network appliances and a respective gateway, wherein the respective gateway is configured to route traffic to particular network appliances within the respective fleet;

maintaining a routing table comprising a routing entry, the routing entry indicating that traffic exiting the virtual private environment is to be routed to a pool of gateways,

based at least in part on the routing entry indicating that traffic exiting the virtual private environment is to be routed to the pool of gateways, determining that the network traffic is to be routed to a gateway selected from the pool of gateways;

selecting the gateway from the pool of gateways to which to route the network traffic, and

routing the network traffic to the selected gateway.

16. The computer-implemented method of claim 15 further comprising:

receive subsequent network traffic from the virtual private environment addressed to the destination;

based at least in part on routing the network traffic to the selected gateway, determine that the subsequent network traffic should be routed to the selected gateway;

determine that the selected gateway is unavailable, wherein the selected gateway is a first gateway;

based at least in part on the routing entry indicating that traffic exiting the virtual private environment is to be routed to the pool of gateways, determine that the subsequent network traffic is to be routed to a gateway selected from the pool of gateways;

select a second gateway from the pool of gateways to which to route the subsequent network traffic, based at least in part on determining that the first gateway is unavailable; and

route the subsequent network traffic to the second gateway.

17. The computer-implemented method of claim 15 further comprising:

performing a health-check on one or more gateways of the pool of gateways;

determining that a second gateway is unavailable based on the health-check; and

removing the second gateway from the pool of gateways.

18. The computer-implemented method of claim 15 further comprising:

performing a health-check on a second gateway, wherein the second gateway is not included in the pool of gateways;

determining the second gateway is available based on the health-check; and

adding the second gateway to the pool of gateways.

19. The computer-implemented method of claim 15 , wherein determining that the network traffic is to be routed to the gateway selected from the pool of gateways is based at least in part on evenly distributing a plurality of network traffic to the pool of gateways.

20. The computer-implemented method of claim 15 , wherein the selected gateway is configured to transmit the network traffic to a network appliance of the corresponding one of the plurality of fleets of network appliances for processing prior to transmitting the network traffic to the destination, wherein the virtual private environment corresponds to a first security protocol and the network appliance corresponds to a second security protocol.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2022
From: TALUR, DHEERENDRA; KULKARNI, MILIND MADHUKAR; DEB, BASHUMAN; CAMACHO RUIZ, JOSE DE JESUS
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 060156/0320 →
Continuity (1)
Related Publication 20230045247A1 · Feb 9, 2023
Cited By (3)
US 12,463,907 US 12,506,688 US 12,526,232