Digamos que eu abra uma nova empresa e alugue um bloco de endereço IP 222.123.123.0/25
do registro da Internet, então um desses endereços IP 222.123.123.4
é meu servidor web principal.
Um cliente de um país diferente deseja enviar um pacote para este endereço IP, como o roteador (roteador de um ISP em seu país) sabe qual é o prefixo de rede desse endereço IP 222.123.123.4
? Como o endereçamento IP classful está obsoleto, quando se trata de endereços IP CIDR, pode ser 222.123.123.4/25
, 222.123.123.4/26
, 222.123.123.4/27
etc., e o cabeçalho IP certamente não tem um cabeçalho chamado network prefix
.
Então, como o roteador determina o prefixo de rede de um endereço IP?
Seu roteador conhece o comprimento do prefixo porque você o configura. Sempre que uma interface é configurada com um endereço, seja em um host ou em um roteador, o comprimento do prefixo (ou a máscara de rede equivalente) é inserido ao lado dele.
É funcionalmente igual à configuração IPv4 para o seu PC com Windows em casa – o PC sabe que é 192.168.1.x/24 porque tem "Netmask: 255.255.255.0" preenchido; o roteador sabe que é .123.1/25 porque você (ou o ISP) teve que especificar "/25" ao fazer
ip addr add
.Roteadores distantes a) não se importam ou b) aprenderão uma rota em direção ao seu /25 conforme você a anuncia via BGP para seus ISPs upstream, e o mesmo anúncio BGP inclui o comprimento do prefixo da rota junto com o endereço de rede. Todos os protocolos de roteamento em uso hoje foram estendidos para transportar o comprimento do prefixo - esse é o objetivo do esforço "CIDR".
Observe, no entanto, que os roteadores distantes se preocupam apenas com o prefixo da rota , no máximo. Eles não se importam com o tamanho da sua sub-rede - o anúncio BGP pode cobrir várias de suas sub-redes (uma rota agregada) ou pode cobrir meia sub-rede, nada disso faz diferença para a entrega do pacote.
Coisas como endereços "reservados para broadcast" não entram em jogo aqui, então pacotes para endereços ".0" e ".255" serão encaminhados sem nenhum tratamento especial (o destino pode nem ser uma sub-rede com capacidade de broadcast ; pode ser um link /31 ou /32 PtP onde qualquer endereço é válido).
(O desacoplamento de rotas e sub-redes aconteceu antes mesmo do CIDR - é literalmente por isso que a "máscara de sub-rede" é chamada de máscara de sub -rede; costumava ser que o BGP continuou transportando apenas rotas classful por um bom tempo, mesmo quando os operadores já tinham suas redes classful subdivididas internamente em sub-redes classless.)
Isso significa que um host ou um roteador CPE básico pode ter apenas uma única rota 0.0.0.0/0 (a rota "padrão") e absolutamente não se importará se alguma rede distante é /25 ou outra.
Na maioria dos casos, os ISPs anunciarão apenas rotas agregadas via BGP e não rotas de sub-rede individuais – geralmente é desaprovado fazer o contrário, pois as tabelas BGP globais já são grandes. (Na verdade, você nem mesmo tem permissão para anunciar um IPv4 /25 na Internet pública; os ISPs só aceitam anúncios para /24 ou maior, ou similarmente /48 para IPv6.)
Em outras palavras, não há campo "Prefixo de rede" nos cabeçalhos IP porque o único dispositivo que precisa saber disso – o roteador final em seu site – já possui essa informação configurada explicitamente.