Method and apparatus for extending network address translation for unsupported protocols
First Claim
1. A method comprising:
- receiving a request from a client at a network address translator (NAT) that defines for a protocol not directly supported by the NAT a generalized port number (GPN) associated with that unsupported protocol and its location in each packet, the location comprising an indication of a bit position within a packet of where the GPN begins and a length of the GPN;
creating an entry in a translation table of the NAT that defines for that protocol an association between a client'"'"'s private IP address and GPN, a NAT'"'"'s assigned global IP address and GPN, and a foreign IP address, said entry being used for translating in outgoing packets received by the NAT from the client using that protocol and having the foreign IP address as their destination, the client'"'"'s private source IP address and GPN to the NAT'"'"'s global IP address and GPN, respectively, and for translating in incoming packets sent from the foreign IP address using that protocol to the NAT'"'"'s global destination IP address and GPN, the NAT'"'"'s global destination IP address and GPN to the client'"'"'s private destination IP address and GPN, respectively.
2 Assignments
0 Petitions
Accused Products
Abstract
Clients that are connected on a private network and which are assigned a private IP address that is not routable on the Internet can connect to the Internet through a router/server that includes a network address translator (NAT). For outgoing packets, the NAT translates the client'"'"'s private source IP address and generalized port number (GPN) to the NAT'"'"'s global IP address and GPN. For incoming packets sent to the NAT'"'"'s global IP address and GPN, the NAT translates the global destination IP address and GPN to the client'"'"'s private IP address and GPN. For protocols which cannot be directly supported by the NAT, such as those in the IPSec security protocol suite, the NAT is extended by creating in the NAT'"'"'s translation table an entry that associates, for a specific unsupported protocol, a client'"'"'s private IP address and GPN, the NAT'"'"'s global IP address and GPN, and a foreign address on the Internet, that is valid until a specified or default expiration time. Outgoing packets from the client to that foreign address and incoming packets from that foreign address to the NAT'"'"'s global IP address and GPN are translated according to the entry until the entry expires. In associations with these translations to outgoing and incoming packets, the client implements any Application Layer Gateway (ALG) that would otherwise be implemented at the NAT. Further, at the client, outgoing packets are modified before being transmitted so as to pre-compensate for the effects of the translations. Incoming packets at the client from the NAT are similarly modified so as to post-compensate for the effects of the translations. For the IPSec protocol, these modification include adjusting the checksum in the TCP or UDP header to account for IP address and TCP or UDP port number translations.
180 Citations
27 Claims
-
1. A method comprising:
-
receiving a request from a client at a network address translator (NAT) that defines for a protocol not directly supported by the NAT a generalized port number (GPN) associated with that unsupported protocol and its location in each packet, the location comprising an indication of a bit position within a packet of where the GPN begins and a length of the GPN;
creating an entry in a translation table of the NAT that defines for that protocol an association between a client'"'"'s private IP address and GPN, a NAT'"'"'s assigned global IP address and GPN, and a foreign IP address, said entry being used for translating in outgoing packets received by the NAT from the client using that protocol and having the foreign IP address as their destination, the client'"'"'s private source IP address and GPN to the NAT'"'"'s global IP address and GPN, respectively, and for translating in incoming packets sent from the foreign IP address using that protocol to the NAT'"'"'s global destination IP address and GPN, the NAT'"'"'s global destination IP address and GPN to the client'"'"'s private destination IP address and GPN, respectively. - View Dependent Claims (4, 5, 6, 7, 8, 9)
-
-
2. A method comprising:
-
receiving a request from a client at a network address translator (NAT) that defines for a protocol not directly supported by the NAT a generalized port number (GPN) associated with that unsupported protocol and its location in each packet, the location comprising an indication of a bit position within a packet of where the GPN begins and a length of the GPN;
creating an entry in a translation table of the NAT that defines for that protocol an association between a client'"'"'s private IP address and GPN, NAT'"'"'s assigned global IP address and GPN, and a foreign IP address; and
in outgoing packets received by the NAT from the client using that protocol and having the foreign IP address as their destination, translating in accordance with the entry, the client'"'"'s private source IP address and GPN to the NAT'"'"'s global IP address and GPN, respectively.
-
-
3. A method comprising:
-
receiving a request from a client at a network address translator (NAT) that defines for a protocol not directly supported by the NAT a generalized port number (GPN) associated with that unsupported protocol and its location in each packet, the location comprising an indication of a bit position within a packet of where the GPN begins and a length of the GPN;
creating an entry in a translation table of the NAT that defines for that protocol an association between a client'"'"'s private IP address and GPN, a NAT'"'"'s assigned global IP address and GPN, and a foreign IP address; and
in incoming packets received by the NAT and sent from the foreign IP address using that protocol to the NAT'"'"'s global destination IP address and GPN, translating in accordance with the entry, the NAT'"'"'s global destination IP address and GPN to the client'"'"'s private destination IP address and GPN, respectively.
-
-
10. A network address translator (NAT) comprising:
-
means for receiving a request from a client that defines for a protocol not directly supported by the NAT a generalized port number (GPN) associated with that unsupported protocol and its location in each packet, the location comprising an indication of a bit position within a packet of where the GPN begins and a length of the GPN;
memory means for storing a translation table;
means for creating an entry in the translation table that defines for that protocol an association between a client'"'"'s private IP address and GPN, a NAT'"'"'s assigned global IP address and GPN, and a foreign IP address, said entry being used for translating in outgoing packets received by the NAT from the client using that protocol and having the foreign IP address as their destination, the client'"'"'s private source IP address and GPN to the NAT'"'"'s global IP address and GPN, respectively, and for translating in incoming packets sent from the foreign IP address using that protocol to the NAT'"'"'s global destination IP address and GPN, the NAT'"'"'s global destination IP address and GPN to the client'"'"'s private destination IP address and GPN, respectively. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
-
11. A network address translator (NAT) comprising:
-
means for receiving a request from a client at a network address translator (NAT) that defines for a protocol not directly supported by the NAT a generalized port number (GPN) associated with that unsupported protocol and its location in each received packet, the location comprising an indication of a bit position within a packet of where the GPN begins and a length of the GPN;
memory means for storing a translation table;
means for creating an entry in the translation table that defines for that protocol an association between a client'"'"'s private IP address and GPN, NAT'"'"'s assigned global IP address and GPN, and a foreign IP address; and
means for, in outgoing packets received by the NAT from the client using that protocol and having the foreign IP address as their destination, translating in accordance with the entry, the client'"'"'s private source IP address and GPN to the NAT'"'"'s global IP address and GPN, respectively.
-
-
12. A network address translator (NAT) comprising:
-
means for receiving a request from a client that defines for a protocol not directly supported by the NAT a generalized port number (GPN) associated with that unsupported protocol and its location in each packet, the location comprising an indication of a bit position within a packet of where the GPN begins and a length of the GPN;
memory means for storing a translation table;
means for creating an entry in the translation table that defines for that protocol an association between a client'"'"'s private IP address and GPN, a NAT'"'"'s assigned global IP address and GPN, and a foreign IP address; and
means for, in incoming packets received by the NAT and sent from the foreign IP address using that protocol to the NAT'"'"'s global destination IP address and GPN, translating in accordance with the entry, the NAT'"'"'s global destination IP address and GPN to the client'"'"'s private destination IP address and GPN, respectively.
-
-
19. A computer readable media tangibly embodying a program of instructions executable by a computer to perform a method at a network address translator (NAT), the method comprising:
-
receiving a request from a client that defines for a protocol not directly supported by the NAT a generalized port number (GPN) associated with that unsupported protocol and its location in each packet, the location comprising an indication of a bit position within a packet of where the GPN begins and a length of the GPN;
creating an entry in a translation table of the NAT that defines for that protocol an association between a client'"'"'s private IP address and GPN, a NAT'"'"'s assigned global IP address and GPN, and a foreign IP address, said entry being used for translating in outgoing packets received by the NAT from the client using that protocol and having the foreign IP address as their destination, the client'"'"'s private source IP address and GPN to the NAT'"'"'s global IP address and GPN, respectively, and for translating in incoming packets sent from the foreign IP address using that protocol to the NAT'"'"'s global destination IP address and GPN, the NAT'"'"'s global destination IP address and GPN to the client'"'"'s private destination IP address and GPN, respectively. - View Dependent Claims (22, 23, 24, 25, 26, 27)
-
-
20. A computer readable media tangibly embodying a program of instructions executable by a computer to perform a method at a network address translator (NAT), the method comprising:
-
receiving a request from a client that defines for a protocol not directly supported by the NAT a generalized port number (GPN) associated with that unsupported protocol and its location in each packet, the location comprising an indication of a bit position within a packet of where the GPN begins and a length of the GPN;
creating an entry in a translation table of the NAT that defines for that protocol an association between a client'"'"'s private IP address and GPN, NAT'"'"'s assigned global IP address and GPN, and a foreign IP address; and
in outgoing packets received by the NAT from the client using that protocol and having the foreign IP address as their destination, translating in accordance with the entry, the client'"'"'s private source IP address and GPN to the NAT'"'"'s global IP address and GPN, respectively.
-
-
21. A computer readable media tangibly embodying a program of instructions executable by a computer to perform a method at a network address translator (NAT), the method comprising:
-
receiving a request from a client that defines for a protocol not directly supported by the NAT a generalized port number (GPN) associated with that unsupported protocol and its location in each packet, the location comprising an offset of the GPN within each packet and a length of the GPN;
creating an entry in a translation table of the NAT that defines for that protocol an association between a client'"'"'s private IP address and GPN, a NAT'"'"'s assigned global IP address and GPN, and a foreign IP address; and
in incoming packets received by the NAT and sent from the foreign IP address using that protocol to the NAT'"'"'s global destination IP address and GPN, translating in accordance with the entry, the NAT'"'"'s global destination IP address and GPN to the client'"'"'s private destination IP address and GPN, respectively.
-
Specification