Что такое протокол arp. Протокол ARP и «с чем его едят» (дополнено)

Оценка: 4.86 Голосов: 7 Комментарии: 10

Начнем с теории…

Что такое ARP и зачем это нам

ARP (“Address Resolution Protocol” - протокол определения адреса ) - использующийся в компьютерных сетях протокол низкого уровня, предназначенный для определения адреса канального уровня по известному адресу сетевого уровня. Наибольшее распространение этот протокол получил благодаря повсеместности сетей IP, построенных поверх Ethernet, поскольку практически в 100 % случаев при таком сочетании используется ARP.

ARP протокол работает с MAC адресами. Свой индивидуальный MAC адрес есть у каждой сетевой карты.

MAC-адрес (“Media Access Control” - управление доступом к среде ) - это уникальный идентификатор, сопоставляемый с различными типами оборудования для компьютерных сетей. Большинство сетевых протоколов канального уровня используют одно из трёх пространств MAC-адресов, управляемых IEEE: MAC-48, EUI-48 и EUI-64. Адреса в каждом из пространств теоретически должны быть глобально уникальными. Не все протоколы используют MAC-адреса, и не все протоколы, использующие MAC-адреса, нуждаются в подобной уникальности этих адресов.

Рис.1. Путь к ARP таблице.

Рис.2. ARP таблица.

На Рисунке 2 мы видим ARP таблицу. В ней три записи, они добавляются автоматически и имеют следующую структуру. IP Adress – это, собственно, IP адрес компьютера сети, MAC Adress – это mac адрес этого же компьютера, и Interface, который указывает за каким интерфейсом находится данный компьютер. Обратите внимание, что напротив всех записей есть буква D. Она означает то, что эта запись динамическая и будет изменена, если изменятся какие-то данные. То есть, если пользователь случайно введет неправильный IP адрес, то просто изменится запись в ARP таблице и больше ничего. Но нам это не подходит. Нам нужно застраховаться от таких случаев. Для этого в ARP таблицу вносятся статические записи. Как это сделать? Существует два способа.

Рис.3. Добавляем Статическую запись первым способом.

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

Рис.4. Добавляем Статическую запись вторым способом.

Способ второй. Выбираем нужную запись, кликаем два раза левой клавишей мыши, в появившемся окне нажимаем кнопку Make Statik . Статическая запись добавлена.

Рис.5. Таблица со статическими записями.

Как видно на рисунке 5 – напротив добавленной записи отсутствует буква D. Это говорит о том, что запись статическая.

Теперь, если пользователь случайно введет не свой адрес, Mikrotik , проверив соответствие IP и МАС адреса в ARP таблице и, не найдя нужной записи, не даст пользователю выйти в интернет, тем самым наведет пользователя на мысль о том, что он, возможно, был не прав и надо бы позвонить администратору.

Еще на что хотелось бы обратить ваше внимани е: эти записи применяются для пакетов проходящих через router.

Маршрутиза́тор или роутер - сетевое устройство, которое принимает решения о пересылке пакетов сетевого уровня (уровень 3 модели OSI) между различными сегментами сети на основании информации о топологии сети и определённых правил.

Если нужно, чтобы правила применялись к Bridge(бридж), то в Bridge нужно включить функцию Use IP Firewall (рис.6.).

Бридж - это способ соединения двух сегментов Ethernet на канальном уровне, т.е. без использования протоколов более высокого уровня, таких как IP. Пакеты передаются на основе Ethernet-адресов, а не IP-адресов (как в маршрутизаторе). Поскольку передача выполняется на канальном уровне (уровень 2 модели OSI), все протоколы более высокого уровня прозрачно проходят через мост.

Рис.6 . Включение функции Use IP Firewall.

Евгений Рудченко

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

Рисунок 6.11. RARP-сервер откликается на IP запрос от рабочей станции с МАС-адресом 08-00-20-67-92-89


Рисунок 6.12. IP-адреса приводятся в соответствие с МАС-адресами с помощью ARP-таблиц.

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

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



Рисунок 6.14. Порты также заносятся в таблицу маршрутизации

Шлюз по умолчанию

Если источник расположен в сети с номером, который отличается от номера сети назначения, и источник не знает МАС-адрес получателя, то для того, чтобы доставить данные получателю, источник должен воспользоваться услугами маршрутизатора. Если маршрутизатор используется подобным образом, то его называют шлюзом по умолчанию (default gateway). Чтобы воспользоваться услугами шлюза по умолчанию, источник инкапсулирует данные, помещая в них в качестве МАС-адреса назначения МАС-адрес маршрутизатора. Так как источник хочет доставить данные устройству, а не маршрутизатору, то в заголовке в качестве IP-адреса назначения используется IP-адрес устройства, а не маршрутизатора (рис. 6.16). Когда маршрутизатор получает данные, он убирает информацию канального уровня, использованную при инкапсуляции. Затем данные передаются на сетевой уровень, где анализируется IP-адрес назначения. После этого маршрутизатор сравнивает IP-адрес назначения с информацией, которая содержится в таблице маршрутизации. Если маршрутизатор обнаруживает отображение IP-адреса пункта назначения на соответствующий МАС-адрес и приходит к выводу, что сеть назначения подключена к одному из его портов, он инкапсулирует данные, помещая в них информацию о новом МАС-адресе, и передает их по назначению.



Рисунок 6.15. Данные переправляются маршрутизатором к пункту их назначения


Рисунок 6.16. Для доставки данных используются IP-адрес пункта назначения

Резюме

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

Глава 7 Топологии

В этой главе:

  • Определение понятия топология
  • Шинная топология, ее преимущества и недостатки
  • Топология "звезда", ее преимуществ и недостатки
  • Внешние терминаторы
  • Активные и пассивные концентраторы
  • Характеристики топологии "расширенная звезда", определение
  • длины кабеля для топологии "звезда" и способы увеличения размеров области охватываемой сетью с топологией "звезда”
  • Аттенюация

Введение

В главе 6, "ARP и RARP”, было рассказано, каким образом устройства в локальных сетях используют протокол преобразования адреса ARP перед отправкой данных получателю. Было также выяснено, что происходит, если устройство в одной сети не знает адреса управления доступом к среде передачи данных (МАС-цреса) устройства в другой сети. В этой главе рассказывается о топологиях, используемых при создании сетей.

Топология

В локальной вычислительной сети (ЛВС) все рабочие станции должны быть соединены между собой Если в ЛВС входит файл-сервер, он также должен быть подключен к рабочим станциям. Физическая схема, которая описывает структуру локальной сети, называется топологией В этой главе описываются три типа топологий шинная, “звезда" и "расширенная звезда" (рис 71 , 72)


Рисунок 7.1. Шинная топология типична для ЛВС Ethernet, включая 10Base2 и 10BaseS


Рисунок 7.2. Топология «звезда» типична для сетей Ethernet и Token Ring, которые используют в качестве центра сети концентратор, коммутатор или повторитель

Шинная топология

Шинная топология представляет собой топологию, в которой все устройства локальной сети подключаются к линейной сетевой среде передачи данных. Такую линейную среду часто называют каналом, шиной или трассой. Каждое устройство, например, рабочая станция или сервер, независимо подключается к общему шинному кабелю с помощью специального разъема (рис. 7.3). Шинный кабель должен иметь на конце согласующий резистор, или терминатор, который поглощает электрический сигнал, не давая ему отражаться и двигаться в обратном направлении по шине.


В 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).

  • 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.EXE используется для отображения и изменения таблиц преобразования IP-адресов в физические (MAC — адреса), используемые протоколом разрешения адресов (Address Resolution Protocol — ARP).

ARP -s inet_addr eth_addr

ARP -d inet_addr

ARP -a [-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 );

При одноадресной передаче поток данных передается от узла-отправителя на индивидуальный 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                                                     статический
224.0.0.251                                                   статический
239.255.255.250                                           статический

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

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

192.168.1.1                c8-2b-35-9a-a6-1e   динамический
192.168.1.132            00-11-92-b3-a8-0d   динамический
192.168.1.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 для петлевого интерфейса 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-адрес, то происходит следующее:

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

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

Табл.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.

Для этого введите в командной строке или 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 выводит ARP-запись для заданного хоста. arp -d удаляет запись, соответствующую хосту.

    Протокол arp

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

    В 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

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

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

Принцип работы:

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

    Все узлы локальной сети получают ARP запрос и сравнивают указанный там IP-адрес с собственным.

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

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

Преобразование адресов выполняется путем поиска в таблице. Эта таблица, называемая ARP-таблицей, хранится в памяти и содержит строки для каждого узла сети.

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

    Ifindex - Физический порт (интерфейс), соответствующий данному адресу;

    Физический адрес - MAC-адрес, например Ethernet-адрес;

    IP-адрес - IP-адрес, соответствующий физическому адресу;

    тип адресного соответствия - это поле может принимать 4 значения: 1 - вариант не стандартный и не подходит ни к одному из описанных ниже типов; 2 - данная запись уже не соответствует действительности; 3 - постоянная привязка; 4 - динамическая привязка;

Примет таблицы для технологии Ethernet:

Ethernet-адрес

08:00:39:00:2F:C3

08:00:5A:21:A7:22

08:00:10:99:AC:5

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

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

IP-адрес выбирает менеджер сети. Ethernet-адрес выбирает производитель сетевого интерфейсного оборудования из выделенного для него по лицензии адресного пространства. Когда у машины заменяется плата сетевого адаптера, то меняется и ее Ethernet-адрес.

Arp кэш.

    Эффективность функционирования ARP во многом зависит от ARP кэша (ARP cache), который присутствует на каждом хосте.

    Стандартное время жизни каждой записи в кэше составляет 20 минут с момента создания записи.

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

В ходе обычной работы сетевая программа, такая как 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-таблицу.

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

Лекция 6

ARP и RARP

Что такое ARP

ARP-запросы, ARP-таблицы, ARP-ответы и кадры ARP-запросов

Обновление ARP-таблиц RARP

RARP-серверы, RARP-запросы и кадры RARP-ответов

Какие межсетевые устройства имеют ARP-таблицы

Определение шлюза по умолчанию

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

Протоколы определяют, передаются ли данные через сетевой уровень к верхним уровням эталонной модели OSI. В основном, для того чтобы это произошло, необходимо, чтобы пакет данных содержал MAC- и IP-адрес пункта назначения. Если в пакете данных отсутствует один из этих адресов, данные не будут переданы на верхние уровни Таким образом, MAC- и IP-адрес служат для своего рода проверки и дополнения друг друга Когда отправитель определил IP-адрес получателя (рис 6 1), он смотрит в свою ARP-таблицу, для того чтобы узнать его МАС-адрес. Если источник обнаруживает, что MAC- и IP-адрес получателя присутствуют в его таблице, он устанавливает соответствие между ними, а затем использует их в ходе инкапсуляции данных После этого пакет данных по сетевой среде отправляется адресату (рис 6 2).

Рис.6.1. Источник сверяется со своей ARP-таблицей после того, как опреде­лит IP-адрес пункта назначения

Рис. 6.2. Данные принимаются получателем, после того как установлено со­ответствие между MAC- и IP-адресами и инкапсулированы банные

ARP-запросы

В примере, показанном на рис. 6.3, отправитель хочет отправить данные другому устройству. Он знает IP-адрес получателя, но МАС-адрес получателя в его ARP-таблице отсутствует. Поэтому устройство инициирует процесс, называемый ARP-запросом, который позволяет определить этот МАС-адрес. Сначала устройство создает пакет ARP-запроса и посылает его всем устройствам в сети. Для того чтобы пакет ARP-запроса был замечен всеми устройствами в сети, источник использует МАС-адрес широковещания. Адрес широковещания, используемый в схеме МАС-адресации, имеет значение F во всех разрядах. Таким образом, МАС-адрес широковещания имеет вид FF-FF-FF-FF-FF-FF.



Рис. 6.3. Отправитель не может обнаружить МАС-адрес получателя в своей ARP-таблице

ARP-запросы структурированы определенным способом. Поскольку протокол ARP функционирует на нижних уровнях эталонной модели OSI, сообщение, в котором содержится ARP-запрос, должно быть инкапсулировано внутри кадра протокола аппаратных средств. Таким образом, кадр ARP-запроса состоит из двух частей: заголовка и ARP-сообщения (рис. 6.4).

Рис 6.4. Кадр ARP-запроса состоит из заголовка и ARP-сообщения

МАС-за головок

Кроме того, заголовок кадра разделен на MAC- и IP-заголовок (рис. 6.5).

Рис. 6.5. Заголовок кадра состоит MAC- и IP-заголовка

ARP-ответы

Поскольку пакет ARP-запроса посылается в режиме широковещания, его принимают все устройства в локальной сети и передают для анализа на сетевой уровень. Если IP-адрес устройства соответствует IP-адресу пункта назначения, содержащемуся в ARP-запросе, устройство откликается путем отправки источнику своего МАС-адреса. Этот процесс называется ARP-ответом. В примере, показанном на рис. 6.3, источник 197.15.22.33 запрашивает МАС-адрес получателя, имеющего IP-адрес 197.15.22.126. Получатель 197.15.22.126 принимает ARP-запрос и откликается путем отправки ARP-ответа, содержащего его МАС-адрес.

Рис. 6.6. Структура ARP-ответа включает MAC- и IP-заголовок, а также сообщение ARP-ответа.

Когда устройство, создавшее ARP-запрос, получает ответ, оно извлекает МАС-адрес из МАС-заголовка и обновляет свою ARP-таблицу. Теперь, когда устройство имеет всю нужную ему информацию, оно может добавить к данным MAC- и IP-адрес пункта назначения. Устройство использует эту новую структуру кадра для инкапсуляции данных перед отправкой их по сети (рис. 6.7).

Когда данные достигают адресата, производится сравнение на канальном уровне. Канальный уровень убирает МАС-заголовок и передает данные на следующий уровень эталонной модели OSI - сетевой. Сетевой уровень анализирует данные и обнаруживает, что его IP-адрес соответствует IP-адресу назначения, содержащемуся в IP-заголовке данных. Сетевой уровень убирает IP-заголовок и передает данные следующему более высокому уровню - транспортному (уровень 4). Этот процесс повторяется, пока остаток пакета не достигнет приложения, где данные будут прочитаны.

Рис.6.7. Перед отправкой данных через сеть данные инкапсулируются с использованием новой структуры кадра

ARP-таблицы

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

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

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

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

Как было сказано выше, для того, чтобы сетевое устройство могло отправить данные на уровень 4 (транспортный) эталонной модели OSI, необходимы и MAC-, и IP-адрес. Таким образом, MAC- и IP-адрес служат для проверки и дополнения друг друга. Чтобы получатель, принимающий данные, знал, кто их отправил, пакет данных должен содержать MAC- и IP-адреса источника. А что произойдет, если источник знает свой МАС-адрес, но не знает своего IP-адреса? Протокол, который используют устройства, если не знают своего IP-адреса, называется протоколом обратного преобразования адреса (Reverse Address Resolution Protocol, RARP). Как и ARP, RARP связывает МАС-адреса с IP-адресами, чтобы сетевое устройство могло использовать их для инкапсуляции данных перед отправкой в сеть. Для использования данного протокола в сети должен присутствовать RARP-сервер, отвечающий на RARP-запросы (рис 6.9).

RARP-запросы

Представим, что источник хочет послать данные другому устройству. Однако источник знает свой МАС-адрес, но не может обнаружить собственный IP-адрес в своей ARP-таблице. Чтобы получатель мог оставить у себя данные, передать их на верхние уровни эталонной модели OSI и распознать устройство, которое отправило данные, источник должен включить в пакет данных свои MAC- и IP-адреса. Поэтому источник инициирует процесс, называемый RARP-запросом, позволяющий ему определить собственный IP-адрес. Для этого устройство создает пакет RARP-запроса и посылает его в сеть. Для того чтобы пакет ARP-запроса был замечен всеми устройствами в сети, источник использует IP-адрес широковещания.

RARP-запросы имеют такую же структуру, как и ARP-запросы (рис. 6.10). Следовательно, RARP-запрос состоит из MAC- и IP-заголовка, а также сообщения RARP-запроса. Единственное отличие в формате RARP-пакета заключается в том, что заполнены МАС-адреса источника и получателя, а поле IP-адреса источника - пустое. Поскольку сообщение передается в режиме широковещания, т.е. всем устройствам в сети, адрес назначения записывается в виде всех двоичных единиц.

Рис. 6.10. АКР- и RARP-запросы и имеют одинаковую структуру

Так как RARP-запрос посылается в режиме широковещания, его видят все устройства в сети. Однако только специальный RARP-сервер может отозваться на RARP-запрос. RARP-сервер служит для отправки RARP-ответа, в котором содержится IP-адрес устройства, создавшего RARP-запрос.

RARP-ответы

RARP-ответы имеют такую же структуру, как и ARP-ответы. RARP-ответ состоит из сообщения RARP-ответа, MAC- и IP-заголовка. Когда устройство, создавшее RARP-запрос, получает ответ, оно обнаруживает свой IP-адрес. На рис. 6.11 показано, что происходит в ситуации, когда сервер с IP-адресом 197 .15.22.126 откликается на IP-запрос от бездисковой рабочей станции с МАС-адресом 08-00-20-67-92-89. Когда устройство, создавшее RARP-запрос, получает ответ, оно копирует свой IP-адрес в кэш-память, где тот будет храниться на протяжении всего сеанса работы. Однако, когда терминал будет выключен, эта информация снова исчезнет. Пока же сеанс продолжается, бездисковая рабочая станция, создавшая запрос, может использовать полученную таким способом информацию для отправки и приема данных.

Маршрутизаторы и ARP-таблицы

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

Рис. 6.12. IP-адреса приводятся в соответствие с МАС-адресами с помощью ARP-таблиц.

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

Что происходит, если пакет данных достигает маршрутизатора, который не подключен к сети назначения пакета? Кроме MAC- и IP-адресов устройств тех сетей, к которым подключен данный маршрутизатор, он еще содержит MAC- и IP-адреса других маршрутизаторов. Маршрутизатор использует эти адреса для направления данных конечному получателю (рис. 6.15). При получении пакета, адрес назначения которого отсутствует в таблице маршрутизации, маршрутизатор переправляет этот пакет по адресам других маршрутизаторов, которые, возможно, содержат в своих таблицах маршрутизации информацию о хост-машине пункта назначения.

Шлюз по умолчанию

Если источник расположен в сети с номером, который отличается от номера сети назначения, и источник не знает МАС-адрес получателя, то для того, чтобы доставить данные получателю, источник должен воспользоваться услугами маршрутизатора. Если маршрутизатор используется подобным образом, то его называют шлюзом по умолчанию (default gateway). Чтобы воспользоваться услугами шлюза по умолчанию, источник инкапсулирует данные, помещая в них в качестве МАС-адреса назначения МАС-адрес маршрутизатора. Так как источник хочет доставить данные устройству, а не маршрутизатору, то в заголовке в качестве IP-адреса назначения используется IP-адрес устройства, а не маршрутизатора (рис. 6.16).

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

Резюме

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

v Если IP-адрес устройства совпадает с IP-адресом, содержащимся в ARP-запросе, устройство откликается, посылая источнику свой МАС-адрес. Эта процедура называется ARP-ответом.

v Если источник не может обнаружить МАС-адрес пункта назначения в своей ARP-таблице, он создает ARP-запрос и отправляет его в широковещательном режиме всем устройствам в сети.

v Если устройство не знает собственного IP-адреса, оно использует протокол RARP.

v Когда устройство, создавшее RARP-запрос, получает ответ, оно копирует свой IP-адрес в кэш-память, где этот адрес будет храниться на протяжении всего сеанса работы.

v Маршрутизаторы, как и любые другие устройства, принимают и отправляют данные по сети, поэтому они также строят ARP-таблицы, в которых содержатся отображения IP-адресов на МАС-адреса.

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

Контрольные вопросы

1. Какой Internet-протокол используется для отображения IP-адресов на МАС-адреса?

2. Кто инициирует ARP-запросы?

A. Устройство, которое не может обнаружить IP-адрес назначения в своей ARP-таблице.

B. RARP-сервер, в ответ на запрос устройства, работающего со сбоями.

C. Бездисковые рабочие станции с пустым кэшем.