Como Calcular uma Máscara de Sub-rede (CIDR Explicado com Exemplo Prático)
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 1 | Octeto 2 | Octeto 3 | Octeto 4 | |
|---|---|---|---|---|
| Endereço IP | 11000000 | 10101000 | 00000001 | 00000000 |
| Máscara de sub-rede | 11111111 | 11111111 | 11111111 | 00000000 |
| Rede (AND) | 11000000 | 10101000 | 00000001 | 00000000 |
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-rede | Endereço de rede | Faixa utilizável | Broadcast |
|---|---|---|---|
| 1 | 192.168.1.0/26 | 192.168.1.1 – 192.168.1.62 | 192.168.1.63 |
| 2 | 192.168.1.64/26 | 192.168.1.65 – 192.168.1.126 | 192.168.1.127 |
| 3 | 192.168.1.128/26 | 192.168.1.129 – 192.168.1.190 | 192.168.1.191 |
| 4 | 192.168.1.192/26 | 192.168.1.193 – 192.168.1.254 | 192.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:
| CIDR | Máscara de sub-rede | Endereços totais | Hosts utilizáveis |
|---|---|---|---|
| /8 | 255.0.0.0 | 16.777.216 | 16.777.214 |
| /16 | 255.255.0.0 | 65.536 | 65.534 |
| /24 | 255.255.255.0 | 256 | 254 |
| /25 | 255.255.255.128 | 128 | 126 |
| /26 | 255.255.255.192 | 64 | 62 |
| /27 | 255.255.255.224 | 32 | 30 |
| /28 | 255.255.255.240 | 16 | 14 |
| /29 | 255.255.255.248 | 8 | 6 |
| /30 | 255.255.255.252 | 4 | 2 |
| /31 | 255.255.255.254 | 2 | 2 (ponto a ponto) |
| /32 | 255.255.255.255 | 1 | 1 (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.
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.