Desenvolvedores

Como Calcular uma Máscara de Sub-rede (CIDR Explicado com Exemplo Prático)

8 min de leitura

Para calcular uma máscara de sub-rede a partir de um prefixo CIDR, basta marcar essa quantidade de bits como 1 a partir da esquerda de um número de 32 bits, preencher o restante com 0 e depois ler cada grupo de 8 bits de volta como um número decimal. Um prefixo /24 fixa os primeiros 24 bits em 1, o que converte para 255.255.255.0.

O que o número do CIDR realmente significa

Um endereço IPv4 tem 32 bits, escritos como quatro grupos de 8 bits (octetos) em decimal. A notação CIDR, aquela barra seguida de um número depois do endereço, como em 192.168.1.0/24, informa quantos desses 32 bits estão fixados como a porção de rede. Os bits que sobram pertencem aos hosts daquela rede.

Um /24 fixa os primeiros 24 bits, deixando 8 bits para hosts. Um /26 fixa 26 bits, deixando apenas 6. Quanto menos bits sobram para hosts, menos dispositivos aquela rede comporta, e a matemática por trás disso é uma potência de dois direta: uma rede com h bits de host tem 2^h endereços no total.

Calculando a máscara na mão: 192.168.1.0/24

Pegue o prefixo CIDR, 24, e escreva um número de 32 bits com os primeiros 24 bits em 1 e os últimos 8 em 0:

11111111.11111111.11111111.00000000

Converta cada grupo de 8 bits para decimal. Oito 1s seguidos dão 255, e oito 0s dão 0:

255 . 255 . 255 . 0

Essa é a máscara de sub-rede: 255.255.255.0. Para obter o endereço de rede, alinhe o endereço IP e a máscara em binário e aplique um AND bit a bit, mantendo 1 apenas onde os dois valores têm 1:

Octeto 1Octeto 2Octeto 3Octeto 4
Endereço IP11000000101010000000000100000000
Máscara de sub-rede11111111111111111111111100000000
Rede (AND)11000000101010000000000100000000

Isso dá um endereço de rede 192.168.1.0, igual ao original neste caso porque a porção de host do endereço já era toda zeros. O endereço de broadcast é a operação oposta: pega o endereço de rede e marca todos os bits de host como 1, o que aqui resulta em 192.168.1.255. Tudo o que fica entre eles, de 192.168.1.1 até 192.168.1.254, é um endereço de host utilizável. São 256 endereços no total daquele bloco, menos 2 reservados (o endereço de rede e o de broadcast), o que dá 254 hosts utilizáveis.

Dividindo um /24 em quatro sub-redes /26

Digamos que você tem 192.168.1.0/24 e precisa dividi-lo em quatro redes menores e separadas, talvez uma para cada andar de um escritório. Ir de /24 para /26 toma emprestados 2 bits extras para a porção de rede (26 − 24 = 2), e 2 bits emprestados sempre produzem 2^2 = 4 sub-redes iguais. Cada sub-rede /26 sobra com 32 − 26 = 6 bits de host, então cada uma comporta 2^6 = 64 endereços no total, sendo 62 utilizáveis.

Sub-redeEndereço de redeFaixa utilizávelBroadcast
1192.168.1.0/26192.168.1.1192.168.1.62192.168.1.63
2192.168.1.64/26192.168.1.65192.168.1.126192.168.1.127
3192.168.1.128/26192.168.1.129192.168.1.190192.168.1.191
4192.168.1.192/26192.168.1.193192.168.1.254192.168.1.255

Repare que cada endereço de rede salta 64, o tamanho do bloco, e o broadcast de cada sub-rede é exatamente um a menos que o endereço de rede da seguinte. Esse padrão vale para qualquer prefixo que você esteja dividindo: o tamanho do bloco é sempre 2^h, onde h é o número de bits de host que sobram, e as sub-redes preenchem o espaço de endereços sem buracos e sem sobreposição.

Tabela de referência: CIDR para máscara de sub-rede

Um resumo dos prefixos que você realmente vai encontrar no dia a dia, de uma rota de host único /32 até um bloco /8:

CIDRMáscara de sub-redeEndereços totaisHosts utilizáveis
/8255.0.0.016.777.21616.777.214
/16255.255.0.065.53665.534
/24255.255.255.0256254
/25255.255.255.128128126
/26255.255.255.1926462
/27255.255.255.2243230
/28255.255.255.2401614
/29255.255.255.24886
/30255.255.255.25242
/31255.255.255.25422 (ponto a ponto)
/32255.255.255.25511 (rota de host)

Calcule com o seu próprio endereço

Digite qualquer endereço IPv4 e o prefixo CIDR ou máscara abaixo, e o detalhamento (endereço de rede, broadcast, faixa utilizável e a máscara em binário) atualiza em tempo real conforme você digita.

Calculadora de Sub-rede IPv4 (CIDR)
Grátis, sem cadastro, funciona em qualquer dispositivo.
Abrir a ferramenta completa

Erros comuns e casos especiais

Esquecer que o endereço de rede e o de broadcast não são hosts utilizáveis. Um /24 tem 256 endereços no total, mas apenas 254 podem de fato ser atribuídos a um dispositivo. É um erro clássico de contagem planejar a capacidade pelo total de endereços em vez do total utilizável, e depois ficar sem espaço dois endereços antes do esperado.

Tratar /31 e /32 como qualquer outro prefixo. A RFC 3021 trata o /31 como caso especial para links ponto a ponto: os dois endereços do par são utilizáveis, já que não há espaço num bloco de 2 endereços para reservar um para broadcast. Já o /32 é um único endereço isolado, mais comum como rota de host ou endereço de loopback, e não tem endereço de rede nem de broadcast para subtrair.

Confundir a máscara de sub-rede com a wildcard mask. A máscara de sub-rede marca os bits de rede com 1, 255.255.255.0 para um /24. A wildcard mask é o inverso bit a bit dela, marcando os bits de host com 1, 0.0.0.255 para esse mesmo /24. Wildcard masks aparecem em listas de controle de acesso (ACLs) em equipamentos Cisco e similares, e digitar uma máscara de sub-rede onde o dispositivo espera uma wildcard mask (ou o contrário) faz com que ele combine silenciosamente o conjunto errado de endereços.

Presumir que toda máscara de sub-rede é uma sequência contígua de 1s. Uma máscara como 255.0.255.0 parece plausível à primeira vista, mas não é válida: os bits 1 não formam um bloco único e contínuo a partir da esquerda, então ela não pode ser expressa como prefixo CIDR de jeito nenhum. Máscaras de sub-rede válidas são sempre um número de bits 1 à esquerda seguido de bits 0, nada além disso.

Perguntas frequentes

Como converter uma máscara de sub-rede de volta para prefixo CIDR? Conte o número de bits 1 na máscara, lendo da esquerda para a direita em binário. 255.255.255.0 é 11111111.11111111.11111111.00000000, que tem 24 uns, então é um /24. Isso só funciona de forma limpa quando a máscara é uma sequência contígua válida de 1s seguida de 0s; uma máscara como 255.0.255.0 não tem equivalente em CIDR porque seus bits não são contíguos.

Por que emprestar bits para sub-redes sempre resulta numa potência de dois? Cada bit emprestado da porção de host dobra a quantidade de valores possíveis que aquele bit pode representar, 0 ou 1. Emprestar 1 bit dá 2 sub-redes, emprestar 2 dá 4, emprestar 3 dá 8. É a mesma razão pela qual um byte (8 bits) consegue representar 256 valores distintos: cada bit extra dobra a contagem.

Qual a diferença entre máscara de sub-rede e gateway padrão? A máscara de sub-rede diz a um dispositivo qual parte de um endereço IP é a rede e qual parte é o host, permitindo que ele descubra se outro endereço está na mesma rede local. O gateway padrão é uma configuração separada, o endereço IP do roteador para onde o dispositivo envia o tráfego quando o destino não está na rede local. Os dois precisam estar configurados corretamente para que um dispositivo alcance qualquer coisa fora da própria sub-rede.

Dá para dividir usando um prefixo que não fecha em partes iguais, tipo separar um /24 em 3 redes? Não em exatamente 3 partes iguais, porque dividir sub-redes sempre gera uma potência de dois. Dividir um /24 dá 2, 4, 8, 16 e assim por diante, nunca 3. Na prática isso significa dividir em 4 (emprestando 2 bits) e deixar um dos /26 sem uso ou subdividi-lo ainda mais para um departamento menor, em vez de tentar forçar uma divisão exata em 3.

Sub-redesCIDRIPv4Redes
Calculadora de Sub-rede IPv4 (CIDR)
Agora experimente você mesmo na ferramenta completa.
Experimentar agora