O que o prefixo CIDR significa
CIDR (Classless Inter-Domain Routing) descreve, com um único número após a barra, quantos bits do endereço pertencem à rede. Um endereço IPv4 tem 32 bits no total. Um /24 reserva os 24 primeiros bits para a rede e deixa os 8 últimos para os hosts; um /26 reserva 26 e deixa 6. A palavra classless é o coração da ideia: antes do CIDR, o tamanho da rede era ditado pelo primeiro octeto (as classes A, B e C); com o CIDR, você escolhe o ponto de corte livremente, bit a bit. É isso que "sem classe" quer dizer.
A partir do prefixo, e só dele, a calculadora deriva todos os campos que você vê. Cada um tem um significado preciso:
- Endereço de rede
- O primeiro endereço do bloco (todos os bits de host em 0). Identifica a sub-rede e não é atribuído a nenhum host.
- Broadcast
- O último endereço (todos os bits de host em 1). Envia para todos os hosts da sub-rede de uma vez, existe só em IPv4.
- Máscara
- A forma decimal do prefixo: n bits em 1 seguidos de 32 − n bits em 0. Um /24 é 255.255.255.0.
- Wildcard
- O inverso da máscara (troca cada 0 por 1 e vice-versa). É o que marca os bits de host, útil em ACLs e para achar o broadcast.
- Faixa de hosts
- Do primeiro ao último endereço utilizável, entre a rede e o broadcast.
A máscara é uma operação binária, não uma tabela
Aqui está o que a maioria dos tutoriais esconde atrás da tabela decorada. Para achar o endereço de rede, o dispositivo faz um E lógico (AND), bit a bit, entre o endereço e a máscara. A regra do AND é simples: o resultado só é 1 quando os dois bits são 1. Onde a máscara tem 1 (bits de rede), o bit do IP passa intacto; onde a máscara tem 0 (bits de host), o resultado é sempre 0. É por isso que o endereço de rede tem todos os bits de host zerados, não por convenção, mas porque o AND os apaga. Veja com 192.168.10.77/26:
IP 192.168.10.77 11000000.10101000.00001010.01001101
AND
máscara /26 11111111.11111111.11111111.11000000 (255.255.255.192)
mask /26
= ------------------------------------------------------------
rede 192.168.10.64 11000000.10101000.00001010.01000000
network
// Só o último octeto muda: 01001101 (77) AND 11000000 = 01000000 (64).
// Only the last octet changes: 01001101 (77) AND 11000000 = 01000000 (64).O broadcast segue o mesmo raciocínio, invertido: faça o OU lógico (OR) entre a rede e o wildcard (a máscara invertida). Onde o wildcard tem 1, o bit vira 1; o resultado enche todos os bits de host com 1. Para o nosso exemplo, 192.168.10.64 OR 0.0.0.63 dá 192.168.10.127. Todo o resto, primeiro host, último host, contagem, é só andar entre essas duas fronteiras. Uma máscara nunca tem 1 e 0 misturados fora de ordem: ela é sempre uma sequência de 1s seguida de uma sequência de 0s. É isso que torna o prefixo (o número de 1s) suficiente para descrevê-la.
Quantos endereços cada prefixo comporta
O total de endereços de um prefixo IPv4 é 2 elevado ao número de bits de host. Como dois desses endereços não podem ser dados a um host (o primeiro é a rede, o último é o broadcast), os hosts utilizáveis são o total menos 2. Essa é a fórmula que a calculadora aplica em toda linha:
hosts_utilizaveis = 2^(32 − prefixo) − 2- prefixo / prefix
- o número após a barra (0 a 32), quantidade de bits de rede
- 32 − prefixo
- os bits de host restantes em IPv4
- − 2
- desconta o endereço de rede e o de broadcast
| Prefixo | Máscara | Total de endereços | Hosts utilizáveis |
|---|---|---|---|
| /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 |
Repare no padrão: cada bit adicionado ao prefixo corta o bloco pela metade, 256, 128, 64, 32…, porque tira um bit do host. É uma queda exponencial, não linear. Um /30, com apenas 2 hosts, é o menor bloco que ainda respeita a regra do menos 2; é o clássico de enlaces ponto a ponto antes do /31 se popularizar.
Por que o CIDR existiu: o fim das classes
O IPv4 original (RFC 791, de 1981) dividia o espaço em classes fixas pelo valor do primeiro octeto: Classe A (1–126) reservava 8 bits de rede e dava 16 milhões de hosts; Classe B (128–191), 16 bits e 65 mil hosts; Classe C (192–223), 24 bits e só 254 hosts. O problema era grotesco. Uma empresa com 300 máquinas não cabia num /24 (Classe C, 254 hosts) e recebia um /16 (Classe B), desperdiçando mais de 65 mil endereços. Não havia meio-termo entre 254 e 65 mil. Ao mesmo tempo, cada rede virava uma linha na tabela de roteamento global, que crescia rápido demais.
O CIDR (RFC 1519, de 1993, hoje atualizada pela RFC 4632, de 2006) resolveu os dois problemas de uma vez. Ao permitir qualquer prefixo, ela deu o /23, o /22, o /20, os tamanhos intermediários que faltavam. E, ao alocar blocos de forma hierárquica por provedor, permitiu a agregação de rotas: um provedor anuncia um único prefixo grande no lugar de milhares de redes pequenas. A RFC 6890 mais tarde consolidou os blocos de propósito especial (loopback, documentação, privados) num registro único. E, antes disso, a RFC 1918 reservou as faixas privadas, 10.0.0.0/8, 172.16.0.0/12 e 192.168.0.0/16, que aliviaram a pressão ao permitir reutilizar endereços atrás de NAT. Quais faixas saem para a internet e quais ficam na LAN é o tema do guia IP público vs privado.
- 1981IPv4 e as classes (RFC 791)
O endereçamento nasce classful: o primeiro octeto define se a rede é A, B ou C, tamanhos fixos, sem flexibilidade.
- 1993Nasce o CIDR (RFC 1519)
Prefixos livres substituem as classes para conter o esgotamento e frear o crescimento da tabela de roteamento global.
- 1996Endereços privados (RFC 1918)
As faixas 10/8, 172.16/12 e 192.168/16 são reservadas para uso interno, atrás de NAT, aliviando a demanda por IPs públicos.
- 2006CIDR consolidado (RFC 4632) e IPv6
A RFC 4632 (BCP 122) vira a especificação atual do CIDR; em paralelo, o IPv6 amadurece com 128 bits para acabar de vez com a escassez.
- 3 fev 2011A IANA zera o estoque de IPv4
A IANA aloca os últimos cinco blocos /8 aos registros regionais. O IPv4 acabou; a migração para o IPv6 deixa de ser opcional.
IPv4 e IPv6 lado a lado
A diferença começa no tamanho e reverbera em todo o resto. O IPv4 tem 32 bits: 2^32 = 4.294.967.296 endereços, cerca de 4,3 bilhões, menos de um por pessoa no planeta. O IPv6 tem 128 bits: 2^128 ≈ 3,4 × 10^38, um número tão grande que deixa de ter intuição humana. Um único /64 do IPv6 já contém 2^64 ≈ 1,8 × 10^19 endereços, mais de 4 bilhões de vezes toda a internet IPv4, numa só sub-rede. Curiosamente, um endereço IPv6 tem exatamente 128 bits, o mesmo tamanho de um UUID: 128 bits são suficientes para dar um identificador único a praticamente qualquer coisa.
IPv4
- 32 bits, cerca de 4,3 bilhões de endereços, escassos.
- Notação decimal com pontos: 192.168.1.10.
- Tem endereço de broadcast por sub-rede.
- NAT é onipresente para reaproveitar endereços privados.
IPv6
- 128 bits, um espaço praticamente inesgotável.
- Notação hexadecimal com dois-pontos: 2001:db8::1.
- Sem broadcast; usa multicast (ff02::1 = todos os nós).
- NAT deixa de ser necessário; cada host pode ter IP global.
Duas escolhas do IPv6 confundem quem vem do IPv4. A primeira: não há broadcast. A função de "falar com todos" passou para o multicast, com endereços reservados como ff02::1 (todos os nós do enlace) e ff02::2 (todos os roteadores). Isso evita o "storm" de broadcast e deixa o tráfego mais eficiente. A segunda: o prefixo de sub-rede padrão é o /64, e isso é quase uma lei. O motivo é o SLAAC (autoconfiguração sem estado, RFC 4862): o host monta seu próprio endereço juntando o prefixo /64 anunciado pelo roteador a um identificador de interface de 64 bits. A RFC 4291 exige 64 bits de identificador de interface para a maioria dos endereços unicast, por isso sub-redes menores que /64 quebram a autoconfiguração. Endereços link-local (fe80::/10) e os privados ULA (fc00::/7, na prática fd00::/8, RFC 4193) completam o quadro, cada um com seu papel, como os privados fazem no IPv4.
Por que o /31 é válido em enlaces ponto a ponto
Num enlace entre dois roteadores só existem duas pontas. Um /30 funcionava, mas gastava 4 endereços para usar 2, jogando fora a rede e o broadcast. A RFC 3021 percebeu que, num enlace com exatamente dois nós, o broadcast é redundante (mandar para "todos" é mandar para o outro), então ela reinterpreta os dois endereços de um /31 como hosts válidos. Resultado: 2 endereços, 2 hosts, zero desperdício. É a razão de a fórmula do menos 2 não valer aqui.
Por que quase toda sub-rede IPv6 é /64
Parece esbanjamento dar 2^64 endereços a uma LAN com dez dispositivos, mas o /64 não é sobre quantidade, é sobre o SLAAC. A autoconfiguração precisa de exatamente 64 bits para o identificador de interface (RFC 4862 e RFC 4291). Usar um prefixo maior que /64 numa rede de acesso quebra a autoconfiguração e muitos recursos do IPv6. A recomendação prática é: sub-redes de host são sempre /64; você varia o prefixo apenas ao dividir blocos maiores entre sites (por exemplo, dando um /48 ou /56 a cada local).
NAT não é firewall (e o IPv6 deixa isso claro)
Muita gente acha que o NAT do IPv4 "protege" a rede por esconder os IPs internos. Ele não protege: o NAT existe para economizar endereços, não para segurança. Quem bloqueia conexões de entrada é o firewall, com ou sem NAT. O IPv6, com endereços de sobra, dispensa o NAT e dá IP global a cada host, o que assusta quem confundia NAT com defesa. A resposta certa não é reintroduzir NAT no IPv6, e sim configurar um firmware/firewall com política de entrada padrão-negar. Segurança é regra de firewall; tradução de endereço é economia.
Dois exemplos trabalhados
Exemplo 1, IPv4. Dado 192.168.10.77/26, ache rede, broadcast, faixa útil e número de hosts. O /26 tem 6 bits de host (32 − 26), então o bloco tem 2^6 = 64 endereços e o tamanho do bloco é 64. O endereço 192.168.10.77 cai no bloco que começa em .64 (os blocos de um /26 são .0, .64, .128, .192, e 77 está entre 64 e 127). Fazendo o AND que vimos na seção binária, o endereço de rede é 192.168.10.64. O broadcast é o topo do bloco, .64 + 64 − 1 = .127. A faixa útil vai do primeiro host ao último: .65 até .126. E os hosts utilizáveis são 64 − 2 = 62.
Exemplo 2, IPv6. Comprima e expanda 2001:0db8:0000:0000:0008:0800:200c:417a. A compressão tem duas regras: remova os zeros à esquerda de cada grupo (0db8 vira db8, 0008 vira 8, 0800 vira 800) e substitua a maior sequência de grupos totalmente zerados por dois-pontos duplos (::), o que só pode acontecer uma vez no endereço. Aqui os grupos 3 e 4 são 0000:0000 e viram ::. O resultado comprimido é 2001:db8::8:800:200c:417a, exatamente o exemplo canônico da RFC 4291. Para expandir, faça o inverso: o :: representa quantos grupos de zero faltam para chegar a 8 (aqui, dois), e cada grupo volta a ter 4 dígitos.
Expandido / Expanded: 2001:0db8:0000:0000:0008:0800:200c:417a
Comprimido / Compressed: 2001:db8::8:800:200c:417a
// Sub-rede / Subnet 2001:db8::/64
// primeiro / first: 2001:db8::
// último / last : 2001:db8::ffff:ffff:ffff:ffff
// total: 2^64 endereços de interface / interface addresses- Confirme o número de bits de host: 32 − prefixo (IPv4) ou 128 − prefixo (IPv6).
- Ache a rede com o AND entre o IP e a máscara; o broadcast é o topo do bloco.
- Lembre do menos 2 em IPv4, exceto /31 e /32.
- Ao comprimir IPv6, use o :: uma única vez, na maior sequência de zeros.
- Mantenha sub-redes de host em /64 no IPv6 para não quebrar o SLAAC.
Com a fundação binária no lugar, o próximo passo é dividir uma rede real de tamanhos diferentes sem buracos nem sobreposições, é exatamente o que o subnetting com VLSM na prática mostra, passo a passo. Para descobrir o seu próprio prefixo e endereço agora, veja o Meu IP; para geolocalizar qualquer endereço, o Localizador de IP.
Perguntas frequentes
Por que um /24 tem 254 hosts e não 256?
Como a máscara de sub-rede realmente funciona?
Por que o CIDR substituiu as classes A, B e C?
O IPv6 tem broadcast?
Por que as sub-redes IPv6 são quase sempre /64?
O NAT do IPv4 é uma medida de segurança?
Máscara é aritmética, não decoreba: o endereço de rede é o AND entre o IP e a máscara, o broadcast é o OR com o wildcard, e os hosts utilizáveis são 2^(32 − prefixo) − 2 (fora o /31 e o /32). O CIDR nasceu para acabar com o desperdício das classes A/B/C e frear a tabela de roteamento; o IPv6, com 128 bits, dispensa broadcast e NAT e adota o /64 por causa do SLAAC. Entendido o binário aqui, siga para o planejamento prático com VLSM.
Fontes e referências
- RFC 4632, Classless Inter-domain Routing (CIDR), BCP 122
- RFC 1519, CIDR: especificação original (1993)
- RFC 1918, Endereços privados IPv4, BCP 5
- RFC 4291, Arquitetura de endereçamento IPv6
- RFC 4193, Endereços IPv6 Unique Local (fc00::/7)
- RFC 4862, Autoconfiguração sem estado IPv6 (SLAAC)
- RFC 3021, Prefixos /31 em enlaces ponto a ponto