Mudanças entre as edições de "464XLAT utilizando a ferramenta Jool"

De Wiki BPF
Ir para: navegação, pesquisa
Linha 1: Linha 1:
'''Índice'''
 
# Introdução
 
# Por que utilizar o 464XLAT ?
 
# Por que utilizar o Jool ?
 
# Topologia
 
# Instalação e Configuração do Ambiente
 
# Implementando o CLAT:
 
# Implementando o PLAT:
 
# Auditoria:
 
 
 
=== Introdução ===
 
=== Introdução ===
  

Edição das 17h25min de 30 de janeiro de 2020

Introdução

Este breve artigo tem como objetivo demonstrar o uso do mecanismo de transição 464XLAT através da ferramenta de código aberto Jool, desenvolvido pela equipe do NIC México. Serão abordados conceitos e comandos básicos que podem ser utilizados tanto para Provedores de Acesso a Internet, Universidades, Empresas, como também quem deseja montar um laboratórios de testes iniciais para conhecer a ferramenta e o funcionamento do 464XLAT em redes locais e sem fio.

Com a escassez cada vez mais nos números IP versão 4 (IPv4) e a necessidade de conexão de cada vez mais dispositivos na Internet, a adoção do IP versão 6 (IPv6) é a solução mais viável até o momento para que possamos crescer e expandir novos serviços de conexão a Internet. Recentemente a Diretoria do LACNIC fez um comunicado à comunidade para favorecer e acelerar a implementação do IPv6 nas redes da região.

Este estudo faz parte de um trabalho desenvolvido na Universidade Estadual de Campinas (UNICAMP) de forma a acelerar e adequar os sistemas computacionais a conviver com o protocolo IPv6 e oferecer uma Internet cada vez melhor a toda comunidade na promoção do ensino, pesquisa e extensão.

Por que utilizar o 464XLAT ?

Inicialmente este estudo começou como uma rede piloto utilizando o mecanismo de transição NAT64 em conjunto com o DNS64 em uma rede sem fio para atender os alunos, docentes e visitantes que chegam na Universidade, mais especificamente na Faculdade de Ciências Aplicadas (FCA), devido a não termos mais IPv4 públicos disponíveis para serem atribuídos. A ideia inicial foi distribuir somente endereços IPv6 para todos os dispositivos da rede sem fio da Unidade e assim concluído, atender os usuários famintos por conectividade. Esse estudo está disponível aqui para quem desejar obter mais detalhes.

Apesar do seu bom funcionamento e sua crescente utilização, durante o uso do NAT64 foi detectado alguns problemas durante sua convivência na rede:

  • Dispositivos legados de usuários e visitantes que não suportavam o protocolo IPv6.
  • Aplicações que ainda utilizavam IP literal.
  • Dificuldade no mapeamento de pastas e impressoras na rede.

Uma solução para esses problemas é um outro mecanismo de transição muito similar ao NAT64, chamado de 464XLAT RFC 6877, porém ao invés de ter somente um endereço IPv6 é entregue também um endereço IPv4 privado. Com isso podemos atender os dispositivos legados que não possuem suporte a IPv6. De maneira geral a diferença no mecanismo foi a adição de um tradutor o mais próximo ao cliente chamado de CLAT (customer-side translator) executando a função de tradução de IPv4 par IPv6 chamado de Stateless IP/ICMP Translation Algorithm (SIIT) RFC 7915. Existe um entendimento hoje de chamarem o CLAT como sendo NAT46.

Exemplo: Um dispositivo que tenha recebido somente um IPv4 privado e deseja acessar um endereço também em IPv4, sofrerá um primeira tradução de endereços no usuário final (CLAT) para que o endereço em IPv6 seja transmitido por uma infraestrutura IPv6 até chegar ao Provedor de Acesso a Internet, onde será realizada uma segunda tradução, agora para IPv4 novamente, chegando ao seu destino. Chamados essa segunda tradução de PLAT (provider-side translator) que nada mais é que um NAT64, já conhecido.

Por que utilizar o Jool ?

Escolhemos a ferramenta Jool por ser uma software de código aberto, que pode ser instalado em qualquer distribuição Linux moderno. Além do mais, é um ferramenta que possui uma comunidade ativa, atualizações e correção de problemas frequentes e principalmente é mantido pelo equipe de desenvolvedores do NIC México, altamente receptivos a qualquer dúvida ou sugestões. É uma ferramenta estável, simples, fácil de usar, possui uma boa performance e não exige muita CPU e Memória. Outro detalhe que chama atenção é com relação aos logs de tradução gerado com detalhes, importante hoje em dia durante uma análise de incidentes de segurança.

Topologia

A Figura 1 mostra a topologia de um cenário onde os clientes finais utilizam a rede sem fio para se conectar a Internet. Como ainda não temos um aplicativo cliente para fazer a função de CLAT e que possa ser instalado nos dispositivos, por exemplo, notebooks e smartphones (Windows, iOS e Android), inserimos a VM CLAT na VLAN do controlador da rede sem fio para que a tradução nos clientes sejam realizadas. A VM PLAT deve estar localizada na saída do tráfego IPv6 para a Internet no Provedor. A conexão entre o CLAT e PLAT é exclusivamente utilizando IPv6 e no caso de Provedores de Acesso estão localizados distantes um do outro. Neste cenário CLAT e PLAT estão no mesmo lugar físico no Data Center, podendo neste caso, estar localizado em um mesmo host até. Por questões didáticas utilizaremos cada tradutor em VM distintas.

Enquanto em um cenário utilizando IPv6-only e NAT64 o uso do DNS64 é fundamental para o funcionamento, já no 464XLAT é opcional. Neste tutorial não estaremos configurando e utilizando o DNS64. Até então não encontrei informações ou estudos se a ausência do DNS64 ou o seu uso causaria grandes problemas de performance durante a navegação na Internet.

Instalação e Configuração do Ambiente

Não abordaremos aqui as configurações dos IP nas interfaces de rede e roteamento. Devemos estar ciente que a topologia sugerida e seus IPs precisam estar configurados para o uso da ferramenta Jool.

Alguns outros ajustes necessários em cada VM são:

  • Ajustes do smp_affinity que podem ser consultada em /proc/interrupts para um melhor uso da CPU com a interrupção do driver de rede Ethernet. Parece uma coisa boba mas faz muita diferença.
  • Habilitar o ip forwarding no Kernel
sysctl -w net.ipv4.conf.all.forwarding=1 
sysctl -w net.ipv6.conf.all.forwarding=1
  • Desabilitando Offload nas interfaces de rede
ethtool --offload interface lro off 
ethtool --offload interface gro off
  • Ajustes para melhorar a performance na rede:
kern.maxfiles=25600 
kern.maxfilesperproc=16384 
net.inet.tcp.sendspace=65536 
net.inet.tcp.recvspace=65536 
net.core.netdev_max_backlog = 65536

Implementando o CLAT

Implementando o PLAT

Auditoria

Conclusões

Referências