Разрешение локального IP-адреса
Перед соединением двух узлов IP-адрес каждого из них должен быть преобразован в адрес сетевого адаптера. Этот процесс состоит из выполнения ARP-запроса и получения ARP-ответа. 1. ARP-запрос формируется каждый раз при попытке одного узла связаться с другим. Если протокол IP определяет, что IP-адрес принадлежит локальной сети, узел-отправитель ищет адрес узла-получателя в своем собственном ARP-кэше. 2. Если он не найден, протокол АRР формирует запрос типа «Чей это IР-адрес и каков Ваш адрес сетевого адаптера?», в который также включаются адреса IР и сетевого адаптера узла-отправителя. АRР-запрос посылается в широковещательном режиме, чтобы все узлы в локальной сети могли принять и обработать его. 3. Каждый узел в локальной сети получает этот широковещательный запрос и сравнивает указанный в нем IР-адрес со своим собственным. Если они не совпадают, запрос игнорируется. 4. Узел-получатель определяет, что IР-адрес в запросе совпадает с его собственным, и посылает на узел-отправитель АRР-ответ, в котором указывает свой адрес сетевого адаптера. Затем он обновляет свой АRР-кэш, занося в него соответствие IР-адреса узла-отправителя адресу его сетевого адаптера. После того как узел-отправитель получает АRР-ответ, соединение может быть установлено. Разрешение удаленного IР-адреса. Протокол ARP также позволяет связываться двум узлам из различных сетей. В этом случае широковещательный ARP-запрос обеспечивает возможность выяснить адрес используемого отправителем шлюза по умолчанию, а не узла-получателя. Если получатель находится в удаленной сети, то широковещательный ARP-запрос используется для поиска маршрутизатора, который может пересылать пакеты в эту сеть. 1. При соединении определяется, что IР-адрес узла-получателя принадлежит удаленной сети. Узел-отправитель ищет в локальной таблице маршрутизации путь к узлу-получателю или его сети. Если путь не найден в таблице, узел-отправитель определяет IР-адрес шлюза по умолчанию. Затем он ищет в кэше протокола ARP соответствующий ему адрес сетевого адаптера. 2. Если этот адрес в кэше отсутствует, то широковещательный ARP-запрос используется для получения адреса шлюза, а не узла-получателя. Маршрутизатор (шлюз) в ответ на ARP-запрос узла-отправителя посылает адрес своего сетевого адаптера. Затем узел-отправитель адресует пакет на маршрутизатор для доставки его в сеть получателя и далее – узлу-получателю. 3. На маршрутизаторе выясняется, является IP-адрес получателя локальным или удаленным. Если он локальный, то маршрутизатор использует протокол ARP (кэш или широковещание) для получения его адреса сетевого адаптера. Если же удаленный, маршрутизатор ищет в своей таблице маршрутизации необходимый шлюз, а затем использует протокол ARP (кэш или широковещание) для получения адреса его сетевого адаптера. Далее пакет отправляется непосредственно следующему получателю в этой цепочке. 4. Когда пакет достигнет получателя и будет обработан им, все исходящие пакеты таким же образом будут доставлены обратно. Например, при выполнении команды Р1пд в ответ на эхо-запрос узел-получатель пакета формирует эхо-ответ протокола IСМР (IСМР есhогерlу). Поскольку узел-отправитель находится в удаленной сети, в локальной таблице маршрутизации ищется адрес шлюза к сети узла-отправителя. Если поиск завершается успехом, адрес сетевого адаптера шлюза выясняется с помощью ARP. 5. Если адреса сетевого адаптера указанного шлюза нет в кэше протокола ARP, то для его определения используется широковещательный ARP-запрос. Как только адрес получен, эхо-ответ протокола IСМР посылается на маршрутизатор, который перенаправляет его на исходный узел-отправитель. Совсем другой способ разрешения адресов используется в глобальных сетях, в которых не поддерживаются широковещательные сообщения. Здесь администратору сети чаще всего приходится вручную формировать и помещать на какой-либо сервер ARP-таблицы, в которых он задает, например, соответствие IP-адресов адресам Х.25, которые имеют для протокола IP смысл локальных адресов. В то же время сегодня наметилась тенденция автоматизации протокола ARP и в глобальных сетях. Для этой цели среди всех маршрутизаторов, подключенных к какой-либо глобальной сети, выделяется специальный маршрутизатор, который ведет ARP-таблицу для всех остальных узлов и маршрутизаторов этой сети. При таком централизованном подходе для всех узлов и маршрутизаторов вручную нужно задать только IP-адрес и локальный адрес выделенного маршрутизатора. Затем каждый узел и маршрутизатор регистрирует свои адреса в выделенном маршрутизаторе, а при необходимости установления соответствия между IP-адресом и локальным адресом протокольный модуль обращается к выделенному с запросом и автоматически получает ответ без участия администратора. Работающий таким образом маршрутизатор называется ARP-сервером. В некоторых случаях возникает обратная задача – нахождение IP-адреса по известному локальному адресу. Тогда в действие вступает «реверсивный протокол ARP» (Reverse Address Resolution Protocol – RARP). Этот протокол используется, например, при старте бездисковых станций, не знающих в начальный период своего IP-адреса, но знающих МАС-адрес своего сетевого адаптера.
|