FlowingDev

CIDR e Subnetting: Fatiando a Internet em Bairros

Aprenda como a notação CIDR e o subnetting dividem o vasto espaço de endereços IPv4 em redes gerenciáveis, definindo como os dispositivos conversam entre si na internet.

Testar a ferramenta: Calculadora de Sub-rede / CIDR

Em uma frase

CIDR é o jeito da internet de demarcar terrenos, transformando um campo imenso e caótico de endereços IP em bairros organizados e gerenciáveis onde seus dados podem encontrar um lar.

O problema que ele resolve

Volte sua mente para o início da internet nos anos 80. A vida era simples. Se você precisasse de endereços IP, pedia uma "classe" deles. Você tinha três escolhas principais:

  • Classe A: 16.777.214 endereços de host. Para os gigantes.
  • Classe B: 65.534 endereços de host. Para grandes organizações.
  • Classe C: 254 endereços de host. Para os pequenos.

Esse sistema "classful" (com classes) era rígido e incrivelmente desperdiçador. Imagine que você precisasse de 300 endereços IP. Uma Classe C era pequena demais, então você tinha que pegar uma Classe B. Parabéns, você acabou de receber 65.534 endereços e agora está desperdiçando 65.234 deles. Era como precisar de uma scooter e ser forçado a comprar uma carreta.

No início dos anos 90, especialistas previram um apocalipse digital no horizonte: ficaríamos sem endereços IP. As tabelas de roteamento da internet — a agenda de endereços global usada pelos roteadores centrais — também estavam explodindo de tamanho, ameaçando deixar todo o sistema lento como uma lesma.

Em 1993, um grupo de engenheiros introduziu as RFCs 1518 e 1519, que definiram o Classless Inter-Domain Routing, ou CIDR (pronuncia-se "saider"). O CIDR jogou fora as classes rígidas A/B/C. Ele introduziu uma nova maneira flexível de definir um bloco de endereços de qualquer tamanho.

Isso mudou o jogo. Permitiu que os Provedores de Serviço de Internet (ISPs) alocassem blocos de endereços que eram "na medida certa" para seus clientes, desacelerando drasticamente o esgotamento de endereços IPv4. Também permitiu a "agregação de rotas", onde uma única entrada em uma tabela de roteamento poderia representar milhares de rotas individuais, salvando o backbone da internet de entrar em colapso sob seu próprio peso.

Como funciona por debaixo dos panos

Para entender o CIDR, você primeiro precisa aceitar uma verdade fundamental: endereços IP são para computadores, não para humanos. O formato decimal com pontos (192.168.1.10) é só uma mentirinha conveniente que contamos a nós mesmos. A realidade é binária.

Primeiro, uma rápida revisão de endereços IP e binários

Um endereço IPv4 é um número de 32 bits. É isso. Trinta e dois uns e zeros. Nós o dividimos em quatro blocos de 8 bits (octetos) e convertemos cada um para um número decimal (0-255) para torná-lo legível.

Vamos pegar o 172.20.129.45:

   172   .    20   .    129   .    45
10101100 . 00010100 . 10000001 . 00101101

Todo cálculo de redes IP, incluindo o CIDR, acontece nesse nível binário.

A Máscara de Sub-rede: O Anel Decodificador Mágico

Todo endereço IP vive uma vida dupla. Parte dele identifica a rede à qual pertence (o nome da sua rua), e parte dele identifica o host específico naquela rede (o número da sua casa).

Como um computador sabe onde uma parte termina e a outra começa? Ele usa uma máscara de sub-rede (subnet mask). Uma máscara de sub-rede é outro número de 32 bits que funciona como um filtro. Funciona assim:

  1. A máscara de sub-rede é uma série de 1s consecutivos seguida por uma série de 0s.
  2. Os 1s correspondem à porção de rede do endereço.
  3. Os 0s correspondem à porção de host do endereço.

Para encontrar o endereço da rede, um computador realiza uma operação AND bit a bit entre o endereço IP e a máscara de sub-rede.

Digamos que nosso IP seja 172.20.129.45 e nossa máscara seja 255.255.0.0.

Endereço IP:   10101100.00010100.10000001.00101101  (172.20.129.45)
Máscara de Sub-rede: 11111111.11111111.00000000.00000000  (255.255.0.0)
-----------------------------------------------------------------
ID da Rede:    10101100.00010100.00000000.00000000  (172.20.0.0)

O resultado, 172.20.0.0, é o "nome da rua" para todos os dispositivos nesta rede.

Entra o CIDR: A Abreviação da Máscara de Sub-rede

Escrever 255.255.255.0 é tedioso. A notação CIDR é uma abreviação simples. É apenas o endereço IP, uma barra (/), e o número de 1s iniciais na máscara de sub-rede. Esse número é chamado de comprimento do prefixo.

Sufixo CIDR Máscara de Sub-rede Número de 1s Máscara Binária
/8 255.0.0.0 8 11111111.0000...
/16 255.255.0.0 16 11111111.11111111.0000...
/24 255.255.255.0 24 11111111.11111111.11111111.00000000
/29 255.255.255.248 29 ...11111111.11111000
/32 255.255.255.255 32 Todos 1s (um único host)

Então, 172.20.129.45 com uma máscara de 255.255.0.0 é simplesmente escrito como 172.20.129.45/16. Moleza.

Calculando o que Interessa

Dado um endereço CIDR como 10.50.84.111/22, podemos descobrir tudo sobre a sua vizinhança de rede.

  • Prefixo: /22. Isso significa que 22 bits são para a rede, e os 32 - 22 = 10 bits restantes são para hosts.

  • Endereço da Rede: Este é o primeiro endereço no intervalo, onde todos os bits de host são 0. Nós o encontramos com a operação AND.

    • IP: 10.50.84.111 -> 00001010.00110010.01010100.01101111
    • Máscara /22: 255.255.252.0 -> 11111111.11111111.11111100.00000000
    • Resultado do AND: 00001010.00110010.01010100.00000000 -> 10.50.84.0
    • Portanto, o Endereço da Rede é 10.50.84.0.
  • Número de Hosts: Temos 10 bits de host. O número de endereços possíveis é 2^10 = 1024.

  • Hosts Utilizáveis: Temos que subtrair dois endereços. Por quê?

    1. O primeiro endereço (todos os bits de host 0) é o próprio Endereço da Rede. É o nome da rua, não uma casa.
    2. O último endereço (todos os bits de host 1) é o Endereço de Broadcast. Enviar um pacote para cá é como gritar "Ei, todo mundo!" para cada dispositivo na rede.
    • Então, hosts utilizáveis = (2^10) - 2 = 1024 - 2 = 1022.
  • Endereço de Broadcast: Este é o Endereço da Rede com todos os bits de host invertidos para 1.

    • Rede: 00001010.00110010.01010100.00000000
    • Broadcast: 00001010.00110010.01010111.11111111 -> 10.50.87.255
  • Intervalo de Hosts: Os endereços utilizáveis são todos aqueles entre o Endereço da Rede e o de Broadcast.

    • Primeiro host utilizável: 10.50.84.1 (Endereço da Rede + 1)
    • Último host utilizável: 10.50.87.254 (Endereço de Broadcast - 1)

Portanto, 10.50.84.111/22 é um host na rede 10.50.84.0, que suporta 1022 dispositivos de 10.50.84.1 a 10.50.87.254.

Histórias da vida real

### A Calamidade do Custo na Nuvem

Uma startup da moda subiu sua infraestrutura em uma nuvem pública. Ansiosos para começar a codificar, eles aceitaram as configurações de rede padrão para sua Virtual Private Cloud (VPC), que pegou um bloco gigantesco /16 (65.534 IPs). Alguns meses depois, eles conseguiram um cliente enorme que precisava de uma conexão direta e segura entre seus ambientes de nuvem. O problema? O cliente também havia usado exatamente o mesmo bloco /16 padrão. Seus espaços de endereço, 10.10.0.0/16 e 10.10.0.0/16, eram idênticos. Você não pode rotear entre dois lugares que afirmam ter o mesmo endereço. A startup teve que passar uma semana frenética reconstruindo toda a sua rede do zero em uma nova faixa CIDR que não se sobrepusesse.

Lição: Planeje seu espaço de endereçamento de rede como se estivesse planejando uma cidade. Mesmo que você só precise de uma pequena vila agora, deixe espaço para construir rodovias para se conectar a outras cidades mais tarde. Não aceite simplesmente os padrões.

### O Dispositivo Offline Misterioso

Um administrador de rede júnior foi encarregado de configurar um novo servidor de monitoramento. Ele recebeu a faixa de IP 192.168.100.0/24. Ele configurou o servidor com o IP 192.168.100.255. A interface de rede do servidor subiu, mas era um fantasma. Não conseguia pingar o gateway, e nada na rede conseguia pingá-lo. Depois de uma hora verificando cabos e reinstalando drivers, um engenheiro sênior passou por ali, olhou para a tela por dois segundos e disse: "Esse é o seu endereço de broadcast". Eles mudaram o IP para 192.168.100.254, e ele ficou online instantaneamente.

Lição: O primeiro e o último endereço em qualquer sub-rede são especiais e não podem ser atribuídos a um host. Eles são a identidade da rede e seu megafone, respectivamente.

### A Maga do Wi-Fi de Casa

A rede doméstica de uma desenvolvedora era uma bagunça. Com laptops, celulares, smart TVs, caixas de som, lâmpadas inteligentes e uma torradeira "smart", os dispositivos estavam constantemente caindo do Wi-Fi. Olhando na página de administração de seu roteador, ela viu que o servidor DHCP estava configurado para a faixa 192.168.1.0/28. Um cálculo rápido mostrou que um /28 fornece apenas (2^(32-28)) - 2 = 14 endereços IP utilizáveis. Sua família tinha mais de 30 dispositivos! Ela mudou a máscara de sub-rede de sua LAN de 255.255.255.240 (/28) para 255.255.255.0 (/24), expandindo os IPs disponíveis para 254. A instabilidade do Wi-Fi desapareceu na hora.

Lição: Subnetting não é só para data centers. Ele dita quantos dispositivos podem entrar na sua rede local, e uma sub-rede mal configurada é uma causa comum de "Wi-Fi ruim".

Erros e armadilhas comuns

  • Esquecer os dois reservados. Um erro clássico de "off-by-two". Você calcula 2^h e diz a alguém que ele tem essa quantidade de endereços, mas esquece de subtrair os endereços de rede e broadcast. Isso leva a erros de configuração e redes que são um pouquinho pequenas demais.
  • Sub-redes sobrepostas. Como visto na história da nuvem, se duas redes que precisam se comunicar têm faixas de IP sobrepostas, você está se metendo numa grande enrascada. O roteamento se torna ambíguo e muitas vezes impossível sem gambiarras complexas e feias de Network Address Translation (NAT). Planeje com antecedência!
  • Pensar em decimal. Você não consegue entender subnetting corretamente olhando para os números decimais. 192.168.0.255 e 192.168.1.0 parecem estar um ao lado do outro. Se você está em uma rede /24, eles estão em redes diferentes. Se você está em uma rede /23, eles estão na mesma rede. Tudo depende de onde a fronteira binária está.
  • Uso indevido de um /31. Um /31 tem 2^(32-31) = 2 endereços. As regras antigas diziam que, após reservar a rede e o broadcast, sobravam zero hosts utilizáveis. No entanto, a RFC 3021 atualizou isso para links ponto a ponto especiais (ex: conectando dois roteadores), onde nenhum broadcast é necessário. Para uma rede comum com clientes, é inútil.
  • Errar o prefixo na digitação. É fácil digitar /23 quando você queria dizer /24. Uma diferença de um dígito pode ser a diferença entre uma rede de 254 hosts e uma com 510 hosts, mudando completamente os limites da rede e potencialmente causando conflitos. Verifique seu prefixo duas vezes.

Por que isso deve estar no seu radar

Você pode pensar que isso é só para engenheiros de rede hardcore. Você estaria errado.

  • Engenheiros de Cloud & DevOps: Isso é o seu dia a dia. Projetar VPCs/VNETs na AWS, Azure ou GCP é um exercício de planejamento CIDR. Errar nisso no começo leva a migrações caras e complexas mais tarde.
  • Desenvolvedores Backend: Não consegue se conectar ao seu banco de dados? Talvez o servidor da aplicação esteja em 10.0.1.0/24 e o BD em 10.0.2.0/24. Se não houver um roteador configurado entre eles, eles poderiam muito bem estar em planetas diferentes. Entender sub-redes é um passo fundamental na depuração.
  • Profissionais de Segurança: Regras de firewall são frequentemente baseadas em blocos CIDR. Para permitir o acesso de um escritório inteiro, você não adiciona 200 IPs individuais; você adiciona uma regra para 10.5.0.0/22. Para bloquear um ator malicioso conhecido, você bloqueia a faixa CIDR dele.
  • Qualquer um que execute código: Mesmo que você trabalhe apenas em localhost, você está usando uma rede. Saber que 127.0.0.1 é apenas um host no bloco de loopback gigante 127.0.0.0/8 ajuda a desmistificar uma parte central do desenvolvimento local.

Em um mundo de serviços interconectados, contêineres e infraestrutura em nuvem, a rede não é mais problema dos outros. Entender sua agenda de endereços é um superpoder do desenvolvedor moderno.

Aprofunde-se

Teoria feita. Hora de pôr a mão na massa — 100% no seu navegador.

Testar a ferramenta: Calculadora de Sub-rede / CIDR