# US 10,374,950 B2 · Routing traffic between networks governed by different versions of the internet protocol

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

- Number: US 10,374,950 B2
- Document ID: US10374950B2
- Status: Granted
- Kind: B2
- Application number: 15/053,011
- Filed: 2016-02-25
- Published: 2017-08-31
- Granted: 2019-08-06
- Earliest claimed: 2016-02-25
- Assignees: Red Hat, Inc.
- Applicants: Red Hat, Inc.
- Inventors: Phil Sutter
- Web page: https://patentgrep.com/patent/US10374950B2

## CPC

- H04L 45/741: Routing in networks with a plurality of addressing schemes, e.g. with both IPv4 and IPv6
- H04L 61/251: between different IP versions
- H04L 61/4511: using domain name system [DNS]
- H04L 2101/659: Internet protocol version 6 [IPv6] addresses
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Systems and methods for routing traffic between networks governed by different Internet Protocol (IP) versions. An example method may comprise: receiving a network packet having an original source address defined in a first address space and an original destination address defined in the first address space, wherein the first address space is associated with a first Open Systems Interconnection (OSI) network layer protocol; identifying, using a network layer address mapping transformation, a new destination address associated with the original destination address, wherein the new destination address is defined in a second address space associated with a second OSI network layer protocol; substituting the original destination address of the network packet with the new destination address; selecting, from a pool of available network layer addresses defined in the second address space, a new source address; substituting the original source address of the network packet with the new source address; and causing the network packet to be transmitted to a destination host identified by the new destination address.

## Claims

### Claim 1

A method, comprising:
receiving, by a processor executing a kernel space network layer address translation module, a network packet having an original source address defined in a first address space and an original destination address defined in the first address space, wherein the first address space is associated with a first Open Systems Interconnection (OSI) network layer protocol;
identifying, using a network layer address mapping transformation, a substitute destination address associated with the original destination address, wherein the substitute destination address is defined in a second address space associated with a second OSI network layer protocol, and wherein the substitute destination address comprises a concatenation of a pre-defined prefix, the original destination address, and a pre-defined suffix;
substituting the original destination address of the network packet with the substitute destination address;
selecting, from a pool of available network layer addresses defined in the second address space, a substitute source address;
associating, by a record of a memory data structure, the original source address and the substitute source address;
substituting the original source address of the network packet with the substitute source address;
causing the network packet to be transmitted to a destination host identified by the substitute destination address;
receiving a domain name system (DNS) request specifying a DNS name associated with the destination host;
transmitting a DNS response specifying the substitute destination address; and
responsive to detecting a Transmission Control Protocol (TCP) event associated with the substitute source address, purging the record from the memory data structure.

### Claim 2 (depends on 1)

The method of claim 1, wherein the first OSI network layer protocol is provided by Internet Protocol version 4 (IPv4).

### Claim 3 (depends on 1)

The method of claim 1, wherein the second OSI network layer protocol is provided by Internet Protocol version 6 (IPv6).

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
receiving, via a graphical user interface (GUI) of a user space module, a parameter of the network address mapping transformation.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
receiving, via an application programming interface (API) of a user space module, a parameter of the network address mapping transformation.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
receiving a response packet having a source address matching the substitute destination address and further having a destination address matching the substitute source address;
substituting, in the response packet, the source address with the original destination address;
substituting, in the response packet, the destination address with the original source address; and
causing the network packet to be transmitted to a source host identified by the original source address.

### Claim 7

A system, comprising:
a memory; and
a processor, coupled to the memory, the processor to:
receive, by a kernel space network layer address translation module, a network packet having an original source address defined in a first address space and an original destination address defined in the first address space, wherein the first address space is associated with a first Open Systems Interconnection (OSI) network layer protocol;
identify, using a network layer address mapping transformation, a substitute destination address associated with the original destination address, wherein the substitute destination address is defined in a second address space associated with a second OSI network layer protocol, and wherein the substitute destination address comprises a concatenation of a pre-defined prefix, the original destination address, and a pre-defined suffix;
substitute the original destination address of the network packet with the substitute destination address;
select, from a pool of available network layer addresses defined in the second address space, a substitute source address;
associate, by a record of a memory data structure, the original source address and the substitute source address;
substitute the original source address of the network packet with the substitute source address;
cause the network packet to be transmitted to a destination host identified by the substitute destination address;
receive a domain name system (DNS) request specifying a DNS name associated with the destination host;
transmit a DNS response specifying the substitute destination address; and
responsive to detecting a Transmission Control Protocol (TCP) event associated with the substitute source address, purge the record from the memory data structure.

### Claim 8 (depends on 7)

The system of claim 7, wherein the first OSI network layer protocol is provided by Internet Protocol version 4 (IPv4).

### Claim 9 (depends on 7)

The system of claim 7, wherein the second OSI network layer protocol is provided by Internet Protocol version 6 (IPv6).

### Claim 10 (depends on 7)

The system of claim 7, wherein the processor is further to: receive, via a graphical user interface (GUI) of a user space module, a parameter of the network address mapping transformation.

### Claim 11 (depends on 7)

The system of claim 7, wherein the processor is further to: receive, via an application programming interface (API) of a user space module, a parameter of the network address mapping transformation.

### Claim 12 (depends on 7)

The system of claim 7, wherein the processor is further to:
receive a response packet having a source address matching the substitute destination address and further having a destination address matching the substitute source address;
substitute, in the response packet, the source address with the original destination address;
substitute, in the response packet, the destination address with the original source address; and
cause the network packet to be transmitted to a source host identified by the original source address.

### Claim 13

A non-transitory computer-readable storage medium having thereon executable instructions that, when executed by a processor, cause the processor to:
receive, by a kernel space network layer address translation module, a network packet having an original source address defined in a first address space and an original destination address defined in the first address space, wherein the first address space is associated with a first Open Systems Interconnection (OSI) network layer protocol;
identify, using a network layer address mapping transformation, a substitute destination address associated with the original destination address, wherein the substitute destination address is defined in a second address space associated with a second OSI network layer protocol, and wherein the substitute destination address comprises a concatenation of a pre-defined prefix, the original destination address, and a pre-defined suffix;
substitute the original destination address of the network packet with the substitute destination address;
substitute the original source address of the network packet with a substitute source address;
associate, by a record of a memory data structure, the original source address and the substitute source address;
cause the network packet to be transmitted to a destination host identified by the substitute destination address;
receive a domain name system (DNS) request specifying a DNS name associated with the destination host;
transmit a DNS response specifying the substitute destination address; and
responsive to detecting a Transmission Control Protocol (TCP) event associated with the substitute source address, purge the record from the memory data structure.

### Claim 14 (depends on 13)

The non-transitory computer-readable storage medium of claim 13, wherein the first OSI network layer protocol is provided by Internet Protocol version 6 (IPv6).

### Claim 15 (depends on 14)

The non-transitory computer-readable storage medium of claim 14, wherein the second OSI network layer protocol is provided by Internet Protocol version 4 (IPv4).

### Claim 16 (depends on 14)

The non-transitory computer-readable storage medium of claim 14, further comprising executable instructions to cause the processor to:
receive a response packet having a source address matching the substitute destination address and further having a destination address matching the substitute source address;
substitute, in the response packet, the source address with the original destination address;
substitute, in the response packet, the destination address with the original source address; and
cause the network packet to be transmitted to a source host identified by the original source address.
