Вы путаете две вещи - ARP и Routing.
ARP
ARP (Address Resolution Protocol) используется для идентификации аппаратного адреса хоста в локальной сети (т. Е. Той же подсети).
Если A (IP 10.0.1.2/24) хотел установить связь с другим хостом (C) с IP-адресом 10.0.1.5 , то произойдет следующее, если этот хост отсутствует в кэше:
A вещает «ARP запроса»
- Использование широковещательного MAC-адреса (
ff:ff:ff:ff:ff:ff)
- Запрос любого хоста с IP-адресом
10.0.1.5 для ответа
- Если удаленный хост (
C) получает этот пакет, то он отвечает своим правильным MAC-адресом.
ARP также может происходить с опережением: хосты « объявляют » себя, пытаясь уменьшить задержку, связанную с поиском, хотя это может легко привести к подделке и отравлению.
маршрутизация
Маршрутизация позволяет узлу получать доступ к другим узлам, которые находятся за пределами " локальной " сети. Например, хост B имеет IP-адрес 10.0.5.2 , который находится за пределами подсети хоста A 10.0.1.0/24 .
Чтобы получить пакеты на хост B , хост A должен отправить их через маршрутизатор (он же « шлюз »). Если маршрут по умолчанию не указан (или не настроен соответствующий конкретный маршрут), то хост недоступен.
Если маршрут существует, то A
- Используйте ARP, чтобы найти MAC-адрес маршрутизатора (
R1)
- Отправьте пакет, адресованный IP
B (10.0.5.2), но используя MAC-адрес маршрутизатора R1
- Маршрутизатор
R1 выполнит тот же поиск, отправив пакет на MAC-адрес R3 (или R2), но с IP-адресом B
- Это продолжается до тех пор, пока пакет не достигнет
B или пока маршрутизатор не объявит, что он не может маршрутизировать к данному хосту.
Если это работает так, как предыдущий узел узнает MAC-адрес следующего узла?
ARP используется на каждом этапе, чтобы получить MAC-адрес следующего хоста. R1 хочет переслать пакет через R3 , поэтому он использует ARP для получения MAC-адреса R3 .