[ Story ]  [ What is RNAT ]  [ How it works ]  [ Download ]  [ Contact ]

Document made with Nvu
SourceForge.net Logo

The idea of accessing a private LAN host from the Internet isn't new. Since NAT's creation, many techinques have been developed to allow this kind of communication. The most common nowadays is TCP/UDP port redirection on the LAN gateway. The fact is that's a bad solution, because it is based on transport layer (OSI Model), while the routing problem is related to the network layer. But, the problem isn't just conceptual, because it denies the communication to two hosts inside the private network on the same port. For example, it is not possible to have two web servers serving both on the port 80. In short terms, a redirected port is a lost port.

This was the main point to start to develop a solution to the NAT (See 'What is RNAT') problem.

The whole project development and research took about 1 year. 6 months researching about network protocols and TCP/IP implementation on Linux kernel, plus 6 months implementing and testing RNAT.

The research started analyzing the previously developed solutions, and why there is no final solution so far. The answer I got all the time was that IPv4 (most known version of IP on Internet) will soon be deprecated by IPv6 (newest version), what would not justify a NAT patch.

Not considering that a satisfatory answer, due to the IPv6 10th birthday as IPv4 successor, I started to develop the RNAT project, stimulated by the fact of presenting it as my graduation final project and to believe that RNAT wouldn't be faced as an IPv6 replacement.

As soon as the TCP/IP study was concluded, it was necessary to project the new solution. Probably it was the part of the project that took most of the time, because to turn it into a useful thing, it was necessary not to change all the Internet as we know today. The big deal was to develop a schema that required less software changes as possible.

After many tries and tests, a routing schema called RNAT was developed.
This schema was logically divided into two pieces: The protocol and The software, being the protocol developed generically to be able to be implemented in any Operating System, and the software developed to GNU/Linux OS. The GNU/Linux was chosen because it is a free software.

As final product, the RNAT can be used to access hosts located in another private network in a native way. For this to happen, the client will use two IP's, related to another host private address and its gateway public IP. More information in 'How it works' link.