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
não roteáveis na internet pública
O que é CIDR? Roteamento sem classes, prefixos e agregação
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.
| Prefixo | Endereços | Papel típico |
|---|---|---|
/8 | 16.777.216 | O tamanho da antiga Classe A |
/16 | 65.536 | O tamanho da antiga Classe B |
/22 | 1.024 | Um site de porte médio, um tamanho que o sistema de classes não conseguia expressar |
/24 | 256 | O tamanho da antiga Classe C e um tamanho comum de LAN |
/30 | 4 | Um enlace ponto a ponto tradicional, com 2 hosts utilizáveis |
/31 | 2 | Um enlace ponto a ponto conforme a RFC 3021, com os dois endereços utilizáveis |
/32 | 1 | Um ú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.9corresponde às três rotas e segue o /24 até C. - Um pacote para
10.1.9.9corresponde ao /8 e ao /16, e segue o /16 até B. - Um pacote para
10.9.9.9corresponde 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/12e192.168.0.0/16. O bloco do meio vai apenas de172.16.0.0a172.31.255.255, de modo que um endereço como172.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
- RFC 4632: Classless Inter-domain Routing (CIDR): The Internet Address Assignment and Aggregation Plan (Fuller and Li, 2006)
- RFC 1519: Classless Inter-Domain Routing (CIDR): an Address Assignment and Aggregation Strategy (Fuller, Li, Yu and Varadhan, 1993)
- RFC 950: Internet Standard Subnetting Procedure (Mogul and Postel, 1985)
- RFC 1878: Variable Length Subnet Table For IPv4 (Pummill and Manning, 1995)
- RFC 3021: Using 31-Bit Prefixes on IPv4 Point-to-Point Links (Retana, White, Fuller and McPherson, 2000)
- RFC 1918: Address Allocation for Private Internets (Rekhter et al., 1996)
- RFC 4291: IP Version 6 Addressing Architecture (Hinden and Deering, 2006)
- Kevin R. Fall and W. Richard Stevens, TCP/IP Illustrated, Volume 1: The Protocols, 2nd edition (Addison-Wesley, 2011)
- Larry L. Peterson and Bruce S. Davie, Computer Networks: A Systems Approach (Morgan Kaufmann)
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
Leitura relacionada
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
não roteáveis na internet pública
IPs públicos vs privados: qual é a diferença?
Seu dispositivo tem dois endereços ao mesmo tempo, e só um deles existe na internet. Veja por quê e o que significam as faixas reservadas.
Dois esquemas de endereçamento, lado a lado
IPv4
192.0.2.10
32 bits, ~4,3 bilhões de endereços, esgotado
IPv6
2606:4700::6810:84e5
128 bits, 340 undecilhões de endereços
O esgotamento do IPv4 e a lenta marcha rumo ao IPv6
O mundo ficou sem novos endereços IPv4 há anos. Veja o que realmente manteve tudo funcionando desde então e por que a transição ainda não terminou.
Dois esquemas de endereçamento, lado a lado
IPv4
192.0.2.10
32 bits, ~4,3 bilhões de endereços, esgotado
IPv6
2606:4700::6810:84e5
128 bits, 340 undecilhões de endereços
O que é um endereço IP? IPv4 e IPv6 explicados
O rótulo numérico por trás de cada site, servidor e celular na internet: o que significa, como ler e por que existem duas versões incompatíveis.