por
Jeff Tyson - traduzido por HowStuffWorks Brasil
O que o NAT faz?
O NAT é como uma recepcionista de um grande escritório. Digamos que você tenha instruído a recepcionista para não passar nenhuma ligação para você a menos que você peça. Durante o dia, você liga para um cliente e deixa uma mensagem pedindo que ele retorne sua ligação. Você avisa a recepcionista que está esperando este cliente ligar e que esta ligação ela pode transferir.
O cliente liga para o número principal do seu escritório, que é o único que ele tem. Quando o cliente fala para a recepcionista que quer falar com você, a recepcionista procura em uma lista o seu nome com o seu ramal. A recepcionista sabe que você está esperando esta ligação e, portanto, transfere a ligação para o seu ramal.
Desenvolvido pela Cisco, o NAT é usado por um dispositivo (firewall, roteador ou computador) que fica entre uma rede interna e o resto do mundo. O NAT tem muitos formatos e pode trabalhar de várias formas:
- NAT estático - mapeamento de um endereço IP privativo (da rede interna) para um endereço IP válido (público) em uma base um-para-um. É útil principalmente quando um dispositivo precisa estar acessível de fora da rede.
 No NAT estático, o computador com o endereço IP 192.168.32.10 sempre será traduzido para 213.18.123.110
|
- NAT dinâmico - mapeia um endereço IP privativo para um endereço IP público dentro de um grupo de endereços IP públicos.
 No NAT dinâmico, o computador com endereço IP 192.168.32.10 será traduzido para o primeiro endereço disponível na faixa de 213.18.123.100 até 213.18.123.150
|
- Overloading (sobrecarga) - um tipo de NAT dinâmico que mapeia múltiplos endereços IP privativos para um único endereço IP público, usando portas diferentes. Também é conhecido como PAT (tradução de endereço de porta, do inglês Port Address Translation), NAT de endereço único, ou NAT multiplexado por portas.
 No overloading, cada computador na rede interna é traduzido para o mesmo endereço IP (213.18.123.100), mas com uma porta diferente
|
- Overlapping (sobreposição) - quando os endereços IP usados na sua rede interna são endereços IP usados em outra rede, o roteador deve manter uma tabela destes endereços para que consiga interceptá-los e trocá-los por endereços IP públicos únicos. Vale salientar que o roteador NAT deve traduzir os endereços "privativos" para endereços públicos, assim como traduzir os endereços "públicos" para endereços que sejam únicos dentro da rede. Isto pode ser feito através do NAT estático ou usando DNS com NAT dinâmico.
 A faixa de IPs privativos (237.16.32.xx) é a mesma cadastrada em outra rede. Portanto, o roteador traduz os endereços para evitar conflitos com outra rede. Também vai traduzir os endereços IP públicos globais de volta para endereços IP locais quando informações forem enviadas para a rede interna.
|
A rede interna é geralmente uma LAN (do inglês Local Área Network, ou rede local), também chamada de stub domain (ou domínio stub). Um domínio stub é uma LAN que usa endereços IP internamente. A maior parte do tráfego de rede neste tipo de domínio é local, e portanto não sai da rede interna. O stub domain pode ter endereços IP privativos e públicos. É claro que qualquer computador que esteja usando um endereço IP privativo precisará do NAT para se comunicar com o resto do mundo.
O NAT pode ser configurado de várias maneiras. No exemplo abaixo, o roteador NAT está configurado para traduzir endereços IP privativos, da rede interna, para endereços IP públicos. Isto acontece sempre que um dispositivo interno com um endereço privativo precisa se comunicar com a rede pública (externa).
- Um provedor de internet (ISP) designa uma faixa de endereços IP para a sua empresa. Este bloco contém endereços IP públicos e exclusivos, e são chamados de endereços "globais internos". Endereços IP privativos são divididos em dois grupos. Um deles é um grupo pequeno (endereços "locais externos") que vão ser usados pelos roteadores NAT. O outro, um grupo bem maior, conhecido por endereços "locais interno", será usado na rede interna. Os endereços locais externos local são usados para traduzir os endereços IP exclusivos, conhecidos como endereços "globais externos", de dispositivos na rede pública.
 Endereços IP têm diferentes designações, dependendo do local onde estão ( rede privativa ou rede pública - internet) e se o tráfego for de entrada ou de saída
|
- A maioria dos computadores da rede interna comunica-se usando os endereços "locais internos".
- Alguns computadores da rede interna comunicam-se muito fora da rede. Estes computadores têm endereços "globais internos", o que significa que não precisam de tradução.
- Quando um computador na rede interna com um endereço "locais internas" quer se comunicar fora da rede, o pacote vai para um dos roteadores NAT.
- O roteador NAT confere a tabela de roteamento para ver se há uma entrada para o endereço de destino. Se houver, o roteador NAT traduz o pacote e cria uma entrada para ele na tabela de tradução de endereços. Se o endereço de destino não estiver na tabela de roteamento, o pacote é descartado.
- Usando um endereço "global interno", o roteador envia o pacote para o seu destino.
- Um computador na rede pública envia um pacote para a rede privativa. O endereço de origem no pacote é um endereço "global externo", enquanto que o endereço de destino é um endereço "global interno".
- O roteador NAT examina a tabela de tradução de endereços e determina que o endereço de destino esteja ali, mapeado a um computador na rede interna.
- O roteador NAT traduz o endereço "global interna" do pacote para um endereço "local interno", e o envia para o computador de destino.
O overloading utiliza uma característica da pilha do protocolo TCP/IP, chamada multiplexação, que permite que um computador mantenha várias conexões simultâneas com um computador (ou computadores) remoto, usando portas TCP ou UDP diferentes. O pacote IP tem um cabeçalho que contém as seguintes informações:
- endereço de origem - o endereço IP do computador de origem, como por exemplo 201.3.83.132
- porta de origem - o número da porta TCP ou UDP designada pelo computador de origem para o pacote, como porta 1080
- endereço de destino - o endereço IP do computador que vai receber o pacote, como 145.51.18.223
- porta de destino - o número da porta TCP ou UDP que o computador de origem pede para o computador de destino abrir, como porta 3021
Os endereços especificam as duas máquinas em cada ponta, enquanto os números de porta garantem que a conexão entre os dois computadores possua um identificador único. A combinação destes quatro números define uma conexão TCP/IP única. Cada número de porta usa 16 bits, o que significa que existem 65.536 (216) valores possíveis. Na verdade, como cada fabricante mapeia as portas de um jeito diferente, existem cerca de 4 mil portas disponíveis.