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

Протокол ARP

Протокол ARP (англ. Address Resolution Protocol — протокол разрешения адресов) — это протокол канального уровня (L2) в стеке TCP/IP, предназначенный для преобразования сетевых (IP) адресов в аппаратные (MAC) адреса в локальных вычислительных сетях (LAN). ARP используется для определения, какому MAC-адресу соответствует заданный IP-адрес в пределах одной подсети, что необходимо для передачи кадров на канальном уровне.

История и стандартизация

Протокол ARP был разработан в 1982 году Дэвидом Пламмером и описан в RFC 826 (стандарт Internet Standard STD 37). Изначально он создавался для сетей Ethernet, но впоследствии был адаптирован для других технологий канального уровня, таких как Wi-Fi (IEEE 802.11), Token Ring, FDDI и ATM. В 1990-х годах протокол стал основой для работы IPv4 в локальных сетях, а его недостатки (отсутствие аутентификации) привели к разработке расширений, таких как Secure ARP (S-ARP) и использование ARP-спуфинга.

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

ARP работает на основе широковещательных запросов и одноадресных ответов. Процесс разрешения адреса включает следующие шаги:

  1. Инициация запроса: Узел (отправитель), которому нужно отправить IP-пакет другому узлу в той же подсети, проверяет свой ARP-кэш (таблицу соответствий IP-адресов и MAC-адресов). Если запись отсутствует, он формирует ARP-запрос.
  2. Широковещательная рассылка: ARP-запрос отправляется на широковещательный MAC-адрес (FF:FF:FF:FF:FF:FF для Ethernet). Запрос содержит IP-адрес цели и MAC-адрес отправителя.
  3. Обработка запроса: Все узлы в локальной сети принимают кадр. Если IP-адрес цели совпадает с собственным IP-адресом узла, он формирует ARP-ответ, содержащий свой MAC-адрес. В противном случае кадр игнорируется.
  4. Одноадресный ответ: Ответ отправляется непосредственно отправителю (на его MAC-адрес). После получения ответа отправитель обновляет свой ARP-кэш и использует полученный MAC-адрес для передачи IP-пакета.

Формат ARP-пакета

ARP-пакет (кадр) имеет фиксированную структуру, описанную в RFC 826. Поля пакета:

ПолеРазмер (байт)Описание
Тип аппаратного адреса (HTYPE)2Идентификатор технологии канального уровня (1 для Ethernet)
Тип протокола (PTYPE)2Код сетевого протокола (0x0800 для IPv4)
Длина аппаратного адреса (HLEN)1Размер MAC-адреса в байтах (6 для Ethernet)
Длина протокольного адреса (PLEN)1Размер IP-адреса в байтах (4 для IPv4)
Операция (OPER)2Тип сообщения: 1 — запрос, 2 — ответ
Аппаратный адрес отправителя (SHA)HLENMAC-адрес отправителя
Протокольный адрес отправителя (SPA)PLENIP-адрес отправителя
Аппаратный адрес цели (THA)HLENMAC-адрес цели (заполняется нулями в запросе)
Протокольный адрес цели (TPA)PLENIP-адрес цели

Общий размер ARP-пакета для Ethernet и IPv4 составляет 28 байт (без учёта заголовка канального уровня).

Классификация и разновидности

Стандартный ARP (IPv4)

Используется в сетях IPv4 для разрешения адресов. Работает только в пределах одной подсети. Если IP-адрес цели находится в другой подсети, ARP-запрос отправляется на MAC-адрес шлюза по умолчанию.

Reverse ARP (RARP)

Обратный протокол, описанный в RFC 903 (1984 год). Позволяет узлу узнать свой IP-адрес по известному MAC-адресу. Использовался в бездисковых станциях для загрузки по сети, но вытеснен протоколами BOOTP и DHCP.

Proxy ARP

Техника, при которой маршрутизатор отвечает на ARP-запросы от имени удалённых узлов. Позволяет узлам в одной подсети связываться с узлами в другой подсети, не зная о существовании маршрутизатора. Описан в RFC 1027.

Gratuitous ARP (GARP)

Произвольный ARP-ответ, отправляемый узлом без соответствующего запроса. Используется для:

Inverse ARP (InARP)

Протокол, обратный ARP: позволяет определить IP-адрес по известному аппаратному адресу. Используется в сетях Frame Relay и ATM. Описан в RFC 2390.

ARP для IPv6 (NDP)

В протоколе IPv6 функции ARP выполняет протокол Neighbor Discovery Protocol (NDP), описанный в RFC 4861. NDP использует ICMPv6-сообщения и многоадресную рассылку вместо широковещательной, что снижает нагрузку на сеть.

ARP-кэш и управление им

Каждый узел хранит таблицу соответствий IP-адресов и MAC-адресов, называемую ARP-кэшем. Записи в кэше имеют ограниченный срок жизни (TTL, Time To Live), который в современных операционных системах обычно составляет от 15 до 300 секунд для динамических записей. Статические записи могут быть добавлены администратором вручную.

Механизмы управления ARP-кэшем:

Применение

ARP является критически важным протоколом для работы IPv4 в локальных сетях. Основные области применения:

Уязвимости и безопасность

ARP не имеет встроенных механизмов аутентификации, что делает его уязвимым для атак:

Методы защиты:

Ограничения и альтернативы

Основные ограничения ARP:

В современных сетях ARP остаётся стандартом для IPv4, но постепенно вытесняется NDP по мере перехода на IPv6.

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

На главную BFOmetr →