Você está confundindo duas coisas - ARP e Roteamento .
ARP
O ARP (Protocolo de resolução de endereços) é usado para identificar o endereço de hardware de um host na rede local (ou seja, a mesma sub-rede).
Se A
(IP 10.0.1.2/24
) quisesse se comunicar com outro host ( C
) com o endereço IP 10.0.1.5
, o seguinte aconteceria se esse host não estivesse no cache:
-
A
transmite uma " solicitação ARP "- Usando o endereço MAC de transmissão (
ff:ff:ff:ff:ff:ff
) - Perguntar por qualquer host com o endereço IP
10.0.1.5
para responder
- Usando o endereço MAC de transmissão (
- Se o host remoto (
C
) receber esse pacote, ele responderá com o endereço MAC correto.
O ARP também pode ocorrer proativamente, com os próprios hosts " anunciando " em uma tentativa de reduzir a latência incorrida pela pesquisa, embora isso possa facilmente levar a falsificação e envenenamento.
Roteamento
O roteamento permite que um host acesse outros hosts que estão fora da rede " local ". Por exemplo, o host B
tem um endereço IP de 10.0.5.2
, que está fora do host A
10.0.1.0/24
sub-rede.
Para obter pacotes para hospedar B
, o host A
deve enviá-los por meio de um roteador (também conhecido como " gateway "). Se nenhuma rota padrão for fornecida (ou nenhuma rota específica correspondente for configurada), o host ficará inacessível.
Se uma rota existir , A
será:
- Use o ARP para localizar o endereço MAC do roteador (
R1
) - Envie um pacote endereçado para o IP de
B
(10.0.5.2
), mas usando o endereço MAC do roteadorR1
- O% de
R1
do roteador realizará a mesma pesquisa, enviando um pacote para o endereço MAC deR3
(ouR2
), mas com o endereço IP deB
. - Isso continua até que o pacote atinja
B
ou até que um roteador declare que não é possível rotear para o host fornecido.
If this works like this, how does the previous node know the MAC address of the next node?
O ARP é usado em cada etapa para obter o endereço MAC do próximo host. R1
quer encaminhar um pacote via R3
, então ele usa o ARP para obter o endereço MAC de R3
.