Набор интернет-протоколов |
---|
Уровень приложения |
Транспортный уровень |
Интернет-уровень |
Связующий слой |
|
Address Resolution Protocol ( ARP ) представляет собой протокол связи , используемый для обнаружения канального уровня адреса, например, МАС - адрес , связанный с данным интернет - слоя адрес, обычно представляет собой адрес IPv4 . Это сопоставление является важной функцией в наборе Интернет-протоколов . ARP была определена в 1982 году RFC 826 , [1] , который является Интернет Стандарт STD 37.
ARP реализован с использованием множества комбинаций технологий сетевого и канального уровня, таких как IPv4 , Chaosnet , DECnet и Xerox PARC Universal Packet (PUP) с использованием стандартов IEEE 802 , FDDI , X.25 , Frame Relay и асинхронного режима передачи (ATM). .
В сетях Интернет-протокола версии 6 (IPv6) функциональность ARP обеспечивается протоколом обнаружения соседей (NDP).
Протокол разрешения адресов - это протокол запроса-ответа , сообщения которого инкапсулируются протоколом канального уровня. Он передается в пределах одной сети и никогда не маршрутизируется через узлы межсетевого взаимодействия. Это свойство места ARP в канальном уровне из набора протоколов Internet . [2]
Протокол разрешения адресов использует простой формат сообщения, содержащий один запрос или ответ на разрешение адреса. Размер сообщения ARP зависит от размеров адреса канального и сетевого уровня. Заголовок сообщения определяет типы сети, используемые на каждом уровне, а также размер адресов каждого из них. Заголовок сообщения дополняется кодом операции для запроса (1) и ответа (2). Полезная нагрузка пакета состоит из четырех адресов, аппаратных и протокольных адресов отправителя и получателя.
Основная структура пакетов ARP показана в следующей таблице, которая иллюстрирует случай сетей IPv4, работающих на Ethernet. В этом сценарии пакет имеет 48-битные поля для аппаратного адреса отправителя (SHA) и целевого аппаратного адреса (THA), а также 32-битные поля для соответствующих адресов отправителя и целевого протокола (SPA и TPA). Размер пакета ARP в этом случае составляет 28 байтов.
Смещение октета | 0 | 1 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Тип оборудования (HTYPE) | |||||||||||||||
2 | Тип протокола (PTYPE) | |||||||||||||||
4 | Длина аппаратного адреса (HLEN) | Длина адреса протокола (PLEN) | ||||||||||||||
6 | Операция (OPER) | |||||||||||||||
8 | Аппаратный адрес отправителя (SHA) (первые 2 байта) | |||||||||||||||
10 | (следующие 2 байта) | |||||||||||||||
12 | (последние 2 байта) | |||||||||||||||
14 | Адрес протокола отправителя (SPA) (первые 2 байта) | |||||||||||||||
16 | (последние 2 байта) | |||||||||||||||
18 | Целевой аппаратный адрес (THA) (первые 2 байта) | |||||||||||||||
20 | (следующие 2 байта) | |||||||||||||||
22 | (последние 2 байта) | |||||||||||||||
24 | Адрес целевого протокола (TPA) (первые 2 байта) | |||||||||||||||
26 год | (последние 2 байта) |
Значения параметров протокола ARP стандартизированы и поддерживаются Internet Assigned Numbers Authority (IANA). [6]
EtherType для ARP является 0x0806. Это появляется в заголовке кадра Ethernet, когда полезной нагрузкой является пакет ARP, и его не следует путать с PTYPE, который появляется в этом инкапсулированном пакете ARP.
Два компьютера в офисе (компьютер 1 и компьютер 2) подключены друг к другу в локальной сети с помощью кабелей Ethernet и сетевых коммутаторов без промежуточных шлюзов или маршрутизаторов . Компьютер 1 имеет пакет для отправки на компьютер 2. Через DNS он определяет, что компьютер 2 имеет IP-адрес 192.168.0.55.
Для отправки сообщения также требуется MAC-адрес компьютера 2 . Во-первых, компьютер 1 использует кэшированную таблицу ARP для поиска 192.168.0.55 любых существующих записей MAC-адреса компьютера 2 (00: eb: 24: b2: 05: ac). Если MAC-адрес найден, он отправляет кадр Ethernet с адресом назначения 00: eb: 24: b2: 05: ac, содержащий IP-пакет, по каналу. Если кэш не дал результата для 192.168.0.55, компьютер 1 должен отправить сообщение широковещательного запроса ARP (адрес назначения FF: FF: FF: FF: FF: FF MAC-адрес), которое принимается всеми компьютерами в локальной сети. , запрашивая ответ на 192.168.0.55.
Компьютер 2 отвечает сообщением ответа ARP, содержащим его MAC- и IP-адреса. В рамках отправки запроса Компьютер 2 может вставить запись для Компьютера 1 в свою таблицу ARP для будущего использования.
Компьютер 1 получает и кэширует информацию ответа в своей таблице ARP и теперь может отправить пакет. [7]
ARP - зонд представляет собой запрос ARP построен с полностью нулевым SPA. Перед тем, как начать использовать IPv4-адрес (независимо от того, получен ли он из ручной настройки, DHCP или каким-либо другим способом), хост, реализующий эту спецификацию, должен проверить, используется ли уже адрес, путем широковещательной рассылки пробных пакетов ARP. [8]
ARP также может использоваться как простой протокол объявления. Это полезно для обновления сопоставлений аппаратного адреса другими хостами при изменении IP-адреса или MAC-адреса отправителя. Такое объявление, также называемое сообщением бесплатного ARP (GARP), обычно транслируется в виде запроса ARP, содержащего SPA в целевом поле (TPA = SPA), с THA, установленным в ноль. Альтернативный способ - широковещательная рассылка ARP-ответа с SHA и SPA отправителя, дублированными в целевых полях (TPA = SPA, THA = SHA).
В запрос ARP и ARP - ответ объявлений являются основанные на стандартах методы, [9] [10] но запрос ARP является предпочтительным методом. [11] Некоторые устройства могут быть настроены для использования любого из этих двух типов объявлений. [12]
Объявление ARP не предназначено для запроса ответа; вместо этого он обновляет любые кэшированные записи в таблицах ARP других хостов, которые получают пакет. Код операции в объявлении может быть запросом или ответом; стандарт ARP определяет, что код операции обрабатывается только после обновления таблицы ARP из полей адреса. [13] [14] [15]
Многие операционные системы выдают ARP-объявление во время запуска. Это помогает решить проблемы, которые в противном случае могли бы возникнуть, если, например, сетевая карта была недавно заменена (изменение сопоставления IP-адреса с MAC-адресом), а другие хосты все еще имеют старое сопоставление в своих кэшах ARP.
Объявления ARP также используются некоторыми сетевыми интерфейсами для балансировки нагрузки для входящего трафика. В группе сетевых карт он используется для объявления другого MAC-адреса внутри группы, которая должна получать входящие пакеты.
Объявления ARP можно использовать в протоколе Zeroconf , чтобы разрешить автоматическое назначение локальных IP-адресов канала интерфейсу, для которого недоступна другая конфигурация IP-адреса. Объявления используются, чтобы гарантировать, что адрес, выбранный хостом, не используется другими хостами в сетевом соединении. [16]
Эта функция может быть опасной с точки зрения кибербезопасности, поскольку злоумышленник может получить информацию о других хостах своей подсети, чтобы сохранить в своем кэше ARP ( подмена ARP ) запись, в которой MAC-адрес злоумышленника связан, например, с IP-адресом по умолчанию. шлюз , что позволяет ему перехватывать весь трафик во внешние сети.
Посредничество ARP относится к процессу разрешения адресов уровня 2 через виртуальную частную проводную службу (VPWS), когда в подключенных каналах используются разные протоколы разрешения, например, Ethernet на одном конце и Frame Relay на другом. В IPv4 каждое устройство Provider Edge (PE) обнаруживает IP-адрес локально подключенного устройства Customer Edge (CE) и передает этот IP-адрес соответствующему удаленному устройству PE. Затем каждое устройство PE отвечает на локальные запросы ARP, используя IP-адрес удаленного устройства CE и аппаратный адрес локального устройства PE. В IPv6, каждое устройство PE обнаруживает IP-адрес как локального, так и удаленного устройства CE, а затем перехватывает пакеты локального обнаружения соседа (ND) и обнаружения обратного соседа (IND) и пересылает их удаленному устройству PE. [17]
Протокол обратного разрешения адресов ( Inverse ARP или InARP ) используется для получения адресов сетевого уровня (например, IP-адресов ) других узлов из адресов канального уровня (уровня 2). Поскольку ARP преобразует адреса уровня 3 в адреса уровня 2, InARP можно описать как обратный. Кроме того, InARP реализован как расширение протокола ARP: он использует тот же формат пакета, что и ARP, но другие коды операций.
InARP в основном используется в сетях Frame Relay ( DLCI ) и ATM, в которых адреса виртуальных каналов второго уровня иногда получаются из сигнализации уровня 2, и соответствующие адреса уровня 3 должны быть доступны до того, как эти виртуальные каналы могут быть использованы. [18]
Протокол обратного разрешения адресов (Reverse ARP или RARP), как и InARP, преобразует адреса уровня 2 в адреса уровня 3. Однако в InARP запрашивающая станция запрашивает адрес уровня 3 другого узла, тогда как RARP используется для получения адреса уровня 3 самой запрашивающей станции для целей конфигурации адреса. RARP устарел; он был заменен на BOOTP , который позже был заменен протоколом динамической конфигурации хоста (DHCP). [19]
Поскольку ARP не предоставляет методов для аутентификации ответов ARP в сети, ответы ARP могут поступать из систем, отличных от системы с требуемым адресом уровня 2. Прокси-сервер ARP - это система, которая отвечает на запрос ARP от имени другой системы, для которой она будет пересылать трафик, обычно как часть структуры сети, например, для интернет-службы коммутируемого доступа. В отличие от этого , в ARP спуфинга автоответчика, или спуфер , ответы на запрос на адрес другой системы с целью перехвата данных , связанные с этой системой. Злоумышленник может использовать ARP-спуфинг для атаки посредника или отказа в обслуживании.атака на других пользователей сети. Существует различное программное обеспечение как для обнаружения, так и для выполнения атак с подменой ARP, хотя сам ARP не предоставляет никаких методов защиты от таких атак. [20]
IPv6 использует протокол обнаружения соседей и его расширения, такие как обнаружение безопасного соседа , а не ARP.
Компьютеры могут вести списки известных адресов, а не использовать активный протокол. В этой модели каждый компьютер поддерживает базу данных сопоставления адресов уровня 3 (например, IP-адресов ) с адресами уровня 2 (например, MAC-адресами Ethernet ). Эти данные поддерживаются в основном путем интерпретации пакетов ARP из локальной сети. Таким образом, его часто называют кешем ARP . По крайней мере, с 1980-х годов [21] подключенные к сети компьютеры имеют утилиту под названием arp для опроса или управления этой базой данных. [22] [23] [24]
Исторически сложилось так, что для поддержки сопоставления между адресами использовались другие методы, такие как файлы статической конфигурации [25] или централизованно поддерживаемые списки.
Встроенные системы, такие как сетевые камеры [26] и сетевые устройства распределения питания [27], в которых отсутствует пользовательский интерфейс, могут использовать так называемую вставку ARP для первоначального сетевого подключения, хотя это неправильное название, поскольку ARP не задействован.
Заполнение ARP осуществляется следующим образом:
У таких устройств обычно есть метод отключения этого процесса, когда устройство работает нормально, поскольку такая возможность может сделать его уязвимым для атак.
Беспричинный ARP МОЖЕТ использовать либо запрос ARP, либо пакет ответа ARP.
[...] любой узел, получающий любой пакет ARP (запрос или ответ), ДОЛЖЕН обновить свой локальный кэш ARP с помощью протокола отправителя и аппаратных адресов в пакете ARP [...]
Почему объявления ARP выполняются с использованием пакетов запроса ARP, а не пакетов ответа ARP?
[...] garpReply enabled [...] генерирует ARP-пакеты, которые [...] относятся к типу OPCODE REPLY, а не REQUEST.
В Викиверситете есть учебные ресурсы о протоколе разрешения адресов |