Porque existe o IPv6
O IPv6 (RFC 8200) foi concebido nos anos 90, quando se tornou claro que os 4,3 mil milhões de endereços do IPv4 se iam esgotar. Um endereço IPv6 tem 128 bits: 2¹²⁸, ou cerca de 3,4 × 10³⁸ endereços. O objetivo não é o número enorme em si, mas que cada rede possa ter todo o espaço de que precisa e que cada dispositivo volte a ter um endereço alcançável globalmente – sem NAT.
O IPv6 não é uma atualização do IPv4; os dois protocolos funcionam lado a lado (dual-stack). Hoje, uma parte grande e crescente do tráfego para os grandes serviços passa por IPv6, sobretudo nas redes móveis. O grau de adoção varia entre operadores e contratos, e muitas ligações domésticas ainda só têm IPv4.
Notação: grupos hexadecimais
Um endereço IPv6 escreve-se como oito grupos de quatro dígitos hexadecimais, separados por dois pontos:
2001:0db8:0000:0000:0000:ff00:0042:8329
Cada grupo tem 16 bits. Os dígitos hexadecimais vão de 0–9 e a–f; maiúsculas e minúsculas significam o mesmo, mas a convenção é usar minúsculas.
Regras de compressão
Sequências longas de zeros são comuns, por isso há duas regras para encurtar o endereço (RFC 4291), e o RFC 5952 define a única forma correta de as aplicar:
- Retirar os zeros à esquerda de cada grupo:
0db8→db8,0042→42,0000→0. - Substituir uma sequência de grupos a zero por
::– a sequência mais longa, a primeira se duas tiverem o mesmo comprimento, e só se abranger pelo menos dois grupos.::só pode aparecer uma vez; caso contrário, o endereço fica ambíguo.
Assim, 2001:0db8:0000:0000:0000:ff00:0042:8329 passa a 2001:db8::ff00:42:8329. O endereço de loopback 0:0:0:0:0:0:0:1 escreve-se ::1, e o endereço não especificado é apenas ::.
Experimente qualquer endereço na ferramenta abaixo – mostra a forma expandida e a canónica lado a lado.
Expandido
Comprimido
2001:db8::ff00:42:8329
Âmbito: Uso especial · Documentation (2001:db8::/32)
Prefixos e /64
O IPv6 usa a notação CIDR tal como o IPv4. Um endereço unicast global típico divide-se em:
- Prefixo de encaminhamento (normalmente /48 ou /56) – atribuído a um local pelo fornecedor.
- ID de sub-rede – os bits até /64, que numeram as redes do local. Um /48 comporta 65 536 sub-redes.
- Identificador de interface (os últimos 64 bits) – identifica o dispositivo na sua rede.
Uma rede local é quase sempre um /64. A configuração automática de endereços (SLAAC) depende disso: os dispositivos escolhem os seus próprios identificadores de interface, hoje aleatórios por razões de privacidade (RFC 8981), e mudam-nos regularmente.
Tipos de endereço que vai encontrar
- Unicast global
2000::/3– endereços públicos e encaminháveis. - Ligação local
fe80::/10– todas as interfaces IPv6 têm um; só vale na ligação local e é usado na descoberta de vizinhos e em protocolos de encaminhamento. - Local único
fc00::/7(na práticafd00::/8) – o equivalente IPv6 dos endereços privados (RFC 4193). - Multicast
ff00::/8– o IPv6 não tem broadcast; os grupos multicast substituem-no. - Loopback
::1e não especificado::. - Mapeado para IPv4
::ffff:0:0/96– é assim que os programas IPv6 representam interlocutores IPv4, por exemplo::ffff:192.0.2.1. - Documentação
2001:db8::/32e3fff::/20– para exemplos como os desta página.
Blocos IPv6 para fins especiais
A lista completa de blocos IPv6 reservados, gerada a partir do registo da IANA que a classificação deste site usa:
| Bloco | Finalidade | Referência | Acessível globalmente |
|---|---|---|---|
| ::/128 | Unspecified Address | RFC 4291 | Não |
| ::1/128 | Loopback Address | RFC 4291 | Não |
| ::ffff:0:0/96 | IPv4-mapped Address | RFC 4291 | Não |
| 64:ff9b::/96 | IPv4-IPv6 Translation (NAT64) | RFC 6052 | Sim |
| 64:ff9b:1::/48 | Local-use IPv4/IPv6 Translation | RFC 8215 | Não |
| 100::/64 | Discard-Only Address Block | RFC 6666 | Não |
| 2001::/32 | TEREDO | RFC 4380 | Não |
| 2001:2::/48 | Benchmarking | RFC 5180 | Não |
| 2001:db8::/32 | Documentation | RFC 3849 | Não |
| 2001:10::/28 | Deprecated (ORCHID) | RFC 4843 | Não |
| 2001:20::/28 | ORCHIDv2 | RFC 7343 | Sim |
| 2002::/16 | 6to4 | RFC 3056 | Não |
| 3fff::/20 | Documentation | RFC 9637 | Não |
| 5f00::/16 | Segment Routing (SRv6) SIDs | RFC 9602 | Não |
| fc00::/7 | Unique-Local | RFC 4193 | Não |
| fe80::/10 | Link-Local Unicast | RFC 4291 | Não |
| ff00::/8 | Multicast | RFC 4291 | Não |
Dual-stack e como o site encontra os dois endereços
Um navegador liga-se por uma família de endereços de cada vez. Quando ambas funcionam, prefere normalmente o IPv6 (Happy Eyeballs, RFC 8305). Para mostrar os dois endereços, o ipaddress.fi faz o seu navegador consultar dois nomes de anfitrião adicionais: um que só tem registo IPv4 (A) e outro que só tem registo IPv6 (AAAA). O que cada um vê é o seu endereço nessa família. Se o pedido IPv6 falhar, a sua ligação não tem IPv6 funcional.
Perguntas frequentes
- Como sei se tenho IPv6?
- Abra a página inicial ou o teste de IPv6 deste site. Se aparecer um endereço IPv6 – como endereço principal ou na linha IPv6 –, a sua ligação suporta IPv6.
- O IPv6 é mais rápido do que o IPv4?
- Não por si só, mas pode sê-lo: o tráfego IPv6 evita muitas vezes o CGNAT do operador, o que elimina um passo e um ponto de estrangulamento que tem de acompanhar cada ligação.
- Continuo a precisar de firewall com IPv6?
- Sim. Sem NAT, os dispositivos têm endereços encaminháveis globalmente; uma firewall com estado que bloqueie o tráfego de entrada indesejado dá a proteção que o NAT dava indiretamente.
- Porque é que o meu endereço IPv6 muda constantemente?
- As extensões de privacidade (RFC 8981) criam identificadores de interface temporários que vão sendo substituídos, para que o endereço não sirva para seguir o seu dispositivo entre redes. O prefixo /64 costuma manter-se.