IPv6 - Por onde começar
Introdução
Embora o protocolo IPv6 seja considerado por muitos como algo novo, ele é relativamente antigo e foi pensado para que a Internet pudesse continuar seu crescimento antes que esgotasse o protocolo legado, que conhecemos como IPv4. Infelizmente não conseguimos implantá-lo 100% antes do início do esgotamento do IPv4. Para termos uma ideia o IPv6 foi lançado mundialmente em 06/06/2012 e um ano depois, em 06/06/2013, o NIC.br nos apresentou a grande novidade através desta live.
No início não tínhamos conteúdos relevantes em IPv6, algo que nos fizesse se interessar por esse novo protocolo, que em primeira vista, parecia um tanto complicado devido a sua notação não ser em decimal mas sim em hexadecimal. Como bem sabemos a Internet não é um lugar mas a interconexão de milhares de lugares espalhados pelo mundo, de um lado nós seres humanos que desejamos consumir algum conteúdo, comprar algo, consultar, pesquisar, enfim, algo que a Internet consiga nos entregar e do outro lado aqueles que querem disponibilizar seus conteúdos, serviços, mostrar seus produtos, alcançar o seu futuro cliente esteja ele onde estiver no nosso globo terrestre. Percebam que temos 2 atores principais envolvidos: aquele que disponibiliza algo na Internet e aquele que consome algo pela Internet e ambos são importantes para que a Internet continue sendo atrativa.
Mas Internet evoluiu assim como qualquer tecnologia e além de nós seres humanos, passamos a compartilhar a Internet com as máquinas, a IoT (Internet das Coisas, em português). Isso nos levou ao extremo esgotamento do IPv4, porque cada dispositivo que se conecta à Internet necessita de um IP único, para que ele possa se comunicar fim a fim com outros dispositivos pela Internet.
Agora mais do que nunca, embora muito atrasado, o mundo precisa entender que IPv6 não é algo opcional, é uma necessidade para que a Internet continue crescendo e trazendo novas tecnologias para as nossas vidas. Para tanto escrevi este artigo com o intuito de ajudar e orientar aqueles que estão iniciando o IPv6 em suas operações.
Motivação
Sempre me considerei interessado por novas tecnologias, ainda mais uma que viria para expandir a Internet. Foi então que em 25/09/2013 eu e minha equipe iniciamos a implantação do IPv6 no AS53135 (Nettel Telecomunicações Ltda), ainda era esse o nome na época. Em 2013 era complicadíssimo encontrar uma operadora de trânsito IP fornecendo uma sessão BGP IPv6, assim como era difícil encontrar CPEs que suportassem o IPv6 corretamente. Mesmo com toda a dificuldade, entendíamos a importância que isso teria em alguns anos na frente e sabíamos que aos poucos os grandes conteúdos viriam, fortalecendo ainda mais a mudança.
Algumas Técnicas de Transição para o IPv6 mais conhecidas
NAT444
Nessa técnica temos o CPE na residência ou empresa, nele é feito o primeiro NAT (Network Address Translation), endereçando toda a rede interna do cliente e traduzindo para IP recebido na WAN da CPE, que hoje já seria um IP privado do range 100.64.0.0/10. O pacote com IP do range 100.64.0.0/10 que vem do cliente, chega no Provedor de Internet e passa por um novo NAT e dessa vez traduzindo para um IP público antes de seguir para a Internet. Essa técnica economiza o recurso IPv4 mas também destrói toda comunicação fim a fim entre o cliente e o conteúdo acessado.
Abaixo um desenho bem simples de CGNAT (Carrier Grade NAT) determinístico onde o cliente residencial recebe um IP 100.64.0.x na WAN da CPE. Esse tráfego ao chegar no BNG do Provedor, é encaminhado para a caixa de CGNAT, onde um novo NAT traduz IP privado 100.64.0.x para o IP público 203.0.113.0 e então seguirá para a Internet. Nesse modelo atenderíamos 32 clientes com o mesmo IP público utilizando algo em torno de 2000 portas TCP/UDP por cliente.
NAT64/DNS64
Essa técnica de transição necessita que a rede e os aplicativos do cliente suportem IPv6. Dessa forma o acesso se dá em IPv6 nativamente na rede do cliente e quando existe a necessidade de acessar algum sistema em IPv4, é utilizado o NAT64/DNS64 para fazer a tradução do endereço IPv6 para IPv4 antes deste sair para Internet. O grande problema dessa técnica é a falta de compatibilidade de muitos aplicativos com IPv6. Sistemas Operacionais como GNU/Linux, Microsoft Windows, MacOS, iOS, BSDs, Android e muitos outros já suportam IPv6 mas ainda existem muitas aplicações que rodam nesses sistemas que ainda não tem esse suporte.
464XLAT
O 464XLAT seria a técnica mais promissora se os fabricantes de CPEs adicionassem o suporte CLAT na firmware do equipamento. Para que a técnica funcione é preciso o CLAT na CPE do cliente e o PLAT no Provedor. O cliente nesse caso recebe apenas IPv6 e utiliza normalmente em sua residência ou empresa uma rede IPv4 privada juntamente com o IPv6. Quando o conteúdo acessado na Internet está em IPv6, o acesso é feito sem tradução, sem quebrar a comunicação fim a fim e quando o conteúdo acessado está somente disponível em IPv4, entra a tradução do NAT64 ao passar pelo Provedor de Internet. Essa técnica permite economizar muito recurso IPv4 público. Atualmente Operadoras de Telefonia Móvel se beneficiam dessa técnica pois existe a implementação de CLAT em dispositivos móveis. O Provedor é o principal consumidor de CPEs, cabe a nós cobrarmos dos fabricantes esse recurso e fica a dica: o fabricante que lançar o suporte primeiro, sairá na frente da sua concorrência.
Como estamos hoje
A realidade hoje em muitos ISPs/ITPs é o uso forte da técnica NAT444 mas sem qualquer esforço de implementação do IPv6. Isso é muito mas muito ruim e veremos porque.
As desculpas mais utilizadas:
- É complicado demais.
- Ainda tenho IPv4 público sobrando.
- O CGNAT já me atende plenamente.
- Não tenho nenhum problema. Por que vou mexer com IPv6?
- Não tenho conhecimento suficiente.
- IPv4 público nunca vai acabar e se chegar perto de acabar, alguém vai dar algum jeito de resolver o problema sem precisar do IPv6.
- Ninguém que eu conheço usa IPv6.
- Meus sistemas e aplicativos não usam IPv6.
Benefícios do IPv6
Onde o IPv6 pode ajudar na sua operação?
- Redução de custos com caixas de CGNAT. Quanto mais IPv6 utilizar, menor será o tráfego utilizado em caixas de CGNAT e por isso a redução $$ em CAPEX.
- Mais qualidade na entrega de conteúdos fim a fim. IoT já é uma realidade.
- O cliente sente menos efeitos colaterais de uma Mitigação DDoS quando está sob ataque. Isso porque o prefixo IPv6 usado pelo cliente, não estará em mitigação e todos os conteúdos em IPv6 serão entregues com qualidade.
- Economia de Clean Pipe durante eventos DDoS. Tráfego IPv6 passa por fora do Clean Pipe, economizando bastante seu contrato de mitigação em nuvem.
- Melhora a experiência no acesso à Internet. Com o IPv6 não precisamos limitar a quantidade de portas utilizada pelo cliente, evitando assim problemas de acesso com diversos serviços na Internet. Ex.: Jogos.
- Grandes Players entregam seus conteúdos em IPv6, nas suas aplicações: Netflix, Youtube, Facebook, Instagram, WhatsApp, Akamai, CloudFlare, Telegram, Linkedin, UOL/Folha, Terra, Microsoft, etc.
Como podemos observar acima, existem bons motivos $$ para iniciar o IPv6 na sua operação de Internet. Não é mesmo?
Expectativa de recebimento de recurso IPv4
Tempo de espera na fila do LACNIC por bloco IPv4 hoje em 2022: 5 anos.
Os Brokers são também uma opção mas comprar prefixos de IPv4 lá fora, sem antes aplicar o IPv6 na sua operação, realmente é desperdiçar recursos financeiros que poderiam estar sendo melhor utilizados na sua infraestrutura de redes ou outros investimentos estratégicos de crescimento regional, por exemplo. Um exemplo de Broker: https://auctions.ipv4.global/prior-sales
Comece pelo básico
- Solicite, se já não tiver, seu prefixo IPv6 ao Registro.br.
- Crie um bom Plano de Endereçamento IPv6 para a sua rede. O Registro.br fez 3 vídeos explicando e dando ideias:
Utilize uma ferramenta IPAM(IP Address Management) para documentar e gerenciar seus prefixos IP. Exemplo: phpIPAM.
Borda
A borda é o lugar onde tudo começa e onde você dará o start inicial:
- Feche as sessões BGP v6 com seus upstreams. Em 2013 isso era um problema mas hoje não existem mais desculpas.
- Não contrate Operadoras que não te entreguem IPv6.
- Anuncie seus prefixos IPv6 para que o mundo te conheça.
Importante! Cheque no Looking Glass de Operadoras Nacionais e Internacionais, se os seus prefixos IPv6 estão sendo aprendidos.
Core
Após finalizar o que começamos na borda, precisamos transportar o IPv6 em nossa infraestrutura de redes para que ele alcance nossos serviços públicos e clientes:
- Configure o transporte do IPv6 em seus ativos de rede, switches, routers, pools IPv6 nos BNGs, etc para levar o IPv6 até seus sistemas, servidores e clientes. Como será feito nessa parte, dependerá muito da arquitetura da sua rede. Uma ideia com pensamento em segurança: utilize IPv4 privado em sua rede MPLS transportando IPv6 encapsulado no 6PE.
Servidores e serviços
Em muitos cenários de Telecom, precisamos levantar serviços importantes, que precisam estar acessíveis da Internet:
- Configure seus servidores e serviços públicos com IPv6 para que eles possam responder caso sejam requisitados. Não esqueça da segurança e filtre os acessos necessários.
- Menos é mais: restrinja os serviços a quem realmente necessitar do acesso, isso aumentará a segurança e diminuirá o risco de incidentes. Não é por ser IPv6 que protegerá seu sistema; se o serviço estiver vulnerável e acessível, o incidente ocorrerá independente do protocolo utilizado.
DNS(Domain Name System)
- A Internet só funciona graças ao protocolo BGP(Border Gateway Protocol) e a resolução de nomes feito pelo DNS. Se antes com IPv4 (32 bits em decimal) ninguém ficava decorando IPs para acessar sites e serviços, que dirá agora com o IPv6 (128 bits em hexadecimal). Não é mesmo? Se examinarmos dentro do código de um aplicativo que acessa um sistema na Internet, veremos que ali não consta um IP mas sim um hostname que está cadastrado em algum DNS apontando para um IP.
- Se possuir um servidor de DNS Autoritativo, crie os registros AAAA para apontar para seus serviços públicos e em caso de MTA (Mail Transfer Agent), também conhecido como servidor de e-mail, fazer o reverso IPv6 dele também.
- DNS Recursivo é um serviço extremamente importante para dar qualidade e performance de acesso aos seus assinantes. Configure para que ele faça recursividade em IPv4 e também em IPv6. Sem os DNS(s) Recursivos seus clientes e aplicativos não conseguirão usar a Internet.
- Não use DNS(s) Recursivos públicos/externos como por exemplo o 8.8.8.8, 1.1.1.1, nos seus clientes. Você estará piorando seu serviço de Internet. Assista esse vídeo onde o Thiago Ayub apresenta no GTER 51/GTS 37 (2022) 8.888 MOTIVOS PARA NÃO USAR DNS RECURSIVO EXTERNO EM SEU AS: https://www.youtube.com/watch?v=_70OhD-g37s&t=2219s
BNG(Broadband Network Gateway)
Antes de chegarmos com IPv6 no cliente, precisamos preparar os concentradores PPPoE/IPoE (BNGs) com os pools IPv6 que serão entregues durante a conexão do assinante. Nesse momento precisamos definir os pools da WAN e os PD (Prefix Delegation):
- Agora que temos um Plano de Endereçamento, conectividade IPv6 nos ativos e serviços dentro do Provedor, fica fácil definirmos os pools de prefixos IPv6 a serem utilizados.
- Procure sempre dar IPv4 público e IPv6 para seu cliente em detrimento ao CGNAT. Use CGNAT o mínimo possível.
IPv6 na ponta
A escolha da CPE para a sua rede é um dos cuidados mais importantes e pesa bastante na qualidade de entrega do serviço.
- Pode definir o quanto de impacto positivo ou negativo que isso poderá lhe causar, não só relacionado ao IPv6 mas principalmente à qualidade do acesso à Internet para seu cliente. Muitos problemas enfrentados atualmente pelos provedores estão relacionados ao Wifi, por exemplo.
- Testar a CPE com IPv6 antes de se decidir é fundamental e recomendo a apresentação do Fernando Frediani - A importância da homologação das CPEs para ISPs e aqui a apresentação em pdf.
Alguns cuidados com segurança e performance:
- Firewall IPv6 entrante por default.
- Latência de IPv6 equivalente à latência em IPv4 nos testes.
- Testes de banda comparando resultados em IPv4 e IPv6. Um ótimo programa para esse teste seria o iperf3, encontrado em muitas distros Linux.
- Verificar a estabilidade e performance da conexão IPv6 por um período de tempo. Testem os CPEs em suas casas, nas dos funcionários, antes de homologarmos, pois assim se consegue pegar diversos cenários habituais que encontramos nos clientes, como jogos, streaming, etc. Testar um ou mais modelos de um fabricante, antes de fazer a compra. Assim pode-se negociar melhorias no equipamento antes de adquirir um certo volume.
- Precisamos cobrar mais dos fabricantes de CPEs para que homologuem seus equipamentos segundo a BCOP de Requisitos mínimos de Segurança para CPEs:
Como testar no cliente
Precisamos validar que o IPv6 esteja sendo entregue no cliente e que este esteja funcionando corretamente. O teste que utilizo e recomendo é bem simples, basta solicitar ao cliente ou ao próprio técnico na residência/empresa acessar um site de testes e observar os resultados apresentados.
Conclusão
Com um pouco de planejamento e cuidado, temos total condição de implantarmos IPv6 em nossa rede. Não é um bicho de 7 cabeças mas terá uma enorme dor de cabeça se não começar logo. Não fazer isso te trará mais gastos financeiros e diminuição de qualidade na entrega da Internet para o seu cliente.
O IPv4 é um recurso finito e já sabemos disso. Quando acabarem seus prefixos IPv4 públicos e de seus upstreams, o que você fará para continuar crescendo com CGNAT?
Quanto menor a sua operação, mais simples será implantar o IPv6, então comece logo, comece certo.