stringtranslate.com

Протокол разрешения адресов

Протокол разрешения адресов ( ARP ) — это протокол связи, используемый для обнаружения адреса канального уровня , такого как MAC-адрес , связанного с данным адресом интернет-уровня , обычно адресом 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).

Объем деятельности

Протокол разрешения адресов представляет собой протокол запроса-ответа . Его сообщения непосредственно инкапсулируются протоколом канального уровня. Он передается в пределах одной подсети и никогда не маршрутизируется .

Структура пакета

Протокол разрешения адресов использует простой формат сообщения, содержащий один запрос или ответ на разрешение адреса. Пакеты передаются на канальном уровне базовой сети в виде необработанной полезной нагрузки. В случае Ethernet значение EtherType 0x0806 используется для идентификации кадров ARP.

Размер сообщения ARP зависит от размеров адресов канального и сетевого уровня. Заголовок сообщения определяет типы сетей, используемых на каждом уровне, а также размер адресов каждого из них. Заголовок сообщения завершается кодом операции запроса (1) и ответа (2). Полезная нагрузка пакета состоит из четырех адресов: аппаратного и протокольного адреса хостов отправителя и получателя.

Основная структура пакетов ARP показана в следующей таблице, которая иллюстрирует случай сетей IPv4, работающих в Ethernet. В этом сценарии пакет имеет 48-битные поля для аппаратного адреса отправителя (SHA) и целевого аппаратного адреса (THA), а также 32-битные поля для соответствующих адресов отправителя и целевого протокола (SPA и TPA). Размер пакета ARP в этом случае составляет 28 байт.

Тип оборудования (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 .

Для отправки сообщения также требуется MAC -адрес компьютера 2 . Во-первых, компьютер 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 ) и ATM, в которых адреса виртуальных каналов уровня 2 иногда получаются из сигнализации уровня 2, и соответствующие адреса уровня 3 должны быть доступны, прежде чем эти виртуальные каналы можно будет использовать. [21]

Протокол обратного разрешения адресов (Reverse ARP или RARP), как и InARP, преобразует адреса уровня 2 в адреса уровня 3. Однако в InARP запрашивающая станция запрашивает адрес уровня 3 другого узла, тогда как RARP используется для получения адреса уровня 3 самой запрашивающей станции в целях конфигурации адреса. RARP устарел; он был заменен на BOOTP , который позже был заменен протоколом динамической конфигурации хоста (DHCP). [22]

Подмена ARP и прокси-ARP

Успешная атака с подменой ARP позволяет злоумышленнику выполнить атаку «человек посередине» .

Поскольку ARP не предоставляет методов аутентификации ответов ARP в сети, ответы ARP могут поступать из систем, отличных от той, которая имеет требуемый адрес уровня 2. Прокси-сервер ARP — это система, которая отвечает на запрос ARP от имени другой системы, для которой она перенаправляет трафик, обычно как часть структуры сети, например, для коммутируемого доступа в Интернет. Напротив, при подмене ARP отвечающей системы, или спуфере , отвечает на запрос адреса другой системы с целью перехвата данных, привязанных к этой системе. Злоумышленник может использовать подмену ARP для выполнения атаки «человек посередине» или атаки типа «отказ в обслуживании» на других пользователей в сети. Существует различное программное обеспечение для обнаружения и выполнения атак спуфинга ARP, хотя сам ARP не предоставляет никаких методов защиты от таких атак. [23]

Альтернативы

IPv6 использует протокол обнаружения соседей и его расширения, такие как Secure Neighbor Discovery , а не ARP.

Компьютеры могут поддерживать списки известных адресов вместо использования активного протокола. В этой модели каждый компьютер поддерживает базу данных сопоставления адресов уровня 3 (например, IP-адресов ) с адресами уровня 2 (например, MAC-адресами Ethernet ). Эти данные сохраняются в основном за счет интерпретации пакетов ARP из канала локальной сети. Поэтому его часто называют кэшем ARP . По крайней мере, с 1980-х годов [24] сетевые компьютеры имеют утилиту под названием arp для опроса или управления этой базой данных. [25] [26] [27]

Исторически для поддержания сопоставления между адресами использовались другие методы, такие как файлы статической конфигурации [28] или централизованно поддерживаемые списки.

ARP-начинка

Встроенные системы, такие как сетевые камеры [29] и сетевые устройства распределения питания [30] , у которых отсутствует пользовательский интерфейс, могут использовать так называемую начинку ARP для установления начального сетевого подключения, хотя это неправильное название, поскольку ARP не задействован.

Наполнение ARP осуществляется следующим образом:

  1. Компьютер пользователя имеет IP-адрес, введенный вручную в таблицу адресов (обычно с помощью команды arp с MAC-адресом, взятым с метки на устройстве).
  2. Компьютер отправляет на устройство специальные пакеты, обычно ping- пакет нестандартного размера.
  3. Затем устройство принимает этот IP-адрес.
  4. Затем пользователь связывается с ним по протоколам Telnet или веб- протоколу для завершения настройки.

Такие устройства обычно имеют способ отключить этот процесс, когда устройство работает нормально, поскольку эта возможность может сделать его уязвимым для атак.

Стандартные документы

Смотрите также

Рекомендации

  1. ^ Дэвид К. Пламмер (ноябрь 1982 г.). «RFC 826, Протокол разрешения адресов Ethernet — или — Преобразование адресов сетевых протоколов в 48-битный адрес Ethernet для передачи на оборудование Ethernet». Рабочая группа по интернет-инжинирингу, Сетевая рабочая группа.
  2. ^ abc «Параметры протокола разрешения адресов (ARP)» . www.iana.org . Проверено 16 октября 2018 г.
  3. ^ RFC  5342
  4. ^ Дэвид С. Пламмер (ноябрь 1982 г.). Протокол разрешения адресов Ethernet. Сетевая рабочая группа. дои : 10.17487/RFC0826 . СТД 37. RFC 826. Интернет Стандарт 37. сек. Мониторинг и отладка сети. Обновлено RFC 5227 и 5494.
  5. ^ Р. Брейден , изд. (октябрь 1989 г.). Требования к интернет-хостам — коммуникационные уровни. Сетевая рабочая группа. дои : 10.17487/RFC1122 . СТД 3. RFC 1122. Интернет-стандарт 3. Обновлен RFC 1349, 4379, 5884, 6093, 6298, 6633, 6864, 8029 и 9293.
  6. ^ RFC  1122
  7. ^ У. Ричард Стивенс, TCP/IP Illustrated, Том 1: Протоколы , Аддисон Уэсли, 1994, ISBN 0-201-63346-9.
  8. ^ У. Ричард Стивенс, TCP/IP Illustrated, Том 1: Протоколы , Аддисон Уэсли, 2011, ISBN 0-321-33631-3, стр. 14
  9. ^ Чаппелл, Лаура А.; Титтель, Эд (2007). Руководство по TCP/IP (Третье изд.). Технология курса Томсона. стр. 115–116. ISBN 9781418837556.
  10. ^ Чешир, С. (июль 2008 г.). Обнаружение конфликта IPv4-адресов. Рабочая группа по интернет-инжинирингу. дои : 10.17487/RFC5227 . РФК 5227.
  11. ^ Хармуш, Эд. «Зонд ARP и объявление ARP». Практическая сеть . Практические сети .net . Проверено 3 августа 2022 г.
  12. ^ Перкинс, К. (ноябрь 2010 г.). «RFC 5944 — Поддержка IP-мобильности для IPv4, пересмотренная версия». Рабочая группа по интернет-инжинирингу. Необоснованный ARP МОЖЕТ использовать либо запрос ARP, либо пакет ответа ARP. [...] любой узел, получающий любой пакет ARP (запрос или ответ), ДОЛЖЕН обновить свой локальный кэш ARP, указав протокол отправителя и аппаратные адреса в пакете ARP [...]
  13. ^ Перкинс, К. (октябрь 1996 г.). «RFC 2002 — Поддержка IP-мобильности». Рабочая группа по интернет-инжинирингу.
  14. ^ Чешир, С. (июль 2008 г.). «RFC 5227 — Обнаружение конфликта адресов IPv4». Рабочая группа по интернет-инжинирингу. Почему объявления ARP выполняются с использованием пакетов запроса ARP, а не пакетов ответа ARP?
  15. ^ «Часто задаваемые вопросы: брандмауэр не обновляет таблицу протоколов разрешения адресов» . Цитрикс . 16 января 2015 г. [...] включенный [...] garpReply генерирует пакеты ARP, которые [...] имеют тип OPCODE REPLY, а не REQUEST.
  16. ^ «Бесплатный ARP в проекте DHCP и IPv4 ACD» . Архивировано из оригинала 12 октября 2007 года.
  17. ^ Перкинс, Чарльз Э. (октябрь 1996 г.). «RFC 2002, раздел 4.6».
  18. ^ Дромс, Ральф (март 1997 г.). «RFC 2131 DHCP – Последние строки раздела 4.4.1».
  19. ^ RFC  3927
  20. ^ Шах, Х.; и другие. (июнь 2012 г.). Посредничество протокола разрешения адресов (ARP) для IP-взаимодействия VPN уровня 2. Рабочая группа по интернет-инжинирингу. дои : 10.17487/RFC6575 . РФК 6575.
  21. ^ Т. Брэдли; К. Браун; А. Малис (сентябрь 1998 г.). Протокол обратного разрешения адресов. Сетевая рабочая группа. дои : 10.17487/RFC2390 . РФК 2390. Проект стандарта. Устаревший RFC 1293.
  22. ^ Р. Финлейсон; Т. Манн; Дж. Могул; М. Теймер (июнь 1984 г.). Протокол разрешения обратного адреса. Сетевая рабочая группа. дои : 10.17487/RFC0903 . СТД 38. RFC 903. Интернет-стандарт 38.
  23. ^ Стив Гибсон (11 декабря 2005 г.). «Отравление ARP-кэша». ГРЦ .
  24. ^ Калифорнийский университет, Беркли. «Страница руководства BSD для команды arp(8C)» . Проверено 28 сентября 2011 г.
  25. ^ Канонический. «Страница руководства Ubuntu для команды arp(8)». Архивировано из оригинала 16 марта 2012 г. Проверено 28 сентября 2011 г.
  26. ^ Компьютер Apple. «Страница руководства Mac OS X для команды arp(8)» . Проверено 28 сентября 2011 г.
  27. ^ Майкрософт. «Справка Windows по команде arp» . Проверено 28 сентября 2011 г.
  28. ^ Сан Микросистемс. «Страница руководства SunOS для файла ethers(5)» . Проверено 28 сентября 2011 г.
  29. ^ Осевая связь. «Руководство по установке сетевых камер серии Axis P13» (PDF) . Проверено 28 сентября 2011 г.
  30. ^ Американская энергетическая корпорация. «Руководство по установке и быстрому запуску устройства распределения питания в стойке» (PDF) . Архивировано из оригинала (PDF) 25 ноября 2011 г. Проверено 28 сентября 2011 г.

Внешние ссылки