Протокол ARP (Address Resolution Protocol)
-
Протокол разрешения адресов (ARP) — это фундаментальный механизм, обеспечивающий взаимодействие между сетевым (Layer 3) и канальным (Layer 2) уровнями модели OSI в сетях на основе IPv4. Его основная задача — динамическое преобразование логического IP-адреса узла в его физический MAC-адрес в пределах одного широковещательного домена (broadcast domain).
Основная проблема и решение
В стеке протоколов TCP/IP сетевой уровень оперирует IP-адресами для маршрутизации пакетов от источника к получателю через сеть. Однако, когда пакет достигает конечного сегмента сети (или когда оба узла находятся в одной подсети), его необходимо доставить конкретному сетевому интерфейсу. Канальный уровень, отвечающий за эту локальную доставку, использует аппаратные MAC-адреса.
Проблема: Устройство знает IP-адрес получателя, но не знает его MAC-адрес.
Решение: Протокол ARP.ARP решает эту проблему путем широковещательного запроса внутри локальной сети, эффективно спрашивая: “Кто владеет этим IP-адресом? Пожалуйста, сообщите мне свой MAC-адрес”.
Формат ARP-пакета
ARP-пакет инкапсулируется непосредственно в кадр канального уровня (например, Ethernet) и имеет следующую структуру:
Поле Размер (байты) Описание Hardware Type (HTYPE) 2 Тип аппаратного адреса. Для Ethernet значение 1.Protocol Type (PTYPE) 2 Тип протокола сетевого уровня. Для IPv4 значение 0x0800.Hardware Address Length (HLEN) 1 Длина аппаратного адреса в байтах. Для MAC-адресов — 6.Protocol Address Length (PLEN) 1 Длина сетевого адреса в байтах. Для IPv4 — 4.Operation (OPER) 2 Тип операции: 1для ARP-запроса (ARP Request),2для ARP-ответа (ARP Reply).Sender Hardware Address (SHA) 6 MAC-адрес отправителя запроса или ответа. Sender Protocol Address (SPA) 4 IP-адрес отправителя запроса или ответа. Target Hardware Address (THA) 6 В запросе — поле заполнено нулями ( 00:00:00:00:00:00). В ответе — MAC-адрес получателя.Target Protocol Address (TPA) 4 IP-адрес, для которого требуется разрешение MAC-адреса. Примеры ARP-пакетов
1. ARP-запрос (ARP Request):
- OPER:
1 - SHA: MAC-адрес отправителя (напр.,
00:11:22:33:44:55) - SPA: IP-адрес отправителя (напр.,
192.168.1.10) - THA:
00:00:00:00:00:00(неизвестен) - TPA: IP-адрес цели (напр.,
192.168.1.20)
Этот пакет инкапсулируется в широковещательный Ethernet-кадр с Destination MAC =
FF:FF:FF:FF:FF:FF, чтобы его получил каждый узел в сети.2. ARP-ответ (ARP Reply):
- OPER:
2 - SHA: MAC-адрес цели из запроса (напр.,
AA:BB:CC:DD:EE:FF) - SPA: IP-адрес цели из запроса (напр.,
192.168.1.20) - THA: MAC-адрес отправителя запроса (напр.,
00:11:22:33:44:55) - TPA: IP-адрес отправителя запроса (напр.,
192.168.1.10)
Этот пакет инкапсулируется в unicast Ethernet-кадр, направленный напрямую отправителю запроса.
Процесс работы ARP
Процесс разрешения адреса состоит из нескольких шагов:
- Проверка кэша: Узел A, желающий отправить пакет узлу B (
192.168.1.20), сначала проверяет свою локальную ARP-таблицу (кэш). Если записьIP -> MACуже существует и актуальна, процесс завершается, и A использует найденный MAC-адрес для формирования кадра. - Генерация запроса: Если записи в ARP-таблице нет, узел A создает ARP-запрос, где TPA =
192.168.1.20, а THA =00:00:00:00:00:00. - Широковещательная рассылка: ARP-запрос помещается в Ethernet-кадр с Destination MAC =
FF:FF:FF:FF:FF:FFи рассылается всем узлам в локальной сети. - Обработка запроса: Все узлы получают запрос. Большинство игнорируют его, сравнивая TPA со своим IP-адресом. Только узел B, чей IP совпадает с
192.168.1.20, обрабатывает запрос. - Формирование и отправка ответа: Узел B создает ARP-ответ, заполняя SHA и SPA своим MAC и IP, а THA и TPA — данными из запроса. Ответ отправляется напрямую узлу A как unicast-кадр.
- Обновление кэша: Узел A получает ответ, извлекает из него MAC-адрес узла B и добавляет новую запись (
192.168.1.20->AA:BB:CC:DD:EE:FF) в свою ARP-таблицу. Теперь A может отправить исходный пакет данных.
ARP-таблица (кэш)
Каждое устройство поддерживает локальную ARP-таблицу — это кэш соответствий IP-адресов и MAC-адресов. Это критически важно для производительности, так как позволяет избежать генерации ARP-запроса для каждого отправляемого пакета.
- Записи: Добавляются динамически при получении ARP-ответов.
- Время жизни (TTL): Записи имеют ограниченное время жизни (обычно от 15 до 45 минут в различных ОС). После истечения TTL запись помечается как устаревшая и удаляется, чтобы таблица не содержала недействительных данных (например, если устройство было отключено от сети).
- Статические записи: Администратор может вручную добавить постоянные записи, которые не устаревают. Это используется для повышения безопасности или для критически важных устройств.
Команда
arp -aв большинстве операционных систем позволяет просмотреть содержимое этой таблицы.
Безопасность и уязвимости
ARP является простым и эффективным протоколом, но он не содержит встроенных механизмов безопасности, что делает его уязвимым к атакам:
- ARP-спуфинг (ARP Spoofing / ARP Poisoning): Злоумышленник отправляет в сеть поддельные ARP-ответы, связывая свой MAC-адрес с IP-адресом другого узла (например, шлюза по умолчанию). В результате весь трафик, предназначенный для этого узла, будет перенаправляться на злоумышленника, что позволяет ему перехватывать, модифицировать или блокировать данные (атака типа “Man-in-the-Middle”).
- Причина уязвимости: Узлы принимают и обрабатывают ARP-ответы даже без отправки соответствующего запроса, и они автоматически обновляют свои ARP-таблицы на основе полученной информации.
Для защиты от таких атак используются специализированные решения, такие как статические ARP-записи, DHCP Snooping и Dynamic ARP Inspection (DAI) на управляемых коммутаторах.
Связь с другими протоколами
- RARP (Reverse ARP): Устаревший протокол, выполнявший обратную функцию — по MAC-адресу определял IP-адрес. Был заменен BOOTP, а затем DHCP.
- NDP (Neighbor Discovery Protocol): В IPv6 функции ARP полностью интегрированы в протокол NDP, который работает поверх ICMPv6 и предоставляет более широкий набор функций, включая обнаружение соседей, определение MTU и маршрутизаторов.
Таким образом, ARP является незаменимым “клеем”, связывающим логическую адресацию IP с физической адресацией на уровне MAC, обеспечивая корректную доставку данных в пределах локальной сети.
- OPER:
© 2024 - 2025 ExLends, Inc. Все права защищены.