Arp: записи, таблицы, маки для чайников

Порядок преобразования адресов

В ходе обычной
работы сетевая программа, такая как
TELNET, отправляет прикладное сообщение,
пользуясь транспортными услугами TCP.
Модуль TCP посылает соответствующее
транспортное сообщение через модуль
IP. В результате составляется IP-пакет,
который должен быть передан драйверу
Ethernet. IP-адрес места назначения известен
прикладной программе, модулю TCP и модулю
IP. Необходимо на его основе найти
Ethernet-адрес места назначения. Для
определения искомого Ethernet-адреса
используется ARP-таблица.

Как же заполняется
ARP-таблица? Она заполняется автоматически
модулем ARP, по мере необходимости. Когда
с помощью существующей ARP-таблицы не
удается преобразовать IP-адрес, то
происходит следующее:

По сети передается
широковещательный ARP-запрос.

Исходящий IP-пакет
ставится в очередь.

Каждый сетевой
адаптер принимает широковещательные
передачи. Все драйверы Ethernet проверяют
поле типа в принятом Ethernet-кадре и передают
ARP-пакеты модулю ARP. ARP-запрос можно
интерпретировать так: «Если ваш
IP-адрес совпадает с указанным, то сообщите
мне ваш Ethernet-адрес». Пакет ARP-запроса
выглядит примерно так:

Пример ARP-запроса

Каждый модуль ARP
проверяет поле искомого IP-адреса в
полученном ARP-пакете и, если адрес
совпадает с его собственным IP-адресом,
то посылает ответ прямо по Ethernet-адресу
отправителя запроса. ARP-ответ можно
интерпретировать так: «Да, это мой
IP-адрес, ему соответствует такой-то
Ethernet-адрес». Пакет с ARP-ответом выглядит
примерно так:

Пример ARP-ответа

Этот ответ получает
машина, сделавшая ARP-запрос. Драйвер
этой машины проверяет поле типа в
Ethernet-кадре и передает ARP-пакет модулю
ARP. Модуль ARP анализирует ARP-пакет и
добавляет запись в свою ARP-таблицу.

Обновленная таблица
выглядит следующим образом:

В TCP/IP не рассматриваются технологии канального и физического уровней, при реальной передаче данных все равно приходится отображать IP адрес на адрес канального уровня.

В сети Ethernet для идентификации источника и получателя информации используются IP и MAC адреса. Информация, пересылаемая от одного компьютера другому по сети, содержит в себе физический адрес отправителя, IP-адрес отправителя, физический адрес получателя и IP-адрес получателя. ARP-протокол обеспечивает связь между этими двумя адресами, поскольку эти два адреса никак друг с другом не связаны.

ARP
— протокол разрешения адресов (Address Resolution Protocol) является протоколом третьего (сетевого) уровня модели OSI, используется для преобразования IP-адресов в MAC-адреса, играет важную функцию в множественном доступе сетей. ARP была определена RFC 826 в 1982 году.

Непосредственно связь между IP адресом и MAC адресом осуществляется с помощью так называемых ARP-таблиц, где в каждой строке указывается соответствие IP адреса MAC адресу.

Пример ARP-таблицы в ОС Windowsпредставлен на рисунке.

В ARP-таблице, помимо IP и MAC адреса, еще указывается тип связи, существует два типа записей:

  • Статические записи создаются вручную, они существуют до тех пор, пока компьютер или маршрутизатор остается включенным.
  • Динамические записи должны периодически обновляться. Если запись не обновлялась в течении определенного времени (приблизительно 2 минуты), то она исключается из таблицы. В ARP-таблице содержаться записи не обо всех узлах сети. А только те, которые активно участвуют в сетевых операциях. Такой способ хранения называется ARP-кэшем.

В IPv6 функциональность ARP обеспечивает протокол NDP
(Neighbor Discovery Protocol Протокол Обнаружения Соседей).

RARP
(англ. Reverse Address Resolution Protocol — Обратный протокол преобразования адресов) — протокол третьего (сетевого) уровня модели OSI, выполняет обратное отображение адресов, то есть преобразует аппаратный адрес в IP-адрес.

Существует четыре типа ARP-сообщений:

  • ARP-запрос(ARPrequest);
  • ARP-ответ(ARP reply);
  • RARP-запрос(RARP-request);
  • RARP-ответ(RARP-reply).

Что за ARP-таблица?

APR-таблица представляет собой…таблицу. В ней всего два основных столбца — айпишник и мак. В то же время, в зависимости от устройства и запроса она будет содержать другие данные (динамика/статика), интерфейс, ip адрес источника (отправителя) и т.д. Например, ARP-таблица на коммутаторе Dlink выглядит так:

Здесь можно обратить внимание на широковещательный адрес (broadcast). Поле «адрес назначения Ethernet» заполняется единицами (ff:ff:ff:ff:ff:ff)

Коммутатор, получив такой широковещательный фрейм, отправляет его всем компьютерам сети, как бы обращаясь ко всем с вопросом: «если Вы владелец этого ip адреса (ip адреса назначения), пожалуйста сообщите мне Ваш mac адрес».

Описание

Существуют следующие типы сообщений ARP: запрос ARP (ARP request) и ответ ARP (ARP reply). Система-отправитель при помощи запроса ARP запрашивает физический адрес системы-получателя. Ответ (физический адрес узла-получателя) приходит в виде ответа ARP.

Перед тем как передать пакет сетевого уровня через сегмент Ethernet, сетевой стек проверяет кэш ARP, чтобы выяснить, не зарегистрирована ли в нём уже нужная информация об узле-получателе. Если такой записи в кэше ARP нет, то выполняется широковещательный запрос ARP. Этот запрос для устройств в сети имеет следующий смысл: «Кто-нибудь знает физический адрес устройства, обладающего следующим IP-адресом?» Когда получатель с этим IP-адресом примет этот пакет, то должен будет ответить: «Да, это мой IP-адрес. Мой физический адрес следующий: …» После этого отправитель обновит свой кэш ARP и будет способен передать информацию получателю.
Ниже приведён пример запроса и ответа ARP.
<см. внизу страницы>

Записи в кэше ARP могут быть статическими и динамическими. Пример, данный выше, описывает динамическую запись кэша. Можно также создавать статические записи в таблице ARP. Это можно сделать при помощи команды:

В системах семейства Windows до NT 6.0 записи в таблице ARP, созданные динамически, остаются в кэше в течение 2 минут. Если в течение этих двух минут произошла повторная передача данных по этому адресу, то время хранения записи в кэше продлевается ещё на 2 минуты. Эта процедура может повторяться до тех пор, пока запись в кэше просуществует до 10 минут. После этого запись будет удалена из кэша, и будет отправлен повторный запрос ARP. Сейчас же время хранения записей в ARP-таблице и метод хранения выбираются программно и при желании их можно изменить.

ARP-запрос

Протокол ARP позволяет автоматически определить МАК-адрес компьютера по его IP-адресу. Протокол работает в режиме запрос-ответ.

Компьютер, который хочет узнать МАК-адрес по известному IP-адресу, направляет ARP запрос “У кого IP 192.168.10.43?” Запрос отправляется на широковещательный МАК-адрес (FF:FF:FF:FF:FF:FF).

И этот запрос получают все компьютеры в сети. Тот компьютер, который узнал в запросе свой IP-адрес подготавливает и отправляет ARP ответ. В ответ включается IP-адрес компьютера (IP:192.168.10.43) и его МАК-адрес (MAC: 54:BE:F7:88:15:47).

Отправитель ARP запроса получает ответ, извлекает из него МАК-адрес и использует его для передачи данных по технологии канального уровня.

Формат ARP-запроса

ARP разрабатывался, как протокол общего назначения с возможностью применять его не только в Ethernet и не только для IP-адресов. Поэтому в начале ARP пакета идет служебная информация, которая позволяет определить с каким типом сетевого оборудования и с каким протоколом сетевого уровня мы работаем.

  • Первое поле “тип сети”, говорит о том, какое оборудование мы используем в сети, 1 — соответствует Ethernet.
  • Второе поле “тип протокола” в нем указывается протокол сетевого уровня 2048 означает IP.
  • Дальше идет “длина локального адреса”, в нашем случае МАК-адреса 6 байт, “длина глобального адреса в нашем случае IP-адреса” 4 байта.
  • Следующее поле код операции, 1 — соответствует ARP запросу, а 2 — ARP ответу.
  • Затем идет полезная информация о локальных (1С:75:08:D2:49:45) и глобальных адресах (192.168.10.15). Указывается МАК-адрес и IP-адрес отправителя, для того, чтобы получатель знал, кому отправлять ответ.
  • Глобальный адрес получателя (192.168.10.43).
  • Локальный адрес получателя неизвестен (00:00:00:00:00:00)

Формат ARP-ответа

Формат ARP ответа точно такой же, только в поле “операция” стоит значение 2 и адрес, который мы ищем находится в поле локальный адрес отправителя.

Связующее звено

Протокол управления интернет-протоколом позволяет шлюзам отправлять сообщения об ошибках или управлять сообщениями на другие шлюзы или хосты. ICMP предоставляет связь между программным обеспечением протокола Интернета между компьютерами. Это механизм сообщений так называемого специального назначения, добавленный разработчиками к протоколам TCP/IP. Это позволяет шлюзам в Интернете информировать об ошибках либо направлять информацию о непредвиденных обстоятельствах.

Сам протокол IP не содержит ничего, чтобы помочь подключиться к тестированию отправителя или узнать о сбоях. Отчеты об ошибках и их исправлении сообщаются посредством ICMP только в отношении исходного источника. Он должен связывать ошибки с отдельными прикладными программами и предпринимать действия для устранения проблем. Таким образом, он предоставляет возможность для шлюза сообщать об ошибке. При этом он не полностью определяет действие, которое необходимо предпринять для исправления неполадок.

ICMP ограничивается в связи с исходным источником, но не с промежуточными ICMP-сообщениями. Они отправляются через Интернет в части данных дейтаграммы IP, которая сама перемещается по сети. Именно поэтому они тесно взаимосвязаны с ARP-протоколом. ICMP-сообщения маршрутизируются точно так же, как датаграммы, содержащие информацию для пользователей, не имея при этом дополнительной надежности или приоритета.

Исключение присутствует для процедур обработки ошибок, когда IP-датаграмма, несущая сообщения ICMP, не генерируется для ошибок, которые возникают из дейтаграмм, содержащих сообщения о неполадках.

Связующее звено

Протокол управления интернет-протоколом позволяет шлюзам отправлять сообщения об ошибках или управлять сообщениями на другие шлюзы или хосты. ICMP предоставляет связь между программным обеспечением протокола Интернета между компьютерами. Это механизм сообщений так называемого специального назначения, добавленный разработчиками к протоколам TCP/IP. Это позволяет шлюзам в Интернете информировать об ошибках либо направлять информацию о непредвиденных обстоятельствах.

Сам протокол IP не содержит ничего, чтобы помочь подключиться к тестированию отправителя или узнать о сбоях. Отчеты об ошибках и их исправлении сообщаются посредством ICMP только в отношении исходного источника. Он должен связывать ошибки с отдельными прикладными программами и предпринимать действия для устранения проблем. Таким образом, он предоставляет возможность для шлюза сообщать об ошибке. При этом он не полностью определяет действие, которое необходимо предпринять для исправления неполадок.

ICMP ограничивается в связи с исходным источником, но не с промежуточными ICMP-сообщениями. Они отправляются через Интернет в части данных дейтаграммы IP, которая сама перемещается по сети. Именно поэтому они тесно взаимосвязаны с ARP-протоколом. ICMP-сообщения маршрутизируются точно так же, как датаграммы, содержащие информацию для пользователей, не имея при этом дополнительной надежности или приоритета.

Исключение присутствует для процедур обработки ошибок, когда IP-датаграмма, несущая сообщения ICMP, не генерируется для ошибок, которые возникают из дейтаграмм, содержащих сообщения о неполадках.

Современный вид

Сегодня используются несколько усовершенствований протокола ARP и его назначения. Так, когда машина A хочет отправить пакеты устройству B, возможно, что B отправит данные для A в скором времени. По этой причине, чтобы избежать ARP для машины B, A должна выполнить привязку адреса IP_to_MAC при запросе MAC-адреса B в специальном пакете.

Поскольку A направляет свой изначальный запрос для MAC-адреса B, каждый компьютер в сети должен извлекать и хранить в своем кеше привязку адреса IP_to_MAC A. Когда в сети появляется новый компьютер (например, при перезагрузке операционной системы), он может транслировать эту привязку, чтобы все остальные машины могли хранить его в своих кешах. Это позволит устранить множество ARP-пакетов всеми другими машинами, когда они хотят общаться с добавленным устройством.

Примечания

• IP-адреса для Inetaddr и ifaceaddr являются десятичными представлениями с точками.
• Физический адрес для Etheraddr состоит из шести байтов, выраженных шестнадцатеричным представлением и разделённых дефисами (например, 00-AA-00-4F-2A-9C).
• Вводимые данные, добавляемые с параметром /s,являются статическими и не убираются из кэша ARP по тайм-ауту. Вводимые данные удаляются только в случае остановки или запуска протокола TCP/IP. Чтобы создать постоянные данные кэша ARP, следует поместить соответствующие команды arp в командный файл и воспользоваться запланированными заданиями (Scheduled Tasks), чтобы командный файл активировался при запуске системы.

Команда arp в Windows

Позволяет просмотреть ARP-таблицу, добавить в нее новую запись или удалить существующую:

> arp
Отображение и изменение таблиц преобразования IP-адресов в физические,
используемые протоколом разрешения адресов (ARP).

ARP -s inet_addr eth_addr 
ARP -d inet_addr 
ARP -a   

  -a            Отображает текущие ARP-записи, опрашивая текущие данные
                протокола. Если задан inet_addr, то будут отображены IP и
                физический адреса только для заданного компьютера. Если
                ARP используют более одного сетевого интерфейса, то будут
                отображаться записи для каждой таблицы.
  -g            То же, что и параметр -a.
  -v            Отображает текущие ARP-записи в режиме подробного
                протоколирования. Все недопустимые записи и записи в
                интерфейсе обратной связи будут отображаться.
  inet_addr     Определяет IP-адрес.
  -N if_addr    Отображает ARP-записи для заданного в if_addr сетевого
                интерфейса.
  -d            Удаляет узел, задаваемый inet_addr. Параметр inet_addr может
                содержать знак шаблона * для удаления всех узлов.
  -s            Добавляет узел и связывает адрес в Интернете inet_addr
                с физическим адресом eth_addr.  Физический адрес задается
                6 байтами (в шестнадцатеричном виде), разделенных дефисом.
                Эта связь является постоянной
  eth_addr      Определяет физический адрес.
  if_addr       Если параметр задан, он определяет адрес интерфейса в
                Интернете, чья таблица преобразования адресов должна
                измениться. Если параметр не задан, будет использован
                первый доступный интерфейс.
Пример:
  > arp -s 157.55.85.212   00-aa-00-62-c6-09  .. Добавляет статическую запись.
  > arp -a

Создать запись в ARP-таблице:

> arp -s IP-адрес MAC-адрес

Вывести записи ARP-таблицы:

> arp -a
Интерфейс: 192.168.53.1 --- 0x5
  адрес в Интернете      Физический адрес      Тип
  192.168.53.255        ff-ff-ff-ff-ff-ff     статический
  224.0.0.22            01-00-5e-00-00-16     статический
  224.0.0.251           01-00-5e-00-00-fb     статический
  224.0.0.252           01-00-5e-00-00-fc     статический
  239.255.255.250       01-00-5e-7f-ff-fa     статический

Интерфейс: 192.168.110.2 --- 0x14
  адрес в Интернете      Физический адрес      Тип
  192.168.110.1         04-bf-6d-9a-c7-a8     динамический
  192.168.110.3         08-00-27-92-ce-01     динамический
  192.168.110.255       ff-ff-ff-ff-ff-ff     статический
  224.0.0.22            01-00-5e-00-00-16     статический
  224.0.0.251           01-00-5e-00-00-fb     статический
  224.0.0.252           01-00-5e-00-00-fc     статический
  239.255.255.250       01-00-5e-7f-ff-fa     статический
  255.255.255.255       ff-ff-ff-ff-ff-ff     статический

Интерфейс: 172.28.128.1 --- 0x15
  адрес в Интернете      Физический адрес      Тип
  172.28.128.255        ff-ff-ff-ff-ff-ff     статический
  224.0.0.22            01-00-5e-00-00-16     статический
  224.0.0.251           01-00-5e-00-00-fb     статический
  224.0.0.252           01-00-5e-00-00-fc     статический
  239.255.255.250       01-00-5e-7f-ff-fa     статический

Как это работает?

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

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

Протокол ARP работает
различным образом в зависимости от
того, какой протокол канального уровня
работает в данной сети — протокол
локальной сети (Ethernet, Token Ring, FDDI) с
возможностью широковещательного доступа
одновременно ко всем узлам сети, или же
протокол глобальной сети (X.25, frame relay),
как правило не поддерживающий
широковещательный доступ.

В локальных сетях
протокол ARP использует широковещательные
кадры протокола канального уровня для
поиска в сети узла с заданным IP-адресом.

ARP-оповещение

ARP-оповещение (ARP Announcement) — это пакет (обычно ARP-запрос), содержащий корректную SHA и SPA хоста-отправителя, с TPA, равной SPA. Это не разрешающий запрос, а запрос на обновление ARP-кэша других хостов, получающих пакет.

Большинство операционных систем посылает такой пакет при включении хоста в сеть, что позволяет предотвратить ряд проблем. Например, при смене сетевой карты (когда необходимо обновить связь между IP- и MAC-адресами), такой запрос исправит записи в ARP-кэше других хостов в сети.

ARP-запросы могут решать и другие задачи. Так, при загрузке сетевого обеспечения ЭВМ такой запрос может выяснить, не присвоен ли идентичный IP-адрес какому-то еще объекту в сети.

В рамках протокола ARP возможны самообращённые запросы (gratuitous ARP). При таком запросе инициатор формирует пакет, где в качестве IP-адреса используется его собственный адрес. Это бывает нужно, когда осуществляется стартовая конфигурация сетевого интерфейса. В таком запросе IP-адреса отправителя и получателя совпадают.

Самообращённый запрос позволяет ЭВМ решить две проблемы. Во-первых, определить, нет ли в сети объекта, имеющего тот же IР-адрес. Если на такой запрос придёт отклик, то ЭВМ выдаст на консоль сообщение Duplicate IP address sent from Ethernet address <…>. Во-вторых, в случае смены сетевой карты производится корректировка записи в АRP-таблицах ЭВМ, которые содержали старый МАС-адрес инициатора. Машина, получающая ARP-запрос c адресом, который содержится в её таблице, должна обновить эту запись.

Вторая особенность такого запроса позволяет резервному файловому серверу заменить основной, послав самообращённый запрос со своим МАС-адресом, но с IP-адресом вышедшего из строя сервера. Этот запрос вызовет перенаправление кадров, адресованных основному серверу, на резервный. Клиенты сервера при этом могут и не знать о выходе основного сервера из строя. При этом возможны и неудачи, если программные реализации в ЭВМ не в полной мере следуют регламентациям протокола ARP.

Синхронизация транзакций RARP

Поскольку RARP напрямую использует физическую сеть, никакое иное программное обеспечение протокола не должно откликаться на запрос или повторно передавать его. ПО RARP должно выполнять эти задачи. Некоторые рабочие станции, полагающиеся на такой протокол для загрузки, предпочитают повторять попытку до бесконечности, пока не получат ответ. Иные реализации объявляют об отказе после нескольких попыток предотвратить наполнение сети ненужной трансляцией.

Преимущества Mulitple RARP Servers: большая надежность.

Недостаток: перегрузка может возникнуть, когда все серверы ответят.

Таким образом, чтобы избежать недостатков, можно использовать первичный и вторичный серверы. Каждому компьютеру, который запрашивает запрос RARP, назначается первичный сервер. Обычно он отвечает на все позывы, но если он терпит неудачу, тогда запросчик может взять тайм-аут и выполнить ретрансляцию запроса. Если второй сервер получает вторую копию запроса в течение короткого времени первого, он отвечает. Но все же может возникнуть проблема, при которой по умолчанию реагируют все вторичные серверы, тем самым перегружая сеть. Таким образом, проблема состоит в том, чтобы избежать одновременной передачи ответов с обоих серверов. Каждый вторичный сервер, который принимает запрос, вычисляет случайную задержку и затем отправляет ответ.

ICMP-протокол

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

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

3 ответа

6

Вопрос 1:

Если я понимаю ваш вопрос, вы спрашиваете, являются ли эти три поля одинаковыми: и .

Мы можем сравнивать значения в традиционном «обычном» сеансе ARP и прокси-ARP.

Традиционный запрос /ответ ARP

Запрос ARP

Ответ ARP

SHA и THA отображаются в Wireshark как «Source MAC Address» и «Target MAC Address» и, смотря на изображения выше, кажется, что все три поля соответствуют (по обоим кадрам, конечно) — они оба . Это также соответствует источнику Ethernet в исходном запросе. Таким образом, для обычного ARP все три значения совпадают.

Далее мы рассмотрим прокси-сервер ARP:

Прокси-протокол ARP

Запрос ARP

Есть одно место, где я нашел его другим, хотя … это в последовательности ARP Probe и Announcement. В частности, в

Объявление ARP по-прежнему имеет OPcode из , технически делая это ARP-запрос.

Таким образом, последовательность ARP Probe /Announcement не имеет ARP-ответа — только запросы ARP. И в , что , тогда Ethernet SRC и SHA всегда совпадают друг с другом, но в ответе нет ответа THA.

Вопрос 2:

Взглянув на вышеприведенные снимки, кажется, что во всех случаях TPA запроса и SPA-ответ идентичны.

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

Однако я склонен полагать, что если они были разными, исходный отправитель просто посмотрел бы на входящий ответ как Безвозмездный ARP , а не как исходный вопрос оригинального отправителя.

2

Что касается 1., я нашел эту выдержку из RFC 826 :

Это означает, что, по крайней мере, согласно первоначальной спецификации, это не предназначено для выполнения.

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

Ниже проиллюстрирована структура пакета, используемого в запросах и ответах ARP. В сетях Ethernet в этих пакетах используется EtherType 0x0806, и запросы рассылаются на широковещательный MAC-адрес — FF:FF:FF:FF:FF:FF.
Отметим, что в структуре пакета, показанной ниже, в качестве SHA, SPA, THA и TPA условно используются 32-битные слова — реальная длина определяется физическим устройством и протоколом.

+ Bits 0 — 7 8 — 15 16 — 31
Hardware type (HTYPE) Protocol type (PTYPE)
32 Hardware length (HLEN) Protocol length (PLEN) Operation (OPER)
64 Sender hardware address (SHA)
? Sender protocol address (SPA)
? Target hardware address (THA)
? Target protocol address (TPA)
Hardware type (HTYPE)
Каждый канальный протокол передачи данных имеет свой номер, который хранится в этом поле. Например, Ethernet имеет номер 0x0001.
Protocol type (PTYPE)
Код сетевого протокола. Например, для IPv4 будет записано 0x0800.
Hardware length (HLEN)
Длина физического адреса в байтах. Адреса Ethernet имеют длину 6 байт (0x06).
Protocol length (PLEN)
Длина логического адреса в байтах. IPv4 адреса имеют длину 4 байта (0x04).
Operation
Код операции отправителя: 0x0001 в случае запроса и 0x0002 в случае ответа.
Sender hardware address (SHA)
Физический адрес отправителя.
Sender protocol address (SPA)
Логический адрес отправителя.
Target hardware address (THA)
Физический адрес получателя. Не требуется при запросе.
Target protocol address (TPA)
Логический адрес получателя.

Пример запроса

Если хост с IPv4 адресом 10.10.10.123 и MAC адресом 00:0D:9D:86:59:E5 хочет послать пакет другому хосту с адресом 10.10.10.140, но не знает его MAC адрес, то он должен послать ARP запрос для разрешения адреса.

Пакет, изображённый ниже, изображает широковещательный запрос.
Если хост с IP 10.10.10.140 присутствует в сети и доступен, то он получает этот запрос ARP и возвращает ответ.

Bits 0 — 7 8 — 15 16 — 31
Hardware type = 0x0001 Protocol type = 0x0800
32 Hardware length = 0x06 Protocol length = 0x04 Operation = 0x0001
64 SHA (first 32 bits) = 0x000D9D86
96 SHA (last 16 bits) = 0x59E2 SPA (first 16 bits) = 0x0A0A
128 SPA (last 16 bits) = 0x0A7B THA (first 16 bits) = 0x0000
160 THA (last 32 bits) = 0x00000000
192 TPA = 0x0A0A0A8C

Пример ответа

В ситуации, описанной выше, если узел с адресом 10.10.10.140 имеет MAC-адрес 00:09:58:D8:33:AA, то он отправит в ответ пакет, проиллюстрированный ниже. Заметим, что блоки адресов отправителя и получателя теперь поменяли значения (отправитель ответа теперь получатель запроса; получатель ответа — отправитель запроса). Кроме того, в ответе есть MAC-адрес узла 10.10.10.140 в поле физического адреса отправителя (SHA), а поле THA не пустое (одноадресный ответ).

Любой узел в той же сети, что и отправитель с получателем, тоже получит запрос (так как он широковещательный) и таким образом добавит в свой кэш информацию об отправителе. Ответ ARP направлен только источнику запроса ARP, поэтому ответ ARP не доступен другим узлам в сети.

+ Bits 0 — 7 8 — 15 16 — 31
Hardware type = 0x0001 Protocol type = 0x0800
32 Hardware length = 0x06 Protocol length = 0x04 Operation = 0x0002
64 SHA (first 32 bits) = 0x000958D8
96 SHA (last 16 bits) = 0x33AA SPA (first 16 bits) = 0x0A0A
128 SPA (last 16 bits) = 0x0A8C THA (first 16 bits) = 0x000D
160 THA (last 32 bits) = 0x9D8659E2
192 TPA = 0x0A0A0A7B

Замечание. Длина полей SHA, SPA, THA, TPA зависит от параметров Hardware length и Protocol length соответственно.

Протокол ARP

 Протокол ARP (Address Resolution Protocol, RFC-826, std-38, Протокол распознавания адреса) предназначен для преобразования IP-адресов в MAC-адреса, часто называемые также физическими адресами.

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

Согласно протоколу Ethernet, каждый интерфейс имеет 6-ти байтовый адрес. Адрес записывается в виде шести групп шестнадцатеричных цифр по две в каждой (шестнадцатеричная записи байта). Первые три байта называются префиксом, и именно они закреплены за производителем. Каждый префикс определяет 224 различных комбинаций, что равно почти 17-ти млн. адресам.

В сетях нет однозначного соответствия между физическим адресом сетевого интерфейса (MAC адресом сетевой карты) и его IP-адресом. Поиск по  IP-адресу соответствующего Ethernet-адреса производится протоколом ARP, функционирующим на уровне доступа к среде передачи. Протокол поддерживает в оперативной памяти динамическую arp-таблицу в целях кэширования полученной информации.

Порядок функционирования протокола следующий.

С межсетевого уровня поступает IP-дейтаграмма для передачи в физический канал (Ethernet), вместе с дейтаграммой передается, среди прочих параметров, IP-адрес узла назначения. Если в arp-таблице не содержится записи об Ethernet-адресе, соответствующем нужному IP-адресу, модуль arp ставит дейтаграмму в очередь и формирует широковещательный запрос. Запрос получают все узлы, подключенные к данной сети; узел, опознавший свой IP-адрес, отправляет arp-ответ (arp-response) со значением своего адреса Ethernet .

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

 Упрощенно, ARP-таблица состоит из двух столбцов:

IP-адрес Ethernet-адрес
223.1.2.1 08:00:39:00:2F:C3
223.1.2.3 08:00:5A:21:A7:22
223.1.2.4 08:00:10:99:AC:54

В первом столбце содержится IP-адрес, а во втором Ethernet-адрес. Таблица соответствия необходима, так как адреса выбираются произвольно и нет какого-либо алгоритма для их вычисления. Если машина перемещается в другой сегмент сети, то ее ARP-таблица должна быть изменена.

ARP-таблицы строятся согласно документу RFC-1213 и для каждого IP-адреса содержит четыре кода:

ifindex Физический порт (интерфейс), соответствующий данному адресу;
Физический адрес MAC-адрес, например Ethernet-адрес;
IP-адрес IP-адрес, соответствующий физическому адресу;
тип адресного соответствия это поле может принимать 4 значения: 1 — вариант не стандартный и не подходит ни к одному из описанных ниже типов; 2 — данная запись уже не соответствует действительности; 3 — постоянная привязка; 4 — динамическая привязка

В Linux таблицу ARP можно посмотреть, используя команду arp:

user@ca:~$arp -a

Устранение неполадок при открытии файлов ARP

Общие проблемы с открытием файлов ARP

Advanced Archive Password Recovery не установлен

Дважды щелкнув по файлу ARP вы можете увидеть системное диалоговое окно, в котором сообщается «Не удается открыть этот тип файла». В этом случае обычно это связано с тем, что на вашем компьютере не установлено Advanced Archive Password Recovery для %%os%%. Так как ваша операционная система не знает, что делать с этим файлом, вы не сможете открыть его дважды щелкнув на него.

Совет: Если вам извстна другая программа, которая может открыть файл ARP, вы можете попробовать открыть данный файл, выбрав это приложение из списка возможных программ.

Установлена неправильная версия Advanced Archive Password Recovery

В некоторых случаях у вас может быть более новая (или более старая) версия файла Advanced RAR Password Recovery Setup, не поддерживаемая установленной версией приложения. При отсутствии правильной версии ПО Advanced Archive Password Recovery (или любой из других программ, перечисленных выше), может потребоваться загрузить другую версию ПО или одного из других прикладных программных средств, перечисленных выше. Такая проблема чаще всего возникает при работе в более старой версии прикладного программного средства с файлом, созданным в более новой версии, который старая версия не может распознать.

Совет: Иногда вы можете получить общее представление о версии файла ARP, щелкнув правой кнопкой мыши на файл, а затем выбрав «Свойства» (Windows) или «Получить информацию» (Mac OSX).

Резюме: В любом случае, большинство проблем, возникающих во время открытия файлов ARP, связаны с отсутствием на вашем компьютере установленного правильного прикладного программного средства.

Даже если на вашем компьютере уже установлено Advanced Archive Password Recovery или другое программное обеспечение, связанное с ARP, вы все равно можете столкнуться с проблемами во время открытия файлов Advanced RAR Password Recovery Setup. Если проблемы открытия файлов ARP до сих пор не устранены, возможно, причина кроется в других проблемах, не позволяющих открыть эти файлы. Такие проблемы включают (представлены в порядке от наиболее до наименее распространенных):

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *