Протокол разрешения адресов
Набор интернет-протоколов |
---|
Прикладной уровень |
Транспортный уровень |
Интернет-слой |
Слой связи |
Протокол разрешения адресов ( ARP ) — это протокол связи, используемый для обнаружения адреса канального уровня , например MAC-адреса , связанного с данным адресом интернет-уровня , обычно адресом IPv4 . Это сопоставление является важной функцией в наборе протоколов Интернета . ARP был определен в 1982 году РФК 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).
Объем работы
[ редактировать ]Протокол разрешения адресов представляет собой протокол запроса-ответа . Его сообщения непосредственно инкапсулируются протоколом канального уровня. Он передается в пределах одной подсети и никогда не маршрутизируется .
Структура пакета
[ редактировать ]Протокол разрешения адресов использует простой формат сообщения, содержащий один запрос или ответ на разрешение адреса. Пакеты передаются на канальном уровне базовой сети в виде необработанной полезной нагрузки. В случае Ethernet Значение 0x0806 EtherType используется для идентификации кадров ARP.
Размер сообщения ARP зависит от размеров адресов канального и сетевого уровня. сообщения Заголовок определяет типы сетей, используемых на каждом уровне, а также размер адресов каждого из них. Заголовок сообщения завершается кодом операции запроса (1) и ответа (2). Полезная нагрузка пакета состоит из четырех адресов: аппаратного и протокольного адреса хостов отправителя и получателя.
Основная структура пакетов ARP показана в следующей таблице, которая иллюстрирует случай сетей IPv4, работающих в Ethernet. В этом сценарии пакет имеет 48-битные поля для аппаратного адреса отправителя (SHA) и целевого аппаратного адреса (THA), а также 32-битные поля для соответствующих адресов отправителя и целевого протокола (SPA и TPA). Размер пакета ARP в этом случае составляет 28 байт.
Смещение октета | 0 | 1 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Тип оборудования (HTYPE) | |||||||||||||||
2 | Тип протокола (PTYPE) | |||||||||||||||
4 | Длина аппаратного адреса (HLEN) | Длина адреса протокола (PLEN) | ||||||||||||||
6 | Операция (ОПЕР) | |||||||||||||||
8 | Аппаратный адрес отправителя (SHA) (первые 2 байта) | |||||||||||||||
10 | (следующие 2 байта) | |||||||||||||||
12 | (последние 2 байта) | |||||||||||||||
14 | Адрес протокола отправителя (SPA) (первые 2 байта) | |||||||||||||||
16 | (последние 2 байта) | |||||||||||||||
18 | Целевой аппаратный адрес (THA) (первые 2 байта) | |||||||||||||||
20 | (следующие 2 байта) | |||||||||||||||
22 | (последние 2 байта) | |||||||||||||||
24 | Адрес целевого протокола (TPA) (первые 2 байта) | |||||||||||||||
26 | (последние 2 байта) |
- Тип оборудования (HTYPE)
- В этом поле указывается тип протокола сетевого канала. Пример: Ethernet равен 1. [2]
- Тип протокола (PTYPE)
- В этом поле указывается межсетевой протокол, для которого предназначен запрос ARP. Для IPv4 это имеет значение 0x0800 . Разрешенные значения PTYPE разделяют пространство нумерации со значениями для EtherType . [2] [3]
- Длина оборудования (HLEN)
- Длина (в октетах ) аппаратного адреса. Длина адреса Ethernet равна 6.
- Длина протокола (PLEN)
- Длина (в октетах) сетевых адресов. Межсетевой протокол указывается в PTYPE. Пример: длина адреса IPv4 равна 4.
- Операция
- Указывает операцию, которую выполняет отправитель: 1 для запроса, 2 для ответа.
- Аппаратный адрес отправителя (SHA)
- Медиа-адрес отправителя. В запросе ARP это поле используется для указания адреса хоста, отправляющего запрос. В ответе ARP это поле используется для указания адреса хоста, который искал запрос.
- Адрес протокола отправителя (SPA)
- Межсетевой адрес отправителя.
- Целевой аппаратный адрес (THA)
- Медиа-адрес предполагаемого получателя. В запросе ARP это поле игнорируется. В ответе ARP это поле используется для указания адреса хоста, отправившего запрос ARP.
- Адрес целевого протокола (TPA)
- Межсетевой адрес предполагаемого получателя.
Значения параметров протокола ARP стандартизированы и поддерживаются Управлением по присвоению номеров Интернета (IANA). [2]
EtherType : для ARP 0x0806 . Он появляется в заголовке кадра Ethernet, когда полезная нагрузка представляет собой пакет ARP, и его не следует путать с PTYPE, который появляется в этом инкапсулированном пакете ARP.
Многослойность
[ редактировать ]Место ARP в наборе протоколов Интернета и модели OSI может вызывать путаницу или даже споры. RFC 826 помещает его на канальный уровень и характеризует как инструмент для изучения «уровня более высокого уровня», такого как уровень Интернета. [4] RFC 1122 также обсуждает ARP в разделе канального уровня. [5] [6] Ричард Стивенс размещает ARP на канальном уровне OSI [7] в то время как более новые версии связывают его с сетевым уровнем или вводят промежуточный уровень OSI 2.5. [8]
Пример
[ редактировать ]Два компьютера в офисе ( Компьютер 1 и Компьютер 2 ) соединены друг с другом в локальной сети с помощью кабелей Ethernet и сетевых коммутаторов без каких-либо промежуточных шлюзов или маршрутизаторов . Компьютер 1 имеет пакет для отправки на компьютер 2 . Через DNS он определяет, что компьютер 2 имеет IP-адрес 192.168.0.55 .
Для отправки сообщения также требуется 2 компьютера MAC -адрес . Во-первых, компьютер 1 использует кэшированную таблицу ARP для поиска 192.168.0.55 для любых существующих записей MAC-адреса компьютера 2 ( 00:EB:24:B2:05:AC ). Если MAC-адрес найден, он отправляет кадр Ethernet , содержащий IP-пакет, по каналу с адресом назначения 00:EB:24:B2:05:AC . Если кэш не дал результата для 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 и теперь может отправить пакет. [9]
ARP-зонд
[ редактировать ]Зонд ARP в IPv4 — это запрос ARP, созданный с использованием SHA зондирующего узла, SPA со всеми нулями, THA со всеми нулями и TPA, установленного для проверяемого адреса IPv4. Если какой-либо хост в сети считает адрес IPv4 (в TPA) своим собственным, он ответит на зонд (через SHA зондирующего хоста), тем самым информируя зондирующий хост о конфликте адресов. Если вместо этого нет хоста, который считает адрес IPv4 своим собственным, ответа не будет. Если с небольшими задержками было отправлено несколько таких запросов и ни один из них не получил ответов, можно разумно ожидать, что конфликта не существует. Поскольку исходный пробный пакет не содержит ни допустимого SHA/SPA, ни допустимой пары THA/TPA, нет риска, что какой-либо хост будет использовать этот пакет для обновления своего кэша проблемными данными. Прежде чем начать использовать адрес IPv4 (полученный в результате ручной настройки, DHCP или каким-либо другим способом), хост, реализующий эту спецификацию, должен проверить, используется ли уже адрес, путем широковещательной рассылки тестовых пакетов ARP. [10] [11]
Объявления ARP
[ редактировать ]ARP также может использоваться как простой протокол объявлений. Это полезно для обновления сопоставлений аппаратного адреса других хостов при изменении IP-адреса или MAC-адреса отправителя. Такое объявление, также называемое бесплатным сообщением ARP (GARP), обычно передается как запрос ARP, содержащий SPA в целевом поле (TPA=SPA), при этом THA установлено в ноль. Альтернативный способ — широковещательная рассылка ответа ARP с дублированием SHA и SPA отправителя в целевых полях (TPA=SPA, THA=SHA).
Объявления запроса ARP и ответа ARP являются методами, основанными на стандартах. [12] [13] но метод запроса ARP является предпочтительным. [14] Некоторые устройства могут быть настроены на использование любого из этих двух типов объявлений. [15]
Объявление ARP не предназначено для запроса ответа; вместо этого он обновляет все кэшированные записи в таблицах ARP других хостов, которые получают пакет. Код операции в объявлении может быть либо запросом, либо ответом; Стандарт ARP указывает, что код операции обрабатывается только после обновления таблицы ARP из полей адреса. [16] [17] [18]
Многие операционные системы выдают объявление ARP во время запуска. Это помогает решить проблемы, которые в противном случае могли бы возникнуть, если, например, сетевая карта была недавно заменена (изменено сопоставление IP-адреса с MAC-адресами), а другие хосты все еще имеют старое сопоставление в своих кэшах ARP.
Объявления ARP также используются некоторыми сетевыми интерфейсами для балансировки нагрузки входящего трафика. В группе сетевых карт он используется для объявления другого MAC-адреса внутри группы, который должен получать входящие пакеты.
Объявления ARP можно использовать в протоколе Zeroconf , чтобы обеспечить автоматическое назначение локального адреса интерфейсу, где другая конфигурация IP-адреса недоступна. Объявления используются для того, чтобы гарантировать, что адрес, выбранный хостом, не используется другими хостами в сетевом канале. [19]
Эта функция может быть опасной с точки зрения кибербезопасности, поскольку злоумышленник может получить информацию о других хостах своей подсети, чтобы сохранить в их кэше ARP ( подмена ARP ) запись, в которой MAC-адрес злоумышленника связан, например, с IP-адресом узла по умолчанию. шлюз , что позволяет им перехватывать весь трафик во внешние сети.
ARP-посредничество
[ редактировать ]Посредничество ARP относится к процессу разрешения адресов уровня 2 через виртуальную частную проводную службу (VPWS), когда в подключенных цепях используются разные протоколы разрешения, например Ethernet на одном конце и Frame Relay на другом. В IPv4 каждое периферийное устройство поставщика (PE) обнаруживает IP-адрес локально подключенного периферийного устройства клиента (CE) и передает этот IP-адрес соответствующему удаленному PE-устройству. Затем каждое PE-устройство отвечает на локальные запросы ARP, используя IP-адрес удаленного CE-устройства и аппаратный адрес локального PE-устройства. В IPv6 каждое PE-устройство обнаруживает IP-адрес как локального, так и удаленного CE-устройства, а затем перехватывает пакеты локального обнаружения соседей (ND) и обратного обнаружения соседей (IND) и пересылает их на удаленное устройство PE. [20]
Обратный ARP и обратный ARP
[ редактировать ]Протокол обратного разрешения адресов ( Inverse ARP или InARP ) используется для получения адресов сетевого уровня (например, IP-адресов ) других узлов из адресов канального уровня (уровень 2). Поскольку ARP преобразует адреса уровня 3 в адреса уровня 2, InARP можно назвать его инверсией. Кроме того, InARP реализован как расширение протокола ARP: он использует тот же формат пакетов, что и ARP, но другие коды операций.
InARP в основном используется в сетях Frame Relay ( DLCI уровня 2 ) и ATM, в которых адреса виртуальных каналов иногда получаются из сигнализации уровня 2, и соответствующие адреса уровня 3 должны быть доступны, прежде чем эти виртуальные каналы можно будет использовать. [21]
Протокол обратного разрешения адресов (Reverse ARP или RARP), как и InARP, преобразует адреса уровня 2 в адреса уровня 3. Однако в InARP запрашивающая станция запрашивает адрес уровня 3 другого узла, тогда как RARP используется для получения адреса уровня 3 самой запрашивающей станции в целях конфигурации адреса. RARP устарел; он был заменен на BOOTP , который позже был заменен протоколом динамической конфигурации хоста (DHCP). [22]
Подмена ARP и прокси-ARP
[ редактировать ]
Поскольку ARP не предоставляет методов аутентификации ответов ARP в сети, ответы ARP могут поступать из систем, отличных от той, которая имеет требуемый адрес уровня 2. ARP Прокси-сервер — это система, которая отвечает на запрос ARP от имени другой системы, для которой она перенаправляет трафик, обычно как часть конструкции сети, например, для коммутируемого доступа в Интернет. Напротив, при подмене ARP отвечающей системы, или спуфере , отвечает на запрос адреса другой системы с целью перехвата данных, привязанных к этой системе. Злоумышленник может использовать подмену ARP для выполнения атаки «человек посередине» или атаки типа «отказ в обслуживании» на других пользователей в сети. Существует различное программное обеспечение для обнаружения и выполнения атак с подменой ARP, хотя сам ARP не предоставляет никаких методов защиты от таких атак. [23]
Альтернативы
[ редактировать ]IPv6 использует протокол обнаружения соседей и его расширения, такие как Secure Neighbor Discovery , а не ARP.
Компьютеры могут поддерживать списки известных адресов вместо использования активного протокола. В этой модели каждый компьютер поддерживает базу данных сопоставления адресов уровня 3 (например, IP-адресов ) с уровня 2 адресами Ethernet (например, MAC-адресами ). Эти данные сохраняются в основном за счет интерпретации пакетов ARP из канала локальной сети. Поэтому его часто называют кэшем ARP . По крайней мере, с 1980-х гг. [24] на сетевых компьютерах есть утилита arp для опроса и управления этой базой данных. [25] [26] [27]
Исторически для поддержания сопоставления между адресами использовались другие методы, такие как статические файлы конфигурации, [28] или централизованно поддерживаемые списки.
ARP-начинка
[ редактировать ]Встроенные системы, такие как сетевые камеры. [29] и сетевые устройства распределения электроэнергии, [30] у которых отсутствует пользовательский интерфейс, могут использовать так называемую подстановку ARP для установления начального сетевого подключения, хотя это неправильное название, поскольку ARP не задействован.
Наполнение ARP осуществляется следующим образом:
- Компьютер пользователя имеет IP-адрес, введенный вручную в таблицу адресов (обычно с помощью команды arp с MAC-адресом, взятым с метки на устройстве).
- Компьютер отправляет на устройство специальные пакеты, обычно ping -пакет нестандартного размера.
- Затем устройство принимает этот IP-адрес.
- Затем пользователь связывается с ним по протоколам Telnet или веб -протоколу для завершения настройки.
Такие устройства обычно имеют способ отключить этот процесс, когда устройство работает нормально, поскольку эта возможность может сделать его уязвимым для атак.
Стандартные документы
[ редактировать ]- RFC 826 — протокол разрешения адресов Ethernet, интернет-стандарт STD 37.
- RFC 903 — протокол разрешения обратного адреса, интернет-стандарт STD 38.
- RFC 2390 — Протокол обратного разрешения адресов, проект стандарта
- RFC 5227 — Обнаружение конфликта адресов IPv4, предлагаемый стандарт
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Дэвид С. Пламмер (ноябрь 1982 г.). «RFC 826, Протокол разрешения адресов Ethernet — или — Преобразование адресов сетевых протоколов в 48-битный адрес Ethernet для передачи на оборудование Ethernet» . Рабочая группа по проектированию Интернета, Сетевая рабочая группа.
- ^ Jump up to: а б с «Параметры протокола разрешения адресов (ARP)» . www.iana.org . Проверено 16 октября 2018 г.
- ^ RFC 5342
- ^ Дэвид С. Пламмер (ноябрь 1982 г.). Протокол разрешения адресов Ethernet . Сетевая рабочая группа. дои : 10.17487/RFC0826 . СТД 37. RFC 826 . Интернет Стандарт 37. сек. Мониторинг и отладка сети. Обновлено RFC 5227 и 5494 .
- ^ Р. Брейден , изд. (октябрь 1989 г.). Требования к интернет-хостам – коммуникационные уровни . Сетевая рабочая группа. дои : 10.17487/RFC1122 . СТД 3. RFC 1122 . Интернет-стандарт 3. Обновлено RFC 1349 , 4379 , 5884 , 6093 , 6298 , 6633 , 6864 , 8029 и 9293 .
- ^ RFC 1122
- ^ У. Ричард Стивенс, TCP/IP Illustrated, Том 1: Протоколы , Аддисон Уэсли, 1994, ISBN 0-201-63346-9.
- ^ У. Ричард Стивенс, TCP/IP Illustrated, Том 1: Протоколы , Аддисон Уэсли, 2011, ISBN 0-321-33631-3, стр. 14
- ^ Чаппелл, Лаура А.; Титтель, Эд (2007). Руководство по TCP/IP (Третье изд.). Технология курса Томсона. стр. 115–116. ISBN 9781418837556 .
- ^ Чешир, С. (июль 2008 г.). Обнаружение конфликта IPv4-адресов . Рабочая группа по интернет-инжинирингу. дои : 10.17487/RFC5227 . РФК 5227 .
- ^ Гармуш, Эд. «Зонд ARP и объявление ARP» . Практическая сеть . Практические сети .net . Проверено 3 августа 2022 г.
- ^ Перкинс, К. (ноябрь 2010 г.). «RFC 5944 — Поддержка IP-мобильности для IPv4, пересмотренная» . Рабочая группа по интернет-инжинирингу.
Необоснованный ARP МОЖЕТ использовать либо запрос ARP, либо пакет ответа ARP. [...] любой узел, получающий любой пакет ARP (запрос или ответ), ДОЛЖЕН обновить свой локальный кэш ARP, указав протокол отправителя и аппаратные адреса в пакете ARP [...]
- ^ Перкинс, К. (октябрь 1996 г.). «RFC 2002 — Поддержка IP-мобильности» . Рабочая группа по интернет-инжинирингу.
- ^ Чешир, С. (июль 2008 г.). «RFC 5227 — Обнаружение конфликта адресов IPv4» . Рабочая группа по интернет-инжинирингу.
Почему объявления ARP выполняются с использованием пакетов запроса ARP, а не пакетов ответа ARP?
- ^ «Часто задаваемые вопросы: Брандмауэр не обновляет таблицу протоколов разрешения адресов» . Цитрикс . 16 января 2015 г.
[...] включенный [...] garpReply генерирует пакеты ARP, которые [...] имеют тип OPCODE REPLY, а не REQUEST.
- ^ «Бесплатный ARP в проекте DHCP и IPv4 ACD» . Архивировано из оригинала 12 октября 2007 года.
- ^ Перкинс, Чарльз Э. (октябрь 1996 г.). «RFC 2002, раздел 4.6» .
- ^ Дромс, Ральф (март 1997 г.). «RFC 2131 DHCP — последние строки раздела 4.4.1» .
- ^ RFC 3927
- ^ Шах, Х.; и др. (июнь 2012 г.). Посредничество протокола разрешения адресов (ARP) для IP-взаимодействия VPN уровня 2 . Рабочая группа по интернет-инжинирингу. дои : 10.17487/RFC6575 . РФК 6575 .
- ^ Т. Брэдли; К. Браун; А. Малис (сентябрь 1998 г.). Протокол обратного разрешения адресов . Сетевая рабочая группа. дои : 10.17487/RFC2390 . РФК 2390 . Проект стандарта. Устаревшие РФК 1293 .
- ^ Р. Финлейсон; Т. Манн; Дж. Могул; М. Теймер (июнь 1984 г.). Протокол разрешения обратного адреса . Сетевая рабочая группа. дои : 10.17487/RFC0903 . СТД 38. RFC 903 . Интернет-стандарт 38.
- ^ Стив Гибсон (11 декабря 2005 г.). «Отравление ARP-кэша» . ГРЦ .
- ^ Калифорнийский университет, Беркли. «Страница руководства BSD для команды arp(8C)» . Проверено 28 сентября 2011 г.
- ^ Канонический. «Страница руководства Ubuntu для команды arp(8)» . Архивировано из оригинала 16 марта 2012 г. Проверено 28 сентября 2011 г.
- ^ Компьютер Apple. «Страница руководства Mac OS X для команды arp(8)» . Проверено 28 сентября 2011 г.
- ^ Майкрософт. «Справка Windows по команде arp» . Проверено 28 сентября 2011 г.
- ^ Сан Микросистемс. «Страница руководства SunOS для файла ethers(5)» . Проверено 28 сентября 2011 г.
- ^ Осевая связь. «Руководство по установке сетевых камер серии Axis P13» (PDF) . Проверено 28 сентября 2011 г.
- ^ Американская энергетическая корпорация. «Руководство по установке и быстрому запуску блока распределения питания в стойке» (PDF) . Архивировано из оригинала (PDF) 25 ноября 2011 г. Проверено 28 сентября 2011 г.
Внешние ссылки
[ редактировать ]
- «Схема последовательности ARP (pdf)» (PDF) . Архивировано из оригинала (PDF) 1 марта 2021 г.
- Безвозмездный ARP
- Информация и сбор образцов из Wireshark
- ARP-SK Инструменты генерации ARP-трафика