Port chunk allocation in network address translation
AssigneeCisco Technology, Inc.
InventorsPrakash Babu, Jed Kaplan, Christopher J. Skowronek, Janakiraman Senthilnathan, Arun Seshadri, Rajamathangi Subramanian
Life of this patent
Estimating the term…
Abstract
A system and method for providing network and port address translation is provided. A global IP address and a block (chunk) of ports are allocated for each mobile subscriber (MS) on first data connection. Subsequent data connections from the same MS are assigned the same IP address and a new port from this block. The mapping information is communicated, processed, and stored once for the complete block, instead of for every new data connection. This process reduces processing, communication, and storage requirements.
Claims19
An apparatus comprising:
- one or more processors configured to:
- in response to identifying a first data connection associated with a first user device:
- allocate a public Internet Protocol (IP) address for the first user device;
- allocate a first plurality of network address translation (NAT) ports of the apparatus for the first user device;
- associate the allocated public IP address and the first plurality of NAT ports with a private IP address allocated for the first user device;
- assign a first NAT port of the first plurality of NAT ports to the first data connection;
- and
- prior to assigning at least one of the plurality of NAT ports to a data connection, update a mapping indicating the association between the first plurality of NAT ports and the private IP address;
- identify a second data connection associated with the first user device;
- upon determining that the first plurality of NAT ports includes at least one NAT port that is not allocated to a data connection, assign a second NAT port of the first plurality of NAT ports to the second data connection;
- identify a third data connection associated with the first user device;
- and
- upon determining that the first plurality of NAT ports does not include any NAT ports that are not allocated to a data connection:
- allocate a second plurality of NAT ports to the first user device;
- associate the second plurality of NAT ports with the private IP address allocated for the first user device;
- assign a first NAT port of the second plurality of NAT ports to the third data connection;
- and
- update a mapping indicating the association between the second plurality of NAT ports and the private IP address, wherein at least one of the second plurality of NAT ports is not assigned to any data connection.
A method comprising:
- in response to identifying a first data connection associated with a first user device:
- allocating, by a gateway, a public Internet Protocol (IP) address for the first user device;
- allocating a first plurality of network address translation (NAT) ports on the gateway for the first user device;
- associating the allocated public IP address and the first plurality of NAT ports with a private IP address allocated for the first user device;
- assigning a first NAT port of the first plurality of NAT ports to the first data connection;
- and
- prior to assigning at least one of the plurality of NAT ports to a data connection, update a mapping indicating the association between the plurality of NAT ports and the private IP address;
- identifying a second data connection associated with the first user device;
- upon determining that the first plurality of NAT ports includes at least one NAT port that is not allocated to a data connection, assigning a second NAT port of the first plurality of NAT ports to the second data connection;
- identifying a third data connection associated with the first user device;
- and
- upon determining that the first plurality of NAT ports does not include any NAT ports that are not allocated to a data connection:
- allocating a second plurality of NAT ports to the first user device;
- associating the second plurality of NAT ports with the private IP address allocated for the first user device;
- assigning a first NAT port of the second plurality of NAT ports to the third data connection;
- and
- updating a mapping indicating the association between the second plurality of NAT ports and the private IP address, wherein at least one of the second plurality of NAT ports is not assigned to any data connection.
One or more tangible non-transitory computer readable media comprising logic that when executed is operable to:
- in response to identifying a first data connection associated with a first user device;
- allocate, on a gateway, a public Internet Protocol (IP) address for the first user device;
- allocate a first plurality of network address translation (NAT) ports of the gateway to the first user device;
- associate the allocated public IP address and the first plurality of NAT ports with a private IP address allocated for the first user device;
- assign a first NAT port of the first plurality of NAT ports to the first data connection;
- and
- prior to assigning at least one of the plurality of NAT ports to a data connection, update a mapping indicating the association between the first plurality of NAT ports and the private IP address;
- identify a second data connection associated with the first user device;
- upon determining that the first plurality of NAT ports includes at least one NAT port that is not allocated to a data connection, assign a second NAT port of the first plurality of NAT ports to the second data connections:
- identify a third data connection associated with the first user device;
- and
- upon determining that the first plurality of NAT ports does not include any NAT ports that are not allocated to a data connection;
- allocate a second plurality of NAT ports to the first user device;
- associate the second plurality of NAT ports with the private IP address allocated for the first user device;
- assign a first NAT port of the second plurality of NAT ports to the third data connection;
- and
- update a mapping indicating the association between the second plurality of NAT ports and the private IP address, wherein at least one of the second plurality of NAT ports is not assigned to any data connection.
Dependencies are inferred from the claim text.