Visão geral do NAT64 stateful
A tradução de endereços de rede (NAT) é um mecanismo para ocultar um conjunto de endereços de host em uma rede privada atrás de um pool de endereços públicos. O NAT64 é uma tecnologia relacionada que permite que clientes somente IPv6 entrem em contato com servidores IPv4 usando UDP, TCP ou ICMP da Unicast.
Um endereço IPv4 público é compartilhado entre vários clientes somente de IPv6. Para isso, o NAT64 traduz os pacotes IPv6 de entrada em IPv4 e vice-versa. Essa solução permite que os ISPs se movam para uma rede IPv6 ao mesmo tempo em que lidam com o esgotamento de endereçoS IPv4.
Quando o NAT64 stateful é usado em conjunto com o DNS64, normalmente não são necessárias alterações no cliente IPv6 ou no servidor IPv4. (O DNS64 não está coberto neste documento. Para obter mais informações, veja draft-ietf-behave-dns64-12, DNS64: extensões de DNS para tradução de endereços de rede de clientes IPv6 para servidores IPv4 e extensões de DNS RFC6147 para tradução de endereços de rede de clientes IPv6 para servidores IPv4.)
Problemas resolvidos pelo NAT64
O NAT64 resolve o problema dos clientes IPv6 iniciando conexões com servidores IPv4. Um dos pilares da arquitetura é que o NAT64 é facilmente implantável porque não requer alterações no cliente IPv6 ou no servidor IPv4.
O NAT64 hoje funciona muito parecido com uma tradução simétrica de porta de endereço de rede (NAPT44). No NAPT, tanto o endereço de origem original quanto a porta de origem são traduzidos. O endereço e a porta traduzidos são recolhidos no pool NAT correspondente.
Os pacotes IPv6 originados pelos clientes IPv6 são traduzidos de forma transparente para o IPv4 por um dispositivo NAT64. O dispositivo executa a tradução de cabeçalho de pacote de acordo com o algoritmo de tradução IP/ICMP, traduzindo os endereços IPv4 de hosts IPv4 de e para endereços IPv6 e atribuindo um prefixo à função NAT64 stateful para a tradução. Para funcionalidade básica, você implanta a função NAT64 stateful no dispositivo NAT64, além de alguns servidores de nome habilitados para DNS64 acessíveis aos hosts somente IPv6. (Para uma análise dos cenários de aplicativos, consulte draft-ietf-behave-v6v4-framework-10 e RFC 6144 Framework para IPv4/IPv6 Translation.)
Configuração da tradução de endereços
Para realizar a tradução IPv6-to-IPv4, a função NAT64 vincula um endereço e porta IPv6 (chamado de endereço de transporte IPv6) a um endereço e porta IPv4 (chamado de endereço de transporte IPv4). A tradução mapeia os endereços de transporte IPv6 para endereços de transporte IPv4 e vice-versa. Para criar esses mapeamentos, o roteador que executa o NAT64 tem dois pools de endereços: um pool de endereços IPv6 (para representar endereços IPv4 na rede IPv6) e um pool de endereços IPv4 (para representar endereços IPv6 na rede IPv4).
O pool de endereços IPv6 é um prefixo IPv6 atribuído ao próprio tradutor. Essa versão oferece suporte apenas IPv6 /96
a prefixos, tanto o conhecido prefixo (64:FF9B::/96
) quanto prefixos arbitrários /96
. Devido à abundância de espaço de endereço IPv6, o prefixo pode ser igual ou até maior do que todo o espaço de endereço IPv4. Isso permite que cada endereço IPv4 seja mapeado em um endereço IPv6 diferente, simplesmente condensando o prefixo com o endereço IPv4 sendo mapeado e um sufixo (ou seja, um endereço IPv4 X é mapeado no endereço IPv6 Prefix:X:Suffix).
O pool de endereços IPv4 é um conjunto de endereços IPv4, normalmente um pequeno prefixo atribuído pelo administrador local. Como o espaço de endereço IPv4 é um recurso escasso, o pool de endereços IPv4 é pequeno e normalmente não é suficiente para estabelecer mapeamentos permanentes de um a um com endereços IPv6. Assim, exceto pelos mapeamentos criados manualmente, os mapeamentos usando o pool de endereços IPv4 são criados e lançados dinamicamente. Além disso, devido à escassez de endereços IPv4, o mapeamento ocorre entre endereços de transporte e não endereços reais.
Para obter mais detalhes sobre os algoritmos de tradução, veja os seguintes documentos:
draft-ietf-behave-v6v4-xlate-23, algoritmo de tradução IP/ICMP.
RFC 6145, algoritmo de tradução IP/ICMP.
draft-ietf-behave-address-format-10, Endereçamento IPv6 de Tradutores IPv4/IPv6.
RFC 6052, Endereçamento IPv6 de Tradutores IPv4/IPv6.