Como Ativar IPv6 em Servicos de Hosting e CDN
Introdução
Para garantir uma comunicação fim a fim através do protocolo IPv6 é necessário que este seja ativado e configurado não apenas nos provedores de acesso mas também nos provedores e serviços de hospedagem e de conteúdo. Hoje em dia é bastante comum que esses serviços possuam suporte à IPv6 disponível, porém nem sempre ele vem ativado por padrão e a pessoa responsável por aquele ambiente deve realizar alguns procedimentos simples para fazer com que os serviços ali hospedados sejam capazes de receber a responder à requisições em IPv6.
Neste artigo iremos demonstrar como é possível realizar a ativação do IPv6 em diversos serviços de hospedagem e CDN mais utilizados.
Antes de prosseguirmos é importante salientar que o IPv6 hoje é utilizado por uma parte significativa de serviços populares acessados pela maioria dos usuários de internet e está disponível em grandes provedores de acesso como solução definitiva à escassez do IPv4. Em muitos provedores de acesso que fizeram a implantação por completo do IPv6 já é possível observar que em determinados horários a maior parte do tráfego recebido é através deste protocolo sendo uma das razões para isso que os principais conteúdos mais acessados são Google (Youtube, Google Drive, Gmail, etc), Netflix e Facebook que já possuem suporte completo à IPv6.
Outro detalhe importante de se observar é que existem análises que mostram que o tráfego em cima do protocolo IPv6 tende a ser encaminhado mais rapidamente pelos roteadores por ser tratar de um tráfego nativo ao invés de um tráfego que muitas vezes precisa passar pelo processo de tradução feito pelo NAT no caso do IPv4. Além disso o algorítimo Happy Eyeballs definido pela [rfc:8305 RFC8305] que está presente na maioria dos sistemas operacionais modernos, incluindo os móveis, torna aplicações que são capazes de funcionar em dual-stack mais responsivas e evita problemas decorrentes de má configuração do IPv6.
Por fim a ativação do IPv6 para serviços hospedados além de permitir ter um ambiente preparado e pronto para receber requisições neste protocolo facilita também a análise de estatísticas de acesso evitando maior complexidade de casos de múltiplos acessos provenientes de conexões com NAT e CGNAT onde atrás de um 1 único IPv4 podem estar diversos usuários.
Atualização dos registros DNS AAAA e Logs
Normalmente um website ou qualquer serviço hospedado acessível somente em IPv4 possui apenas uma entrada do tipo A no domínio utilizado para direcionar o usuário para o serviço.
É necessário portanto que após ativar o IPv6 no serviço em questão, certificar-se de todos os detalhes relacionados à aplicação, como possíveis vhosts e aplicações escutando em IPv6 assim como criar os registros AAAA em seu serviço de DNS apontando para o endereço IPv6.
Uma maneira de validar o funcionamento após realizadas todas as alterações é através da URL https://ipv6-test.com/validate.php
Além disso certifique-se que os logs do servidor Web hospedando o website ou serviço esteja configurado corretamente caso seja necessário análise desses logs.
Ativando o IPv6
CloudFlare
Não há nada necessário à ser feito pois o IPv6 já é ativado por padrão. Para se checar esta opção verifique a seguinte opção abaixo na configuração do domínio. Para maiores detalhes acesse esta URL para saber como ativar/desativar o IPv6 para o domínio.
A CloudFlare é também uma opção para caso o serviço de hospedagem que você utiliza não possua suporte à IPv6 pois com a CloudFlare atuando como proxy do seu site ela será capaz de receber todas as requisições em IPv6 e encaminhá-las para um serviço que seja IPv4-only.
Além disso na CloudFlare a fim de facilitar a análise de estatísticas de acesso feitas via IPv6 por sistemas de análise que não suportam o protocolo a CloudFlare desenvolveu uma funcionalidade chamada Pseudo IPv4 que adiciona um header HTTP às requisições estabelecidas sob IPv6 contendo um "pseudo" IPv4 da Classe E, ou seja um mesmo endereço de origem IPv6 irá sempre produzir um resultado com o mesmo pseudo endereço IPv4 a fim de manter a compatibilidade com aplicações legadas que não suportam ou não compreendem IPv6. Para ativar este serviço que é gratuito acesse esta URL.
Referência: https://www.cloudflare.com/ipv6/
Akamai
Autentique-se no portal e procure por "IPv6 Configuration" e clique em Enable.
Referências:
https://www.akamai.com/us/en/multimedia/documents/product-brief/ipv6-adaptation-product-brief.pdf
https://blogs.akamai.com/2018/06/six-years-since-world-ipv6-launch-entering-the-majority-phases.html
https://blogs.akamai.com/2018/06/six-years-since-world-ipv6-launch-entering-the-majority-phases.html
Amazon Web Services (AWS)
Se você estiver rodando seu próprio servidor no serviço EC2 em uma VPC primeiro é necessário adicionar um bloco IPv6 na VPC. Para isso vá em VPC Console em https://console.aws.amazon.com/vpc/ e siga os seguintes passos:
- No painel de navegação escolha seus VPCs and 'Your VPCs'.
- Actions, Edit CIDRs
- Clique em 'Add IPv6 CIDR'.Após o bloco IPv6 ter sido adicionado clique em Close.
Em seguida é necessário associar um bloco IPv6 com uma subnet. Para isso vá até ao EC2 Console e siga os seguintes passos:
- No painel de navegação clique em Subnets
- Selecione a sua subnet e clique em Subnet Actions, Edit IPv6 CIDRs
- Clique em Add IPv6 CIDR. Especifique um par hexadecimal para a subnet (por exemplo 00) e confirme.
- Clique em Close. Repita esses passos para outras subnets na sua VPC.
Atualize a Tabela de Rotas para rotear todo o tráfego IPv6 da subnet para o gateway de Internet. Acesse o EC2 Console e siga os seguintes passos:
- No painel de navegação clique em Route Tables e selecione a tabela de rotas que está associada com a subnet pública.
- Na tab Routes clique em Edit.
- Clique em 'Add another route' e especifique ::/0 para Destination e selecione o ID do seu gateway de Internet para o Target e então clique em Save.
Então atualize seu Security Groups para permitir tráfego desde ::0/0 em seguindo os seguintes passos no EC2 Console:
- No painel de navegação clique em Security Groups e selecione o security group do seu web server.
- Na tab Inbound Rules clique em Edit.
- Para cada regras clique em 'Add another rule' e clique em Save quando completo. Por exemplo para adiciona uma regra que permite todo qualquer tráfego HTTP sobre IPv6 para Type selecione HTTP and para Source ::/0.
Por padrão uma regras de outbound que permite todo tráfego IPv6 é automaticamente adicionada ao seu security groups quando você associa um bloco IPv6 à sua VPC. No entanto se você modificou a regra original de outbound para o seu security group, este regra não é automaticamente adicionada and você deverá adicionar regras de outbound para tráfego IPv6. Para mais informações consulte Security Groups for Your VPC.
Por fim edite sua instância para atribuir um endereço IPv6 à ela seguindo os seguintes passos no EC2 Console:
- No painel de navegação clique em Instances
- Selecione a sua instance e clique em Actions, Networking, Manage IP Addresses
- Em IPv6 Addresses clique em Assign new IP.É possível especificar um endereço IPv6 específico da range da sua subnet ou por padrão o Auto-Assign para que o endereço seja atribuído automaticamente.
- Clique em Yes, Update.
Nota: Se você mesmo configurou o servidor lembre-se de verificar que serviços como Apache ou NGINX estão escutando em IPv6. Um tutorial de como fazer esta verificação e ativação se necessário pode ser encontrado neste artigo.
Tutorial completo: https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6.html e https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html#vpc-sizing-ipv6
Fastly
Ative IPv6 simplesmente adicionando a palavra "dualstack" na frente do seu registro de DNS CNAME. Por exemplo: dualstack.g.shared.global.fastly.net
Caso você possuir um hostname customizado é necessário abrir um chamado de suporte junto à Fastly dizendo que você deseja adicionar IPv6 ao seu domínio.
Nota: A Fastly não suporta conexões em IPv6 para os origin servers.
Tutorial completo: https://docs.fastly.com/guides/basic-setup/ipv6-support
Softlayer
O suporte à IPv6 pode ser configurado para as instâncias de servidores de acordo com cada sistema operacional, porém o suporte IPv6 para servidores web hospedados na CDN da Softlayer só é possível através de um serviço de proxy como Akamai.
Microsoft Azure
Você precisará de um Basic Load Balancer ou VNet para ter IPv6. (A documentação da Microsoft não especifica se um Standard Load Balancer supporta IPv6).
No entanto existem algumas limitações com relação ao Load Balancer e a uso de IPv6 na Azure. Não é possível atribuir IPv6 para uma VM existente. Será necessário criar uma nova atrás do Load Balancer. Seu Network Security Group policias não se aplicarão para IPv6.Não é possível fazer isso no GUI e você precisa fazer uso da CLI ou PowerShell. Possivelmente seja mais fácil adotar uma solução como a da CloudFlare a depender do serviço hospedado na VM.
Um tutorial completo sobre IPv6 na Azure pode ser encontrado em: https://docs.microsoft.com/en-us/azure/load-balancer/load-balancer-ipv6-overview
As instruções sobre Virtual Network dizem que é possível realizar o upgrade, porém não são claras à respeito de segurança e a CLI ou PowerShell são a única maneira de fazer isso. Instruções mais detalhadas podem ser encontradas em: https://docs.microsoft.com/en-us/azure/virtual-network/ipv6-overview
Rackspace
Existem exemplos de como verificar e configurar IPv6 usando o Neutron e também através de cURL.
Para ativar usando o Neutron siga esses passos:https://developer.rackspace.com/docs/cloud-networks/v2/getting-started/configuring-network-variations/provisioning-port-ips-neutron/
Para ativar usando cURL siga esses passos: https://developer.rackspace.com/docs/cloud-networks/v2/getting-started/configuring-network-variations/provisioning-port-ips-curl/
Google Cloud
Será necessário configurar o Load Balancing. Existem diferentes maneiras de configurar o suporte à IPv6 no Load Balancing e está melhor explicado em https://cloud.google.com/load-balancing/docs/ipv6
Atente-se que existe uma cobrança pelo uso de um IP estático atribuído mas não utilizado (cerca de USD 0.015/hora - que equivale à USD 10.80 por mês em southamerica-east1).
Referência: https://cloud.google.com/compute/all-pricing#ipaddress
Dreamhost
Para adicionar um endereço IPv6 é necessário seguir os seguintes passos:
- Acesse a página Manage Domains
- Clique em 'Add IP' para o domínio escolhido
- Clique no botão 'Add IPv6 IP Now' para adicionar um endereço IPv6 ao domínio. Após adicionar o endereço IPv6 você será redirecionado de volta para a página 'Manage Domains' e será possível ver o novo endereço atribuído
- Para remover este IPv6 clique no X vermelho próximo ao endereço.
Referências: https://help.dreamhost.com/hc/en-us/articles/215279658 e https://help.dreamhost.com/hc/en-us/articles/216510458-IPv6
Linode
Todas as instância na Linode são criadas por padrão com suporte à IPv6 e os endereços são atribuidos utilizando Stateless Address Autoconfiguration (SLAAC).
Para verificar o endereço IPv6 atribuído à sua instância siga os passos abaixo:
- Autentique-se em seu Linode Cloud Manager.
- Na página Linodes, na coluna 'IP Addresses' é possível verificar cada um dos endereços IP atribuídos.
- Para ver em mais detalhes selecione o Linode que você deseja verificar o endereço IPv6 e clique na tab Networking.
- Na seção IPv6 você pode ver o endereço atribuído via SLAAC and o endereço Link Local.
No Terminal Linux para verificar o endereço IPv6 utilize o comando: ip -6 address
Nota: Ë possível solicitar endereçamento IPv6 adicional abrindo um chamado. Diferente dos endereços IPv6 atribuídos automaticamente, é necessário configurar manualmente aqueles que forem solicitados. Para mais detalhes consulte o guia sobre endereçamento estático da Linode.
Referência: https://www.linode.com/docs/networking/an-overview-of-ipv6-on-linode/
Vultr
Ao criar uma nova instância na Vultr o IPv6 não é ativado por padrão. É necessário selecionar manualmente a opção para ativar o IPv6 durante o provisionamento do servidor.
Para isso siga os seguintes passos no painel de controle da Vulr: Servers, Deploy New Server, Additional Features, Enable IPv6
Para adicionar IPv6 à um servidor existente que não foi provisionado com IPv6 siga os passos abaixo:
- Desligue a instância Vultr em Servers, Selecione o hostname da instância, Clique em Server Stop
- Ative o IPv6 em Servers, Selecione o hostname da instância, Settings, IPv6.Em seguinda um novo endereço IPv6 será mostrado na tab IPv6 conforme a imagem abaixo:
- Apesar ativar o IPv6 no painel da Vultr não é suficinete. Para usar o endereço IPv6 atribuído é necessário configuar a parte de network no sistema operacional.
- Siga o tutorial da Vultr nessa URL para saber com configurar IPv6 para a maioria dos sistemas operacionais mais mais utilizados: https://www.vultr.com/docs/configuring-ipv6-on-your-vps
- Reinicie a instância para se certificar que as configurações IPv6 realizadas funcionem corretamente em Server, Selecione o hostname da instância, Clique em Server Restart.
Nota: Assim como para IPv4 lembre-se de adicionar regras de firewall para IPv6 conforme necessário.
Referências: https://www.vultr.com/docs/configuring-ipv6-on-your-vps e https://bobcares.com/blog/vultr-ipv6/
Digital Ocean
É possível ativar IPv6 em um Droplet quando ele é criado ou após a criação.
Se o IPv6 é ativado durante a criação toda configuração relacionada é realizada automaticamente. Esta opção é recomendada por ser mais rápida e simples eliminado a possibilidade de erros de configuração manuais.
No entanto caso o IPv6 não tenha sido ativado durante o provisionamento do Droplet é possível ativá-lo posteriormente. Para isso é necessário seguir os passos abaixo:
- Desligue o Droplet.
- Ative o IPv6 no painel de controle clicando na opção Networking e em Enable em Public IPv6 network.
- Acesse o Droplet via SSH.
- Configure o IPv6 na área de configuração de rede do sistema operacional.Isso envolve passos como:
- Atribuir um endereço estático.
- Desabilitar a configuração automática.
- Configurar o endereço do gateway.
- Configurar os enderecos do Servdores DNS IPv6.
- Reboot o Droplet
Referência: https://www.digitalocean.com/docs/networking/ipv6/how-to/enable/
OVH
Toda VPS da OVH possui suporte à IPv6, porém por padrão apenas IPv4 é configurado.
Para configurar o IPv6 em sua VPS é necessário seguir os seguintes passos:
- Anote a informação de rede através do Painel de Controle OVH.O endereço IPv6 atribuído ao seu servidor irá aparecer na seção 'IP'.
- De posse das informações sobre o endereçamento IPv6 acesse sua VPS via SSH e configure o IPv6 na área de rede do sistema operacional.
Referência: https://docs.ovh.com/gb/en/vps/configuring-ipv6/
Referências
https://teamarin.net/2019/06/25/why-is-ipv6-faster/
Autor: Fernando Frediani