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

Протокол 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-ответ, отправляемый узлом без соответствующего запроса. Используется для:

  • Объявления о смене MAC-адреса (например, при переключении сетевого интерфейса).
  • Проверки уникальности IP-адреса (Duplicate Address Detection, DAD) в протоколах DHCP и IPv4.
  • Обновления 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-ответов или при отправке собственных запросов.
  • Удаление по таймеру: Устаревшие записи удаляются после истечения TTL.
  • Принудительное удаление: Команды arp -d (Windows/Linux) или netsh interface ip delete arpcache (Windows) позволяют очистить кэш.

Применение

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

  • Передача IP-пакетов в Ethernet-сетях: Без ARP невозможно определить MAC-адрес получателя, что делает невозможной отправку кадров.
  • Работа DHCP: Клиент использует ARP (через Gratuitous ARP) для проверки уникальности полученного IP-адреса.
  • Маршрутизация: Маршрутизаторы используют ARP для определения MAC-адресов соседних узлов при пересылке пакетов.
  • Сетевые утилиты: Инструменты, такие как arping, используют ARP-запросы для проверки доступности узлов.

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

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

  • ARP-спуфинг (ARP cache poisoning): Злоумышленник отправляет поддельные ARP-ответы, связывая свой MAC-адрес с IP-адресом другого узла (например, шлюза). Это позволяет перехватывать трафик (атака «человек посередине», MITM).
  • ARP-флуд: Массовая рассылка поддельных ARP-запросов или ответов для переполнения ARP-кэша и нарушения работы сети.
  • Отказ в обслуживании (DoS): Подмена MAC-адреса шлюза может привести к недоступности сети для всех узлов.

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

  • Статические ARP-записи: Ручное добавление записей для критичных узлов (например, шлюза).
  • ARP-инспекция (DAI, Dynamic ARP Inspection): Технология на управляемых коммутаторах, проверяющая подлинность ARP-пакетов на основе DHCP-снупинга.
  • Использование VPN или шифрования: Протоколы IPsec, SSL/TLS защищают трафик даже при успешном ARP-спуфинге.
  • Протокол S-ARP: Расширение ARP с цифровыми подписями, но не получившее широкого распространения.

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

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

  • Широковещательный характер: ARP-запросы рассылаются всем узлам подсети, что создаёт избыточный трафик в больших сетях.
  • Отсутствие масштабирования: ARP не работает через маршрутизаторы и не поддерживает глобальные сети.
  • Зависимость от IPv4: Для IPv6 используется NDP, который лишён многих недостатков ARP (многоадресная рассылка, встроенная безопасность).

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

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

На главную BFOmetr →