Primeiro, algumas informações básicas sobre o que eu já sei:
Um endereço IPv4 é um endereço de 32 bits que identifica um nó em uma rede. Um endereço IP terá um prefixo IP que determina a parte "Rede" do endereço IP e o restante determinará o "Host".
Um exemplo:
128.208.0.0/24 me dirá que os primeiros 24 bits são a parte "Rede" do endereço IP e os 8 bits restantes serão para o host na rede especificada. Além disso, 128.208.0.0. será o endereço IP mais baixo disponível na rede fornecida.
Agora Tannenbaum afirma em seu livro:
Como o tamanho do prefixo não pode ser deduzido apenas do endereço IP, os protocolos de roteamento devem levar os prefixos aos roteadores. Às vezes, os prefixos são simplesmente descritos por seu comprimento, como em um '' / 16 '' que é pronunciado como '' barra 16 ''. O comprimento do prefixo corresponde a uma máscara binária de 1s na parte da rede. Quando escrito dessa maneira, é chamado de máscara de sub-rede. Ele pode ser AND com o endereço IP para extrair apenas a parte da rede. Para o nosso exemplo, a máscara de sub-rede é 255.255.255.0.
Então, minhas perguntas são:
1) Como os protocolos de roteamento carregam os prefixos? Onde a parte "barra" é armazenada?
2) O que isso significa:
Ele pode ser AND com o endereço IP para extrair apenas a parte da rede. Para o nosso exemplo, a máscara de sub-rede é 255.255.255.0.
Obrigado.
Respostas:
Vou responder isso o mais direto possível com o OSPF. Abaixo está um pacote Hello Tipo 1 enviado todas as interfaces para formar uma adjacência.
RFC 2328, A.3.2 O pacote Hello
O
Network Mask
campo é preenchido com a máscara de sub-rede que você está usando com essa interface.A notação CIDR nada mais é do que uma versão mais curta da sua máscara de sub-rede por uma questão de brevidade. E, nesse caso, as máscaras de sub-rede são apenas uma versão condensada das posições de bits. Imagine ter que escrever em decimal toda vez que quiser configurar uma porta.
Tudo sai da mesma forma no final. Portanto, ter essas formas abreviadas de representar os mesmos dados faz sentido.
fonte
255.0.255.0
máscara?255.0.255.0
não é uma possibilidade. Somente máscaras curinga podem trabalhar com bits descontínuos como este. O RFC não descreve por que ele envia toda a máscara de rede com os pacotes OSPF.Depende do protocolo de roteamento. Protocolos antigos como o RIP v1 assumem uma máscara de classe e não anunciam uma máscara, mas os mais recentes, como o RIP v2, OSPF, ISIS, BGP, etc.
A resposta para a segunda parte da sua pergunta: Para determinar a parte do endereço de rede ou para testar se um determinado endereço faz parte de uma rede específica, você executa um AND lógico bit a bit com a máscara de sub-rede.
Por exemplo, para obter o endereço de rede 172.16.24.5/24, você AND cada bit do endereço de 32 bits e a Máscara, assim:
O resultado é a parte da rede do endereço IP (também chamado de número da rede). É exatamente isso que seu roteador e PC fazem para determinar qual rede usar para transmitir o pacote.
fonte