Домой / Группы / Протокол arp address resolution protocol. Протокол ARP

Протокол arp address resolution protocol. Протокол ARP

Всем привет! Сегодня я расскажу, как посмотреть arp таблицу в Windows. Что такое arp - это протокол распознавания адреса, предназначен для преобразования IP-адресов в MAC-адреса, часто называемые также физическими адресами. Ранее я уже рассказывал, как выглядит arp таблица cisco . Думаю, что многим коллегам, кто только начинает знакомиться с сетевой инфраструктурой данной операционной системы, данная информация окажет хорошее подспорье, для формирования фундамента. Тут главное понимать принцип работы и назначения, все остальное уже нюансы различных вендоров.

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

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

Как посмотреть arp таблицу

Вводим команду

Где вы слева видите ip адрес, а правее видите Физический адрес (mac адрес). Это и есть arp таблица windows.

По умолчанию данный кэш живет 300 секунд

очистка arp таблицы

Делается с помощью команды

И видим,произошла очистка arp таблицы

Как добавить свою запись в arp таблицу

Делается это с помощью команды

arp -s 157.55.85.212 00-aa-00-62-c6-09

Увеличиваем время жизни arp записи Windows 7 по 10

Давайте рассмотрим на примере Windows 8.1 как можно увеличить время жизни arp записей, для чего это может быть нужно, ну, чтобы разгрузить сеть лишним трафиком, если у вас в сети мало, что меняется. Делается это все через реестр Windows

Нажимаем Win+R и вводим regedit и переходим в ветку

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

Тут вам для изменения периода хранения данных в кэше ARP, нужно создать Параметр DWORD, если у вас разрядность системы 32, то создаем 32, если 64, то такой же.

Задаем имя ArpCacheLife и ставим значение в секундах, после чего нужно перезагрузиться и у вас поменяется время жизни arp записи.

Вот полная справка команды arp

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

ARP -s inet_addr eth_addr
ARP -d inet_addr
ARP -a [-N if_addr] [-v]

  • -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 - Если параметр задан, он определяет адрес интерфейса в Интернете, чья таблица преобразования адресов должна измениться. Если параметр не задан, будет использован первый доступный интерфейс.

RARP

Reverse ARP, обратный ARP протокол служит для того, чтобы по имеющемуся MAC адресу узнать IP адрес. Этот протокол используется в бездисковых машинах (https://ru.wikipedia.org/wiki/Бездисковая_рабочая_станция), загружающихся по сети. Первым делом такая машина должна узнать свой IP адрес, и параметры сети, чтобы она могла обратиться по сети, допустим к TFTP серверу, с которого она будет скачивать загрузочную запись. Единственное, что знает о себе эта машина - её MAC адрес.

Ранее говорилось, что порт или интерфейс, с помощью которого маршрутизатор подключен к сети, рассматривается как часть этой сети. Следовательно, интерфейс маршрутизатора, подключенный к сети, имеет тот же 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). Шинный кабель должен иметь на конце согласующий резистор, или терминатор, который поглощает электрический сигнал, не давая ему отражаться и двигаться в обратном направлении по шине.


Введение

Проблема, которую мы будем обсуждать в этой главе, заключается в том, что IP адреса имеют какое-либо значение только в семействе протоколов TCP/IP. Канальные уровни, такие как Ethernet или Token ring, имеют собственную схему адресации (в основном 48-битные адреса); сетевые уровни, в свою очередь, используют эти канальные уровни. Сеть Ethernet, может быть использована различными сетевыми уровнями в одно и то же время. Компьютеры использующие разные сетевые протоколы могут находиться на одном и том же физическом кабеле.

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

Другими словами возникает необходимость установить соответствие между двумя различными формами адресов: 32-битными IP адресами и каким-либо типом адресов канального уровня. RFC 826 [ Plummer 1982] - официальная спецификация ARP.

На рисунке 4.1 показаны два протокола, которые мы рассмотрим в этой и следующей главах: протокол определения адреса (ARP - address resolution protocol) и обратный протокол определения адреса (RARP - reverse address resolution protocol).

Рисунок 4.1 Протоколы определения адреса: ARP и RARP.

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

RARP, в основном, используется системами без жестких дисков (бездисковые рабочие станции или X терминалы), однако здесь требуется ручная конфигурация с участием системного администратора. Мы рассмотрим RARP в .

Если мы введем команду

% ftp bsdi

будет выполнена следующая последовательность действий. (См. рисунок 4.2.)

  1. Приложение, FTP клиент, вызывает функцию gethostbyname(3), чтобы конвертировать имя хоста (bsdi) в 32-битный IP адрес. Эта функция в DNS (Domain Name System) называется разборщиком (resolver) , мы опишем это подробно в . Подобное преобразование осуществляется с использованием DNS или, если существует маленькая сеть, то с помощью статического файла хостов ( /etc/hosts).
  2. FTP клиент требует установить TCP соединение с указанным IP адресом.
  3. TCP посылает запрос на установление соединения удаленному хосту, посылая IP датаграммы по указанному IP адресу. (Мы рассмотрим как это делается более подробно в .)
  4. Если хост назначения подключен к сети (Ethernet, Token ring, или к другому концу канала точка-точка), IP датаграмма может быть послана непосредственно хосту. Если хост назначения находится в удаленной сети, IP маршрутизатор определяет Internet адрес непосредственно подключенного маршрутизатора следующей пересылки, чтобы послать туда IP датаграмму. В обоих случаях IP датаграмма посылается либо хосту, либо маршрутизатору, подключенные непосредственно к данной сети.
  5. Если используется Ethernet, посылающий хост должен конвертировать 32-битный адрес в 48-битный Ethernet адрес. Или другими словами, осуществить преобразование из логического Internet адреса в соответствующий физический аппаратный адрес. Этим занимается ARP. ARP работает в широковещательных сетях, где много хостов или маршрутизаторов подключено к одной и той же сети.
  6. ARP посылает фрейм Ethernet, который называется ARP запрос (ARP request), каждому хосту в сети. Подобный метод рассылки называется широковещательным запросом (broadcast). На рисунке 4.2 широковещательный запрос показан пунктирными линиями. ARP запрос содержит IP адрес хоста назначения (имя которого bsdi) и запрос "если Вы владелец этого IP адреса, пожалуйста сообщите мне Ваш аппаратный адрес".

Рисунок 4.2 Реакция ARP на ввод пользователя: ftp hostname.

  • Хост назначения на ARP уровне получает этот широковещательный запрос, определяет, что отправитель спрашивает именно его IP адрес, и отвечает на него ARP откликом (ARP reply). Этот отклик содержит IP адрес и соответствующий аппаратный адрес.
  • ARP отклик принимается, и IP датаграмма, из-за которой начался обмен ARP запрос - ARP отклик, может быть послана.
  • IP датаграмма отправляется на хост назначения.
  • Фундаментальная концепция, заложенная в ARP, заключается в следующем. Сетевой интерфейс имеет аппаратный адрес (48-битное значение для Ethernet или Token ring). Фреймы, которыми обмениваются на аппаратном уровне, должны адресоваться к корректному интерфейсу. Однако TCP/IP испоьзует собственную схему адрессации: 32-битные IP адреса. Знание IP адреса хоста не позволяет ядру послать датаграмму этому хосту. Драйвер Ethernet должен знать аппаратный адрес пункта назначения, чтобы послать туда данные. В задачу ARP входит обеспечение динамического соответствия между 32-битными IP адресами и аппаратными адресами, используемыми различными сетевыми технологиями.

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

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

    Содержимое ARP кэша можно увидеть с использованием команды arp(8). Опция -a показывает все записи, содержащиеся в кэше:

    bsdi % arp -a
    sun (140.252.13.33) at 8:0:20:3:f6:42
    svr4 (140.252.13.34) at 0:0:c0:c2:9b:26

    48-битные Ethernet адреса приведены в виде шести шестнадцатиричных чисел, разделенных двоеточиями. Дополнительные функции команды arp обсуждаются в разделе главы 4.

    Формат пакета ARP

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

    Рисунок 4.3 Формат ARP запроса или отклика при работе с Ethernet.

    Два первых поля в Ethernet заголовке - поля источника и назначения Ethernet. Специальный адрес назначения Ethernet, состоящий из всех единиц, означает широковещательный адрес. Фреймы с таким адресом будут получены всеми Ethernet интерфейсами на кабеле.

    Двухбайтовый тип фрейма (frame type) Ethernet указывает, данные какого типа, пойдут следом. Для ARP запроса или ARP отклика это поле содержит 0x0806.

    Выражения аппаратный (hardware) и протокол (protocol) используются для описания полей в пакетах ARP. Например, ARP запрос запрашивает аппаратный адрес (в данном случае Ethernet адрес) соответствующий адресу протокола (в данном случае IP адрес).

    Поле hard type указывает на тип аппаратного адреса. Для Ethernet это значение равно единице. Prot type указывает тип адреса протокола, к которому будет приведено соответствие. Для IP адресов используется значение 0x0800. По своему целевому назначению это значение соответствует полю типа во фрейме Ethernet, который содержит IP датаграмму. (См. рисунок 2.1.)

    Два следующих однобайтных поля, hard size и prot size, указывают на размеры в байтах аппаратного адреса и адреса протокола. В ARP запросах и откликах они составляют 6 для Ethernet и 4 для IP адреса.

    Поле op указывает на тип операции: ARP запрос (значение устанавливается в 1), ARP отклик (2), RARP запрос (3) и RARP отклик (4). (Мы поговорим о RARP в .) Это поле необходимо, так как поля типа фрейма (frame type) одинаковы для ARP запроса и ARP отклика.

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

    Для ARP запроса все поля заполнены, за исключением аппаратного адреса назначения. Когда система получает ARP запрос, который предназначается ей, она вставляет свой аппаратный адрес, меняет местами адреса источника и назначения, устанавливает поле op в значение 2 и отправляет отклик.

    Примеры ARP

    В этом разделе мы воспользуемся командой tcpdump, чтобы посмотреть, как в действительности работает ARP при запуске обычного TCP приложения, например, Telnet. В содержится дополнительная информация о работе программы tcpdump.

    Типичный пример

    Чтобы посмотреть как функционирует ARP, мы запустим команду telnet, чтобы подсоединиться к discard (discard server - сервер, не предоставляющий пользователю никаких услуг) серверу.

    bsdi% arp -a проверяем, что ARP кэш пуст
    bsdi% telnet svr4 discard подсоединяемся к серверу
    Trying 140.252.13.34 ...
    Connected to svr4.
    Escape character is "^]" .
    ^] нажимаем Control и правую квадратную скобку,
    telnet> quit чтобы получить приглашение Telnet и закрыть сессию
    Connection closed.

    Пока осуществляются эти действия, мы запускаем команду tcpdump с опцией -e на другом хосте (sun). Это позволит нам посмотреть аппаратные адреса (48-битные адреса Ethernet).


    arp who-has svr4 tell bsdi
    2 0.002174 (0.0022) 0:0:c0:c2:9b:26 0:0:c0:6f:2d:40 arp 60:
    arp reply svr4 is-at 0:0:c0:c2:9b:26
    3 0.002831 (0.0007) 0:0:c0:6f:2d:40 0:0:c0:c2:9b:26 ip 60:
    bsdi.1030>svr4.discard: S 596459521:596459521 (0)
    win 4096
    4 0.007834 (0.0050) 0:0:c0:c2:9b:26 0:0:c0:6f:2d:40 ip 60:
    svr4.discard>bsdi.1030: S 3562228252:3562228252 (0)
    ack 596459522 win 4096
    5 0.009615 (0.0018) 0:0:c0:6f:2d:40 0:0:c0:c2:9b:26 ip 60:
    bsdi.1030>svr4.discard: . ack 1 win 4096

    Рисунок 4.4 ARP запрос и ARP отклик, сгенерированные при запросе на Telnet соединение.

    %D0%A7%D0%B8%D1%81%D0%BB%D0%BE,%20%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D0%BE%D0%B5%20%D0%BF%D0%B5%D1%87%D0%B0%D1%82%D0%B0%D0%B5%D1%82%D1%81%D1%8F%20%D0%B2%20%D0%BA%D0%B0%D0%B6%D0%B4%D0%BE%D0%B9%20%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B5,%20%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%20%D0%BD%D0%BE%D0%BC%D0%B5%D1%80%D0%B0%20%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8%20-%20%D1%8D%D1%82%D0%BE%0A%D0%B2%D1%80%D0%B5%D0%BC%D1%8F%20(%D0%B2%20%D1%81%D0%B5%D0%BA%D1%83%D0%BD%D0%B4%D0%B0%D1%85)%20%D0%BA%D0%BE%D0%B3%D0%B4%D0%B0%20%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%20%D0%B1%D1%8B%D0%BB%20%D0%BF%D1%80%D0%B8%D0%BD%D1%8F%D1%82%20%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BE%D0%B9%20tcpdump.%20%D0%92%20%D0%BA%D0%B0%D0%B6%D0%B4%D0%BE%D0%B9%20%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B5%0A%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%20%D0%BF%D0%B5%D1%80%D0%B2%D0%BE%D0%B9%20%D1%81%D0%BE%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D1%82%D1%81%D1%8F%20%D1%80%D0%B0%D0%B7%D0%BD%D0%B8%D1%86%D0%B0%20%D0%B2%D0%BE%20%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8%20(%D0%B2%20%D1%81%D0%B5%D0%BA%D1%83%D0%BD%D0%B4%D0%B0%D1%85)%20%D1%81%20%D0%BF%D1%80%D0%B5%D0%B4%D1%8B%D0%B4%D1%83%D1%89%D0%B5%D0%B9%20%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%BE%D0%B9.%0A%D0%AD%D1%82%D0%BE%20%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BF%D1%80%D0%B8%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D1%81%D1%8F%20%D0%B2%20%D1%81%D0%BA%D0%BE%D0%B1%D0%BA%D0%B0%D1%85.%20%D0%9A%D0%B0%D0%BA%20%D0%B2%D0%B8%D0%B4%D0%BD%D0%BE%20%D0%B8%D0%B7%20%D1%80%D0%B8%D1%81%D1%83%D0%BD%D0%BA%D0%B0,%20%D0%B2%D1%80%D0%B5%D0%BC%D1%8F%20%D0%BC%D0%B5%D0%B6%D0%B4%D1%83%20%D0%BE%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%BE%D0%B9%0AARP%20%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0%20%D0%B8%20%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC%20ARP%20%D0%BE%D1%82%D0%BA%D0%BB%D0%B8%D0%BA%D0%B0%20%D1%81%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D1%82%202,2%20%D0%BC%D1%81.%20%D0%9F%D0%B5%D1%80%D0%B2%D1%8B%D0%B9%20TCP%20%D1%81%D0%B5%D0%B3%D0%BC%D0%B5%D0%BD%D1%82%0A%D0%BF%D0%BE%D1%81%D0%BB%D0%B0%D0%BD%20%D1%87%D0%B5%D1%80%D0%B5%D0%B7%200,7%20%D0%BC%D1%81%20%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%20%D1%8D%D1%82%D0%BE%D0%B3%D0%BE.%20%D0%A2%D0%B0%D0%BA%D0%B8%D0%BC%20%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%BE%D0%BC,%20%D0%B4%D0%BB%D1%8F%20%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B3%D0%BE%20%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F%0A%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%B0%20%D1%81%20%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC%20ARP,%20%D0%B2%20%D0%B4%D0%B0%D0%BD%D0%BD%D0%BE%D0%BC%20%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B5,%20%D0%BF%D0%BE%D1%82%D1%80%D0%B5%D0%B1%D0%BE%D0%B2%D0%B0%D0%BB%D0%BE%D1%81%D1%8C%20%D0%BC%D0%B5%D0%BD%D0%B5%D0%B5%20%D1%87%D0%B5%D0%BC%203%20%D0%BC%D1%81.

    %D0%98%20%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B5%D0%B5%20%D0%BD%D0%B0%20%D1%87%D1%82%D0%BE%20%D1%81%D0%BB%D0%B5%D0%B4%D1%83%D0%B5%D1%82%20%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D0%B8%D1%82%D1%8C%20%D0%B2%D0%BD%D0%B8%D0%BC%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%B2%20%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4%D0%B5%20tcpdump:%20%D0%BC%D1%8B%20%D0%BD%D0%B5%0A%D1%83%D0%B2%D0%B8%D0%B4%D0%B8%D0%BC%20ARP%20%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%20%D0%BE%D1%82%20svr4,%20%D0%BA%D0%BE%D0%B3%D0%B4%D0%B0%20%D0%BE%D0%BD%20%D0%BF%D0%BE%D1%81%D1%8B%D0%BB%D0%B0%D0%B5%D1%82%20%D1%81%D0%B2%D0%BE%D0%B9%20%D0%BF%D0%B5%D1%80%D0%B2%D1%8B%D0%B9%20TCP%20%D1%81%D0%B5%D0%B3%D0%BC%D0%B5%D0%BD%D1%82%20(%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B0%204).%0A%D0%94%D0%B5%D0%BB%D0%BE%20%D0%B2%20%D1%82%D0%BE%D0%BC,%20%D1%87%D1%82%D0%BE%20svr4%20%D1%83%D0%B6%D0%B5%20%D0%B8%D0%BC%D0%B5%D0%B5%D1%82%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5%20%D0%BE%20bsdi%20%D0%B2%20%D1%81%D0%B2%D0%BE%D0%B5%D0%BC%20ARP%20%D0%BA%D1%8D%D1%88%D0%B5,%20%D1%82%D0%B0%D0%BA%20%D0%BA%D0%B0%D0%BA,%20%D0%BA%D0%BE%D0%B3%D0%B4%D0%B0%0A%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0%20%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B0%D0%B5%D1%82%20ARP%20%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81,%20%D0%BF%D0%BE%D0%BC%D0%B8%D0%BC%D0%BE%20%D1%82%D0%BE%D0%B3%D0%BE%20%D1%87%D1%82%D0%BE%20%D0%BE%D0%BD%D0%B0%20%D0%BF%D0%BE%D1%81%D1%8B%D0%BB%D0%B0%D0%B5%D1%82%20ARP%20%D0%BE%D1%82%D0%BA%D0%BB%D0%B8%D0%BA,%20%D0%BE%D0%BD%D0%B0%20%D1%82%D0%B0%D0%BA%D0%B6%D0%B5%0A%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D1%8F%D0%B5%D1%82%20%D0%B0%D0%BF%D0%BF%D0%B0%D1%80%D0%B0%D1%82%D0%BD%D1%8B%D0%B9%20%D0%B0%D0%B4%D1%80%D0%B5%D1%81%20%D0%B8%20IP%20%D0%B0%D0%B4%D1%80%D0%B5%D1%81%20%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B8%D0%B2%D1%88%D0%B5%D0%B3%D0%BE%20%D0%B2%20%D1%81%D0%B2%D0%BE%D0%B5%D0%BC%20ARP%20%D0%BA%D1%8D%D1%88%D0%B5.%20%D0%AD%D1%82%D0%BE%0A%D0%BB%D0%BE%D0%B3%D0%B8%D1%87%D0%BD%D0%BE,%20%D1%82%D0%B0%D0%BA%20%D0%BA%D0%B0%D0%BA%20%D0%B5%D1%81%D0%BB%D0%B8%20%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B8%D0%B2%D1%88%D0%B8%D0%B9%20%D1%81%D0%BE%D0%B1%D0%B8%D1%80%D0%B0%D0%B5%D1%82%D1%81%D1%8F%20%D0%BF%D0%BE%D1%81%D0%BB%D0%B0%D1%82%D1%8C%20IP%20%D0%B4%D0%B0%D1%82%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%83,%20%D1%82%D0%BE%0A%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D0%B2%D1%88%D0%B5%D0%BC%D1%83%20%D1%81%D0%BA%D0%BE%D1%80%D0%B5%D0%B5%20%D0%B2%D1%81%D0%B5%D0%B3%D0%BE%20%D0%BF%D1%80%D0%B8%D0%B4%D0%B5%D1%82%D1%81%D1%8F%20%D0%BE%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D1%82%D1%8C%20%D0%BE%D1%82%D0%B2%D0%B5%D1%82%20%D0%BD%D0%B0%20%D1%8D%D1%82%D1%83%0A%D0%B4%D0%B0%D1%82%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%83.

    %0A%0A

    в этот раз telnet на IP адрес, а не на имя хоста (hostname)
    bsdi % date ; telnet 140.252.13.36 ; date
    Sat Jan 30 06:46:33 MST 1993
    Trying 140.252.13.36 ...
    telnet: Unable to connect to remote host: Connection timed out
    Sat Jan 30 06:47:49 MST 1993 прошло 76 секунд

    bsdi % arp -a проверяем ARP кэш
    ? (140.252.13.36) at (incomplete)

    На рисунке 4.5 мы видим вывод tcpdump.

    1 0.0 arp who-has 140.252.13.36 tell bsdi
    2 5.509069 (5.5091) arp who-has 140.252.13.36 tell bsdi
    3 29.509745 (24.0007) arp who-has 140.252.13.36 tell bsdi

    Рисунок 4.5 ARP запрос на несуществующий хост.

    Сейчас мы не указываем опцию -e, так как мы уже знаем, что ARP запрос широковещательный.

    Здесь интересно посмотреть, с какой частотой рассылаются ARP запросы: 5,5 секунд после первого запроса и снова через 24 секунды. (Мы рассмотрим тайм-ауты TCP и алгоритм повторных передач более подробно в .) Полное время, показанное в выводе tcpdump, составляет 29,5 секунды. Однако вывод от команды date перед и после команды telnet показывает, что запрос на соединение от Telnet клиента длился в течении 75 секунд. И действительно, мы увидим позже, что большинство BSD реализаций устанавливают ограничение в 75 секунд для завершения запроса на установление TCP соединения.

    Уполномоченный агент ARP

    Уполномоченный агент ARP позволяет маршрутизатору отвечать на ARP запросы в одну сеть, в то время как запрашиваемый хост находится в другой сети. С помощью этого средства происходит обман отправителя, который отправил ARP запрос, после чего он думает, что маршрутизатор является хостом назначения, тогда как в действительности хост назначения находится "на другой стороне" маршрутизатора. Маршрутизатор выступает в роли уполномоченного агента хоста назначения, перекладывая пакеты от другого хоста.

    Для того чтобы лучше описать работу уполномоченных агентов ARP, мы рассмотрим пример. Из рисунка 3.10 видно, что система sun подключена к двум сетям Ethernet. Однако в действительности это не так, в чем можно убедиться, если сравнить этот рисунок с рисунком, который приведен на внутренней стороне обложки. Между sun и подсетью 140.252.1 находится маршрутизатор, который выступает в роли уполномоченного агента ARP, при этом все выглядело так, как будто sun находится в подсети 140.252.1. На рисунке 4.6 показано, что Telebit NetBlazer, названный netb, находится между подсетью и хостом sun.

    Рисунок 4.6 Пример уполномоченного ARP.

    Когда какой-либо другой хост в подсети 140.252.1 (скажем, gemini) хочет послать IP датаграмму хосту sun на адрес 140.252.1.29, gemini сравнивает идентификатор сети (140.252) и идентификатор подсети (1), и если они идентичны, отправляет ARP запрос в верхний Ethernet (на рисунке 4.6) на IP адрес 140.252.1.29. Маршрутизатор netb распознает этот IP адрес как принадлежащий одному из dialup хостов и отвечает, отправив аппаратный адрес этого Ethernet интерфейса в кабель 140.252.1. Хост gemini посылает IP датаграмму в netb по Ethernet, а netb направляет датаграмму в sun по SLIP каналам с дозвоном (dialup). Это делает его прозрачным для всех хостов подсети 140.252.1, так как хост sun действительно находится "позади" маршрутизатора netb.

    Если мы запустим команду arp на хосте gemini после общения с хостом sun, то увидим, что оба эти адреса принадлежат подсети 140.252.1 (netb и sun) и что им соответствует один аппаратный адрес. Как правило, это основная причина, по которой используется уполномоченный агент ARP.

    gemini % arp -a
    появится много строк про хосты из подсети 140.252.1
    netb (140.252.1.183) at 0:80:ad:3:6a:80
    sun (140.252.1.29) at 0:80:ad:3:6a:80

    Еще одна деталь на рисунке 4.6, которую необходимо объяснить, это отсутствие IP адреса под квадратиком, который обозначает маршрутизатор netb (SLIP канал). Почему на обоих концах SLIP канала нет IP адреса, как между bsdi и slip? В разделе главы 3, из вывода команды ifconfig, мы заметили, что адрес назначения SLIP канала 140.252.1.183. NetBlazer не требует наличия IP адресов на каждом конце SLIP канала. (Это позволяет сэкономить несколько столь ценных в настоящее время IP адресов.) Он определяет какой хост посылает пакет в зависимости от того по какому последовательному интерфейсу прибыл пакет, поэтому нет необходимости каждому хосту на SLIP канале использовать уникальный IP адрес для своего канала с маршрутизатором. Все dialup хосты используют адрес 140.252.1.183 в качестве адреса назначения для своих SLIP каналов.

    Уполномоченный агент ARP обеспечивает доставку датаграмм к маршрутизатору sun, однако как это делают другие хосты из подсети 140.252.13? Для направления датаграмм в другие хосты должна использоваться маршрутизация. Где-либо в сети 140.252 должны быть сделаны записи в таблице маршрутизации, поэтому все датаграммы, направляющиеся в подсеть 140.252.13 или в указанные хосты этой подсети, будут направляться на маршрутизатор netb. Этот маршрутизатор знает, как доставить датаграммы в их конечный пункт назначения, отправляя их через маршрутизатор sun.

    Уполномоченный агент ARP также называется смешанным (promiscuous ARP) или расщепленным (ARP hack). Эти имена появились благодаря другому использованию уполномоченных агентов ARP: они применялись для того, чтобы спрятать друг от друга две физические сети между которыми находился маршрутизатор. В этом случае обе физические сети использовали один и тот же идентификатор сети, так как маршрутизатор, находящийся между ними, был сконфигурирован как уполномоченный ARP агент, чтобы отвечать на ARP запросы из одной сети к хостам в другой сети. Эта техника использовалась в прошлом, чтобы спрятать группу хостов с более старой версией TCP/IP на отдельном физическом кабеле. Две причины, по которым приходилось отделять эти "устаревшие" хосты, заключались в том, что, во-первых, они не могли поддерживать разделение на подсети и, во-вторых, использовали старые широковещательные адреса (идентификатор хоста состоял из всех нулевых бит вместо современного стандарта, при котором идентификатор хоста состоит из единичных битов).

    "Беспричинный" ARP

    Другая характеристика ARP, которую стоит рассмотреть - "беспричинный" ARP (gratuitous ARP). Он проявляется, когда хост посылает ARP запрос, основываясь на собственном IP адресе. Обычно это делается, когда интерфейс конфигурируется во время загрузки.

    Если мы запустим tcpdump на хосте sun при загрузке хоста bsdi, то увидим пакет, показанный на рисунке 4.7.

    1 0.0 0:0:c0:6f:2d:40 ff:ff:ff:ff:ff:ff arp 60:
    arp who-has 140.252.13.35 tell 140.252.13.35

    Рисунок 4.7 Пример "беспричинного" ARP.

    (Мы использовали флаг -n программы tcpdump, чтобы напечатать адреса в цифровом десятичном виде вместо имен хостов.) В терминах полей ARP запроса, адрес протокола отправителя и адрес протокола назначения идентичны: 140.252.13.35 (что соответствует хосту bsdi). Адрес источника в заголовке Ethernet, 0:0:c0:6f:2d:40 как показано программой tcpdump, эквивалентен аппаратному адресу отправителя (из рисунка 4.4).

    "Беспричинный" ARP предоставляет две характеристики.

    1. Он позволяет хосту определить, существует ли другой хост с тем же самым IP адресом. Хост bsdi не ожидает отклика на свой запрос, однако если отклик принят, на консоли возникает сообщение об ошибке "обнаружен дублирующий IP адрес с Ethernet адресом: a:b:c:d:e:f". Это предупреждение системному администратору о том, что одна из систем неправильно сконфигурирована.
    2. Если хост, посылающий "беспричинный" ARP, только что изменил свой аппаратный адрес (может быть потому, что хост был выключен, удалена интерфейсная плата и затем хост был перезагружен), этот пакет заставляет другой хост на кабеле, который имеет запись в своем кэше для старого аппаратного адреса, обновить ARP кэш соответствующим образом. Малоизвестный факт о протоколе ARP заключается в том, что если хост получает ARP запрос для IP адреса, который он уже имеет в кэше, содержимое кэша обновляется аппаратным адресом отправителя (Ethernet адресом) из запроса ARP. Это делается для любого запроса ARP, полученного хостом. (Повторим, что ARP запросы широковещательные, поэтому такие действия осуществляются всеми хостами в сети каждый раз при появлении ARP запроса.) описывает приложения, которые используют эту характеристику ARP. Она позволяет запасному (backup) файл-серверу занять место вышедшего из строя сервера с использованием "беспричинного" ARP запроса с запасным аппаратным адресом, однако с тем же IP адресом, который имел вышедший из строя хост. При этом все пакеты, направляемые серверу, вышедшему из строя, будут посланы на запасной сервер, а пользовательские приложения не будут знать о том, что основной сервер вышел из строя.
    К сожалению, авторы затем отказались от этого подхода, так как он зависит от корректности реализации ARP на всех типах клиентов. Существуют различные типы ARP, которые не поддерживают эту спецификацию.

    Наблюдения за всеми системами в подсети, используемой в этой книге, показывает, что SunOS 4.1.3 и 4.4BSD используют "беспричинный" ARP при загрузке, а SVR4 не поддерживает эту характеристику.

    Команда arp

    Мы использовали эту команду с флагом -a, чтобы отобразить все записи ARP кэша. Существуют и другие опции.

    Суперпользователь может использовать опцию -d, чтобы удалить запись из ARP кэша. (Это было сделано перед запуском некоторых примеров, чтобы показать изменения ARP.)

    Записи могут быть добавлены с использованием опции -s. При использовании этой опции необходимо указать имя хоста и Ethernet адрес, IP адрес, соответствующий имени хоста, и Ethernet адрес добавляются в кэш. Подобная запись делается на постоянной основе (она не будет удалена из кэша по тайм-ауту), если только в конце командной строки не будет использовано ключевое слово temp.

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

    Краткие выводы

    ARP это основной протокол, который используется практически во всех реализациях TCP/IP. Обычно его функционирование не зависит от используемых приложений или воли системного администратора. ARP кэш является фундаментом этой работы. Мы использовали команду arp, чтобы просмотреть или модифицировать кэш. Каждая запись в кэше имеет таймер, который используется для удаления незавершенных или завершенных записей. Команда arp отображает модифицированные записи в ARP кэше.

    Мы посмотрели обычное функционирование ARP и специализированные версии: уполномоченный агент ARP (когда маршрутизатор отвечает на ARP запросы для хостов, находящихся на другом интерфейсе маршрутизатора) и "беспричинный" ARP (посылающий ARP запросы для своего собственного IP адреса, обычно во время загрузки).

    Упражнения

    1. Вернемся к команде, которую мы исполнили, чтобы получить вывод, показанный на рисунке 4.4. Что произойдет, если после того как мы проверили локальный ARP кэш и он оказался пустым, мы введем команду

      bsdi % rsh svr4 arp -a

      чтобы проверить, что ARP кэш также пуст на хосте назначения? (Эта команда исполнит команду arp -a на хосте svr4.)

    2. Опишите тест, который позволит определить, корректно ли обрабатывает определенный хост "беспричинные" ARP запросы.
    3. Шаг номер 7 в разделе может занять определенное время (миллисекунды), потому что пакет отправлен и ARP ожидает ответа. Как Вы думаете, обработает ли ARP несколько датаграмм, которые прибыли от IP на тот же адрес назначения в течение этого периода времени?
    4. В конце раздела мы упомянули, что RFC Host Requirements и Berkeley реализации отличаются с точки зрения обработки тайм-аутов для активных записей ARP. Что произойдет, если клиент Berkeley постарается установить контакт с сервером, который был выключен и из него была удалена плата Ethernet? Изменится ли что-нибудь, если сервер выдаст "беспричинный" ARP запрос при загрузке?

    Утилита командной строки ARP.EXE присутствует во всех версиях Windows и имеет один и тот же синтаксис. Предназначена для просмотра и изменения записей в кэш ARP (Address Resolution Protocol - протокол разрешения адресов), который представляет собой таблицу соответствия IP-адресов аппаратным адресам сетевых устройств. Аппаратный адрес - это уникальный, присвоенный при изготовлении, 6-байтный адрес сетевого устройства, например сетевой карты. Этот адрес также часто называют MAC-адресом (Media Access Control - управление доступом к среде) или Ethernet-адресом. В сетях Ethernet передаваемые и принимаемые данные всегда содержат MAC-адрес источника (Source MAC) и MAC-адрес приемника (Destination MAC).

    Два старших бита аппаратного адреса используются для идентификации типа:

    Первый бит - одиночный (0) или групповой (1) адрес.

    Второй бит - признак универсального (0) или локально администрируемого (1) адреса.

    Следующие 22 бита адреса содержат специальный код производителя, обозначаемый как MFG или OUI - универсальный код организации.

    Таким образом, в сетях Ethernet, любое сетевое устройство имеет аппаратный адрес, состоящий из двух частей, значение которых зависит от производителя оборудования и конкретного экземпляра устройства. Старшая часть MAC - адреса, централизованно выделяется по лицензии каждому производителю сетевого оборудования. Например, 00:E0:4C - для сетевых устройств REALTEK SEMICONDUCTOR CORP. Крупным производителям сетевого оборудования обычно принадлежит несколько диапазонов OUI . Младшая часть MAC-адреса формируется при производстве сетевого устройства, и уникальна для каждого экземпляра.

    Отображение IP-адресов (формируемых программным путем), в аппаратные адреса, выполняется с помощью следующих действий:

    В сеть отправляется широковещательный запрос (ARP-request), принимаемый всеми сетевыми устройствами. Он содержит IP и Ethernet адреса отправителя, а также, целевой IP-адрес, для которого выполняется определение MAC-адреса.

    Каждое устройство, принявшее запрос проверяет соответствие целевого IP-адреса, указанного в запросе, своему собственному IP-адресу. При совпадении, отправителю передается ARP-ответ (ARP-Reply), в котором содержатся IP и MAC адреса ответившего узла. Кадр с ARP-ответом содержит IP и MAC адреса как отправителя, так и получателя-составителя запроса.

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

    Формат командной строки ARP:

    ARP -s inet_addr eth_addr

    ARP -d inet_addr

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

    Параметры командной строки ARP:

    -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 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.EXE

    Утилита командной строки ARP.EXE присутствует во всех версиях Windows и имеет один и тот же синтаксис.

    Команда ARP позволяет просматривать и изменять записи в кэш ARP (Address Resolution Protocol - протокол разрешения адресов), который представляет собой таблицу соответствия IP-адресов аппаратным адресам сетевых устройств. Аппаратный адрес - это уникальный, присвоенный при изготовлении, 6-байтный адрес сетевого устройства, например сетевой карты. Этот адрес также часто называют MAC-адресом (Media Access Control - управление доступом к среде) или Ethernet-адресом. В сетях Ethernet передаваемые и принимаемые данные всегда содержат MAC-адрес источника (Source MAC) и MAC-адрес приемника (Destination MAC). Два старших бита MAC-адреса используются для идентификации типа адреса:

    1. первый бит - одиночный (0) или групповой (1) адрес.
    2. второй бит - признак универсального (0) или локально администрируемого (1) адреса.
    3. cледующие 22 бита адреса содержат специальный код производителя MFG или OUI - универсальный код организации.

    Другими словами, любое сетевое устройство имеет аппаратный адрес, состоящий из 2- х частей. Старшую часть MAC - адреса, централизованно выделяемую по лицензии каждому производителю сетевого оборудования. Например, 00:E0:4C - для сетевых устройств REALTEK SEMICONDUCTOR CORP. Крупным производителям сетевого оборудования обычно принадлежит несколько диапазонов OUI . И младшую часть MAC-адреса, которая формируется при производстве оборудования, и уникальна для каждого экземпляра устройства.

    Любое сетевое устройство имеет аппаратный адрес, состоящий из 2-х частей:

    1. Старшую часть MAC - адреса, централизованно выделяемую по лицензии каждому производителю сетевого оборудования. Например, 00:E0:4C - для сетевых устройств REALTEK SEMICONDUCTOR CORP. Крупным производителям сетевого оборудования обычно принадлежит несколько диапазонов OUI .
    2. Младшую часть MAC-адреса, которая формируется при производстве оборудования, и уникальна для каждого экземпляра устройства.

    Отображение IP-адресов (формируемых программным путем), в аппаратные адреса, выполняется с помощью следующих действий:

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

    Синтаксис ARP.EXE :

    arp[-a [-NIfaceAddr]] [-g [-NIfaceAddr]] [-dInetAddr ] [-sInetAddr EtherAddr ]

      1. a[ InetAddr] [ -NIfaceAddr] - ключ -a - отображает текущую таблицу ARP для всех интерфейсов. Для отображения записи конкретного IP-адреса используется ключ -a с параметром InetAdd , в качестве которого указывается IP-адрес. Если узел, отправляющий ARP-запрос имеет несколько сетевых интерфейсов, то для отображения таблицы ARP нужного интерфейса, можно использовать ключ -N с параметром IfaceAddr, в качестве которого используется IP-адрес интерфейса.
      2. g[ InetAddr] [ -NIfaceAddr] - ключ -g идентичен ключу -a.
      3. d InetAddr[ IfaceAddr] - используется для удаления записей из ARP-кэш. Возможно удаление по выбранному IP или полная очистка ARP кэш. Для удаления всех записей, вместо адреса используется символ * Если имеется несколько сетевых интерфейсов, то очистку можно выполнить для одного из них, указав в поле IfaceAddr его IP.
      4. s InetAddr EtherAddr [ IfaceAddr] - используется для добавления статических записей в таблицу ARP. Статические записи хранятся в ARP-кэш постоянно. Обычно, добавление статических записей используется для сетевых устройств, не поддерживающих протокол ARP или не имеющих возможности ответить на ARP- запрос.
      5. /? - получение справки по использованию arp.exe. Аналогично - запуск arp.exe без параметров.

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

    • arp -a - отобразить все записи таблицы ARP.
    • arp -a 192.168.0.9 - отобразить запись, соответствующую IP-адресу 192.168.0.9
    • arp -a 192.168.1.158 -N 192.168.1.1 - отобразить таблицу ARP для адреса 192.168.1.158 на сетевом интерфейсе 192.168.1.1
    • arp -a -N 10.164.250.148 - отобразить все записи таблицы ARP на сетевом интерфейсе 10.164.250.148.
    • arp -s 192.168.0.1 00-22-15-15-88-15 - добавить в таблицу ARP статическую запись, задающую соответствие IP - адреса 192.168.0.1 и MAC-адреса 00-22-15-15-88-15
    • arp -s 192.168.0.1 00-22-15-15-88-15 192.168.0.56 - то же самое, что и в предыдущем случае, но с указанием сетевого интерфейса, для которого выполняется добавление статической записи.
    • arp -d 192.168.1.1 192.168.1.56 удаление записи из таблицы ARP для IP-адреса 192.168.1.1 на сетевом интерфейсе 192.168.1.56
    • arp -d * - полная очистка таблицы ARP. Аналогично - arp -d без параметров. Если имеется несколько сетевых интерфейсов, то очистка может быть выполнена только для одного из них - arp -d * 192.168.0.56.

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

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

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

    1. arp -a | more
    2. arp -a > C:\myarp.txt