admin / 02.01.2018
В 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 адреса, еще указывается тип связи, существует два типа записей:
В IPv6 функциональность ARP обеспечивает протокол NDP (Neighbor Discovery Protocol Протокол Обнаружения Соседей).
RARP (англ. Reverse Address Resolution Protocol — Обратный протокол преобразования адресов) — протокол третьего (сетевого) уровня модели OSI, выполняет обратное отображение адресов, то есть преобразует аппаратный адрес в IP-адрес.
Существует четыре типа ARP-сообщений:
Содержание
Рассмотрим структуру заголовка 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                                                     статический Интерфейс: 192.168.1.133 — 0x1c адрес в Интернете Физический адрес Тип 192.168.1.1                c8-2b-35-9a-a6-1e   динамический В данном примере присутствуют записи 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 для сетевой диагностики. |
В этом разделе мы рассмотрим то, как при посылке IP-пакета определяется Ethernet-адрес назначения. Для отображения IP-адресов в Ethernet адреса используется протокол ARP (Address Resolution Protocol — адресный протокол). Отображение выполняется только для отправляемых IP-пакетов, так как только в момент отправки создаются заголовки IP и Ethernet.
Преобразование адресов выполняется путем поиска в таблице. Эта таблица, называемая 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-таблицы
ARP-таблица необходима потому, что IP-адреса и Ethernet-адреса выбираются независимо, и нет какого-либо алгоритма для преобразования одного в другой. IP-адрес выбирает менеджер сети с учетом положения машины в сети internet. Если машину перемещают в другую часть сети internet, то ее IP-адрес должен быть изменен. Ethernet-адрес выбирает производитель сетевого интерфейсного оборудования из выделенного для него по лицензии адресного пространства. Когда у машины заменяется плата сетевого адаптера, то меняется и ее Ethernet-адрес.
В ходе обычной работы сетевая программа, такая как TELNET, отправляет прикладное сообщение, пользуясь транспортными услугами TCP. Модуль TCP посылает соответствующее транспортное сообщение через модуль IP.
В результате составляется IP-пакет, который должен быть передан драйверу Ethernet. IP-адрес места назначения известен прикладной программе, модулю TCP и модулю IP. Необходимо на его основе найти Ethernet-адрес места назначения. Для определения искомого Ethernet-адреса используется ARP-таблица.
Как же заполняется ARP-таблица? Она заполняется автоматически модулем ARP, по мере необходимости. Когда с помощью существующей ARP-таблицы не удается преобразовать 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-запроса
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-ответа
Обновленная таблица выглядит следующим образом:
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-кадр передается по сети. Полностью порядок преобразования адресов выглядит так:
Короче говоря, если с помощью ARP-таблицы не удается сразу осуществить преобразование адресов, то IP-пакет ставится в очередь, а необходимая для преобразования информация получается с помощью запросов и ответов протокола ARP, после чего IP-пакет передается по назначению.
Если в сети нет машины с искомым IP-адресом, то ARP-ответа не будет и не будет записи в ARP-таблице. Протокол IP будет уничтожать IP-пакеты, направляемые по этому адресу. Протоколы верхнего уровня не могут отличить случай повреждения сети Ethernet от случая отсутствия машины с искомым IP-адресом.
Некоторые реализации IP и ARP не ставят в очередь IP-пакеты на то время, пока они ждут ARP-ответов. Вместо этого IP-пакет просто уничтожается, а его восстановление возлагается на модуль TCP или прикладной процесс, работающий через UDP. Такое восстановление выполняется с помощью таймаутов и повторных передач. Повторная передача сообщения проходит успешно, так как первая попытка уже вызвала заполнение ARP-таблицы.
Следует отметить, что каждая машина имеет отдельную ARP-таблицу для каждого своего сетевого интерфейса.
Задачи которые позволяет решить эта технология:
Понятие Proxy-ARP можно встретить при конфигурации VPN сервера.
В технологии Frame-Relay существует понятие Inverse-ARP. Как и соответствует из названия, этот протокол явзяется обратным ARP.
Суть протокола заключается в преобразовании физического адреса в логический, т.е. IP-адрес. В сети Frame-Relay физическим адресом являестя DLCI.
Благодарим за статью: Дмитрия Подгорного
Очистка и удаление кэша ARP
Когда компьютеры обращаются к информации DNS, найденные сопоставления имен и адресов временно сохраняются в кэше ARP (Address Resolution Protocol), чтобы в следующий раз при обращении к той же информации не выполнять поиск заново. Эта информация устаревает в соответствии со значением TTL (Time-To-Live), устанавливаемом при ее получении, и по окончании срока жизни такая информация должна быть обновлена.
После получения новой информации устанавливается новое значение TTL. В общем случае эта автоматическая система получения, очистки и обновления информации о сопоставлениях имен и адресов работает хорошо.
Но иногда устаревшая информация успевает вызвать проблемы до того, как она будет сброшена. Так, если на каком-то компьютере изменяется DNS-имя, а значение TTL еще не обнулялось, вы временно лишаетесь возможности найти этот компьютер.
У администраторов DNS есть в запасе несколько трюков, с помощью которых можно уменьшить негативное влияние смены имен, например задание меньшего значения TTL перед сменой имени, чтобы старая информация удалялась быстрее и не вызывала проблем. Однако вы можете обнаружить, что легче просто избавиться от старых данных и заставить компьютер вновь просматривать информацию в DNS.
Для этого введите netsh interface ip delete arpcache в командной строке или delete arpcache (если контекст Interface IP в Netsh уже установлен). В результате будет удалена информация о сопоставлениях имен и адресов для всех интерфейсов, настроенных на данном компьютере.
Если у вас несколько интерфейсов и вы хотите сбросить информацию лишь для одного интерфейса, укажите нужный интерфейс через ИмяИнтерфейса, например:
ARP (Address Resolution Protocol — протокол разрешения адресов) — протокол сетевого уровня (Network Link layer), предназначенный для преобразования IP- адресов (адресов сетевого уровня) в MAC-адрес- адреса (адреса канального уровня) в сетях TCP/IP. Он определён в RFC 826.
Утилита arp:
arp -d-a удаляет все записи таблицы. arp -s<host><MAC-address> добавляет запись. arp -f<file> добавляет записи из файла соответствия <file>.
Эта команда для всех пунктов состояния задает failed. В дальнейшем ядро операционной системы удалить помеченные MAC адреса. ip neigh flush all
FILED UNDER : IT