O que é um bloco CIDR? Notação explicada
Um bloco CIDR é uma faixa de endereços IP escrita como um endereço base e um comprimento de prefixo, como 192.168.1.0/24, em que o número após a barra indica quantos bits iniciais são fixos para identificar a rede. CIDR significa Classless Inter-Domain Routing, e é assim que as redes são descritas em tabelas de roteamento, regras de firewall e grupos de segurança na nuvem.
Como ler a notação CIDR
Um endereço IPv4 tem 32 bits. Em 192.168.1.0/24, o /24 significa que os primeiros 24 bits são a parte de rede e os 8 bits restantes ficam livres para identificar hosts dentro dela. Esses 8 bits livres dão 2^8 = 256 endereços, indo de 192.168.1.0 a 192.168.1.255. A regra vale para qualquer prefixo: o tamanho do bloco é 2 elevado a (32 menos o comprimento do prefixo).
/8fixa um octeto e contém 16.777.216 endereços, por exemplo10.0.0.0/8./16fixa dois octetos e contém 65.536 endereços, por exemplo172.16.0.0/16./24contém 256 endereços, e/32é exatamente um endereço./0é todo endereço, que você verá como0.0.0.0/0, significando "qualquer lugar" em regras de firewall.
A forma mais antiga, a máscara de sub-rede, diz a mesma coisa. Um /24 equivale a 255.255.255.0, um /16 equivale a 255.255.0.0 e /20 equivale a 255.255.240.0. No IPv6, a mesma ideia se aplica a 128 bits, então 2001:db8::/32 fixa os primeiros 32 bits.
Por que o CIDR substituiu o endereçamento por classes
Antes do CIDR, os endereços eram divididos em classes fixas: A, B e C, com prefixos /8, /16 e /24. Uma organização que precisasse de 2.000 endereços tinha de pegar uma classe B com 65.536, desperdiçando a maior parte, ou várias classes C, inflando as tabelas de roteamento. O CIDR permite qualquer comprimento de prefixo, de modo que um /21 (2.048 endereços) pode ser alocado com precisão. Ele também permite resumir blocos vizinhos: dois /24 adjacentes alinhados em uma fronteira podem ser anunciados como um único /23, o que mantém menores as tabelas de roteamento globais.
Alinhamento e endereços utilizáveis
Um bloco deve começar em uma fronteira compatível com seu tamanho. Um /24 deve começar em um endereço cujo último octeto seja 0; um /22 deve começar em um múltiplo de 4 no terceiro octeto, como 10.0.4.0/22. Por isso 10.0.3.0/22 não é válido: não está alinhado, e as ferramentas o rejeitarão ou o normalizarão silenciosamente para a fronteira real. Em sub-redes comuns, o primeiro endereço identifica a rede e o último é o endereço de broadcast, então um /24 oferece 254 endereços de host utilizáveis. Provedores de nuvem costumam reservar vários outros por sub-rede, então confira as regras deles antes de dimensionar.
Onde você encontra o CIDR na prática
Firewalls e listas de permissão são o caso mais comum. Permitir 203.0.113.0/24 autoriza 256 endereços com uma única entrada. O perigo é ser amplo demais: um /16 onde se pretendia um /24 pode permitir dezenas de milhares de hosts sem relação. Quando você só conhece um único IP, encontrar o bloco ao redor é uma etapa de pesquisa, e parte dela pode ser feita com o ipto. O diretório de faixas de IP permite navegar pelo espaço de endereços por bloco /8 e /16, com detalhamento de país e ASN para cada um. A consulta de ASN mostra as faixas atribuídas a uma rede, e a consulta whois de IP retorna o bloco registrado via RDAP, que informa a faixa exata que uma organização detém.
As faixas reservadas também são expressas em CIDR. Espaço privado como 10.0.0.0/8, 172.16.0.0/12 e 192.168.0.0/16, loopback 127.0.0.0/8 e link-local 169.254.0.0/16 nunca deveriam aparecer como origens públicas. O verificador de IP bogon informa se um endereço cai em uma delas, e a consulta de IP do ipto retorna os campos bogon e bogon_type com o mesmo propósito.
O resumo também funciona ao contrário: para ver se duas faixas podem ser unidas, verifique se têm o mesmo tamanho, se são adjacentes e se a primeira começa em uma fronteira do bloco combinado. Se qualquer condição falhar, você precisa de duas entradas em vez de uma.
Erros comuns
- Confundir o endereço base com um host.
192.168.1.0/24descreve a rede, não um dispositivo. - Bloquear uma faixa inteira por causa de um endereço. Um único host abusivo em um bloco de hospedagem compartilhada não torna hostil o /24 ao redor, e bloqueá-lo pode atingir clientes inocentes.
- Esquecer o IPv6. Uma regra escrita apenas para faixas IPv4 deixa o tráfego IPv6 sem filtragem.
Para uma verificação rápida, conte os bits de host, eleve 2 a essa potência e compare com o que você esperava. A documentação da API mostra como obter dados de faixas programaticamente.