
518 Глава 5. Сетевой уровень
Существуют различные методы повышения эффективности протокола ARP.
Во-первых, машина, на которой работает протокол ARP, может запоминать ре-
зультат преобразования адреса на случай, если ей придется снова связываться с
той же машиной. В следующий раз она найдет нужный адрес в своем кэше, сэко-
номив, таким образом, на рассылке широковещательного пакета. Скорее всего,
хосту 2 понадобится отослать ответ на пакет, что также потребует от него обра-
щения к ARP для определения адреса отправителя. Этого обращения можно из-
бежать, если отправитель включит в ARP-пакет свои IP- и Ethernet-адреса. Ко-
гда широковещательный ARP-пакет прибудет на хост 2, пара (192.31.65.7, £1)
будет сохранена хостом 2 в ARP-кэше для будущего использования. Более того,
эту пару адресов могут сохранить у себя все машины сети Ethernet.
Кроме того, каждая машина может рассылать свою пару адресов во время за-
грузки. Обычно эта широковещательная рассылка производится в виде ARP-na-
кета, запрашивающего свой собственный IP-адрес. Ответа на такой запрос быть
не должно, но все машины могут запомнить эту пару адресов. Если ответ все же
придет, это будет означать, что двум машинам назначен один и тот же IP-адрес.
При этом вторая машина должна проинформировать системного администрато-
ра и прекратить загрузку.
Чтобы разрешить изменение соответствий адресов, например, при поломке
и замене сетевой карты на новую (с новым Ethernet-адресом), записи в ARP-кэше
должны устаревать за несколько минут.
Посмотрим снова на рис. 5.53. На этот раз хост 1 хочет послать пакет хосту 4
(192.31.63.8). Обращение к ARP не даст результата, так как хост 4 не увидит ши-
роковещательного пакета (маршрутизаторы не переправляют широковещатель-
ные пакеты Ethernet-уровня). Есть два решения данной проблемы. Во-первых,
маршрутизатор факультета кибернетики можно настроить так, чтобы он отвечал
на ARP-запросы к сети 192.31.63.0 (а также к другим местным сетям). В таком
случае хост 1 добавит в свой ARP-кэш строку (192.31.63.8, ЕЗ) и будет счастлив
посылать весь трафик для хоста 4 локальному маршрутизатору. Такой метод на-
зывается ARP-прокси. Второе решение состоит в том, чтобы хост 1 сразу выяв-
лял нахождение адресата в удаленной сети и посылал весь внешний трафик по
Ethernet-адресу, обрабатывающему все пакеты для удаленных адресатов, то есть
по адресу маршрутизатора £3. В этом случае маршрутизатору факультета кибер-
нетики не нужно знать, какую именно удаленную сеть он обслуживает.
В любом случае хост 1 помещает IP-пакет в поле полезной нагрузки Ethernet-
кадра, адресованного маршрутизатору £3. Получив Ethernet-кадр, маршрутизатор
факультета кибернетики извлекает из поля полезной нагрузки IP-пакет и ищет
его IP-адрес в своих таблицах. Он обнаруживает, что пакеты, адресованные сети
192.31.63.0, должны пересылаться маршрутизатору 192.31.60.7. Если ему еще не
известен FDDI-адрес маршрутизатора 192.31.60.7, то он посылает по кольцу ши-
роковещательный ARP-пакет и узнает, что нужный ему адрес F3. Затем он поме-
щает IP-пакет в поле полезной нагрузки FDDI-кадра, адресованного маршрути-
затору F3, и отправляет его по кольцу.
Когда кадр попадает на маршрутизатор факультета электротехники, FDDI-
драйвер извлекает из поля полезной нагрузки IP-пакет и передает его IP-про-
грамме, которая понимает, что этот пакет следует переслать 192.31.63.8. Если та-
Сетевой уровень в Интернете 519
кого IP-адреса еще нет в ARP-кэше, маршрутизатор посылает широковещатель-
ный ARP-запрос по сети Ethernet факультета электротехники и узнает, что
нужный ему адрес принадлежит хосту £6, поэтому он создает Ethernet-кадр, ад-
ресованный хосту £6, помещает IP-пакет в поле полезной нагрузки и передает
его по сети Ethernet. Получив Ethernet-кадр, хост 4 извлекает из поля полезной
нагрузки IP-пакет и передает его IP-программе для обработки.
Пересылка хостом 1 пакетов в удаленную сеть по глобальной сети работает
аналогично, с той разницей, что на этот раз маршрутизатор факультета киберне-
тики узнает из своих таблиц, что пакет следует переслать маршрутизатору гло-
бальной сети, чей FDDI-адрес равен F2.
Протоколы RARP, ВООТР и DHCP
Протокол ARP решает проблему определения по заданному IP-адресу Ethernet-
адреса хоста. Иногда бывает необходимо решить обратную задачу, то есть по за-
данному Ethernet-адресу определить IP-адрес. В частности, эта проблема возни-
кает при загрузке бездисковой рабочей станции. Обычно такая машина получает
двоичный образ своей операционной системы от удаленного файлового сервера.
Но как ей узнать его IP-адрес?
Первым для решения проблемы был разработан протокол RARP (Reverse
Address Resolution Protocol — протокол обратного определения адреса), описан-
ный в RFC 903. Этот протокол позволяет только что загрузившейся рабочей стан-
ции разослать всем свой Ethernet-адрес и сказать: «Мой 48-разрядный Ethernet-
адрес — 14.04.05.18.01.25. Знает ли кто-нибудь мой IP-адрес?» RARP-сервер ви-
дит этот запрос, ищет Ethernet-адрес в своих файлах конфигурации и посылает
обратно соответствующий IP-адрес.
Использование протокола RARP лучше внедрения IP-адреса в образ загру-
жаемой памяти, так как это позволяет использовать данный образ памяти для
разных машин. Если бы IP-адреса хранились бы где-то в глубине образа памяти,
каждой машине понадобился бы свой отдельный образ.
Недостаток протокола RARP заключается в том, что в нем для обращения
к RARP-серверу используется адрес, состоящий из одних единиц (ограниченное
широковещание). Однако эти широковещательные запросы не переправляются
маршрутизаторами в другие сети, поэтому в каждой сети требуется свой RARP-
сервер. Для решения данной проблемы был разработан альтернативный загру-
зочный протокол ВООТР. В отличие от RARP, он использует UDP-сообщения,
пересылаемые маршрутизаторами в другие сети. Он также снабжает бездиско-
вые рабочие станции дополнительной информацией, включающей IP-адрес фай-
лового сервера, содержащего образ памяти, IP-адрес маршрутизатора по умолча-
нию, а также маску подсети. Протокол ВООТР описан в документах RFC 951,
1048 и 1084.
Серьезной проблемой, связанной с применением ВООТР, является то, что
таблицы соответствия адресов приходится настраивать вручную. Когда к ЛВС
подключается новый хост, протокол ВООТР невозможно использовать до тех
пор, пока администратор сети не присвоит ему IP-адрес и не пропишет вручную
в конфигурационных таблицах пару (Ethernet-адрес, IP-адрес). Для устранения