admin / 02.01.2018

Arp

Подробности
Обновлено: 01 Ноябрь 2014
Просмотров: 22307

В 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

  • Hardware type (HTYPE) Каждый канальный протокол передачи данных имеет свой номер, который хранится в этом поле. Например, Ethernet имеет номер 0x0001
  • Protocol type (PTYPE) Код сетевого протокола. Например, для IPv4 будет записано 0x0800
  • Hardware length (HLEN) Длина физического адреса в байтах. Адреса Ethernet имеют длину 6 байт.
  • Protocol length (PLEN) Длина логического адреса в байтах. IPv4 адреса имеют длину 4 байта.
  • Operation Код операции отправителя: 1 в случае запроса и 2 в случае ответа.
  • Sender hardware address (SHA) Физический адрес отправителя.
  • Sender protocol address (SPA) Логический адрес отправителя.
  • Targethardwareaddress (THA) Физический адрес получателя. Поле пусто при запросе.
  • Target protocol address (TPA) Логический адрес получателя.

Рассмотрим структуру заголовка ARP запроса (request) на примере перехваченного пакета с помощью сетевого анализатора Wireshark

Рассмотрим структуру заголовка ARP ответа (reply) на примере перехваченного пакета с помощью сетевого анализатора Wireshark

Вас также могут заинтересовать:

Команда ARP — просмотр и изменение таблиц ARP.

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

ARP -s inet_addr eth_addr [if_addr]

ARP -d inet_addr [if_addr]

ARP -a [inet_addr] [-N if_addr] [-v]

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

Семейка протокола ARP

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

-g То же, что и параметр -a.

-v Отображает текущие ARP-записи в режиме подробного протоколирования. Все недопустимые записи и записи в интерфейсе обратной связи будут отображаться.

inet_addr Определяет IP-адрес.

-N if_addrОтображает ARP-записи для заданного в if_addr сетевого интерфейса.

-d Удаляет узел, задаваемый inet_addr. Параметр inet_addr может содержать знак шаблона * для удаления всех узлов.

-s Добавляет узел и связывает адрес в Интернете inet_addr c физическим адресом eth_addr. Физический адрес задается 6 байтами (в шестнадцатеричном виде), разделенных дефисом. Эта связь является постоянной

eth_addr Определяет физический адрес.

if_addr Если параметр задан, он определяет адрес интерфейса в Интернете, чья таблица преобразования адресов должна измениться. Если параметр не задан, будет использован первый доступный интерфейс.

В IP-сетях существует три способа отправки пакетов от источника к приемнику:

— одноадресная передача (Unicast);

— широковещательная передача (Broadcast);

— многоадресная рассылка (Multicast).

При одноадресной передаче поток данных передается от узла-отправителя на индивидуальный IP-адрес узла-получателя.

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

Многоадресная рассылка обеспечивает доставку потока данных группе узлов на IP-адрес группы многоадресной рассылки. Узлы группы могут находиться в данной локальной сети или в любой другой. Узлы для многоадресной рассылки объединяются в группы при помощи протокола IGMP (Internet Group Management Protocol, межсетевой протокол управления группами). Пакеты содержащие в поле назначения заголовка групповой адрес, будут поступать на узлы групп и обрабатываться. Источник многоадресного трафика направляет пакеты многоадресной рассылки не на индивидуальные IP-адреса каждого из узлов-получателей, а на групповой IP-адрес. Групповые адреса определяют произвольную группу IP-узлов, присоединившихся к этой группе и желающих получать адресованный ей трафик. Международное агентство IANA (Internet Assigned Numbers Authority, «Агентство по выделению имен и уникальных параметров протоколов Интернета»), которое управляет назначением групповых адресов, выделило для многоадресной рассылки адреса IPv4 класса D в диапазоне от 224.0.0.0 до 239.255.255.255.

Примеры использования ARP:

arp -a — отобразить таблицу соответствия IP и MAC адресов для данного компьютера.

arp -a | more — то же, что и в предыдущем случае, но с отображением информации в постраничном режиме.

arp -a > macaddr.txt — отобразить таблицу соответствия IP и MAC адресов для данного компьютера с выводом результатов в текстовый файл macaddr.txt .

Пример содержимого таблицы ARP:

Интерфейс: 127.0.0.1 — 0x1

адрес в Интернете Физический адрес Тип

224.0.0.22 &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp статический
224.0.0.251 &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp статический
239.255.255.250 &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp статический

Интерфейс: 192.168.1.133 — 0x1c

адрес в Интернете Физический адрес Тип

192.168.1.1 &nbsp&nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp c8-2b-35-9a-a6-1e &nbsp динамический
192.168.1.132 &nbsp &nbsp &nbsp &nbsp &nbsp&nbsp 00-11-92-b3-a8-0d &nbsp динамический
192.168.1.255 &nbsp &nbsp &nbsp &nbsp &nbsp&nbsp ff-ff-ff-ff-ff-ff &nbsp &nbsp &nbsp &nbsp &nbsp&nbsp статический
224.0.0.22 &nbsp&nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp 01-00-5e-00-00-16 &nbsp статический
224.0.0.251 &nbsp&nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp 01-00-5e-00-00-fb &nbsp статический
224.0.0.252 &nbsp&nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp 01-00-5e-00-00-fc &nbsp статический
239.255.255.250 &nbsp &nbsp &nbsp&nbsp 01-00-5e-7f-ff-fa &nbsp &nbsp статический

В данном примере присутствуют записи ARP для петлевого интерфейса 127.0.0.1 и реального 192.168.1.133. Петлевой интерфейс не используется для реальной передачи данных и не имеет привязки к аппаратному адресу. Таблица ARP реального интерфейса содержит записи для узлов с адресами 192.168.1.1 и 192.168.1.132, а также записи для широковещательной (MAC-адрес равен ff-ff-ff-ff-ff-ff) и групповых рассылок (MAC-адрес начинается с 01-00-5e ). МАС-адрес групповой рассылки всегда начинается с префикса, состоящего из 24 битов — 01-00-5Е. Следующий, 25-й бит равен 0. Последние 23 бита МАС-адреса формируются из 23 младших битов группового IP-адркса.

arp -s 192.168.1.1 00-08-00-62-F6-19 — добавить в таблицу ARP запись, задающую соответствие IP адреса 192.168.1.1 и физического адреса 00-08-00-62-F6-19

arp -d 192.168.1.1 — удалить из таблицы ARP запись для IP-адреса 192.168.1.1

arp -d 192.168.1.* — удалить из таблицы ARP записи для диапазона IP-адресов 192.168.1.1 — 192.168.1.254

Некоторые замечания по практическому использованию команды ARP:

— разрешение адресов по протоколу ARP выполняется только при операциях передачи данных по протоколу IP .
— время жизни записей в таблице ARP ограничено, поэтому, перед просмотром ее содержимого для конкретного адреса нужно выполнить ping на этот адрес.
— если ответ на ping не приходит, а запись для данного IP-адреса присутствует в таблице ARP, то этот факт можно интерпретировать как блокировку ICMP-пакетов брандмауэром пингуемого узла.
— невозможность подключения к удаленному узлу по протоколам TCP или UDP при наличии записей в таблице ARP для целевого IP, может служить признаком отсутствия служб обрабатывающих входящие подключения, или их блокировки брандмауэром (закрытые порты).
— ARP протокол работает в пределах локального сегмента сети. Поэтому, если выполнить ping на внешний узел ( например ping yandex.ru ), то в таблице ARP будет присутствовать запись для IP — адреса маршрутизатора, через который выполняется отправка пакета во внешнюю сеть.

Примеры практического использования ARP для сетевой диагностики.

Весь список команд CMD Windows

Протокол ARP

В этом разделе мы рассмотрим то, как при посылке IP-пакета определяется Ethernet-адрес назначения. Для отображения IP-адресов в Ethernet адреса используется протокол ARP (Address Resolution Protocol — адресный протокол). Отображение выполняется только для отправляемых IP-пакетов, так как только в момент отправки создаются заголовки IP и Ethernet.


ARP-таблица для преобразования адресов

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

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

Табл.1. Пример ARP-таблицы

Принято все байты 4-байтного IP-адреса записывать десятичными числами, разделенными точками. При записи 6-байтного Ethernet-адреса каждый байт указывается в 16-ричной системе и отделяется двоеточием.

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


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

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

Протокол ARP

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


Запросы и ответы протокола ARP

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

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

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

IP-адрес отправителя
Ethernet-адрес отправителя
223.1.2.1
08:00:39:00:2F:C3
Искомый IP-адрес
Искомый Ethernet-адрес
223.1.2.2
<пусто>

Табл.2. Пример ARP-запроса

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

IP-адрес отправителя
Ethernet-адрес отправителя
223.1.2.2
08:00:28:00:38:A9
Искомый IP-адрес
Искомый Ethernet-адрес
223.1.2.1
08:00:39:00:2F:C3

Табл.3. Пример ARP-ответа

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

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

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

Табл.4. ARP-таблица после обработки ответа


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

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

  1. По сети передается широковещательный ARP-запрос.
  2. Исходящий IP-пакет ставится в очередь.
  3. Возвращается ARP-ответ, содержащий информацию о соответствии IP- и Ethernet-адресов. Эта информация заносится в ARP-таблицу.
  4. Для преобразования IP-адреса в Ethernet-адрес у IP-пакета, постав ленного в очередь, используется ARP-таблица.
  5. Ethernet-кадр передается по сети Ethernet.

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

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

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

Следует отметить, что каждая машина имеет отдельную ARP-таблицу для каждого своего сетевого интерфейса.

[Назад] [Содержание] [Вперед]

Proxy-ARP — это технология, согласно которой маршрутизатор отвечает на чужой ARP запрос, предназначеный не ему, своим MAC адресом.
При этом отправитель, предполагая что получил в ARP ответе физический адрес получателя, помещает этот MAC адрес в кадр. Таким образом маршрутизатор получает кадр, адресованный ему, но пакет содержит не его IP адрес. Это в свою очередь значит, что пакет предназначен для маршрутизации. Ответный пакет также проходит этап маршрутизации в обратную сторону. Для обеих сторон маршрутизатор является прозрачным.
Возможен случай, когда proxy-arp работает только для одного сегмента сети, а с другой стороны хост знает о существовании маршрутизатора и отправляет пакеты ему сознательно.

Задачи которые позволяет решить эта технология:

  • подключение к сети одного хоста, принадлежащего другой физической сети (другому широковещательному домену)
  • объединение двух широковещательных доменов для общения одноадресными рассылками (unicast), но ограничивая широковещательный трафик между доменами; при этом не прибегая к использованию bridge и брандмауэров.

Понятие Proxy-ARP можно встретить при конфигурации VPN сервера.

В технологии Frame-Relay существует понятие Inverse-ARP. Как и соответствует из названия, этот протокол явзяется обратным ARP.

Address Resolution Protocol

Суть протокола заключается в преобразовании физического адреса в логический, т.е. IP-адрес. В сети Frame-Relay физическим адресом являестя DLCI.

Благодарим за статью: Дмитрия Подгорного

Очистка и удаление кэша ARP

Очистка кэша ARP через командную строку

Когда компьютеры обращаются к информации DNS, найден­ные сопоставления имен и адресов временно сохраняются в кэше ARP (Address Resolution Protocol), чтобы в следующий раз при обращении к той же информации не выполнять поиск заново. Эта информация устаревает в соответствии со значе­нием TTL (Time-To-Live), устанавливаемом при ее получении, и по окончании срока жизни такая информация должна быть обновлена.

После получения новой информации устанавлива­ется новое значение TTL. В общем случае эта автоматическая система получения, очистки и обновления информации о со­поставлениях имен и адресов работает хорошо.

Команда ARP — просмотр и изменение таблиц ARP.

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

Удаление старой информации о сопоставлени­ях имен

У администраторов DNS есть в запасе несколько трюков, с помощью которых можно уменьшить негативное влияние сме­ны имен, например задание меньшего значения TTL перед сме­ной имени, чтобы старая информация удалялась быстрее и не вызывала проблем. Однако вы можете обнаружить, что легче просто избавиться от старых данных и заставить компьютер вновь просматривать информацию в DNS.

Для этого введите netsh interface ip delete arpcache в командной строке или de­lete arpcache (если контекст Interface IP в Netsh уже установ­лен). В результате будет удалена информация о сопоставлени­ях имен и адресов для всех интерфейсов, настроенных на дан­ном компьютере.

Пример использования очистки кеша arp

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

  • netsh interface ip delete arpcache
  • delete arpcache

ARP (Address Resolution Protocol — протокол разрешения адресов) — протокол сетевого уровня (Network Link layer), предназначенный для преобразования IP- адресов (адресов сетевого уровня) в MAC-адрес- адреса (адреса канального уровня) в сетях TCP/IP. Он определён в RFC 826.

Утилита arp:

  • Ключи консольной утилиты arp:arp -a выводит содержимое таблицы ARP. arp <host> выводит ARP-запись для заданного хоста. arp -d<host> удаляет запись, соответствующую хосту.

    Протокол arp

    arp -d-a удаляет все записи таблицы. arp -s<host><MAC-address> добавляет запись. arp -f<file> добавляет записи из файла соответствия <file>.

  • В Linux полностью очистить ARP таблицу штатными средствами нельзя. Можно использовать скрипт вида, соответственно видоизменив его под свои нужды

    ethers.local
    #!/bin/shI=1while[$I-le254]do arp -d 192.168.1.${I} arp -s 192.168.1.${I}0:0:0:0:0:0I=`expr$I + 1`done arp -f/etc/ethers.local
  • Маршрутизация.

    Эта команда для всех пунктов состояния задает failed. В дальнейшем ядро операционной системы удалить помеченные MAC адреса. ip neigh flush all

FILED UNDER : IT

Submit a Comment

Must be required * marked fields.

:*
:*