IP Library › Granted Patent US 11,436,111
Granted Patent B2
US 11,436,111 · App. 16/592,613 · Granted Sep 6, 2022

Highly-available distributed network address translation (NAT) architecture with failover solutions

Inventors: Pierre Pfister (Chalons-en-Champagne, FR); Ian James Wells (San Jose, CA); Kyle Andrew Donald Mestery (Woodbury, MN); William Mark Townsley (San Francisco, CA); Yoann Desmouceaux (Paris, FR); Guillaume Ruty (Paris, FR); Aloys Augustin (Paris, FR)
Assignee: Cisco Technology, Inc.
G06F11/2033G06F9/45558H04L61/2503G06F2009/45595G06F2201/85H04L61/6009
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,436,111
App. No.
16/592,613
Filed
Oct 3, 2019
Granted
Sep 6, 2022
Kind
B2
Art Unit
2449
USPC
714/4.11
Abstract

This disclosure describes techniques for providing a distributed scalable architecture for Network Address Translation (NAT) systems with high availability and mitigations for flow breakage during failover events. The NAT servers may include functionality to serve as fast-path servers and/or slow-path servers. A fast-path server may include a NAT worker that includes a cache of NAT mappings to perform stateful network address translation and to forward packets with minimal latency. A slow-path server may include a mapping server that creates new NAT mappings, depreciates old ones, and answers NAT worker state requests. The NAT system may use virtual mapping servers (VMSs) running on primary physical servers with state duplicated VMSs on different physical failover servers. Additionally, the NAT servers may implement failover solutions for dynamically allocated routable address/port pairs assigned to new sessions by assigning new outbound address/port pairs when a session starts and broadcasting pairing information.

Claims (64)

1. A system comprising:

one or more processors; and

one or more non-transitory computer-readable media storing computer-executable instructions that, when executed by the one or more processors, cause the one or more processors to:

receive, from a mapping server, a flow table including a cache of network address translation (NAT) mapping, the flow table includes rules to direct IP traffic;

receive, from a host device, an internet protocol (IP) packet;

determine that a mapping information for the IP packet is not included in the cache of NAT mapping;

send, to the mapping server, a state request to determine the mapping information for the IP packet, wherein the sending the state request includes sending meta-data associated with the IP packet to the mapping server and caching the IP packet;

receive, from the mapping server, a state reply including the mapping information for the IP packet and an updated cache of NAT mapping; and

determine to forward the IP packet using the updated cache of NAT mapping.

2. The system of claim 1 , wherein the sending the state request includes sending the IP packet to the mapping server, and wherein the receiving the state reply does not include receiving the IP packet.

3. The system of claim 1 , wherein the sending the state request includes sending the IP packet to the mapping server, wherein the receiving the state reply includes receiving the IP packet.

4. A method comprising:

receiving, from a mapping server, a flow table including a cache of network address translation (NAT) mapping;

receiving, from a host device, an internet protocol (IP) packet;

determining that a mapping information for the IP packet could not be located based at least in part on the flow table;

sending, to the mapping server, a state request;

receiving, from the mapping server, a state reply;

determining, from a first NAT server on a distributed NAT, to initiate a NAT session based at least in part on the IP packet;

assigning an outbound address and port information to the NAT session; and

broadcasting, to a second NAT server on the distributed NAT, the outbound address and port information.

5. The method of claim 4 , wherein the determining that the mapping information for the IP packet could not be located further comprises:

determining a source address from the IP packet; and

performing hash algorithm on the source address.

6. The method of claim 4 , further comprising:

receiving, from an external device, a second IP packet;

determining a destination address and port from the second IP packet;

determining that the destination address and port is included in the cache of NAT mapping; and

determining to forward the second IP packet using the destination address and port.

7. The method of claim 4 , further comprising:

determining a server failure on the first NAT server; and

retrieving, from the second NAT server, the outbound address and port information.

8. The method of claim 4 , further comprising:

transmitting, to a central server on the distributed NAT, the IP packet to issue the outbound address and port information for NAT session.

9. The method of claim 8 , further comprising:

determining a server failure of the first NAT server; and

retrieving, from the central server, the outbound address and port information.

10. The method of claim 4 , further comprising:

broadcasting, to a plurality of NAT servers on the distributed NAT, the outbound address and port information.

11. The method of claim 4 , further comprising:

sending, to the mapping server, a second state request;

determine the mapping server has failed based at least in part on not receiving a second state reply within a threshold time; and

sending, to a controller server, a third state request based at least in part on determining the mapping server has failed.

12. One or more non-transitory computer readable media storing computer-executable instructions that, when executed, cause one or more processors to perform operations comprising:

receiving, from a mapping server, a flow table including a cache of network address translation (NAT) mapping;

receiving, from a host device, an internet protocol (IP) packet;

determining that a mapping information for the IP packet could not be located based at least in part on the flow table;

sending, to the mapping server, a state request;

receiving, from the mapping server, a state reply;

determining, from a first NAT server on a distributed NAT, to initiate a NAT session based at least in part on the IP packet; and

transmitting, to a central server on the distributed NAT, the IP packet to issue an outbound address and port information for NAT session.

13. The one or more non-transitory computer readable media of claim 12 , wherein the determining that the mapping information for the IP packet could not be located further comprises:

determining a source address from the IP packet; and

performing hash algorithm on the source address.

14. The one or more non-transitory computer readable media of claim 12 , the operations further comprising:

receiving, from an external device, a second IP packet;

determining a destination address and port from the second IP packet;

determining that the destination address and port is included in the cache of NAT mapping; and

determining to forward the second IP packet using the destination address and port.

15. The one or more non-transitory computer readable media of claim 12 , further comprising:

assigning the outbound address and port information to the NAT session; and

broadcasting, to a second NAT server on the distributed NAT, the outbound address and port information.

16. The one or more non-transitory computer readable media of claim 15 , further comprising:

determining a server failure on the first NAT server; and

retrieving, from the second NAT server, the outbound address and the port information.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 3, 2019
From: WELLS, IAN JAMES; MESTERY, KYLE ANDREW MCDONALD; PFISTER, PIERRE; TOWNSLEY, WILLIAM MARK; DESMOUCEAUX, YOANN; RUTY, GUILLAUME; AUGUSTIN, ALOYS
To: CISCO TECHNOLOGY, INC.
Reel/Frame 050622/0104 →
Continuity (1)
Related Publication 20210103507A1 · Apr 8, 2021