NAT, NAT Reverso e DMZ - Blog da Winco
NAT, NAT Reverso e DMZ
* Por Mariano Sumrell
Todo computador conectado à internet tem um endereço, chamado endereço IP, formado por 32 bits e representado por 4 números decimais de 0 a 255 separados por pontos, como por exemplo, 192.168.0.1.
Com 32 bits poderíamos ter mais de 4 bilhões de endereços, mas devido à forma como esses endereços são agrupados em classes, na prática temos um pouco menos, em torno de 3 bilhões de endereços IP disponíveis. No entanto, a quantidade de computadores com acesso à internet supera em muito esse número. Para resolver o problema da escassez de endereços IP desde o início da década de 90 começou-se a utilizar o NAT (Network Address Translation). O NAT foi proposto como uma solução de curto prazo mas já tem quase 20 anos.
A solução de longo prazo para o problema é a versão 6 do protocolo IP que usa 128 bits para formar um endereço. No entanto, a migração de toda a infraestrutura da internet, atualmente quase toda na versão 4, é um processo muito complexo e vai levar ainda algum tempo para se concretizar.
Antes de entendermos o NAT, precisamos de uma visão do endereçamento e da comunicação cliente-servidor
Endereçamento e comunicação cliente-servidor
Além de cada computador ter um endereço IP, os processos de um computador se associam a uma porta, que nada mais é do que um número de 16 bits. Assim podemos ter vários processos, como por exemplo, um servidor WWW, um servidor FTP e um servidor de e-mail, no mesmo computador e cada um vai ter a sua própria porta. Baseado na porta, as mensagens são encaminhadas pelo sistema operacional ao processo correto.
Os clientes (navegadores, programas de e-mail e outros) também precisam de uma porta para se identificar. Mas, ao contrário dos servidores que precisam de uma porta pré-definida e conhecida para serem alcançados, os clientes podem requisitar ao sistema operacional uma porta qualquer. O cabeçalho da mensagem IP com a requisição de um cliente a um servidor, inclui o endereço IP e a porta de origem, ou seja, o endereço do processo que fez a requisição. Essa informação é utilizada pelo servidor para enviar a resposta.
A grande maioria dos computadores conectados à internet atua apenas como cliente da rede: são usados para navegar, ver e-mails e baixar arquivos. E uma parcela significativa destes faz parte de uma rede ligada à internet através de um gateway (roteadores e/ou firewalls).
A ideia é que os computadores da rede usem endereços reservados para redes privativas. Esses endereços podem ser usados apenas para a comunicação dentro de uma mesma organização e diferentes organizações podem usar os mesmos endereços, permitindo um reaproveitamento dos mesmos.
Quando um computador precisa se comunicar com a internet, o endereço privativo não pode ser utilizado, sendo necessária a utilização de um IP real. É aí que entra o NAT. O gateway, que possui um único IP real e a faz a função de NAT, ao rotear uma requisição da rede privativa para a internet, troca o endereço IP de origem da mensagem pelo endereço IP real e encaminha a mensagem. Ao receber a resposta do servidor ele coloca o endereço original no campo de IP de destino e encaminha a resposta ao computador que originou a requisição.
Dessa forma, com um único IP real é possível dar acesso à internet a diversos computadores, economizando endereços IP.
O NAT também tem a vantagem de facilitar o compartilhamento de uma conexão internet com muitos computadores em uma rede, facilitando a configuração do roteador e dos computadores da rede.
NAT reverso
Já entendemos como o funciona o NAT. Agora, imaginemos a seguinte situação: temos uma rede com um único endereço IP real que é atribuído ao gateway, os computadores da rede usam endereços de redes privativas, mas queremos que usuários externos acessem o servidor web da nossa rede.
Nesse caso, o gateway terá que fazer um NAT reverso, ou seja, ao receber uma requisição para a porta do servidor web, em geral 80 e 443, deve encaminhá-la para o servidor web. É um processo parecido com o do NAT, mas ao invés de alterar o endereço IP de origem, altera o endereço IP de destino e roteia a requisição para o servidor em questão. Ao receber a resposta, ele altera o endereço de origem para o IP real.
Para o NAT reverso funcionar é necessário configurar o gateway, informando, para cada porta que se deseja redirecionar para a rede interna, qual o IP privativo do computador que deve receber o pacote.
DMZ, de DeMilitarized Zone, é uma rede onde são colocados todos os servidores que tem acesso externo, isolando-os da rede interna de uma organização. O objetivo é proteger a rede interna no caso de algum servidor com acesso externo ser comprometido. A lógica por trás disso é que os computadores mais vulneráveis a ataques são exatamente os que estão abertos para acessos pela internet.
Alguns roteadores para uso residencial ou em pequenas redes definem DMZ como sendo o computador para o qual serão redirecionados todos os acesso ao endereço IP real.