Como o prefixo IP é passado para o roteador?

8

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.

Koray Tugay
fonte
O downvoter pode esclarecer por que esta pergunta foi rebaixada?
Koray Tugay
Suspeito que a comunidade esteja expressando uma votação negativa porque sua pergunta é de nível introdutório e este site é destinado a profissionais. No lado positivo, as pessoas não estão votando de perto em você.
Craig Constantine
Desculpe, o inglês não é minha língua nativa. O que isso significa: "No entanto, as pessoas estão votando de perto em você".
Koray Tugay
Eu quis dizer: as pessoas não estão votando para encerrar sua pergunta. Então, algumas pessoas não gostam disso (não recebem votos), mas não é tão ruim que as pessoas estejam votando para fechá-lo.
Craig Constantine
@CraigConstantine Entendi thanks .. Sim, você está certo ..
Koray Tugay

Respostas:

8
  1. Como os protocolos de roteamento carregam os prefixos? Onde a parte "barra" é armazenada?

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.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Version #   |       1       |         Packet length         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Router ID                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Area ID                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Checksum            |             AuType            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       Authentication                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       Authentication                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        Network Mask                           |    <------
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         HelloInterval         |    Options    |    Rtr Pri    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     RouterDeadInterval                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Designated Router                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                   Backup Designated Router                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Neighbor                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                              ...                              |

RFC 2328, A.3.2 O pacote Hello

O Network Maskcampo é 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.

11111111.11111111.11111111.00000000    <---- This would be painstaking
255.255.255.0                          <---- Better, but not optimal
0xffffff00                             <---- Shorter still, but still not optimal
/24                                    <---- Best-case scenario

Tudo sai da mesma forma no final. Portanto, ter essas formas abreviadas de representar os mesmos dados faz sentido.

Ryan Foley
fonte
A máscara de rede inteira é enviada? Não seria mais eficiente usar 5 bits (apenas 1 a 31 são necessários) indicando quantos bits há na rede? Existe realmente alguma vantagem em poder definir uma 255.0.255.0máscara?
triturador
@Cruncher 255.0.255.0nã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.
Ryan Foley
Este é um pacote DHCP?
Koray Tugay
Não, o exemplo acima é um pacote Olá OSPF Tipo 1.
Ryan Foley
A máscara curinga do @Cruncher é usada apenas para lista de acesso e NAT, é praticamente uma máscara de sub-rede invertida.
Chris
6

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:

10101100 00010000 00011000 00000101 <- 172.16.24.5

11111111 11111111 11111111 00000000 <- 255.255.255.0


10101100 00010000 00011000 00000000 <- Resultado: 172.16.24.0

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.

Ron Trunk
fonte
Obrigado pela resposta, mas o que há de tão especial no 255.255.255.0?
Koray Tugay
11
Nada, na verdade, exceto porque a divisão entre a rede e a máscara do host fica no limite do "ponto", é fácil de usar (o último dígito decimal é sempre 0). Portanto, é muito comumente usado.
Ron Trunk
Ele pressupõe que o IP tenha um prefixo de 24 bits?
precisa
O que eu não entendo é que você deu um exemplo: 172.16.24.5/24 e você já sabe o tamanho do prefixo. Mas como o roteador conhece o prefixo? Se não souber o prefixo, como saberá que ele deve usar 255.255.255.0?
precisa
Os anúncios do roteador para cada rota levam o prefixo (para protocolos modernos).
Ron Tronco