# US 7,411,967 B2 · Private network gateways interconnecting private networks via an access network

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 7,411,967 B2
- Document ID: US7411967B2
- Status: Granted
- Kind: B2
- Application number: 11/123,101
- Filed: 2005-05-06
- Published: 2006-11-09
- Granted: 2008-08-12
- Earliest claimed: 2005-05-06
- Assignees: Cisco Technology, Inc.
- Inventors: Pascal Thubert; Patrick Wetterwald; Vincent Jean Ribiere
- Web page: https://patentgrep.com/patent/US7411967B2

## CPC

- H04L 12/2898: {Subscriber equipments (DSL modems H04M11/062; cable modems H04L12/2801)}
- H04L 61/251: between different IP versions
- H04L 61/2532: {Clique of NAT servers}
- H04L 61/2535: {Multiple local networks, e.g. resolving potential IP address conflicts}
- H04L 69/16: Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L 69/167: Adaptation for transition between two IP versions, e.g. between IPv4 and IPv6 (translation of Internet protocol [IP] addresses H04L61/2503)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Gateways providing connectivity for respective private IPv4 networks to an IPv6 network establish communications between IPv4 nodes in the private network. Network address translation-protocol translation (NAT-PT) state entries are created by gateway pairs enabling translation of IPv4 packets between first and second IPv4 nodes in respective first and second IPv4 private networks into IPv6 packets for transmission via the IPv6 network. Each NAT-PT state entry specifies the IPv6 addresses for the first and second IPv4 nodes, and the IPv4 addresses used to identify the first and second IPv4 nodes in the corresponding private IPv4 network. Each gateway is configured for generating the IPv6 address for each local IPv4 node based on prepending its corresponding assigned private IPv4 address with a corresponding prescribed IPv6 prefix assigned to the gateway. Hence, gateways can dynamically establish communications between private networks without tunneling protocols, enabling deployment of latency-sensitive applications such as Voice over IP.

## Claims

### Claim 1

A method in a gateway coupled to a first private IPv4 network and an IPv6 network, the method including:
receiving by the gateway a first IPv4 packet from a first IPv4 node in the first private IPv4 network, the first IPv4 packet having a source address field specifying a first private IPv4 address having been dynamically assigned to the first IPv4 node, and a request for initiating a communication with a second IPv4 node identified in the request and outside the first private IPv4 network;
sending by the gateway the request into the IPv6 network for locating the second IPv4 node, including creating a first IPv6 address for the first IPv4 node based on prepending the first private IPv4 address with a prescribed IPv6 prefix assigned to the gateway;
obtaining by the gateway from the IPv6 network a response that specifies the first IPv6 address, and a second IPv6 address for reaching the second IPv4 node identified in the request via the IPv6 network;
creating by the gateway a network address translation-protocol translation (NAT-PT) state entry for enabling communication between the first IPv4 node and the second IPv4 node, the NAT-PT state entry specifying the first private IPv4 address for identifying the first IPv4 node in the first private IPv4 network, the first IPv6 address for identifying the first IPv4 node via the IPv6 network, the second IPv6 address for identifying the second IPv4 node via the IPv6 network, and a determined unique private IPv4 address for identifying the second IPv4 node within the first private IPv4 network; and
establishing communications by the gateway between the first IPv4 node and the second IPv4 node via the first private IPv4 network and the IPv6 network, based on translation of the first private IPv4 address and the unique private IPv4 address specified in a data packet received from the first IPv4 node, into the respective first IPv6 address and the second IPv6 address for transmission of the data packet to the second IPv4 node via the IPv6 network as an IPv6 packet;
wherein the sending includes sending the request to a prescribed locator resource in the IPv6 network, the method further including:
receiving by the gateway a registration request from the first IPv4 node for registration in the prescribed locator resource;
modifying by the gateway the registration request to identify the first IPv4 node based on the first IPv6 address; and
outputting by the gateway to the prescribed locator resource, via the IPv6 network, the registration request following the modifying, the registration request specifying a host name of the first IPv4 node and the first IPv6 address.

### Claim 2 (depends on 1)

The method of claim 1, further comprising the gateway dynamically assigning each IPv4 node in the first IPv4 network with a corresponding private IPv4 address, including the first IPv4 node having been dynamically assigned with the first private IPv4 address, based on random selection of each corresponding private IPv4 address from within a prescribed private address space by a Dynamic Host Configuration Protocol (DHCP) resource within the gateway.

### Claim 3 (depends on 2)

The method of claim 2, wherein:
the second IPv6 address specified in the response includes a second private IPv4 address used to identify the second IPv4 node within a second private IPv4 network reachable via the IPv6 network;
the creating includes selectively inserting the second private IPv4 address as the determined unique private IPv4 address, based on a determined absence of any conflict between the second private IPv4 address and the private IPv4 addresses having been assigned by the DHCP resource.

### Claim 4 (depends on 3)

The method of claim 3, wherein the creating further includes dynamically creating, by the DHCP resource, the determined unique private IPv4 address based on a determined conflict between the second private IPv4 address and one of the private IPv4 addresses having been assigned by the DHCP resource.

### Claim 5 (depends on 4)

The method of claim 4, wherein the establishing includes:
translating the first private IPv4 address and the unique private IPv4 address specified in an IP header of the data packet by a network address translation resource executed in the gateway; and
translating the first private IPv4 address and the unique private IPv4 address specified in a payload of the data packet by an application level gateway executed in the gateway.

### Claim 6 (depends on 1)

The method of claim 1, wherein the communications between the first IPv4 node and the second IPv4 node includes Voice over IP data packets.

### Claim 7 (depends on 1)

The method of claim 1, wherein the prescribed locator resource is a Session Initiation Protocol (SIP) redirect server, and the registration request is a SIP Register command.

### Claim 8

A network comprising:
an IPv6 network configured for routing IPv6 packets, the IPv6 network including a locator resource configured for identifying network nodes, having registered with the locator resource, by respective IPv6 addresses; and
a plurality of gateways configured for providing communications for respective private IPv4 networks to the IPv6 network, each gateway having a corresponding assigned IPv6 prefix and configured for dynamically assigning to each IPv4 node in the corresponding private IPv4 network a corresponding private IPv4 address within a prescribed IPv4 address domain;
each gateway comprising an address resource configured for determining the IPv6 address for a remote IPv4 node, located within a second one of the private IPv4 networks via a second one of the gateways, based on sending a query to the locator resource, the address resource including a network address translation-protocol translation (NAT-PT) resource configured for creating a NAT-PT state entry for enabling one of the IPv4 nodes in said each private IPv4 network to communicate with the remote IPv4 node via the IPv6 network, the NAT-PT resource adding within the NAT-PT state entry:
(a) the private IPv4 address assigned to the one IPv4 node in said each private IPv4 network,
(b) a generated IPv6 address having the corresponding assigned IPv6 address prefix prepended to the private IPv4 address assigned to the one IPv4 node and used for identification of the one IPv4 node via the IPv6 network,
(c) the IPv6 address for identifying the remote IPv4 node via the IPv6 network, and
(d) a determined unique private IPv4 address for identifying the remote IPv4 node within said each private IPv4 network;
wherein said each gateway and the second gateway are configured for establishing a communications between the one IPv4 node and the remote IPv4 node based on the second gateway creating a corresponding NAT-PT state entry specifying the IPv6 addresses of the one IPv4 node and the remote IPv4 node, and IPv4 addresses uniquely identifying the respective one IPv4 node and the remote IPv4 node within the second IPv4 private network.

### Claim 9 (depends on 8)

The network of claim 8, wherein each gateway further includes a Dynamic Host Configuration Protocol (DHCP) resource configured for dynamically assigning each said IPv4 node in the corresponding private IPv4 network with the corresponding private IPv4 address based on random selection thereof within the prescribed IPv4 address domain.

### Claim 10 (depends on 9)

The network of claim 9, wherein:
the IPv6 address of the remote IPv4 node includes the IPv6 prefix of the second gateway and the private IPv4 address having been assigned by the second gateway;
the NAT-PT resource in said each gateway is configured for selectively inserting the private IPv4 address having been assigned by the second gateway based on a determined absence of any conflict between the second private IPv4 address and the private IPv4 addresses having been assigned by the DHCP resource.

### Claim 11 (depends on 10)

The network of claim 10, wherein the DHCP resource is configured for dynamically creating the determined unique private IPv4 address based on a determined conflict between the private IPv4 address having been assigned by the second gateway and one of the private IPv4 addresses having been assigned by the DHCP resource.

### Claim 12 (depends on 11)

The network of claim 11, wherein in response to said each gateway receiving a data packet from the one IPv4 node and destined for the remote IPv4 node:
the NAT-PT resource is configured for translating, from with in an IP header of the data packet, the private IPv4 address assigned to the one IPv4 node and the determined unique private IPv4 address into the generated IPv6 address and the IPv6 address for the remote IPv4 node, respectively;
said each gateway further comprising an application level gateway configured for translating, from within a payload of the data packet, the private IPv4 address assigned to the one IPv4 node and the determined unique private IPv4 address into the generated IPv6 address and the IPv6 address for the remote IPv4 node, respectively.

### Claim 13 (depends on 12)

The method of claim 12, wherein the communications between the one IPv4 node and the remote IPv4 node via said each gateway and the second gateway includes Voice over IP data packets.

### Claim 14 (depends on 8)

The network of claim 8, wherein each gateway is configured for modifying a registration request from the one IPv4 node in the corresponding IPv4 network to identify the one IPv4 node based on the corresponding IPv6 address of the one IPv4 node, and outputting the registration request following modification to the prescribed locator resource via the IPv6 network, the registration request following modification specifying the host name of the one IPv4 node and the IPv6 address of the one IPv4 node.

### Claim 15 (depends on 14)

The network of claim 14, wherein the locator resource is a Session Initiation Protocol (SIP) redirect server, and the registration request is a SIP Register command.

### Claim 16

A gateway configured for providing communications for a first private IPv4 network to an IPv6 network, the gateway comprising:
an IPv4 interface configured for receiving a first IPv4 packet from a first IPv4 node in the private IPv4 network, the first IPv4 packet having a source address field specifying a first private IPv4 address having been dynamically assigned to the first IPv4 node, and a request for initiating a communication with a second IPv4 node identified in the request and outside the first private IPv4 network; and
an address resource configured for sending the request into the IPv6 network for locating the second IPv4 node, the address resource including a network address translation-protocol translation (NAT-PT) resource configured for creating a NAT-PT state entry for the first IPv4 node that specifies the first private IPv4 address and a first IPv6 address created for the first IPv4 node based on prepending the first private IPv4 address with a prescribed IPv6 prefix assigned to the gateway;
wherein the address resource is configured, in response to obtaining from the IPv6 network a response that specifies the first IPv6 address and a second IPv6 address for the second IPv4 node identified in the request, for adding to the NAT-PT state entry the second IPv6 address for identifying the second IPv4 node via the IPv6 network, and a determined unique private IPv4 address for identifying the second IPv4 node within the first private IPv4 network;
the address resource configured for establishing communications between the first IPv4 node and the second IPv4 node via the first private IPv4 network and the IPv6 network, based on translation of the first private IPv4 address and the unique private IPv4 address specified in a data packet received from the first IPv4 node, into the respective first IPv6 address and the second IPv6 address for transmission of the data packet to the second IPv4 node via the IPv6 network as an IPv6 packet;
wherein the address resource includes an address resolution resource configured for sending the request to a prescribed locator resource in the IPv6 network, wherein the address resource, in response to the IPv4 interface having received a registration request from the first IPv4 node for registration, is configured for modifying the registration request to identify the first IPv4 node based on the first IPv6 address, and outputting the registration request to the prescribed locator resource via the IPv6 network following modification of the registration request to specify the host name of the first IPv4 node and the first IPv6 address.

### Claim 17 (depends on 16)

The gateway of claim 16, wherein the address resource includes a Dynamic Host Configuration Protocol (DHCP) resource configured for dynamically assigning each IPv4 node in the first IPv4 network with a corresponding private IPv4 address, including the first private IPv4 address for the first IPv4 node, based on random selection of each corresponding private IPv4 address from within a prescribed private address space.

### Claim 18 (depends on 17)

The gateway of claim 17, wherein:
the second IPv6 address specified in the response includes a second private IPv4 address used to identify the second IPv4 node within a second private IPv4 network reachable via the IPv6 network;
the NAT-PT resource configured for selectively inserting the second private IPv4 address as the determined unique private IPv4 address, based on a determined absence of any conflict between the second private IPv4 address and the private IPv4 addresses having been assigned by the DHCP resource.

### Claim 19 (depends on 18)

The gateway of claim 18, wherein the DHCP resource is configured for dynamically creating the determined unique private IPv4 address based on a determined conflict between the second private IPv4 address and one of the private IPv4 addresses having been assigned by the DHCP resource.

### Claim 20 (depends on 19)

The gateway of claim 19, wherein the NAT-PT resource is configured for translating the first private IPv4 address and the unique private IPv4 address specified in an IP header of the data packet into the first IPv6 address and the second IPv6 address, respectively,
the address resource further including an application level gateway configured for translating the first private IPv4 address and the unique private IPv4 address specified in a payload of the data packet into the first IPv6 address and the second IPv6 address, respectively.

### Claim 21 (depends on 16)

The gateway of claim 16, wherein the communications between the first IPv4 node and the second IPv4 node includes Voice over IP data packets.

### Claim 22 (depends on 16)

The gateway of claim 16, wherein the prescribed locator resource is a Session Initiation Protocol (SIP) redirect server, and the registration request is a SIP Register command.

### Claim 23

A computer readable storage medium having stored thereon sequences of computer executable instructions for a gateway coupling a first private IPv4 network to an IPv6 network, the sequences of instructions including instructions for:
receiving by the gateway a first IPv4 packet from a first IPv4 node in the first private IPv4 network, the first IPv4 packet having a source address field specifying a first private IPv4 address having been dynamically assigned to the first IPv4 node, and a request for initiating a communication with a second IPv4 node identified in the request and outside the first private IPv4 network;
sending by the gateway the request into the IPv6 network for locating the second IPv4 node, including creating a first IPv6 address for the first IPv4 node based on prepending the first private IPv4 address with a prescribed IPv6 prefix assigned to the gateway;
obtaining by the gateway from the IPv6 network a response that specifies the first IPv6 address, and a second IPv6 address for reaching the second IPv4 node identified in the request via the IPv6 network;
creating by the gateway a network address translation-protocol translation (NAT-PT) state entry for enabling communication between the first IPv4 node and the second IPv4 node, the NAT-PT state entry specifying the first private IPv4 address for identifying the first IPv4 node in the first private IPv4 network, the first IPv6 address for identifying the first IPv4 node via the IPv6 network, the second IPv6 address for identifying the second IPv4 node via the IPv6 network, and a determined unique private IPv4 address for identifying the second IPv4 node within the first private IPv4 network; and
establishing communications by the gateway between the first IPv4 node and the second IPv4 node via the first private IPv4 network and the IPv6 network, based on translation of the first private IPv4 address and the unique private IPv4 address specified in a data packet received from the first IPv4 node, into the respective first IPv6 address and the second IPv6 address for transmission of the data packet to the second IPv4 node via the IPv6 network as an IPv6 packet;
wherein the sending includes sending the request to a prescribed locator resource in the IPv6 network, the medium further including instructions for:
receiving by the gateway a registration request from the first IPv4 node for registration in the prescribed locator resource;
modifying by the gateway the registration request to identify the first IPv4 node based on the first IPv6 address; and
outputting by the gateway to the prescribed locator resource, via the IPv6 network, the registration request following the modifying, the registration request specifying a host name of the first IPv4 node and the first IPv6 address.

### Claim 24 (depends on 23)

The storage medium of claim 23, further comprising instructions for the gateway dynamically assigning each IPv4 node in the first IPv4 network with a corresponding private IPv4 address, including the first IPv4 node having been dynamically assigned with the first private IPv4 address, based on random selection of each corresponding private IPv4 address from within a prescribed private address space by a Dynamic Host Configuration Protocol (DHCP) resource within the gateway.

### Claim 25 (depends on 24)

The storage medium of claim 24, wherein:
the second IPv6 address specified in the response includes a second private IPv4 address used to identify the second IPv4 node within a second private IPv4 network reachable via the IPv6 network;
the creating includes selectively inserting the second private IPv4 address as the determined unique private IPv4 address, based on a determined absence of any conflict between the second private IPv4 address and the private IPv4 addresses having been assigned by the DHCP resource.

### Claim 26 (depends on 25)

The storage medium of claim 25, wherein the creating further includes dynamically creating, by the DHCP resource, the determined unique private IPv4 address based on a determined conflict between the second private IPv4 address and one of the private IPv4 addresses having been assigned by the DHCP resource.

### Claim 27 (depends on 23)

The storage medium of claim 23, wherein the communications between the first IPv4 node and the second IPv4 node includes Voice over IP data packets.

### Claim 28 (depends on 23)

The storage medium of claim 23, wherein the prescribed locator resource is a Session Initiation Protocol (SIP) redirect server, and the registration request is a SIP Register command.

### Claim 29

A gateway coupled to a first private IPv4 network and an IPv6 network, the gateway comprising:
means for receiving a first IPv4 packet from a first IPv4 node in the first private IPv4 network, the first IPv4 packet having a source address field specifying a first private IPv4 address having been dynamically assigned to the first IPv4 node, and a request for initiating a communication with a second IPv4 node identified in the request and outside the first private IPv4 network; and
means for sending the request into the IPv6 network for locating the second IPv4 node, including creating a first IPv6 address for the first IPv4 node based on prepending the first private IPv4 address with a prescribed IPv6 prefix assigned to the gateway;
the means for sending further configured for obtaining from the IPv6 network a response that specifies the first IPv6 address, and a second IPv6 address for reaching the second IPv4 node identified in the request via the IPv6 network;
the means for sending further configured for creating a network address translation-protocol translation (NAT-PT) state entry for enabling communication between the first IPv4 node and the second IPv4 node, the NAT-PT state entry specifying the first private IPv4 address for identifying the first IPv4 node in the first private IPv4 network, the first IPv6 address for identifying the first IPv4 node via the IPv6 network, the second IPv6 address for identifying the second IPv4 node via the IPv6 network, and a determined unique private IPv4 address for identifying the second IPv4 node within the first private IPv4 network;
the means for sending further configured for establishing communications between the first IPv4 node and the second IPv4 node via the first private IPv4 network and the IPv6 network, based on translation of the first private IPv4 address and the unique private IPv4 address specified in a data packet received from the first IPv4 node, into the respective first IPv6 address and the second IPv6 address for transmission of the data packet to the second IPv4 node via the IPv6 network as an IPv6 packet;
wherein the means for sending further is configured for:
sending the request to a prescribed locator resource in the IPv6 network,
in response to the means for receiving having received a registration request from the first IPv4 node for registration in the prescribed locator resource, modifying the registration request to identify the first IPv4 node based on the first IPv6 address; and
outputting to the prescribed locator resource, via the IPv6 network, the registration request specifying a host name of the first IPv4 node and the first IPv6 address.

### Claim 30 (depends on 29)

The gateway of claim 29, wherein the means for sending further is configured for dynamically assigning each IPv4 node in the first IPv4 network with a corresponding private IPv4 address, including the first IPv4 node having been dynamically assigned with the first private IPv4 address, based on random selection of each corresponding private IPv4 address from within a prescribed private address space.

### Claim 31 (depends on 30)

The gateway of claim 30, wherein:
the second IPv6 address specified in the response includes a second private IPv4 address used to identify the second IPv4 node within a second private IPv4 network reachable via the IPv6 network;
the means for sending further configured for selectively inserting the second private IPv4 address as the determined unique private IPv4 address, based on a determined absence of any conflict between the second private IPv4 address and the private IPv4 addresses having been assigned to each of the IPv4 nodes in the first IPv4 network.

### Claim 32 (depends on 31)

The gateway of claim 31, wherein the means for sending further configured for dynamically creating the determined unique private IPv4 address based on a determined conflict between the second private IPv4 address and one of the private IPv4 addresses having been assigned to each of the IPv4 nodes in the first IPv4 network.

### Claim 33 (depends on 29)

The gateway of claim 29, wherein the communications between the first IPv4 node and the second IPv4 node includes Voice over IP data packets.

### Claim 34 (depends on 29)

The gateway of claim 29, wherein the prescribed locator resource is a Session Initiation Protocol (SIP) redirect server, and the registration request is a SIP Register command.
