Seu navegador não oferece leitura em voz alta. Você pode ler o guia normalmente.
O IPv6 aparece nas provas de Informática de duas formas: a questão teórica (quantos bits, que tipos de endereço existem, o que aconteceu com o broadcast) e a questão prática de reescrever um endereço de forma abreviada. A segunda é puro treino de regras, e quase todo erro vem de abreviar com excesso de zelo. Este guia usa como fontes o RFC 4291 (arquitetura de endereçamento IPv6) e o RFC 5952 (recomendação de representação em texto), ambos lidos em texto integral. Não há lei sobre o tema: a referência é a documentação aberta do IETF.
Estrutura do endereço
O endereço IPv6 tem 128 bits, escritos como oito blocos de 16 bits, cada um com um a quatro dígitos hexadecimais, separados por dois-pontos. A forma preferida do RFC 4291 é x:x:x:x:x:x:x:x. Comparação rápida: o IPv4 tem 32 bits, escritos em quatro octetos decimais. A diferença de largura é o motivo central do IPv6: muito mais endereços possíveis. Para o IPv4, veja endereçamento IPv4, máscara e CIDR.
As regras de abreviação
O RFC 4291 permite dois atalhos: omitir zeros à esquerda de cada bloco e usar “::” para representar um ou mais blocos de zeros seguidos. O RFC 5952 acrescenta as regras da forma recomendada:
- Zeros à esquerda são suprimidos. O bloco 0001 vira 1. Um bloco inteiro 0000 é escrito 0.
- “::” só pode aparecer uma vez, pois se aparecesse duas vezes não se saberia quantos blocos cada uma representa.
- “::” deve ser usado ao máximo: se há uma sequência de blocos zerados que pode ser comprimida, deve-se comprimir.
- “::” não deve abreviar um único bloco 0000. Nesse caso, escreve-se 0.
- Se há mais de uma sequência de zeros, comprime-se a mais longa. Se houver empate, comprime-se a primeira.
- Letras em minúsculas na forma recomendada.
O RFC 5952 ainda esclarece que implementações devem aceitar qualquer formato legítimo do RFC 4291; as regras acima orientam como gerar texto.
Exercícios resolvidos
Exercício 1
Abrevie 2a01:0db8:0000:0000:0000:0000:0002:0001.
- Retire zeros à esquerda: 2a01:db8:0:0:0:0:2:1.
- Há quatro blocos zerados seguidos; substitua por “::”.
- Resposta: 2a01:db8::2:1.
Exercício 2
Abrevie 2a01:0DB8:0000:0001:0000:0000:0000:0001.
- Sem zeros à esquerda e em minúsculas: 2a01:db8:0:1:0:0:0:1.
- Há duas sequências de zeros: um bloco (o terceiro) e três blocos (do quinto ao sétimo). A mais longa é a segunda.
- Resposta: 2a01:db8:0:1::1.
Exercício 3
Abrevie 2a01:db8:0:0:1:0:0:1.
- Há duas sequências de zeros, ambas com dois blocos. É empate.
- A regra manda comprimir a primeira.
- Resposta: 2a01:db8::1:0:0:1.
Exercício 4
O endereço 2a01:db8:0:1:1:1:1:1 pode ser escrito como 2a01:db8::1:1:1:1:1?
Não: o “::” não deve abreviar um único bloco de zeros. A forma correta é a que já está escrita.
Exercício 5
Expanda fe80::2aa:ff:fe28:9c5a para a forma completa.
- Conte os blocos escritos: fe80, 2aa, ff, fe28 e 9c5a, ou seja, 5 blocos.
- Oito menos cinco dá 3: o “::” substitui três blocos de zeros.
- Insira os zeros e recomponha os quatro dígitos de cada bloco: fe80:0000:0000:0000:02aa:00ff:fe28:9c5a.
Esse é o procedimento padrão: oito menos os blocos escritos é o número de blocos que o “::” substitui.
Prefixos
O prefixo é escrito como endereço/comprimento, em que o comprimento é o número de bits mais à esquerda que formam o prefixo, parecido com o CIDR do IPv4. O RFC 4291 traz um exemplo instrutivo, adaptado aqui com outro valor no primeiro bloco: o prefixo de 60 bits 2a01:db8:0:cd30::/60 pode ser escrito como 2a01:0DB8:0000:CD30:0000:0000:0000:0000/60. Não é válido escrever 2a01:0DB8:0:CD3/60, porque se podem suprimir zeros à esquerda de um bloco, mas não à direita.
Um uso prático: um bloco /48 pode ser dividido em sub-redes /64. Como 64 − 48 = 16, cabem 2^16 = 65.536 sub-redes /64.
Tipos de endereço
O RFC 4291 define três tipos de comunicação:
| Tipo | Significado |
|---|---|
| Unicast | Identifica uma única interface |
| Anycast | Identifica um conjunto de interfaces; o pacote vai à mais próxima, segundo o roteamento |
| Multicast | Identifica um conjunto de interfaces; o pacote vai a todas elas |
Não existe broadcast no IPv6; a função dele foi substituída pelo multicast. Esse é um dos itens mais cobrados.
Alguns endereços especiais e prefixos, conforme a tabela do RFC:
| Tipo | Representação |
|---|---|
| Não especificado | ::/128 |
| Loopback | ::1/128 |
| Multicast | ff00::/8 |
| Unicast de enlace local (link-local) | fe80::/10 |
Os endereços anycast saem do espaço de unicast e não se distinguem deles pela sintaxe.
Pegadinhas
- Usar “::” duas vezes no mesmo endereço (inválido).
- Dizer que o IPv6 tem broadcast.
- Confundir loopback (::1) com endereço não especificado (::).
- Contar 4 grupos de 4 bits e achar que são 128: o correto é 8 blocos de 16 bits.
- Escrever 2a01:db8::1:1:1:1:1 como forma recomendada de 2a01:db8:0:1:1:1:1:1.
Próximos passos
Veja VLSM e sumarização, DNS, DHCP e NAT e OSI e TCP/IP.
Fontes e atualização
Sem norma jurídica sobre o tema. Fontes técnicas lidas: RFC 4291 (seções 2.2 a 2.4) e RFC 5952 (seção 4), do IETF. Exercícios conferidos por programa. Confira o edital e veja a metodologia do site.