Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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 байтов.

Тип оборудования (HTYPE)
В этом поле указывается тип протокола сетевого канала. Пример: Ethernet - 1.
Тип протокола (PTYPE)
В этом поле указывается межсетевой протокол, для которого предназначен запрос ARP. Для IPv4 это значение 0x0800. Допустимые значения PTYPE разделяют пространство нумерации с таковыми для EtherType . [3] [4] [5]
Длина оборудования (HLEN)
Длина (в октетах ) аппаратного адреса. Длина адреса Ethernet - 6.
Длина протокола (PLEN)
Длина (в октетах) межсетевых адресов. Межсетевой протокол указывается в PTYPE. Пример: длина IPv4-адреса 4.
Операция
Определяет операцию, которую выполняет отправитель: 1 для запроса, 2 для ответа.
Аппаратный адрес отправителя (SHA)
Медиа-адрес отправителя. В запросе ARP это поле используется для указания адреса хоста, отправляющего запрос. В ответе ARP это поле используется для указания адреса хоста, который искал запрос.
Адрес протокола отправителя (SPA)
Межсетевой адрес отправителя.
Целевой аппаратный адрес (THA)
Медиа-адрес предполагаемого получателя. В запросе ARP это поле игнорируется. В ответе ARP это поле используется для указания адреса хоста, отправившего запрос ARP.
Адрес целевого протокола (TPA)
Межсетевой адрес предполагаемого получателя.

Значения параметров протокола 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 - зонд представляет собой запрос ARP построен с полностью нулевым SPA. Перед тем, как начать использовать IPv4-адрес (независимо от того, получен ли он из ручной настройки, DHCP или каким-либо другим способом), хост, реализующий эту спецификацию, должен проверить, используется ли уже адрес, путем широковещательной рассылки пробных пакетов ARP. [8]

Объявления ARP [ править ]

ARP также может использоваться как простой протокол объявления. Это полезно для обновления сопоставлений аппаратного адреса другими хостами при изменении IP-адреса или MAC-адреса отправителя. Такое объявление, также называемое беспричинным сообщением ARP , обычно транслируется как запрос 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 относится к процессу разрешения адресов уровня 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]

Обратный ARP и обратный ARP [ править ]

Протокол обратного разрешения адресов ( 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 позволяет злоумышленнику выполнить атаку «человек посередине» .

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

Альтернативы ARP [ править ]

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

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

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

Наполнение ARP [ править ]

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

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

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

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

Документы стандартов [ править ]

  • RFC  826 - протокол разрешения адресов Ethernet, стандарт Интернета STD 37.
  • RFC  903 - протокол обратного разрешения адресов, интернет-стандарт STD 38.
  • RFC  2390 - протокол обратного разрешения адресов, проект стандарта
  • RFC  5227 - обнаружение конфликта адресов IPv4, предлагаемый стандарт

См. Также [ править ]

  • Арпинг
  • Arptables
  • Arpwatch
  • Bonjour Sleep Proxy
  • Cisco HDLC

Ссылки [ править ]

  1. Дэвид С. Пламмер (ноябрь 1982 г.). «RFC 826, Протокол разрешения адресов Ethernet - или - преобразование адресов сетевого протокола в 48-битные адреса Ethernet для передачи на оборудовании Ethernet» . Инженерная группа Интернета, Сетевая рабочая группа.
  2. Перейти ↑ Braden, R. (октябрь 1989 г.). «RFC 1122 - Требования к хостам Интернета - Уровни связи» . Инженерная группа Интернета.
  3. ^ IANA ARP - «Тип протокола»
  4. ^ IANA - значения Ethertype
  5. ^ RFC 5342 
  6. ^ «Параметры протокола разрешения адресов (ARP)» . www.iana.org . Проверено 16 октября 2018 .
  7. Перейти ↑ Chappell, Laura A. and Tittel, Ed. Руководство по TCP / IP, третье издание . Thomson Course Technology, 2007, стр. 115-116.
  8. Перейти ↑ Cheshire, S. (июль 2008 г.). Обнаружение конфликта адресов IPv4 . Инженерная группа Интернета. DOI : 10,17487 / RFC5227 . RFC 5227 .
  9. Перейти ↑ Perkins, C. (ноябрь 2010 г.). «RFC 5944 - Поддержка IP-мобильности для IPv4, пересмотренная» . Инженерная группа Интернета. Беспричинный ARP МОЖЕТ использовать либо запрос ARP, либо пакет ответа ARP. [...] любой узел, получающий любой пакет ARP (запрос или ответ), ДОЛЖЕН обновить свой локальный кэш ARP с помощью протокола отправителя и аппаратных адресов в пакете ARP [...]
  10. Перейти ↑ Perkins, C. (октябрь 1996 г.). «RFC 2002 - Поддержка IP-мобильности» . Инженерная группа Интернета.
  11. Перейти ↑ Cheshire, S. (июль 2008 г.). «RFC 5227 - Обнаружение конфликта адресов IPv4» . Инженерная группа Интернета. Почему объявления ARP выполняются с использованием пакетов запроса ARP, а не пакетов ответа ARP?
  12. ^ «Часто задаваемые вопросы: брандмауэр не обновляет таблицу протокола разрешения адресов» . Citrix . 2015-01-16. [...] garpReply enabled [...] генерирует ARP-пакеты, которые [...] относятся к OPCODE-типу REPLY, а не REQUEST.
  13. ^ Безвозмездное ARP в DHCP против IPv4 ДСА проекта архивации 12 октября 2007 года в Wayback Machine
  14. ^ RFC 2002 Раздел 4.6
  15. ^ RFC 2131 DHCP - Последние строки раздела 4.4.1
  16. ^ RFC 3927 
  17. ^ Шах, H .; и другие. (Июнь 2012 г.). Посредник протокола разрешения адресов (ARP) для IP-взаимодействия VPN уровня 2 . Инженерная группа Интернета. DOI : 10,17487 / RFC6575 . RFC 6575 .
  18. ^ Т. Брэдли; и другие. (Сентябрь 1998 г.). «RFC 2390 - протокол обратного разрешения адресов» . Инженерная группа Интернета.
  19. ^ Финлейсон; Манн; Могол; Таймер (июнь 1984 г.). Протокол обратного разрешения адресов . Инженерная группа Интернета. DOI : 10,17487 / RFC0903 . RFC 903 .
  20. Стив Гибсон (11 декабря 2005 г.). «Отравление кэша ARP» . GRC .
  21. ^ Калифорнийский университет, Беркли. "Страница руководства BSD для команды arp (8C)" . Проверено 28 сентября 2011 .
  22. ^ Канонический. "Страница руководства Ubuntu для команды arp (8)" . Архивировано из оригинала на 2012-03-16 . Проверено 28 сентября 2011 .
  23. ^ Apple Computer. "Страница руководства Mac OS X для команды arp (8)" . Проверено 28 сентября 2011 .
  24. ^ Microsoft. "Справка Windows по команде arp" . Проверено 28 сентября 2011 .
  25. ^ Sun Microsystems. "Страница руководства SunOS для файла ethers (5)" . Проверено 28 сентября 2011 .
  26. ^ Связь оси. «Руководство по установке сетевой камеры серии Axis P13» (PDF) . Проверено 28 сентября 2011 .
  27. ^ Американская энергетическая корпорация. «Руководство по установке и быстрому запуску коммутируемого блока распределения питания в стойку» (PDF) . Архивировано из оригинального (PDF) 25 ноября 2011 года . Проверено 28 сентября 2011 .

Внешние ссылки [ править ]

  • Схема последовательности ARP (pdf)
  • Бесплатный ARP
  • Сбор информации и образцов из Wireshark
  • ARP-SK Инструменты генерации ARP трафика