Cálculo de Sub-Redes CIDR: Divisão de Blocos IPv4 para Cloud e DevOps
Configurar uma infraestrutura de nuvem moderna — seja provisionando uma Virtual Private Cloud (VPC) na AWS, um cluster Kubernetes (EKS/GKE) ou configurando regras de firewall corporativas — exige domínio absoluto sobre o particionamento de endereços IP. No centro dessa engenharia está a notação CIDR (Classless Inter-Domain Routing), formalizada pela RFC 4632.
Antes do CIDR (introduzido em 1993), a internet utilizava o rígido sistema de "Classes" (Classe A com 16 milhões de hosts, Classe B com 65 mil e Classe C com 254). Se uma empresa precisava de 500 IPs, recebia um bloco Classe B inteiro, desperdiçando 64.500 endereços e acelerando o esgotamento do IPv4. O CIDR eliminou essas fronteiras fixas, permitindo fatiar redes com precisão cirúrgica de bits.
1. A Anatomia de um Endereço IPv4 e Notação CIDR
Um endereço IPv4 é composto por 32 bits agrupados em 4 octetos de 8 bits cada (ex: 192.168.1.0). A barra seguida por um número (ex: /24) representa o tamanho do prefixo de rede, ou seja, quantos bits da esquerda para a direita identificam a rede, enquanto os bits restantes identificam os hosts individuais.
Exemplo: 192.168.1.0/24
IP em Binário: 11000000.10101000.00000001.00000000
Máscara /24: 11111111.11111111.11111111.00000000 (255.255.255.0)
Bits de Host: 32 - 24 = 8 bits → 2^8 = 256 endereços totais
A fórmula fundamental para calcular a capacidade de qualquer bloco CIDR é:
Total de IPs = 2^(32 - Prefixo)
2. A Pegadinha dos Provedores de Cloud (AWS e GCP Reservam 5 IPs!)
Em uma rede física tradicional (on-premises), você perde apenas 2 endereços por sub-rede: o primeiro (Network ID) e o último (Broadcast). Por exemplo, em um /24 com 256 IPs, restam 254 utilizáveis.
No entanto, em nuvens como a Amazon Web Services (AWS VPC) e no Google Cloud Platform (GCP), o provedor reserva obrigatoriamente 5 endereços IP por sub-rede para serviços internos de orquestração:
| IP de Exemplo (10.0.0.0/24) | Finalidade Reservada na AWS VPC |
|---|---|
| 10.0.0.0 | Endereço de Rede: Primeiro endereço do bloco. |
| 10.0.0.1 | Roteador da VPC: Gateway interno da sub-rede. |
| 10.0.0.2 | Servidor DNS da AWS: AmazonProvidedDNS / Route 53 Resolver. |
| 10.0.0.3 | Uso Futuro da AWS: Reservado pela infraestrutura da nuvem. |
| 10.0.0.255 | Broadcast de Rede: A AWS não suporta broadcast, mas mantém o IP reservado. |
Importante: Isso significa que criar uma sub-rede /28 (16 IPs totais) na AWS fornece apenas 11 endereços utilizáveis (16 - 5 = 11) para instâncias EC2, Load Balancers ou pods.
3. Tabela de Referência Rápida CIDR
| Prefixo | Máscara Decimal | IPs Totais | IPs Úteis (Padrão) | IPs Úteis (AWS VPC) |
|---|---|---|---|---|
| /16 | 255.255.0.0 | 65.536 | 65.534 | 65.531 |
| /24 | 255.255.255.0 | 256 | 254 | 251 |
| /26 | 255.255.255.192 | 64 | 62 | 59 |
| /28 | 255.255.255.240 | 16 | 14 | 11 |
| /32 | 255.255.255.255 | 1 | 1 (Host único) | N/A (Não particionável) |
4. Algoritmo em JavaScript para Cálculo de Sub-rede
function calcularSubrede(ipStr, prefixo) {
// Converte IP string em inteiro de 32 bits sem sinal
const ipInt = ipStr.split('.').reduce((acc, oct) => (acc << 8) + parseInt(oct, 10), 0) >>> 0;
// Cria a máscara de rede
const maskInt = prefixo === 0 ? 0 : (~0 << (32 - prefixo)) >>> 0;
// Operação Bitwise AND para achar o Network ID
const networkInt = (ipInt & maskInt) >>> 0;
const broadcastInt = (networkInt | (~maskInt >>> 0)) >>> 0;
const intParaIp = (num) => [
(num >>> 24) & 255,
(num >>> 16) & 255,
(num >>> 8) & 255,
num & 255
].join('.');
return {
rede: intParaIp(networkInt),
mascara: intParaIp(maskInt),
broadcast: intParaIp(broadcastInt),
primeiroHost: intParaIp(networkInt + 1),
ultimoHost: intParaIp(broadcastInt - 1),
totalIps: Math.pow(2, 32 - prefixo)
};
}
console.log(calcularSubrede("172.16.10.45", 24));
Perguntas Frequentes (FAQ)
10.0.0.0/8 (16M de IPs), 172.16.0.0/12 (1M de IPs) e 192.168.0.0/16 (65k IPs).0.0.0.0/0 representa a Default Route (Rota Padrão) ou "toda a internet". Qualquer tráfego cujo IP de destino não case com nenhuma rota específica da VPC é enviado para o Internet Gateway (IGW)./16 (máximo de 65.536 IPs) e /28 (mínimo de 16 IPs, com 11 utilizáveis). Prefixos como /29 ou /30 não são suportados para sub-redes de VPC.Editorial Técnico Caixa do Dev
Artigos originais e guias técnicos produzidos com rigor matemático, código aberto e conformidade com especificações da IETF (RFCs), W3C e ISO/IEC para desenvolvedores.