NAT dinâmico e overloading

O NAT dinâmico funciona assim:
  • uma rede interna foi configurada com endereços IP que não foram especificamente alocados para aquela empresa, pela IANA (Internet Assigned Numbers Authority - em inglês), a autoridade mundial que distribui endereços IP. Estes endereços devem ser considerados não roteáveis, já que não são únicos;

  • a empresa configura um roteador compatível com o NAT. O roteador tem uma faixa de endereços IP exclusivos fornecidos à empresa pela IANA;

  • um computador da rede interna tenta se conectar a um computador da rede externa, como, por exemplo, um servidor de Internet;

  • o roteador recebe o pacote do computador da rede interna;

  • o roteador salva o endereço IP não roteável do computador em uma tabela de tradução de endereços. O roteador substitui o endereço IP não roteável do computador de origem pelo primeiro endereço IP disponível na faixa de endereços IP exclusivos. A tabela de tradução agora tem um mapeamento do endereço IP não roteável do computador, correspondente a um dos endereços IP exclusivos;

  • quando um pacote volta do computador de destino, o roteador confere o endereço de destino no pacote. Ele então busca na tabela de tradução de endereços o computador da rede interna ao qual o pacote pertence. Ele muda o endereço de destino para um dos endereços salvos na tabela de tradução e envia o pacote para aquele computador. Se ele não encontrar um correspondente na tabela, descartará o pacote;

  • o computador recebe o pacote do roteador. O processo se repete enquanto o computador estiver se comunicando com o sistema externo;

O overloading funciona assim:

  • uma rede interna foi configurada com endereços IP não roteáveis que não foram especificamente alocados à empresa pela IANA;

  • a empresa configura um roteador compatível com o NAT. O roteador tem um endereço IP exclusivo fornecido à empresa pela IANA;

  • um computador da rede interna tenta se conectar a um computador da rede externa, como, por exemplo, um servidor de internet;

  • o roteador recebe o pacote do computador da rede interna;

  • o roteador salva o endereço IP não roteável e o número da porta do computador em uma tabela de tradução de endereços. O roteador substitui o endereço IP não roteável do computador de origem pelo endereço IP do roteador. O roteador substitui a porta de origem do computador que enviou o pacote pelo número da porta que o roteador salvou na tabela de tradução de endereços junto com outras informações de endereço do computador de origem. A tabela de tradução agora tem um mapeamento do endereço IP não roteável e da porta do computador, junto com o endereço IP do roteador;

  • quando um pacote volta do computador de destino, o roteador confere a porta. Ele então busca na tabela de tradução de endereços o computador da rede interna ao qual o pacote pertence. Ele muda o endereço e a porta de destino para um dos endereços salvos na tabela de tradução e envia o pacote para aquele computador;

  • o computador recebe o pacote do roteador. O processo se repete enquanto o computador estiver se comunicando com o sistema externo;

  • como o roteador NAT agora tem o endereço e a porta de origem do computador salvos na tabela de tradução de endereços, ele vai continuar usando o mesmo número de porta enquanto durar a conexão. Um relógio é zerado cada vez que o roteador acessar uma entrada da tabela. Se a entrada não for acessada novamente antes de o tempo expirar, ela é removida da tabela.

Veja nesta tabela como os computadores em uma rede interna seriam vistos por uma rede externa.

Computador
de origem
Endereço IP
do computador
de origem
Porta
do computador
de origem
Endereço IP
do roteador NAT
Número da porta
designado para
o roteador NAT
A
192.168.32.10
400
215.37.32.203
1
B
192.168.32.13
50
215.37.32.203
2
C
192.168.32.15
3750
215.37.32.203
3
D
192.168.32.18
206
215.37.32.203
4

Como você pode ver, o roteador NAT armazena o endereço IP e número de porta de cada computador na tabela de tradução de endereço. Ele então substitui o endereço IP pelo seu próprio endereço IP público e o número da porta correspondente ao local, na tabela, da entrada para o computador de origem do pacote. Portanto, qualquer rede externa vê o endereço IP do roteador NAT e o número de porta designado pelo roteador como informações do computador de origem em cada pacote.

Você pode ter ainda alguns computadores na rede interna que usam endereços IP dedicados. Você também pode criar uma lista de acesso de endereços IP que dizem ao roteador quais computadores na rede precisam do NAT. Todos os outros endereços vão passar sem tradução.

O número de traduções simultâneas que o roteador suporta é determinado principalmente pela quantidade de memória DRAM (Dynamic Random Access Memory, ou memória de acesso randômico dinâmico) que ele tem. Mas como uma entrada na tabela de tradução de endereços tem cerca de 160 bytes apenas, um roteador com 4MB de DRAM teoricamente poderia processar 26.214 traduções simultâneas, o que é suficiente para a maioria das aplicações.

A IANA separou faixas de endereços IP não roteáveis para uso em redes internas. Estes endereços são considerados privativos (para mais informações, confira RFC 1918: Alocação de endereços para redes internas - inglês). Nenhuma empresa ou agência pode reclamar a posse de endereços privativos ou usá-los em computadores públicos. Os roteadores descartam (ao invés de encaminharem) endereços privativos. Isto significa que um pacote de um computador com endereço privativo poderia chegar ao computador de destino, mas a resposta seria descartada pelo primeiro roteador ao qual o pacote chegasse.

Há uma faixa para cada uma das três classes de endereços IP usados para redes:

  • Faixa 1: classe A - 10.0.0.0 até 10.255.255.255
  • Faixa 2: classe B - 172.16.0.0 até 172.31.255.255
  • Faixa 3: classe C - 192.168.0.0 até 192.168.255.255
Apesar de cada faixa estar em uma classe diferente, você não precisa usar uma faixa específica para a sua rede interna. Porém, é recomendável usar, porque reduz bastante a chance de conflito de endereços IP.