Como funcionam as sub-redes IPv6

Um endereço IPv6 tem 128 bits, escritos como oito grupos de quatro dígitos hexadecimais. Os zeros à esquerda de cada grupo podem ser omitidos, e uma única sequência de grupos zerados pode ser trocada por ::. Assim, 2001:0db8:0000:0000:0000:ff00:0042:8329 vira 2001:db8::ff00:42:8329, a forma recomendada pela RFC 5952.

O prefixo diz quantos bits iniciais identificam a rede. Redes locais usam quase sempre /64, porque a autoconfiguração SLAAC precisa de 64 bits para o host; uma empresa ou unidade costuma receber um /48, que contém 65.536 sub-redes /64, e uma conexão residencial um /56, com 256 sub-redes.

No IPv6 não há endereços de rede e de broadcast a descartar como no IPv4: todos os endereços do bloco são utilizáveis e o broadcast é substituído pelo multicast. Os números ficam enormes, 2⁶⁴ endereços num único /64, e por isso o planejamento é feito por sub-redes, não por hosts.

Erros comuns

  • Usar :: duas vezes no mesmo endereço: ficaria ambíguo quantos grupos de zeros cada um representa.
  • Dividir uma LAN em sub-redes menores que /64: o SLAAC e muitas funções do IPv6 deixam de funcionar.
  • Calcular sub-redes em decimal: os limites caem nos dígitos hexadecimais, cada um vale 4 bits.

Perguntas frequentes

Quantos endereços tem um /64?

2⁶⁴, ou seja, 18.446.744.073.709.551.616: mais que todo o espaço IPv4 elevado ao quadrado.

O que é a zona ip6.arpa?

É o domínio da resolução reversa, de endereço para nome: os 32 dígitos hexadecimais do endereço são escritos ao contrário, separados por pontos, seguidos de ip6.arpa.

Como se escreve um endereço IPv6 numa URL?

Entre colchetes, para não confundir os dois-pontos com a porta: http://[2001:db8::1]:8080/.

Como funciona este cálculo

O endereço é lido como inteiro de 128 bits (expandindo :: com os grupos de zeros que faltam e convertendo uma eventual cauda IPv4 em dois grupos). Máscara = 128 − prefixo bits zerados no final; rede = endereço AND máscara; último endereço = rede OR NOT máscara; endereços = 2^(128 − prefixo). Há 2^(n − prefixo) sub-redes /n, cada uma com 2^(128 − n) endereços. A forma comprimida segue a RFC 5952: minúsculas, sem zeros à esquerda e :: sobre a maior sequência de pelo menos dois grupos zerados.