Открыть сервис

Reverse ARP

Reverse ARP (RARP, обратный ARP) — это сетевой протокол канального уровня, предназначенный для определения IP-адреса устройства по его известному MAC-адресу. В отличие от протокола ARP (Address Resolution Protocol), который решает обратную задачу (по IP-адресу находит MAC-адрес), RARP использовался в ранних компьютерных сетях для автоматической настройки бездисковых рабочих станций, которым требовалось узнать собственный IP-адрес при загрузке.

История и предпосылки

Протокол RARP был разработан в начале 1980-х годов и описан в RFC 903 (1984 год). Его появление было связано с необходимостью автоматической конфигурации сетевых устройств, не имеющих собственных постоянных запоминающих устройств (например, бездисковых станций X-терминалов или специализированных рабочих станций). Такие устройства при включении не могли хранить IP-адрес локально, поэтому им требовался механизм для его запроса у сервера.

RARP стал одним из первых протоколов, реализующих идею «динамической конфигурации» сети, но впоследствии был вытеснен более совершенными протоколами — BOOTP (Bootstrap Protocol) и DHCP (Dynamic Host Configuration Protocol), которые предоставляли больше возможностей (передача маски подсети, шлюза по умолчанию, DNS-серверов и т. д.).

Принцип работы

Протокол RARP работает на канальном уровне (уровень 2 модели OSI) и использует те же форматы кадров, что и ARP. Основное отличие — в типе операции (opcode) и направлении разрешения адресов.

  1. Инициализация запроса: Устройство (например, бездисковая станция) при загрузке отправляет широковещательный RARP-запрос (broadcast) на MAC-адрес FF:FF:FF:FF:FF:FF. В этом запросе указывается собственный MAC-адрес устройства в поле «Адрес отправителя (аппаратный)», а поле «Адрес отправителя (сетевой)» остаётся пустым (нулевым).
  2. Ответ сервера: RARP-сервер, который обслуживает сегмент сети, получает этот широковещательный кадр. Он ищет в своей таблице (обычно статически настроенном файле, например, /etc/ethers в Unix-системах) соответствие между MAC-адресом и IP-адресом. Если соответствие найдено, сервер отправляет RARP-ответ (unicast) обратно запрашивающему устройству, указывая в поле «Адрес отправителя (сетевой)» назначенный IP-адрес.
  3. Применение: Получив ответ, устройство устанавливает свой IP-адрес и может продолжить загрузку (например, загрузить операционную систему с сетевого диска).

Формат пакета RARP

Формат пакета RARP идентичен формату ARP, различаются только значения полей:

ПолеРазмер (байт)Описание
Тип аппаратного адреса (HTYPE)2Обычно 1 для Ethernet
Тип протокола (PTYPE)2Обычно 0x0800 для IPv4
Длина аппаратного адреса (HLEN)16 для Ethernet
Длина сетевого адреса (PLEN)14 для IPv4
Операция (OPER)23 — RARP-запрос, 4 — RARP-ответ
Аппаратный адрес отправителя (SHA)6MAC-адрес запрашивающего устройства
Сетевой адрес отправителя (SPA)4IP-адрес сервера (в запросе — нули)
Аппаратный адрес получателя (THA)6MAC-адрес запрашивающего устройства (в запросе — нули)
Сетевой адрес получателя (TPA)4IP-адрес запрашивающего устройства (в запросе — нули)

Ограничения и недостатки

RARP имел ряд фундаментальных ограничений, которые привели к его вытеснению:

Сравнение с ARP и другими протоколами

ХарактеристикаARPRARPBOOTP/DHCP
НазначениеОпределение MAC по IPОпределение IP по MACПолная конфигурация сети
Уровень OSIКанальный (L2)Канальный (L2)Прикладной (L7) поверх UDP
МаршрутизацияНет (широковещание в подсети)Нет (широковещание в подсети)Да (через ретрансляторы)
Дополнительные параметрыНетНетМаска, шлюз, DNS, домен и др.
Динамическое назначениеНетНетДа (пулы адресов)
RFCRFC 826 (1982)RFC 903 (1984)RFC 951 (1985), RFC 2131 (1997)

Применение

В современных сетях RARP практически не используется. Он был актуален в 1980-х — начале 1990-х годов для бездисковых станций (например, Sun Microsystems, DEC, Hewlett-Packard), которые загружали операционную систему с сервера по протоколу TFTP. С появлением BOOTP (1985) и DHCP (1993) RARP был полностью вытеснен. В современных операционных системах (Linux, Windows, macOS) поддержка RARP либо отсутствует, либо реализована только для обратной совместимости.

Однако принцип «обратного разрешения адресов» нашёл применение в других технологиях. Например, протокол ARP может использоваться в обратном направлении (Inverse ARP, InARP) в сетях Frame Relay и ATM для определения IP-адреса по известному адресу канального уровня (DLCI или VPI/VCI). Также существует протокол Reverse Address Resolution Protocol (RARP) в контексте IPv6 (NDP — Neighbor Discovery Protocol), который выполняет аналогичные функции, но с более широкими возможностями.

Интересные факты

Источники

  1. RFC 903 — A Reverse Address Resolution Protocol (1984).
  2. RFC 826 — An Ethernet Address Resolution Protocol (1982).
  3. Стивенс У. Р. «TCP/IP. Иллюстрированное руководство. Том 1. Протоколы» (2003).
  4. Таненбаум Э., Уэзеролл Д. «Компьютерные сети» (5-е издание, 2012).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →