Engenharia de redes para provedores de todo o Brasil e empresas de Santa Catarina.Engenharia de redes para provedores e empresas

Guia explicativo · Cálculo IPv6

IPv6: como calcular sub-redes e prefixos, explicado para provedores

IPv6 como calcular: subtraia o tamanho do prefixo atual do tamanho que você quer e eleve 2 a esse resultado, que é o número de sub-redes. Para escrever cada uma, ache o dígito hexadecimal onde o corte cai e some de um em um nesse dígito.

Resumo

  • O número de sub-redes é 2 elevado à diferença entre os dois prefixos, como 2⁸ = 256 de /48 para /56.
  • Cada dígito hexadecimal vale 4 bits, e a posição do corte é o tamanho do prefixo dividido por 4.
  • Cortes fora de múltiplos de 4 pedem a conta em binário só no dígito dividido.
  • A conta errada aparece como pool sobreposto, rota que engole o POP vizinho e filtro de borda furado.

IPv6 como calcular: a regra dos bits que sobram

Toda conta de sub-rede IPv6 parte da mesma regra: quantos bits separam o prefixo que você tem do prefixo que você quer distribuir. Com esse número na mão, quantidade, tamanho e posição de cada sub-rede saem de cabeça.

Calcular IPv6 é mais fácil do que parece, porque não existe máscara decimal nem conta de hosts por rede. A pergunta é sempre a mesma: cabem quantos pedaços de tamanho B dentro de um bloco de tamanho A? A resposta é 2 elevado a B menos A.

Contas de sub-rede IPv6 que mais aparecem no dia a dia de um provedor
Você temQuer distribuirBits de diferençaQuantidade
/32 do Registro.br/40 por POP8256
/40 de um POP/44 por concentrador416
/44 de um concentrador/56 por assinante124.096
/48 de um cliente empresarial/64 por VLAN1665.536
/56 da casa/64 por rede interna8256
/60 de um piloto/64 por rede416

Essas contas são a matéria-prima do plano de endereçamento IPv6, que decide quantos bits vão para região, POP e assinante. O papel de cada tamanho de prefixo na rede está explicado no guia de como funciona o endereçamento IPv6; aqui o foco é a conta.

E a quantidade de endereços, entra na conta?

Quase nunca. Uma rede /64 tem 2⁶⁴ endereços, cerca de 18,4 quintilhões, e nenhuma casa chega perto disso. No IPv6 se conta rede, não endereço.

Por isso a pergunta "quantos IPs eu preciso" do IPv4 vira "quantas redes cada nível precisa" no IPv6. Quem dimensiona pelo número de aparelhos acaba entregando prefixos pequenos demais.

Como calcular sub-redes IPv6 nos limites de 4 bits

Quando o novo prefixo é múltiplo de 4, cada sub-rede muda um dígito inteiro do endereço. Divida o prefixo por 4 para achar a posição do dígito e conte em hexadecimal de 0 a f.

  1. Expanda o endereço: escreva os grupos com os quatro dígitos, como 2001:0db8:3000:0000, para não errar a posição.
  2. Ache o dígito: um /40 termina no décimo dígito, porque 40 dividido por 4 dá 10.
  3. Conte a diferença: de /36 para /40 são 4 bits, ou seja, um dígito só, que vai de 0 a f.
  4. Liste as sub-redes: troque esse dígito por 0, 1, 2 e assim até f, mantendo o começo igual.
  5. Abrevie no fim: só depois de listar, tire os zeros à esquerda e use o :: onde couber.

Aplicando ao bloco 2001:db8:3000::/36, que no exemplo é a região 3 do provedor, o décimo dígito é o primeiro depois do 3. As 16 sub-redes /40 ficam assim:

Sub-redes /40 dentro de 2001:db8:3000::/36, prefixo de documentação
bloco da região   2001:db8:3000::/36
dígito que muda   2001:0db8:3X00::  (X = décimo dígito)

POP 0             2001:db8:3000::/40
POP 1             2001:db8:3100::/40
POP 2             2001:db8:3200::/40
...
POP 15            2001:db8:3f00::/40

O mesmo raciocínio vale em qualquer nível. Para tirar /44 do POP 2001:db8:3200::/40, o dígito que muda é o décimo primeiro, e as sub-redes são 2001:db8:3200::/44, 2001:db8:3210::/44, até 2001:db8:32f0::/44.

E quando o corte não cai num dígito inteiro?

Aí o dígito do corte é dividido entre a rede e o resto, e só esse dígito precisa ser lido em binário. O salto entre uma sub-rede e a próxima passa a ser 2, 4 ou 8 nesse dígito, em vez de 1.

Pense num /34 dentro do 2001:db8::/32. São 2 bits de diferença, então 4 sub-redes, mas os 2 bits ocupam só a metade de cima do nono dígito. Esse dígito anda de 4 em 4: 0, 4, 8 e c.

Salto do dígito hexadecimal conforme quantos bits do dígito ficam com a rede
Bits do dígito na redeExemplo de prefixoSalto no dígitoValores possíveis
1/33 ou /3780 e 8
2/34 ou /3840, 4, 8 e c
3/35 ou /3920, 2, 4, 6, 8, a, c e e
4/36 ou /401De 0 a f

Com o salto na mão, a lista sai sem conversão: o /34 vira 2001:db8::/34, 2001:db8:4000::/34, 2001:db8:8000::/34 e 2001:db8:c000::/34. Um /38, que corta o décimo dígito em 2 bits, vira 2001:db8::/38, 2001:db8:400::/38, 2001:db8:800::/38, e assim por diante.

Prefere receber o bloco já calculado?

No plano de endereçamento IPv6, um Especialista faz todas as contas do seu /32, escolhe cortes que a equipe lê de cabeça e entrega cada faixa listada.

Pedir proposta do plano de endereçamento IPv6

Hexadecimal para binário, só o dígito que importa

Cada dígito hexadecimal corresponde a quatro dígitos binários: 0 é 0000, 4 é 0100, 8 é 1000 e c é 1100. Num /34, os dois primeiros bits do nono dígito são da rede, e os dois últimos já pertencem a quem recebe a sub-rede.

É por isso que 2001:db8:5000::/34 não é uma sub-rede válida: o 5, em binário 0101, tem um bit ligado na parte que deveria estar zerada. O equipamento ou aceita e corrige sem avisar, ou recusa a configuração.

Como achar a sub-rede de número N

Converta N para hexadecimal e escreva o resultado nos dígitos reservados para aquele nível, completando com zeros à esquerda. O caminho inverso, do prefixo para o número, é a mesma conta ao contrário.

Exemplo de concentrador: o pool é 2001:db8:4a00::/44 e entrega /56. Entre /44 e /56 há 12 bits, ou seja, três dígitos hexadecimais, do décimo segundo ao décimo quarto. A sub-rede de número 300, contando a partir do zero, sai assim:

  1. Converta: 300 em decimal é 12c em hexadecimal.
  2. Complete: são três dígitos reservados, e 12c já tem três; o número 27 viraria 01b.
  3. Encaixe: o décimo segundo dígito é o último do terceiro grupo, então o 1 vai para 4a01 e o 2c abre o quarto grupo.
  4. Resultado: o assinante 300 do pool recebe 2001:db8:4a01:2c00::/56.
  5. Limite: a última sub-rede do pool, de número 4.095, é 2001:db8:4a0f:ff00::/56.

Para conferir sem depender da conta manual, a biblioteca ipaddress do Python, que vem com a linguagem, faz o mesmo cálculo em uma linha. Ela ajuda a revisar uma planilha inteira antes de a faixa ir para o concentrador.

Conferência da sub-rede de número N com Python 3 e prefixos de documentação
python3 -c "
import ipaddress as ip
pool = ip.ip_network('2001:db8:4a00::/44')
n = 300
print(list(pool.subnets(new_prefix=56))[n])
print(pool[-1])
"
# saída esperada:
# 2001:db8:4a01:2c00::/56
# 2001:db8:4a0f:ffff:ffff:ffff:ffff:ffff

Exemplo: a conta de um provedor com três cidades

Um provedor com o /32 2001:db8::/32 atende três cidades, a maior com dois concentradores e cerca de cinco mil assinantes. O fluxo mostra como a conta desce de nível em nível.

Cálculo do bloco de um provedor com três cidades, do /32 ao prefixo do assinante
  1. /32 → /36

    Uma faixa por cidade

    4 bits dão 16 cidades; usa 2001:db8:1000::/36, 2001:db8:2000::/36 e 2001:db8:3000::/36.

  2. /36 → /40

    Uma faixa por POP

    Mais 4 bits, até 16 POPs por cidade. O POP central da cidade 1 fica com 2001:db8:1000::/40.

  3. /40 → /44

    Um pool por concentrador

    Cada /44 comporta 4.096 assinantes, então a cidade com cinco mil usa dois pools.

  4. /44 → /56

    Um prefixo por login

    O assinante 27 do primeiro pool recebe 2001:db8:1000:1b00::/56, fixo no RADIUS.

Sobra espaço em todos os níveis: 13 cidades, 15 POPs por cidade e pools vazios ao lado, sem tocar no que já foi entregue.

Quando a conta errada vira problema na rede?

A conta errada não dá erro na hora da configuração: ela aparece semanas depois, quando dois pools se sobrepõem ou uma rota resumida passa a cobrir o POP vizinho. Por isso vale revisar cada faixa antes de aplicar.

  • Pool sobreposto: dois concentradores entregam o mesmo /56, e dois assinantes disputam o prefixo de forma intermitente.
  • Resumo largo demais: um POP anuncia um /36 quando deveria anunciar um /40, e atrai tráfego que é da cidade vizinha.
  • Filtro de borda errado: a prefix-list aceita um tamanho a mais ou a menos, e o bloco sai incompleto ou vaza mais específico.
  • Prefixo inválido: um /38 escrito com bit ligado na parte zerada é corrigido em silêncio pelo equipamento, e a faixa real fica diferente da planilha.

O filtro de borda é o ponto onde o erro sai da sua rede e chega à dos outros. O guia de configuração de prefix-lists mostra como escrever o filtro com os tamanhos certos.

Erros comuns ao calcular IPv6

Os erros abaixo aparecem até em equipes experientes, porque vêm do hábito de calcular em IPv4.

Evite

  • Contar a partir do 1: a primeira sub-rede é a de número zero, e a lista inteira fica deslocada em uma posição.
  • Calcular com o endereço abreviado: sem expandir os grupos, o dígito do corte é contado na posição errada.
  • Confundir dígito com bit: de /44 para /56 são 12 bits, que equivalem a três dígitos, e não a doze.
  • Planilha sem conferência: uma faixa digitada errado só aparece quando o primeiro assinante reclama.

Quando vale pedir a conta a um Especialista?

Vale quando o bloco ainda não tem divisão, quando a rede vai receber cidades novas ou quando o IPv6 foi ligado sem plano e os pools já se cruzam. A Táquion Tech calcula a divisão do bloco e entrega cada faixa conferida, antes de qualquer configuração em produção.

Com as faixas prontas, a entrega ao assinante segue o guia de DHCPv6 com prefix delegation, que amarra o prefixo calculado a cada login.

Perguntas frequentes

Quantos /56 cabem dentro de um /48?

Cabem 256, porque a diferença é de 8 bits e 2⁸ é 256. Isso significa que um cliente empresarial com /48 tem espaço equivalente ao de 256 casas com /56.

Existe calculadora de IPv6 confiável para usar?

Existem várias, inclusive ferramentas de linha de comando e a biblioteca ipaddress do Python. Use a calculadora para conferir, mas entenda a conta, porque é ela que mostra quando uma faixa da planilha está errada.

Como converter hexadecimal em binário de cabeça?

Decore os valores dos quatro bits de cada dígito: 8, 4, 2 e 1. O dígito a vale 10, ou 8 mais 2, que em binário é 1010; o c vale 12, ou 8 mais 4, que é 1100.

Por que a conta de sub-rede do IPv4 não serve no IPv6?

Porque no IPv4 se calcula quantos hosts cabem e se desconta rede e broadcast. No IPv6 a rede comum é sempre /64, não há broadcast, e a conta passa a ser só de quantas redes cada nível recebe.

Qual o primeiro e o último endereço de um prefixo IPv6?

O primeiro tem todos os bits depois do prefixo zerados, e o último tem todos esses bits ligados. No pool 2001:db8:4a00::/44, vão de 2001:db8:4a00:: até 2001:db8:4a0f:ffff:ffff:ffff:ffff:ffff.

Thiago Manoel

Responsável técnico da Táquion Tech · Registro profissional [PREENCHER]

Mais de 15 anos em operações de rede, com gestão de infraestruturas de TI, administração de data centers e condução de equipes em migrações de TI e telecomunicações, com foco em alta disponibilidade e segurança.

A Táquion Tech é uma empresa de engenharia de redes de Balneário Camboriú (SC) que projeta, opera e dá suporte a redes de provedores de internet e de empresas.

Conheça a equipe da Táquion Tech

Fontes

  1. RFC 5952, A Recommendation for IPv6 Address Text Representation: como abreviar o endereço depois de calcular, com zeros à esquerda e o uso do ::
  2. RFC 6177, IPv6 Address Assignment to End Sites: orientação sobre o tamanho do prefixo entregue a cada cliente final
  3. ipaddress, biblioteca padrão do Python: módulo usado no exemplo para listar sub-redes e conferir a sub-rede de número N

Leia também sobre o assunto

Outros guias que costumam ajudar no mesmo tipo de problema.

  • IPv6 e CGNAT

    Como funciona o endereçamento IPv6: passo a passo para provedores

    Como funciona o endereçamento IPv6: cada endereço tem 128 bits divididos em prefixo de rede e identificador do aparelho, e o tamanho do prefixo, escrito depois da barra, diz de que nível da rede se está falando. No provedor, o /32 é o bloco inteiro, o /56 é a casa do assinante e o /64 é cada rede dentro dela.

    11 min de leitura

  • IPv6 e CGNAT

    Implantação de DHCPv6 com prefix delegation: guia prático para provedores

    Implantação de DHCPv6 com prefix delegation: é configurar o concentrador para entregar a cada assinante um bloco IPv6 próprio, quase sempre um /56, que o roteador da casa divide em redes /64. O bloco sai de um pool local ou do servidor de autenticação, e o provedor guarda qual bloco ficou com qual cliente.

    10 min de leitura

  • BGP e roteamento

    Configuração de prefix-lists: guia prático para provedores

    Configuração de prefix-lists: é definir quais prefixos o provedor anuncia e quais aceita em cada sessão BGP. O mínimo é filtrar a saída para anunciar só os seus blocos e os dos clientes, e filtrar a entrada para recusar prefixos reservados, longos demais ou que não pertencem a quem anuncia.

    10 min de leitura

Receba o seu bloco IPv6 já calculado e conferido

Um Especialista faz a divisão do seu /32 por cidade, POP e concentrador, confere cada faixa e entrega a planilha pronta para a equipe aplicar.

Falar com o André Comercial, no WhatsApp

Fale com a Táquion Tech

Quer um Especialista olhando a sua rede?

Deixe seus dados e um Especialista chama você no WhatsApp para entender o caso.

Um Especialista responde em até 45 minutos.

Pedido recebido. Protótipo: no site final, a pessoa vai para a página de obrigado e o pedido chega no WhatsApp ou e-mail da Táquion Tech.
Foto de Thiago Manoel
Thiago ManoelResponsável técnico