Dia 3: IPv6 — Endereçamento, Tipos e Transição Dual-Stack

No Dia 1 deste curso cobrimos os fundamentos das redes de computadores e no Dia 1 explorámos o modelo OSI e o encapsulamento. Hoje, no Dia 3, mergulhamos no IPv6 — o sucessor do IPv4 que resolve definitivamente o problema do esgotamento de endereços. Vamos explorar o formato de 128 bits, os tipos de endereço (unicast, multicast, anycast), os mecanismos de configuração automática (SLAAC e DHCPv6), os endereços link-local e especiais, e as estratégias de transição que permitem a coexistência entre IPv4 e IPv6.

ℹ O IPv6 usa 128 bits, oferecendo ~340 undecilhões de endereços — resolve definitivamente o esgotamento do IPv4.

Neste artigo:

Introdução ao IPv6

O IPv4, com os seus 32 bits, oferece aproximadamente 4,3 mil milhões de endereços — um número que se revelou insuficiente face à explosão de dispositivos ligados à Internet. O IPv6, definido originalmente na RFC 4291 e posteriormente refinado na RFC 8200, expande o espaço de endereçamento para 128 bits, oferecendo 2128 endereços — aproximadamente 3,4 × 1038, ou 340 undecilhões.

Para perceber a escala: se o IPv4 oferecesse um grão de areia, o IPv6 ofereceria o volume total da Terra em grãos. Esta abundância elimina a necessidade de NAT (Network Address Translation) no nível doméstico, permitindo que cada dispositivo tenha um endereço público e globalmente encaminhável.

O IPv6 também introduz melhorias estruturais em relação ao IPv4:

  • Cabeçalho simplificado: O cabeçalho base do IPv6 tem tamanho fixo de 40 bytes, com campos opcionais delegados para cabeçalhos de extensão, reduzindo o sobrecarga de processamento nos routers.
  • Sem checksum no cabeçalho: Ao contrário do IPv4, o cabeçalho IPv6 não inclui um campo de checksum. As camadas inferior (Ethernet) e superior (TCP/UDP) já garantem a integridade, evitando recálculos custosos em cada salto.
  • Sem fragmentação nos routers: A fragmentação é responsabilidade do emissor, que descobre o MTU do caminho (Path MTU Discovery). Os routers apenas descartam pacotes demasiado grandes e enviam ICMPv6 Packet Too Big.
  • Endereçamento hierárquico: A estrutura de 128 bits permite um encaminhamento mais eficiente através de prefixos hierárquicos, reduzindo o tamanho das tabelas de encaminhamento globais.
  • Configuração automática: O SLAAC (Stateless Address Autoconfiguration) permite que os hospedeiros se configurem sem um servidor central, simplificando a gestão de redes.

A RFC 8200 (Internet Standard 86) define o formato do datagrama IPv6, os cabeçalhos de extensão e as regras de processamento nos nós intermédios. É a especificação canónica do protocolo IPv6 na sua forma actual.

Formato e Notação IPv6

Um endereço IPv6 é composto por 128 bits, representados como oito grupos de quatro dígitos hexadecimais separados por dois pontos (:). Cada grupo representa 16 bits.

Exemplo de endereço IPv6 completo:

2001:0db8:0000:0000:0000:0000:0000:0001

Este formato é legível mas verboso. Para simplificar, a RFC 4291 define três regras de compressão:

Regra 1 — Omissão de zeros à esquerda: Em cada grupo de 16 bits, os zeros à esquerda podem ser omitidos. 0db8 torna-se db8, e 0000 torna-se 0.

2001:db8:0:0:0:0:0:1

Regra 2 — Compressão de grupos consecutivos de zeros: Uma sequência contínua de grupos 0000 pode ser substituída por :: (dois pontos duplos). Esta compressão só pode ser aplicada uma vez num endereço, para evitar ambiguidade.

2001:db8::1

Regra 3 — Endereços IPv6 com portas: Em URLs, o endereço IPv6 deve ser delimitado por parêntesis rectos para distinguir os dois pontos do endereço dos dois pontos do porto.

http://[2001:db8::1]:8080/

A estrutura de um endereço IPv6 global unicast divide-se em três partes:

Componente Tamanho Descrição
Prefixo de encaminhamento global 48 bits Atribuído pelo ISP (ex: 2001:db8::/48)
Identificador de sub-rede 16 bits Gestão interna da organização
Identificador de interface 64 bits Identifica o dispositivo na sub-rede (EUI-64 ou aleatório)

O identificador de interface (Interface ID) é tipicamente derivado do endereço MAC da placa de rede usando o formato EUI-64, onde o bit universal/local (bit 7 do primeiro byte) é invertido e os bytes FF-FE são inseridos no meio do endereço MAC de 48 bits para criar um identificador de 64 bits.

Tipos de Endereço (Unicast, Multicast, Anycast)

A RFC 4291 define três tipos de endereços IPv6. Ao contrário do IPv4, o IPv6 não possui o conceito de difusão — toda a comunicação um-para-muitos é feita via multicast.

3.1 Unicast (Um-para-Um)

Um endereço unicast identifica uma única interface. Um pacote enviado para um endereço unicast é entregue na interface específica identificada por esse endereço. Existem várias categorias de endereços unicast:

  • Global Unicast (2000::/3): Endereços publicamente encaminháveis na Internet. O prefixo 2000::/3 cobre todos os endereços de 2000:: a 3fff:ffff:…. Actualmente, os RIR (Regional Internet Registries) atribuem blocos a partir de 2001::, 2002:: (6to4) e 2600::–2f00::.
  • Unique Local Address — ULA (fc00::/7): Endereços para uso interno, equivalentes ao 10.0.0.0/8 do IPv4. O bloco fd00::/8 é para atribuição local aleatória; fc00::/8 está reservado para futura atribuição centralizada.
  • Link-Local (fe80::/10): Endereços automáticos usados apenas na ligação local (ver secção 5).
  • Loopback (::1/128): Equivalente a 127.0.0.1 no IPv4. O próprio endereço ::1 é o endereço de loopback canónico.
  • Unspecified (::/128): O endereço de todos os zeros, usado como endereço de origem quando um hospedeiro ainda não tem endereço configurado.

3.2 Multicast (Um-para-Muitos)

Um endereço multicast identifica um grupo de interfaces (tipicamente em nós diferentes). Um pacote enviado para um endereço multicast é entregue a todas as interfaces identificadas por esse endereço. Os endereços multicast IPv6 começam com o prefixo ff00::/8.

O formato de um endereço multicast IPv6 é ffflags:scope:group_id:

Campo Bits Valores
Prefixo 8 ff (sempre)
Flags 4 0 = permanente, 1 = temporário
Scope (âmbito) 4 1=interface, 2=link, 5=site, 8=organização, e=global
Group ID 112 Identifica o grupo multicast

Exemplos de endereços multicast bem conhecidos:

  • ff02::1 — Todos os nós no link (equivalente ao difusão do IPv4)
  • ff02::2 — Todos os routers no link
  • ff02::1:ff00:0 — Nó Solicited-Node (usado pelo Neighbor Discovery)

3.3 Anycast (Um-para-o-Mais-Próximo)

Um endereço anycast é atribuído a múltiplas interfaces (tipicamente em nós diferentes). Um pacote enviado para um endereço anycast é encaminhado para a interface mais próxima segundo a métrica de encaminhamento. Funcionalmente, o anycast usa o espaço de endereços unicast — não há prefixo separado para anycast. O emissor não consegue distinguir entre unicast e anycast; a diferença está na configuração do receptor.

Casos de uso típicos do anycast incluem:

  • DNS raiz: Os 13 servidores raiz do DNS usam anycast para distribuir carga e reduzir latência globalmente.
  • CDN (Content Delivery Network): Nós de borde CDN usam anycast para que os utilizadores sejam servidos pelo ponto de presença mais próximo.
  • Ataque a DDoS: O anycast dispersa o tráfego de ataque por múltiplos centros de dados, diluindo o impacto.
Comparação Unicast Multicast Anycast
Destinatários 1 interface Grupo (todos) 1 (o mais próximo)
Prefixo IPv6 Vários (2000::/3, fc::/7…) ff00::/8 Espaço unicast
Equivalente IPv4 Endereço normal 224.0.0.0/4 Existe mas raramente usado

SLAAC e DHCPv6

No IPv6 existem dois mecanismos principais para configurar endereços automaticamente: SLAAC (Stateless Address Autoconfiguration) e DHCPv6 (Dynamic Host Configuration Protocol for IPv6). Ambos dependem do ICMPv6 Router Advertisement (RA) enviado pelos routers.

4.1 SLAAC — Stateless Address Autoconfiguration

O SLAAC permite que um hospedeiro crie o seu próprio endereço IPv6 global sem comunicar com um servidor central. O processo funciona assim:

  1. O hospedeiro cria um endereço link-local (fe80::) baseado no EUI-64.
  2. O hospedeiro envia um Router Solicitation (RS) para ff02::2 (todos os routers).
  3. O router responde com um Router Advertisement (RA) contendo o prefixo da rede (ex: 2001:db8:1::/64) e flags de configuração.
  4. O hospedeiro combina o prefixo (64 bits) com o seu identificador de interface (64 bits) para formar o endereço global.
  5. O hospedeiro executa Duplicate Address Detection (DAD) enviando Neighbor Solicitation para garantir que o endereço é único no link.

A principal vantagem do SLAAC é a sua simplicidade: não requer servidor DHCP, nem configuração manual. É particularmente útil em redes grandes e dinâmicas (redes Wi-Fi públicas, IoT, redes móveis). A desvantagem é que o servidor não regista qual o endereço atribuído a cada hospedeiro — não há inventário central.

4.2 DHCPv6 — Dynamic Host Configuration Protocol for IPv6

O DHCPv6 é o equivalente ao DHCP do IPv4, mas funciona apenas em IPv6. Um servidor DHCPv6 atribui endereços, prefixos e outras opções de configuração (DNS, NTP, SIP) aos hospedeiros. Existe em duas modalidades:

  • Stateful DHCPv6: O servidor atribui endereços e mantém estado (qual endereço foi atribuído a qual hospedeiro). Similar ao DHCP IPv4.
  • Stateless DHCPv6: O hospedeiro obtém o endereço via SLAAC, mas usa o DHCPv6 apenas para informações adicionais (DNS, domínio de pesquisa, NTP).

O tipo de configuração é controlado por flags no Router Advertisement (RA):

Flag M Flag O Comportamento
0 0 SLAAC puro (sem DHCPv6)
0 1 SLAAC + Stateless DHCPv6 (outras opções)
1 Stateful DHCPv6 (atribui endereços)

Flag M (Managed Address Configuration) indica que deve ser usado Stateful DHCPv6. Flag O (Other Configuration) indica que informações adicionais estão disponíveis via DHCPv6.

Em redes empresariais, a combinação mais comum é SLAAC + Stateless DHCPv6 (M=0, O=1): os hospedeiros geram os seus endereços via SLAAC mas obtêm DNS e outras opções via DHCPv6. Isto mantém o inventário de endereços descentralizado mas garante configuração consistente de DNS/NTP.

4.3 Privacy Extensions e EUI-64

O SLAAC clássico gera o Interface ID a partir do endereço MAC (EUI-64), o que significa que o endereço IPv6 contém o endereço de hardware — tornando possível rastrear o dispositivo entre redes diferentes (preocupação de privacidade). Para mitigar isto, foram introduzidas as Privacy Extensions (RFC 4941), que geram Interface IDs aleatórios e temporários, mudando periodicamente.

A maioria dos sistemas operativos modernos (Linux, Windows, macOS) activa as privacy extensions por defeito. Em Linux, o comportamento é controlado pelo parâmetro addr_gen_mode que pode ser eui64, random ou stable_secret.

Os endereços link-local são uma categoria fundamental do IPv6. Pertencem ao prefixo fe80::/10 e são automaticamente configurados em todas as interfaces IPv6, sem qualquer configuração manual ou RA. São válidos apenas dentro de uma ligação física (link) — não são encaminhados por routers para outras redes.

Os endereços link-local são essenciais para o funcionamento do próprio protocolo IPv6:

  • Neighbor Discovery Protocol (NDP): Substitui o ARP do IPv4. Usa ICMPv6 para descobrir vizinhos, resolver endereços MAC e detectar duplicados (DAD).
  • Router Discovery: Os hospedeiros contactam os routers via endereço link-local destes (obtido do RA).
  • Gateway por defeito: A rota por defeito aponta para o endereço link-local do router, não para o seu endereço global.

Como os endereços link-local são únicos apenas dentro de um link, é comum haver múltiplos endereços fe80:: em interfaces diferentes no mesmo hospedeiro. Por isso, ao fazer ping ou estabelecer ligações com endereços link-local, é obrigatório especificar a interface com uma sintaxe especial:

ping6 fe80::1%eth0

O sufixo %eth0 (zone index) indica ao sistema qual interface usar para alcançar esse endereço link-local. Sem esta indicação, o sistema não sabe por que interface enviar o pacote.

Para além do link-local, existem outros endereços IPv6 especiais:

Endereço Prefixo Descrição
:: ::/128 Unspecified (endereço de origem antes de obter IP)
::1 ::1/128 Loopback (equivalente a 127.0.0.1)
fe80:: fe80::/10 Link-local (não encaminhado)
fc00:: fc00::/7 Unique Local Address (interno)
2001:db8:: 2001:db8::/32 Documentação (RFC 3849 — não encaminhável)
::ffff:0:0 ::ffff:0:0/96 IPv4-mapped (IPv6 com endereço IPv4 embutido)
64:ff9b:: 64:ff9b::/96 NAT64 well-known prefix

O bloco 2001:db8::/32, usado em todos os exemplos deste artigo e em toda a documentação técnica, foi reservado pela RFC 3849 precisamente para que pudesse ser usado em documentação sem colidir com endereços reais. Nunca deve ser usado em produção.

Estratégias de Transição (Dual-Stack, Túnel)

A transição de IPv4 para IPv6 não é um evento pontual mas sim um processo gradual. Como a Internet não pode ser desligada para mudar de protocolo, foram desenvolvidas várias estratégias de coexistência. A RFC 8200 e outras RFCs definem três abordagens principais.

6.1 Dual-Stack

No modelo dual-stack, os hospedeiros e routers executam IPv4 e IPv6 simultaneamente. Cada interface tem pelo menos um endereço IPv4 e um endereço IPv6. As aplicações resolvem nomes via DNS e optam por IPv4 ou IPv6 consoante os registos disponíveis (A ou AAAA).

O dual-stack é a estratégia mais simples e robusta, mas tem duas limitações:

  • Não resolve o esgotamento do IPv4: Continua a ser necessário um endereço IPv4 público para cada hospedeiro.
  • Duplica a complexidade de gestão: firewalls, encaminhamento, DNS e monitorização têm de cobrir ambos os protocolos.

Apesar destas limitações, o dual-stack é o padrão de facto na maioria dos centros de dados e ISPs, pois permite uma migração transparente sem interromper serviços existentes.

6.2 Túnel

O túnel encapsula pacotes IPv6 dentro de pacotes IPv4 (ou vice-versa), permitindo que tráfego IPv6 atravessa redes exclusivamente IPv4 (ou o inverso). Existem vários mecanismos de túnel:

  • 6to4 (RFC 3056): Usa o prefixo 2002::/16. O endereço IPv4 do hospedeiro é embutido no endereço IPv6 (2002:IPv4::/48). O encapsulamento é automatic — não requer túnel manual. Cada pacote IPv6 é encapsulado em IPv4 protocol 41.
  • 6rd (RFC 5969): IPv6 Rapid Deployment — variante do 6to4 usada por ISPs. O prefixo e o endereço IPv4 são configuráveis, permitindo ao ISP usar o seu próprio prefixo IPv6 em vez de 2002::/16.
  • GRE tunnel: Generic Routing Encapsulation. Túnel ponto-a-ponto configurado manualmente. Transporta IPv6 (ou qualquer protocolo) dentro de IPv4. Flexível mas requer configuração manual em ambas as pontas.
  • Teredo (RFC 4380): Túnel IPv6 sobre UDP, desenhado para hospedeiros atrás de NAT IPv4 que não suportam protocol 41. Usa servidores Teredo e relays. É o mecanismo de última geração quando nenhum outro está disponível.

6.3 Tradução (NAT64/DNS64)

A tradução de protocolos permite que um hospedeiro IPv6-only comunique com um servidor IPv4-only. O mecanismo principal é o NAT64, que traduz pacotes IPv6 para IPv4 e vice-versa, combinado com o DNS64, que sintetiza registos AAAA a partir de registos A IPv4.

O fluxo é o seguinte: um hospedeiro IPv6-only consulta o DNS por um nome. O DNS64 não encontra registo AAAA, mas encontra um registo A (IPv4). Cria então um endereço IPv6 sintético usando o prefixo NAT64 (64:ff9b::/96 por defeito) e o endereço IPv4 embutido. O hospedeiro envia o pacote para esse endereço IPv6. O NAT64 intercepta, traduz para IPv4 e encaminha para o servidor IPv4 original.

Esta estratégia é usada em redes móveis (4G/5G) onde os operadores adoptam IPv6-only para conservar endereços IPv4, mas precisam de garantir acesso a serviços legado IPv4-only.

Estratégia Vantagens Desvantagens
Dual-Stack Simples, nativo, sem sobrecarga Requer endereços IPv4, dobra gestão
Túnel Funciona em redes IPv4-only Overhead, latência, complexidade
NAT64/DNS64 Permite IPv6-only a falar com IPv4 Tradução pode quebrar aplicações

Erros Comuns e Checklist de Revisão

A transição para IPv6 traz novos desafios de configuração e diagnóstico. Aqui estão os erros mais frequentes e um Checklist de Revisão de verificação.

⚠ Desactivar IPv6 sem entender as dependências pode quebrar serviços como SLAAC, DNS IPv6 e aplicações modernas que preferem IPv6.

7.1 Erros Comuns

  • Esquecer o zone index (%interface) em ligações link-local: ping6 fe80::1 falha sem %eth0. O erro é “Network is unreachable” ou “Invalid argument”.
  • Confundir SLAAC com DHCPv6: SLAAC não regista quem tem qual endereço. Em auditorias de segurança, é necessário correlacionar com a tabela NDP do router.
  • Desactivar ICMPv6 (tipo bloquear todo ICMP): No IPv4 era comum bloquear ICMP. No IPv6, ICMPv6 é essencial — NDP, RA, DAD e Path MTU Discovery dependem dele. Bloquear ICMPv6 quebra a conectividade IPv6.
  • Usar 2001:db8:: em produção: Este prefixo é apenas para documentação. Usá-lo em produção resulta em tráfego que não é encaminhado na Internet.
  • Esquecer firewalls IPv6: Ao activar dual-stack, muitos administradores configuram o firewall IPv4 mas esquecem o IPv6. O hospedeiro fica exposto via IPv6.
  • Assumir que NAT é necessário: No IPv6, cada dispositivo pode ter um endereço global. Usar NAT66 (Network Prefix Translation) é desaconselhado — quebra extremo-a-extremo e complica o diagnóstico.
  • Não configurar reverse DNS (PTR): Muitos serviços rejeitam ligações de hospedeiros sem PTR IPv6. Esquecer o reverse DNS causa atrasos e falhas de autenticação.

7.2 Comandos de Verificação

Use os seguintes comandos para verificar e diagnosticar a configuração IPv6 em sistemas Linux:

# Verificar endereço IPv6
ip -6 addr show

# Verificar tabelas de encaminhamento IPv6
ip -6 route show

# Testar conectividade IPv6
ping6 -c 4 ipv6.google.com

# Verificar vizinhos IPv6 (equivalente a ARP)
ip -6 neigh show

# Adicionar rota IPv6
ip -6 route add 2001:db8::/32 via fe80::1 dev eth0

7.3 Checklist de Revisão de Implementação

Item Recomendação
Prefixo de encaminhamento Solicitar /48 ao ISP para flexibilidade de sub-redes
Modo de configuração SLAAC + Stateless DHCPv6 (M=0, O=1) para redes gerais
Privacy Extensions Activar em estações de trabalho (random ou stable_secret)
Firewall IPv6 Configurar ip6tables/nftables em paralelo com IPv4
ICMPv6 Permitir NDP (types 133-137) — não bloquear
DNS Configurar AAAA + reverse DNS (PTR) para cada hospedeiro
Monitorização Incluir IPv6 no Nagios/Zabbix/Prometheus (não só IPv4)
Estratégia de transição Dual-stack como fase intermédia; plano para IPv6-only futuro

O IPv6 não é apenas “um IPv4 maior” — é um protocolo com filosofia diferente: sem difusão, sem NAT obrigatório, com configuração automática nativa e com um papel central do ICMPv6. Compreender estas diferenças é essencial para implementar redes modernas e preparar a infraestrutura para o futuro da Internet.

Fontes: RFC 4291 — IP Version 6 Addressing Architecture, RFC 8200 — Internet Protocol, Version 6 (IPv6) Specification.

Artigos Relacionados