Протокол разрешения адресов - Address Resolution Protocol
Набор интернет-протоколов |
---|
Уровень приложения |
Транспортный уровень |
Интернет-уровень |
Связующий слой |
В Протокол разрешения адресов (ARP) это протокол связи используется для открытия уровень связи адрес, например MAC-адрес, связанный с данным Интернет-уровень адрес, обычно IPv4-адрес. Это отображение является важной функцией в Набор интернет-протоколов. ARP был определен в 1982 году RFC 826,[1] который Интернет Стандарт СТАНДАРТ 37.
ARP был реализован с множеством комбинаций технологий сетевого и канального уровня, таких как IPv4, Хаоснет, DECnet и Xerox Универсальный пакет PARC (ЩЕНОК) с использованием IEEE 802 стандарты, FDDI, X.25, Ретрансляция кадров и асинхронный режим передачи (Банкомат).
В Интернет-протокол версии 6 (IPv6) функциональность ARP обеспечивается Протокол обнаружения соседей (ПНР).
Объем деятельности
Протокол разрешения адресов - это ответ на запрос протокол, сообщения которого инкапсулируются протоколом канального уровня. Он передается в пределах одной сети и никогда не маршрутизируется через узлы межсетевого взаимодействия. Это свойство помещает ARP в уровень связи из Набор интернет-протоколов.[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 байта) |
- Тип оборудования (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 стандартизированы и поддерживаются Управление по присвоению номеров в Интернете (IANA).[6]
В EtherType для ARP - 0x0806. Это появляется в заголовке кадра Ethernet, когда полезная нагрузка представляет собой пакет ARP, и его не следует путать с PTYPE, который появляется в этом инкапсулированном пакете ARP.
Пример
Два компьютера в офисе (компьютер 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 Рамка с адресом назначения 00: eb: 24: b2: 05: ac, содержащим IP-пакет на ссылку. Если кэш не дал результата для 192.168.0.55, Компьютер 1 должен отправить сообщение широковещательного запроса ARP (MAC-адрес назначения FF: FF: FF: FF: FF: FF), которое принимается всеми компьютерами в локальной сети. , запрашивая ответ на 192.168.0.55.
Компьютер 2 отвечает сообщением ответа ARP, содержащим его MAC- и IP-адреса. В рамках отправки запроса Компьютер 2 может вставить запись для компьютера 1 в свою таблицу ARP для будущего использования.
Компьютер 1 получает и кэширует информацию ответа в своей таблице ARP и теперь может отправить пакет.[7]
Зонд ARP
An Зонд 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 можно использовать в Зероконф протокол, позволяющий автоматически назначать link-local IP-адреса к интерфейсу, для которого недоступна другая конфигурация IP-адреса. Объявления используются, чтобы гарантировать, что адрес, выбранный хостом, не используется другими хостами в сетевой ссылке.[16]
Посредничество ARP
Посредничество ARP относится к процессу разрешения адресов уровня 2 через виртуальная частная телеграфная служба (VPWS), когда в подключенных цепях используются разные протоколы разрешения, например, Ethernet на одном конце и Ретрансляция кадров с другой. В IPv4, каждый Провайдер Edge (PE) устройство обнаруживает IP-адрес локально подключенного Клиентское преимущество (CE) и передает этот IP-адрес соответствующему удаленному устройству PE. Затем каждое устройство PE отвечает на локальные запросы ARP, используя IP-адрес удаленного устройства CE и аппаратный адрес локального устройства PE. В IPv6, каждое PE-устройство обнаруживает IP-адрес как локальных, так и удаленных CE-устройств, а затем перехватывает локальные Соседское открытие (ND) и Обнаружение обратного соседа (IND) пакетов и пересылает их на удаленное устройство PE.[17]
Обратный ARP и обратный ARP
Протокол обратного разрешения адресов (Обратный ARP или же InARP) используется для получения сетевой уровень адреса (например, IP-адреса ) других узлов из уровень канала передачи данных (Уровень 2) адреса. Поскольку ARP преобразует адреса уровня 3 в адреса уровня 2, InARP можно описать как обратный. Кроме того, InARP реализован как расширение протокола ARP: он использует тот же формат пакета, что и ARP, но другие коды операций.
InARP в основном используется в Ретрансляция кадров (DLCI ) и сетей ATM, в которых адреса уровня 2 виртуальные схемы иногда получаются из сигнализации уровня 2, и соответствующие адреса уровня 3 должны быть доступны, прежде чем эти виртуальные каналы можно будет использовать.[18]
В Протокол обратного разрешения адресов (Обратный ARP или RARP), как и InARP, преобразует адреса уровня 2 в адреса уровня 3. Однако в InARP запрашивающая станция запрашивает адрес уровня 3 другого узла, тогда как RARP используется для получения адреса уровня 3 самой запрашивающей станции для целей конфигурации адреса. RARP устарел; это было заменено на BOOTP, который позже был заменен Протокол динамического конфигурирования сервера (DHCP).[19]
Подмена ARP и ARP прокси
Поскольку ARP не предоставляет методов для аутентификации ответов ARP в сети, ответы ARP могут поступать из систем, отличных от системы с требуемым адресом уровня 2. ARP доверенное лицо - это система, которая отвечает на запрос ARP от имени другой системы, для которой она будет пересылать трафик, обычно как часть структуры сети, например, для интернет-сервиса по коммутируемому доступу. Напротив, в ARP спуфинг автоответчик, или обманщик, отвечает на запрос адреса другой системы с целью перехвата данных, привязанных к этой системе. Злоумышленник может использовать спуфинг ARP для выполнения человек посередине или же отказ в обслуживании атака на других пользователей сети. Существует различное программное обеспечение как для обнаружения, так и для выполнения атак с подменой ARP, хотя сам ARP не предоставляет никаких методов защиты от таких атак.[20]
Альтернативы ARP
IPv6 использует Протокол обнаружения соседей и его расширения, такие как Обнаружение безопасного соседа, а не ARP.
Компьютеры могут вести списки известных адресов, а не использовать активный протокол. В этой модели каждый компьютер поддерживает базу данных сопоставления Слой 3 адреса (например, IP-адреса ) к Слой 2 адреса (например, Ethernet MAC-адреса ). Эти данные поддерживаются в основном путем интерпретации пакетов ARP из локальной сети. Таким образом, его часто называют Кеш ARP. По крайней мере, с 1980-х годов[21] на сетевых компьютерах есть утилита под названием арп для опроса или манипулирования этой базой данных.[22][23][24]
Исторически для поддержания сопоставления между адресами использовались другие методы, такие как файлы статической конфигурации,[25] или централизованно поддерживаемые списки.
ARP-начинка
Встроенные системы, такие как сетевые камеры[26] и сетевые устройства распределения электроэнергии,[27] которые не имеют пользовательского интерфейса, могут использовать так называемые ARP-начинка для первоначального подключения к сети, хотя это неправильное название, так как ARP не задействован.
Заполнение ARP выполняется следующим образом:
- Компьютер пользователя имеет IP-адрес фаршированный вручную в свою адресную таблицу (обычно с арп команда с MAC-адресом, взятым с этикетки на устройстве)
- Компьютер отправляет на устройство специальные пакеты, обычно пинг пакет с нестандартным размером.
- Затем устройство принимает этот IP-адрес.
- Затем пользователь связывается с ним с помощью телнет или же сеть протоколы для завершения настройки.
У таких устройств обычно есть метод отключения этого процесса, когда устройство работает нормально, поскольку такая возможность может сделать его уязвимым для атак.
Документы стандартов
- RFC 826 - Протокол разрешения адресов Ethernet, Интернет-стандарт STD 37.
- RFC 903 - Протокол обратного разрешения адресов, Интернет-стандарт STD 38.
- RFC 2390 - Протокол обратного разрешения адресов, проект стандарта
- RFC 5227 - Обнаружение конфликта адресов IPv4, предлагаемый стандарт
Смотрите также
- Подмена ARP
- Арпинг
- Arptables
- Arpwatch
- Bonjour Sleep Proxy
- Cisco HDLC
- Протокол обнаружения соседей
- Прокси-ARP
Рекомендации
- ^ Дэвид С. Пламмер (ноябрь 1982 г.). «RFC 826, Протокол разрешения адресов Ethernet - или - преобразование адресов сетевого протокола в 48-битные адреса Ethernet для передачи на оборудовании Ethernet». Инженерная группа Интернета, Сетевая рабочая группа.
- ^ Брейден, Р. (октябрь 1989 г.). «RFC 1122 - Требования к Интернет-хостам - Уровни связи». Инженерная группа Интернета.
- ^ IANA ARP - «Тип протокола»
- ^ IANA - значения Ethertype
- ^ RFC 5342
- ^ «Параметры протокола разрешения адресов (ARP)». www.iana.org. Получено 2018-10-16.
- ^ Чаппелл, Лаура А. и Титтель, изд. Руководство по TCP / IP, Третье издание. Thomson Course Technology, 2007, стр. 115-116.
- ^ Чешир, С. (июль 2008 г.). Обнаружение конфликта адресов IPv4. Инженерная группа Интернета. Дои:10.17487 / RFC5227. RFC 5227.
- ^ Перкинс, К. (ноябрь 2010 г.). «RFC 5944 - Поддержка IP-мобильности для IPv4, пересмотренная». Инженерная группа Интернета.
Беспричинный ARP МОЖЕТ использовать либо запрос ARP, либо пакет ответа ARP. [...] любой узел, получающий любой пакет ARP (запрос или ответ), ДОЛЖЕН обновить свой локальный кэш ARP с помощью протокола отправителя и аппаратных адресов в пакете ARP [...]
- ^ Перкинс, К. (октябрь 1996 г.). «RFC 2002 - Поддержка IP-мобильности». Инженерная группа Интернета.
- ^ Чешир, С. (июль 2008 г.). "RFC 5227 - Обнаружение конфликта адресов IPv4". Инженерная группа Интернета.
Почему объявления ARP выполняются с использованием пакетов запроса ARP, а не пакетов ответа ARP?
- ^ «Часто задаваемые вопросы: брандмауэр не обновляет таблицу протокола разрешения адресов». Citrix. 2015-01-16.
[...] garpReply enabled [...] генерирует ARP-пакеты, которые [...] относятся к типу OPCODE REPLY, а не REQUEST.
- ^ Беспричинный ARP в DHCP против черновика IPv4 ACD В архиве 12 октября 2007 г. Wayback Machine
- ^ RFC 2002, раздел 4.6
- ^ RFC 2131 DHCP - Последние строки раздела 4.4.1
- ^ RFC 3927
- ^ Shah, H .; и другие. (Июнь 2012 г.). Посредник протокола разрешения адресов (ARP) для IP-взаимодействия VPN уровня 2. Инженерная группа Интернета. Дои:10.17487 / RFC6575. RFC 6575.
- ^ Т. Брэдли; и другие. (Сентябрь 1998 г.). «RFC 2390 - протокол обратного разрешения адресов». Инженерная группа Интернета.
- ^ Финлейсон; Манн; Могол; Таймер (июнь 1984 г.). Протокол обратного разрешения адресов. Инженерная группа Интернета. Дои:10.17487 / RFC0903. RFC 903.
- ^ Стив Гибсон (11 декабря 2005 г.). "Отравление кэша ARP". GRC.
- ^ Калифорнийский университет в Беркли. "Страница руководства BSD для команды arp (8C)". Получено 2011-09-28.
- ^ Канонический. "Страница руководства Ubuntu для команды arp (8)". Архивировано из оригинал на 2012-03-16. Получено 2011-09-28.
- ^ Компьютер Apple. "Страница руководства Mac OS X для команды arp (8)". Получено 2011-09-28.
- ^ Microsoft. "Справка Windows по команде arp". Получено 2011-09-28.
- ^ Sun Microsystems. "Страница руководства SunOS для файла ethers (5)". Получено 2011-09-28.
- ^ Осевая связь. «Руководство по установке сетевой камеры Axis P13» (PDF). Получено 2011-09-28.
- ^ Американская энергетическая корпорация. «Руководство по установке и быстрому запуску коммутируемого стоечного блока распределения питания» (PDF). Архивировано из оригинал (PDF) на 2011-11-25. Получено 2011-09-28.
- Статья основана на материалах, взятых из Бесплатный онлайн-словарь по вычислительной технике до 1 ноября 2008 г. и зарегистрированы в соответствии с условиями «перелицензирования» GFDL, версия 1.3 или новее.