Сеть использующая протокол ARP с представителем
Рисунок 12. Сеть, использующая протокол ARP с представителем
Если в ARP-таблице узла A нет маршрута доступа к узлу B, то узел A посылает ARP-запрос узлу B. Фактически машина A спрашивает: "Если кто-нибудь знает Ethernet-адрес узла 128.6.4.194, сообщите мне его". Узел B не может ответить на запрос самостоятельно. Он подключен к другой сети Ethernet и никогда даже не увидит этот ARP-запрос. Однако шлюз R может работать от его имени. Шлюз R отвечает: "Я здесь, IP-адресу 128.6.4.194 соответствует Ethernet-адрес 2:7:1:0:EB:CD", где 2:7:1:0:EB:CD в действительности является Ethernet-адресом шлюза. Это создает иллюзию, что узел 128.6.4.194 подключен непосредственно к той же локальной сети Ethernet, что и узел A, и имеет Ethernet-адрес 2:7:1:0:EB:CD. Когда узел A захочет послать новый IP-пакет узлу B, он использует указанный Ethernet-адрес. Кадр, содержащий IP-пакет, попадет к шлюзу R, а он переправит его по назначению.
Заметим, что полученный эффект такой же, как если бы в таблице маршрутов была запись
сеть | флаг вида маршрутизации | шлюз | интерфейс |
128.6.4.194 | косвенная | 128.6.5.1 | pe0 |
Обычно рекомендуется использовать таблицу маршрутов, так как архитектура протоколов TCP/IP предусматривает выполнение маршрутизации на межсетевом уровне. Однако иногда протокол ARP с представителем очень полезен. Он может помочь в следующих случаях:
- в IP-сети есть узел, который не умеет работать с подсетями;
- в IP-сети есть узел, который не может соответствующим образом реагировать на сообщения перенаправления;
- нежелательно выбирать какой-либо шлюз как маршрут по умолчанию;
- программное обеспечение не способно восстанавливаться при сбоях на маршрутах.
Для того, чтобы избавить пользователей от обязательной начальной установки маршрутов, некоторые реализации TCP/IP используют протокол ARP с представителем по умолчанию в тех случаях, когда не находят подходящих записей в таблице маршрутов.