[ História ]  [ O que é ]  [ Como funciona ]  [ Download ]  [ Contato ]

Document made with Nvu
SourceForge.net Logo

A idéia de se acessar um host localizado dentro de uma rede local a partir da Internet não é nova. Desde o surgimento do NAT, muitas técnicas têm sido desenvolvidas e colocadas em prática para possibilitar o acesso citado anteriormente. A mais comum é o redirecionamento no gateway baseado em portas TCP/UDP. O fato é que esta é uma solução tecnicamente ruim, pois é baseada em camada de transporte, sendo que o problema do acesso é atribuído a camada de rede. Porém, o problema do redirecionamento não é apenas conceitual, pois este cria uma limitação, de não se poder, por exemplo, ter dois servidores web atendendo na porta 80 simultaneamente em dois computadores da rede privada. O redirecionamento é único, e neste caso, uma porta redirecionada é uma porta perdida.

Este foi o ponto de partida para pensar em desenvolver uma solução definitiva para o problema do NAT (veja na seção 'O que é').

O trabalho completo durou cerca de um ano, sendo 6 meses de pesquisa sobre os protocolos de rede e o estudo da implementação da pilha TCP/IP no kernel Linux, e mais 6 meses de implementação efetiva e testes.

O estudo começou com a análise do que já havia sido desenvolvido e por que ainda não havia uma solução definitiva. A resposta que obtive durante todo o tempo foi a de que o IPv4 (versão difundida do IP na Internet) seria em breve substituido por IPv6 (versão mais nova), o que não justificaria a implementação de um remendo para o NAT.

Não considerando esta resposta justificável, devido ao aniversário de 10 anos do IPv6 como sendo substituto do IPv4, resolvi implementar o presente projeto de qualquer forma, impulsionado pelo fato de apresentá-lo como trabalho de conclusão de minha graduação e por acreditar que o trabalho proposto não deveria ser considerado como um concorrente do IPv6.

Ao terminar a parte de estudo sobre TCP/IP, foi necessário projetar a nova solução. Provavelmente esta foi a parte que mais levou tempo, pois para se tornar algo realmente útil, não é aceitável que para que o projeto funcione seja necessário alterar toda a Internet, bem como os programas existentes. O grande desafio foi desenvolver um esquema no qual houvesse o menor número de modificações possíveis nos softwares já existentes.

Após bastantes tentativas e testes, um esquema de roteamento chamado RNAT foi projetado.
Este esquema foi dividido em 2 partes: o protocolo e o software, sendo o protocolo desenvolvido de forma genérica e apto a ser implementado em qualquer sistema operacional, e o software desenvolvido para plataforma GNU/Linux. GNU/Linux foi escolhido pelo fato de ser software livre e bastante difundido.

Como resultado final, o RNAT pode ser usado para acessar computadores que estão em outras redes de forma nativa. Para que isso seja possível, em vez de utilizar somente um IP, é necessario utilizar 2, relativos aos IP's do gateway da outra rede e ao IP privado do computador que se deseja acessar. Maiores informações podem ser obtidas na seção 'Como funciona'.