Calcular sub-redes assusta muita gente que está começando em redes. Parece que é preciso decorar uma tabela cheia de números. Não é. Com dois conceitos simples e um método de “saltos”, você resolve qualquer sub-rede de cabeça e depois confere o resultado em uma ferramenta.
Neste artigo você vai aprender o que a máscara faz, como dividir uma rede em partes iguais e como achar a rede, o primeiro e o último host e o broadcast de qualquer endereço. Todos os exemplos usam a faixa 192.0.2.0/24, que a RFC 5737 reservou justamente para documentação e exemplos.
Se você ainda está começando, vale ler antes O que é IP? Quais as diferenças entre IPv4 e IPv6? e O que são protocolos de rede?.
O problema: dividir uma rede em partes
Imagine que você recebeu a rede 192.0.2.0/24 e precisa separar quatro setores (administrativo, vendas, servidores e visitantes), cada um na sua própria sub-rede. Como dividir? Quantos equipamentos cabem em cada parte?
O que a máscara faz
Todo endereço IPv4 tem 32 bits, escritos em quatro blocos de 8 bits (os octetos). A máscara de sub-rede diz quantos bits, a partir da esquerda, identificam a rede. O resto identifica os equipamentos (hosts) dentro dela.
Em /24, os 24 primeiros bits são da rede e os 8 últimos são dos hosts. A máscara correspondente é 255.255.255.0, que em binário é 11111111.11111111.11111111.00000000. O número depois da barra (/24) é só a contagem dos bits 1 da máscara.
Com 8 bits para hosts, existem 2⁸ = 256 endereços. Dois deles têm função especial: o primeiro é o endereço da rede e o último é o broadcast. Sobram 254 para equipamentos.
Passo 1: quantos bits emprestar
Para criar sub-redes, você “empresta” bits da parte de hosts e os transforma em bits de rede. Cada bit emprestado dobra o número de sub-redes:
1 bit emprestado: 2 sub-redes (/25)
2 bits: 4 sub-redes (/26)
3 bits: 8 sub-redes (/27)
4 bits: 16 sub-redes (/28)
Precisamos de 4 sub-redes, então emprestamos 2 bits e o prefixo vai de /24 para /26.
Passo 2: a nova máscara
Com /26, temos 26 bits de rede. A máscara fica 11111111.11111111.11111111.11000000, ou seja, 255.255.255.192. O último octeto, 11000000, vale 128 + 64 = 192.
Passo 3: o método do salto
Aqui está o truque que dispensa a tabela. O “salto” é o tamanho de cada sub-rede, e se calcula subtraindo de 256 o valor da máscara no último octeto:
salto = 256 - 192 = 64As sub-redes começam de 64 em 64: .0, .64, .128 e .192. O endereço da rede é o início de cada bloco, o broadcast é o último endereço do bloco (o início do próximo menos 1) e os hosts ficam entre os dois.
O resultado para as quatro sub-redes:
192.0.2.0/26: hosts de 192.0.2.1 a 192.0.2.62, broadcast 192.0.2.63
192.0.2.64/26: hosts de 192.0.2.65 a 192.0.2.126, broadcast 192.0.2.127
192.0.2.128/26: hosts de 192.0.2.129 a 192.0.2.190, broadcast 192.0.2.191
192.0.2.192/26: hosts de 192.0.2.193 a 192.0.2.254, broadcast 192.0.2.255
Cada sub-rede tem 64 endereços, dos quais 62 servem para equipamentos (64 menos a rede e o broadcast). Em fórmula, hosts utilizáveis = 2 elevado ao número de bits de host, menos 2. Aqui são 6 bits de host, então 2⁶ − 2 = 62.
Exemplo 2: em qual sub-rede está um endereço
Pergunta clássica de prova: a que rede pertence 192.0.2.77/26? Com salto 64, os blocos começam em 0, 64, 128 e 192. O 77 está entre 64 e 127, então a rede é 192.0.2.64/26, o broadcast é 192.0.2.127 e os hosts vão de .65 a .126.
Confirmando em binário: o último octeto 77 é 01001101. Aplicando a máscara 11000000 com um “E” bit a bit (cada bit só fica 1 se os dois forem 1), sobra 01000000, que é 64.
Exemplo 3: da necessidade de hosts à máscara
Muitas vezes o problema vem ao contrário: “preciso de 30 equipamentos em uma sub-rede”. Some 2 (rede e broadcast) e dá 32. A menor potência de 2 que comporta isso é 2⁵ = 32, então são 5 bits de host e o prefixo é /27 (32 menos 5). A máscara é 255.255.255.224, o salto é 32 e cabem exatamente 30 equipamentos.
Se você precisasse de 31 equipamentos, 31 + 2 = 33 não cabe em 32. Seria preciso passar para /26, com 62 hosts.
Consulta rápida para uma rede /24
Dividindo uma rede /24 em partes iguais:
/25: 2 sub-redes, 126 hosts cada, máscara 255.255.255.128
/26: 4 sub-redes, 62 hosts cada, máscara 255.255.255.192
/27: 8 sub-redes, 30 hosts cada, máscara 255.255.255.224
/28: 16 sub-redes, 14 hosts cada, máscara 255.255.255.240
/29: 32 sub-redes, 6 hosts cada, máscara 255.255.255.248
/30: 64 sub-redes, 2 hosts cada, máscara 255.255.255.252
Erros comuns
Usar o primeiro ou o último endereço do bloco em um equipamento. Eles são a rede e o broadcast, não hosts.
Contar 2 elevado a n sem subtrair 2. O resultado correto é 62, não 64.
Esquecer os casos especiais. Um /31 tem 2 endereços e é aceito em enlaces ponto a ponto (RFC 3021), sem rede e sem broadcast. Um /32 é um único endereço.
Começar um bloco fora de lugar. Um bloco /26 sempre começa em múltiplo de 64: .0, .64, .128 ou .192.
Misturar tamanhos sem planejar. Quando as sub-redes têm tamanhos diferentes, aloque primeiro as maiores. Essa técnica se chama VLSM (máscaras de tamanho variável).
Confira o seu cálculo
Depois de calcular de cabeça, confira em duas ferramentas gratuitas da EDCA: a calculadora de sub-redes IPv4, que divide a rede, mostra o resultado em binário e gera um link para compartilhar o cálculo, e o conversor CIDR, que converte /26 em 255.255.255.192 e mostra wildcard, binário e hosts utilizáveis.
Resumindo
A máscara separa os bits de rede dos bits de host.
Cada bit emprestado dobra o número de sub-redes e divide os hosts por dois.
O salto (256 menos o octeto da máscara) mostra onde cada sub-rede começa.
Hosts utilizáveis = 2 elevado ao número de bits de host, menos 2.
Quer praticar com exercícios?
No curso Cálculo de Sub-Redes e Endereçamento IPv4: Teoria e Prática você resolve exemplos como estes passo a passo, com técnicas para calcular redes, endereços e máscaras.