Apparatus and methods for performing network address translation (NAT) in a fully connected mesh with NAT virtual interface (NVI)
First Claim
1. A method for performing network address translation on data, the method comprising:
- receiving a first data having a first source address and a first destination address, wherein the first data is sent by a first node in a first domain to a second node in a second domain, and wherein the first data is received into a first interface associated with the first domain and output from a second interface associated with the second domain, and wherein the first domain differs from the second domain, and wherein the first and second interfaces are virtual interfaces that are each configurably associated with one or more domains;
obtaining routing information for the first data;
if the first source address is a private address and if a binding between the first source address, the first interface, and a first public address is found, translating the first source address into the first public address specified by the found binding prior to sending the first data to the second domain destination;
if the first source address is a private address and if a binding between the first source address, the first interface, and a first public address is not found, translating the first source address into a selected public address and forming and storing a first binding between the first source address, the selected public address, and the first interface, wherein the translation is performed prior to sending the first data to the second domain destination;
if a destination binding between the first destination address, a first private address, and the second interface is found, translating the first destination address into the first private address specified by the destination binding, wherein the translation of the first destination address is performed prior to sending the first data out the second interface to the second node; and
sending the first data to the second node based on the routing information.
1 Assignment
0 Petitions
Accused Products
Abstract
Disclosed are methods and apparatus for performing network address translation (NAT) in a fully connected mesh with NAT virtual interface (NVI). In general terms, mechanisms (e.g., within a combination router/NAT device) are provided for translating network addresses of traffic going between two private domains or realms. These mechanisms may also be used to translate traffic going between a private and public domain. When a particular private address is translated into a public address, a binding is formed between the pre-translation address, the post-translation address, and the interface associated with the private or public address (e.g., an interface of the router/NAT device). Since bindings of different interfaces are tracked, a private address and its associated particular interface may be associated with a particular public address. Accordingly, the translation mechanisms of the present invention may be applied to two duplicate private addresses from two different private domains because the two identical private addresses are distinguished based on their different interfaces.
76 Citations
36 Claims
-
1. A method for performing network address translation on data, the method comprising:
-
receiving a first data having a first source address and a first destination address, wherein the first data is sent by a first node in a first domain to a second node in a second domain, and wherein the first data is received into a first interface associated with the first domain and output from a second interface associated with the second domain, and wherein the first domain differs from the second domain, and wherein the first and second interfaces are virtual interfaces that are each configurably associated with one or more domains; obtaining routing information for the first data; if the first source address is a private address and if a binding between the first source address, the first interface, and a first public address is found, translating the first source address into the first public address specified by the found binding prior to sending the first data to the second domain destination; if the first source address is a private address and if a binding between the first source address, the first interface, and a first public address is not found, translating the first source address into a selected public address and forming and storing a first binding between the first source address, the selected public address, and the first interface, wherein the translation is performed prior to sending the first data to the second domain destination; if a destination binding between the first destination address, a first private address, and the second interface is found, translating the first destination address into the first private address specified by the destination binding, wherein the translation of the first destination address is performed prior to sending the first data out the second interface to the second node; and sending the first data to the second node based on the routing information. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A network address translation (NAT) system operable to perform network address translation on data, the NAT system comprising:
-
one or more processors; one or more memory, wherein at least one of the processors and memory are adapted to; receive a first data having a first source address and a first destination address, wherein the first data is sent by a first node in a first domain to a second node in a second domain, and wherein the first data is received into a first interface associated with the first domain and output from a second interface associated with the second domain, and wherein the first domain differs from the second domain, and wherein the first and second interfaces are virtual interfaces that are each configurably associated with one or more domains; obtain routing information for the first data; if the first source address is a private address and if a binding between the first source address, the first interface, and a first public address is found, translate the first source address into the first public address specified by the found binding prior to sending the first data to the second domain destination; if the first source address is a private address and if a binding between the first source address, the first interface, and a first public address is not found, translate the first source address into a selected public address and form and store a first binding between the first source address, the selected public address, and the first interface, wherein the translation is performed prior to sending the first data to the second domain destination; if a destination binding between the first destination address, a first private address, and the second interface is found, translate the first destination address into the first private address specified by the destination binding, wherein the translation of the first destination address is performed prior to sending the first data out the second interface to the second node; and send the first data to the second node based on the routing information. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A computer program product for performing network address translation on data, the computer program product comprising:
- at least one machine-readable medium;
computer program instructions stored within the at least one machine-readable medium configured to cause a network address translation system to;receive a first data having a first source address and first destination address, wherein the first data is sent by a first node in a first domain to a second node in a second domain, and wherein the first data is received into a first interface associated with the first domain and output from a second interface associated with the second domain, and wherein the first domain differs from the second domain, and wherein the first and second interfaces are virtual interfaces that are each configurably associated with one or more domains; obtain routing information for the first data; if the first source address is a private address and if a binding between the first source address, the first interface, and a first public address is found, translate the first source address into the first public address specified by the found binding prior to sending the first data to the second domain destination; if the first source address is a private address and if a binding between the first source address, the first interface, and a first public address is not found, translate the first source address into a selected public address and form and store a first binding between the first source address, the selected public address, and the first interface, wherein the translation is performed prior to sending the first data to the second domain destination; if a destination binding between the first destination address, a first private address, and the second interface is found, translate the first destination address into the first private address specified by the destination binding, wherein the translation of the first destination address is performed prior to sending the first data out the second interface to the second node; and send the first data to the second node based on the routing information. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33, 34)
- at least one machine-readable medium;
-
35. An apparatus for performing network address translation on data, the apparatus comprising:
-
means for receiving a first data having a first source address and a first destination address, wherein the first data is sent by a first node in a first domain to a second node in a second domain, and wherein the first data is received into a first interface associated with the first domain and output from a second interface associated with the second domain, and wherein the first domain differs from the second domain, and wherein the first and second interfaces are virtual interfaces that are each configurably associated with one or more domains; means for obtaining routing information for the first data; means for, if the first source address is a private address and if a binding between the first source address, the first interface, and a first public address is found, translating the first source address into the first public address specified by the found binding prior to sending the first data to the second domain destination; means for translating the first source address into a selected public address and forming a first binding between the first source address, the selected public address, and the first interface if the first source address is a private address and if a binding between the first source address, the first interface, and a first public address is not found, wherein the translation is performed prior to sending the first data to the second domain destination; means for translating the first destination address into the first private address specified by the destination binding if a destination binding between the first destination address, a first private address, and the second interface is found, wherein the translation of the first destination address is performed prior to sending the first data out the second interface to the second node; and means for sending the first data to the second node based on the routing information. - View Dependent Claims (36)
-
Specification