Domain IP Lookup

Espaço de endereços público vs. privado

IP público

192.0.2.10

globalmente único, roteável de qualquer lugar

Faixas privadas

10.0.0.0/8172.16.0.0/12192.168.0.0/16

não roteáveis na internet pública

Fundamentos de DNS

O que é CIDR? Roteamento sem classes, prefixos e agregação

6 min de leitura

Uma rota como 203.0.113.0/24 parece uma abreviação, mas a ideia por trás dela atenuou uma crise que, no início da década de 1990, tudo indicava que poderia travar o crescimento da internet. Este artigo explica por que o endereçamento classful original fracassou, o que um prefixo de fato declara, como blocos vizinhos se fundem em uma só rota e por que um roteador sempre prefere a rota mais específica que conhece. Para a aritmética de dividir um bloco em sub-redes, a calculadora de sub-redes é mais rápida do que qualquer explicação; aqui o foco é como o sistema funciona e por quê.

O problema das classes A, B e C

O plano original do IPv4, definido na RFC 791, separava as redes em classes de acordo com os bits iniciais de um endereço. Conforme a RFC 4632 relata, a Classe A permitia 128 redes de cerca de 16,7 milhões de endereços cada, a Classe B permitia 16.384 redes de 65.536 endereços, e a Classe C permitia cerca de 2,1 milhões de redes de 254 hosts utilizáveis. Nada havia entre 254 e 65.534 hosts.

Uma organização de porte médio ficava sem saída. Uma Classe C era pequena demais e uma Classe B era grande demais para a maioria das organizações, mas a Classe B era a opção mais adequada disponível para uso com sub-redes, então a demanda por números de Classe B disparou. Em novembro de 1991, a IETF criou o grupo ROAD (Routing and Addressing, ou “roteamento e endereçamento”). Em janeiro de 1992, ele já havia identificado três problemas: o espaço da Classe B estava se esgotando, as tabelas de roteamento estavam crescendo além do que software, hardware e operadores conseguiam administrar, e o espaço de endereços de 32 bits acabaria por se esgotar. O trabalho do grupo resultou na RFC 1338 e, depois, na RFC 1519 (setembro de 1993).

O CIDR, Classless Inter-Domain Routing (roteamento interdomínio sem classes), foi projetado para atenuar os dois primeiros problemas, não o terceiro. A RFC 4632, a revisão de 2006, diz que o plano se destinava a ser uma resposta de curto prazo, com duração de aproximadamente três a cinco anos, enquanto uma solução de longo prazo era encontrada. Mais de trinta anos depois, ele ainda é a notação usada por roteadores e consoles de nuvem.

O que um prefixo declara

No CIDR, um bloco de endereços é escrito como um endereço, uma barra e um comprimento de prefixo: o número de bits iniciais que identificam a rede. Os bits restantes identificam os hosts dentro dela. 192.0.2.0/24 fixa 24 bits e deixa 8, de modo que o bloco contém 2^8 = 256 endereços. Cada bit acrescentado ao prefixo divide o bloco ao meio; cada bit removido o duplica. Uma rede classful era apenas um bloco cujo comprimento de prefixo era imposto pelos seus primeiros bits, sempre /8, /16 ou /24. O CIDR eliminou essa imposição, de modo que uma organização que precisa de cerca de mil endereços pode receber um /22, que contém 1.024, em vez de uma Classe B.

PrefixoEndereçosPapel típico
/816.777.216O tamanho da antiga Classe A
/1665.536O tamanho da antiga Classe B
/221.024Um site de porte médio, um tamanho que o sistema de classes não conseguia expressar
/24256O tamanho da antiga Classe C e um tamanho comum de LAN
/304Um enlace ponto a ponto tradicional, com 2 hosts utilizáveis
/312Um enlace ponto a ponto conforme a RFC 3021, com os dois endereços utilizáveis
/321Um único host, ou uma rota para exatamente um endereço

Agregação: uma rota em vez de muitas

A outra metade do propósito do CIDR era o roteamento. Se um provedor detém um bloco grande e distribui partes dele aos clientes, o resto da internet precisa de apenas uma rota para o bloco inteiro, em vez de uma por cliente. A RFC 4632 diz que os prefixos se destinam a seguir aproximadamente a topologia subjacente da internet para que a agregação seja possível, e é por isso que costumam ser atribuídos ao longo das relações entre provedor e cliente.

A agregação só funciona quando os blocos se alinham. Dois blocos /24 adjacentes se fundem em um /23 somente se o primeiro começar em um limite par. 192.168.0.0/24 e 192.168.1.0/24 se combinam em 192.168.0.0/23. 192.168.1.0/24 e 192.168.2.0/24 não podem, porque nenhum /23 começa em 192.168.1.0. O menor bloco único que cobre os dois é 192.168.0.0/22, que também abrange 192.168.0.0/24 e 192.168.3.0/24, endereços que talvez não sejam seus. Essa regra de alinhamento é a razão prática para distribuir endereços em blocos cujo tamanho é uma potência de dois desde o início de um plano de rede.

Correspondência mais longa: por que a rota mais específica vence

Quando as rotas se sobrepõem, o roteador precisa de um critério de desempate. A RFC 4632 afirma que o encaminhamento na internet é feito pelo critério da correspondência mais longa: entre todas as rotas cujo prefixo contém o destino, usa-se aquela com o prefixo mais longo. Suponha que uma tabela contenha 10.0.0.0/8 via roteador A, 10.1.0.0/16 via roteador B e 10.1.2.0/24 via roteador C.

  • Um pacote para 10.1.2.9 corresponde às três rotas e segue o /24 até C.
  • Um pacote para 10.1.9.9 corresponde ao /8 e ao /16, e segue o /16 até B.
  • Um pacote para 10.9.9.9 corresponde apenas ao /8 e vai para A.

A RFC 4632 (seção 5.1) acrescenta duas regras. Uma rede alcançável por meio de vários provedores deve anunciar explicitamente o seu próprio prefixo, em vez de ficar escondida dentro do agregado de um único provedor. E um roteador que gera um agregado deve descartar os pacotes que correspondem ao agregado, mas a nenhuma de suas rotas mais específicas; caso contrário, o tráfego destinado a partes inalcançáveis do bloco pode entrar em loop.

Detalhes que ainda confundem as pessoas

  • Hosts utilizáveis. Um bloco de 2^(32−n) endereços normalmente perde dois: o endereço de rede e o endereço de broadcast. Um /30, portanto, tem dois hosts utilizáveis. A RFC 3021 permite prefixos /31 em enlaces ponto a ponto, onde os dois endereços são utilizáveis.
  • As faixas privadas também são blocos CIDR. A RFC 1918 reserva 10.0.0.0/8, 172.16.0.0/12 e 192.168.0.0/16. O bloco do meio vai apenas de 172.16.0.0 a 172.31.255.255, de modo que um endereço como 172.32.0.1 é público.
  • Sub-rede zero. A RFC 950 (1985), escrita para a era classful, desaconselhava atribuir sub-redes cujo campo de sub-rede fosse composto só de zeros ou só de uns. A RFC 1878 (1995) chama essa prática de obsoleta, e o software moderno pode usar todas as sub-redes definíveis.
  • O IPv6 usa uma notação semelhante. A RFC 4291 exige identificadores de interface de 64 bits para todos os endereços unicast, exceto aqueles que começam com o valor binário 000, então uma sub-rede IPv6 comum é um /64 e o planejamento de endereços acontece nos bits acima dele.

Ponto-chave

Um comprimento de prefixo diz quantos bits iniciais pertencem à rede. Todo o resto decorre disso: blocos de qualquer tamanho que seja potência de dois, agregação de vizinhos alinhados e encaminhamento pelo prefixo correspondente mais longo.

Fontes e leitura complementar

Precisa conferir os endereços DNS públicos de um domínio? Use a ferramenta Domain IP Lookup.

Ferramentas gratuitas sobre este assunto

Perguntas frequentes