Network ip projection and integration system, method, and product
AssigneenoBGP, Inc.
InventorsMichael W. Johnson, Benoit Menendez, Ryo Koyama, Jamie Ruderman, Steve Avery, Davin Oishi, Rob McDonald
Life of this patent
Estimating the term…
Abstract
A system, method, and computer program are provided for translating and routing internet protocol (IP) packets between an IP address on one network and an IP address on a different network. To this end, source network hosts are unaware that they are not communicating with a local host, as the foreign host is seamlessly integrated into the local network, appearing as if it were a local entity, thus projecting one IP address on a network to another IP address on a different network.
Claims20
A system for network IP projection, comprising:
- a proxy component executing on a first computing device connected to a first network, the proxy component comprising:
- a capture module configured to intercept packets on a network interface of the first computing device before the packets reach a host TCP/IP stack, the intercepted packets being addressed to a projected IP address associated with a remote target host on a second network;
- a network address translation (NAT) table configured to store mappings between local connection attributes on the first network and corresponding translated connection attributes;
- a translation module configured to translate the intercepted packets by replacing at least a source IP address and a source port with translated values from the NAT table and setting a mapping index in the translated packet;
- and
- a transport interface configured to transmit the translated packets over a transport connection to a router component;
- the router component executing on a second computing device, the router component comprising:
- a transport listener configured to accept incoming transport connections from proxy components and gateway components;
- a connection linking module configured to associate a transport connection from the proxy component with a transport connection from a gateway component based on a matching identifier, forming a bidirectional data path;
- and
- a forwarding module configured to forward data received on one linked transport connection to the other linked transport connection;
- a gateway component executing on a third computing device connected to the second network, the gateway component comprising:
- a receiving module configured to receive translated packets from the router component via a transport connection;
- an ephemeral port allocation module configured to allocate ephemeral ports on the second network for received translated packets;
- a reconstruction module configured to reconstruct received translated packets by replacing the translated values with the gateway component's local IP address as a source address and the allocated ephemeral port as a source port, and setting the destination address to the IP address of the remote target host;
- and
- an injection module configured to inject the reconstructed packets onto the second network for delivery to the remote target host;
- wherein the combination of the proxy component, the router component, and the gateway component causes the projected IP address to appear on the first network as a local network entity, such that hosts on the first network communicate with the projected IP address without any software installation, configuration change, or routing modification on the hosts, and the remote target host receives packets as though they originated from a local host on the second network.
A method for projecting a remote host onto a local network, comprising:
- at a proxy component on a first network, monitoring a network interface for ARP Request packets whose Target Protocol Address matches a projected IP address, and responding with an ARP Reply containing the proxy component's MAC address;
- at the proxy component, intercepting IP packets addressed to the projected IP address before the packets reach a host TCP/IP stack;
- translating the intercepted packets by performing network address translation using a NAT table, replacing at least a source IP address and a source port with translated values;
- transmitting the translated packets over a transport connection to a router component;
- at the router component, linking the transport connection from the proxy component with a transport connection from a gateway component based on a matching identifier, and forwarding the translated packets to the gateway component;
- at the gateway component on a second network, allocating an ephemeral port, reconstructing the translated packets with the gateway component's local IP address and the ephemeral port as source attributes and the remote target host's IP address as the destination, and injecting the reconstructed packets onto the second network;
- receiving response packets from the remote target host at the gateway component, translating the response packets, forwarding them through the router component to the proxy component, and injecting the response packets onto the first network with the projected IP address as the source;
- wherein hosts on the first network communicate with the projected IP address as a local network entity without any software installation, configuration change, or routing modification on the hosts.
A computer program product for network IP projection, the computer program product comprising one or more computer-readable storage media collectively having program instructions embodied therewith, the program instructions executable by one or more processors to cause the one or more processors to:
- execute a proxy component on a first computing device connected to a first network, the proxy component configured to respond to ARP Requests for a projected IP address with ARP Replies containing the first computing device's MAC address, intercept IP packets addressed to the projected IP address before a host TCP/IP stack, perform network address translation using a NAT table, and transmit translated packets over a transport connection;
- execute a router component on a second computing device, the router component configured to accept transport connections, link a transport connection from the proxy component with a transport connection from a gateway component based on a matching identifier, and forward data between the linked connections;
- execute the gateway component on a third computing device connected to a second network, the gateway component configured to receive translated packets, allocate ephemeral ports, reconstruct the translated packets with local addressing, and inject the reconstructed packets onto the second network for delivery to a remote target host;
- wherein the program instructions cause the projected IP address to appear on the first network as a local network entity, such that hosts on the first network communicate with the projected IP address without modification, and the remote target host receives packets as though they originated locally on the second network.
Dependencies are inferred from the claim text.