NAT: Network Address Translation

Todos os datagramas que saiam de uma rede local teem o mesmo NAT IP address, mas números de porta diferentes

Implementação

Datagramas enviados, é substituído IP origem e porta pelo NAT IP e a nova porta.

Registar na Tabela de Tradução NAT cada IP origem e porta e o par de traduções.

Datagramas recebidos, são substituídos o NAT IP e porta pelo IP origem e porta originais

Motivação

Redes locais usam só um IP visível ao exterior

Vantagens

  • Gama de IP necessários baixo: só um ou pouco servirão para todo os dispositivos

  • Dispositivos podem mudar de IP interno sem afetar o exterior e vice-versa

  • Os dispositivos na rede local não estão vulneráveis ao exterior

Pode existir mais que um IP público disponível para atribuição

O número da porta é expresso em 16 bits

Exemplo prático

  • Host: 10.0.0.1

  • Porta no host: 3345

  • Router (LAN side): 10.0.04

  • Router (WAN side): 138.76.29.7

Sequência de eventos:

  1. Host envia um datagrama para 128.119.40.186, 80

  2. O NAT Router muda o endereço origem de 10.0.0.1 para 138.76.29.7, 5001 e coloca na coluna WAN da NAT translation table esse endereço associado ao 10.0.0.1, 3345 na coluna LAN

  3. A resposta chega ao Router com destino de 138.76.29.7, 5001

  4. O Router procura na NAT Translation Table o endereço LAN correspondente e envia para ele a resposta

Problema

Um cliente quer ligar ao servidor 10.0.0.1, enfrenta dois problemas:

  1. O endereço 10.0.0.1 é local, não estando visível ao exterior

  2. O único endereço visível do exterior é o endereço do NAT: 128.76.29.7

1º Solução

Configurar de forma estática o NAT para reencaminhar qualquer conexão recebida por uma dada porta para o servidor

2º Solução

Universal Plug and Play Internet Gateway Device Protocol, permite host com NAT:

  • Aplicação no host com NAT pede um mapeamento entre um IP e porta público e um privado

  • A mesma aplicação publicita publicamente esse IP e porta públicos

3º Solução

Relaying

  • Conexão a um relay iniciada pelo host com NAT

  • Conexão a um relay iniciada pelo cliente

  • O relay vai fazer a transferência de pacotes entre as duas conexões

Last updated