Как сделать arp запрос
Протокол ARP и «с чем его едят» (дополнено)
Спасибо хабраюзеру hardex за публикацию первоначальной статьи, а также всем, кто плюсанул в карму для возможности моей собственноручной публикации. Теперь дополненная версия с учетом пожеланий и дополнений. Добро пожаловать под кат.
Доброго времени суток, дорогие хабраюзеры. Этой статьей я хочу начать цикл повествования о протоколах, которые помогают нам прозрачно, быстро и надежно обмениваться информацией. И начать с протокола ARP.
Как известно, адресация в сети Internet представляет собой 32-битовую последовательность 0 и 1, называющихся IP-адресами. Но непосредственно связь между двумя устройствами в сети осуществляется по адресам канального уровня (MAC-адресам).
Так вот, для определения соответствия между логическим адресом сетевого уровня (IP) и физическим адресом устройства (MAC) используется описанный в RFC 826 протокол ARP (Address Resolution Protocol, протокол разрешения адресов).
ARP состоит из двух частей. Первая – определяет физический адрес при посылке пакета, вторая – отвечает на запросы других станций.
Протокол имеет буферную память (ARP-таблицу), в которой хранятся пары адресов (IP-адрес, MAC-адрес) с целью уменьшения количества посылаемых запросов, следовательно, экономии трафика и ресурсов.
Пример ARP-таблицы.
192.168.1.1 08:10:29:00:2F:C3
192.168.1.2 08:30:39:00:2F:C4
Слева – IP-адреса, справа – MAC-адреса.
Прежде, чем подключиться к одному из устройств, IP-протокол проверяет, есть ли в его ARP-таблице запись о соответствующем устройстве. Если такая запись имеется, то происходит непосредственно подключение и передача пакетов. Если же нет, то посылается широковещательный ARP-запрос, который выясняет, какому из устройств принадлежит IP-адрес. Идентифицировав себя, устройство посылает в ответ свой MAC-адрес, а в ARP-таблицу отправителя заносится соответствующая запись.
Записи ARP-таблицы бывают двух вид видов: статические и динамические. Статические добавляются самим пользователем, динамические же – создаются и удаляются автоматически. При этом в ARP-таблице всегда хранится широковещательный физический адрес FF:FF:FF:FF:FF:FF (в Linux и Windows).
Создать запись в ARP-таблице просто (через командную строку):
Вывести записи ARP-таблицы:
После добавления записи в таблицу ей присваивается таймер. При этом, если запись не используется первые 2 минуты, то удаляется, а если используется, то время ее жизни продлевается еще на 2 минуты, при этом максимально – 10 минут для Windows и Linux (FreeBSD – 20 минут, Cisco IOS – 4 часа), после чего производится новый широковещательный ARP-запрос.
Сообщения ARP не имеют фиксированного формата заголовка и при передаче по сети инкапсулируются в поле данных канального уровня
Формат сообщения ARP.
А вот как происходит определение маршрута с участием протокола ARP.
Пусть отправитель A и получатель B имеют свои адреса с указанием маски подсети.
Главным достоинством проткола ARP является его простота, что порождает в себе и главный его недостаток – абсолютную незащищенность, так как протокол не проверяет подлинность пакетов, и, в результате, можно осуществить подмену записей в ARP-таблице (материал для отдельной статьи), вклинившись между отправителем и получателем.
Бороться с этим недостатком можно, вручную вбивая записи в ARP-таблицу, что добавляет много рутинной работы как при формировании таблицы, так и последующем ее сопровождении в ходе модификации сети.
Существуют еще протоколы InARP (Inverse ARP), который выполняет обратную функцую: по заданному физическому адресу ищется логический получателя, и RARP (Reverse ARP), который схож с InARP, только он ищет логический адрес отправителя.
В целом, протокол ARP универсален для любых сетей, но используется только в IP и широковещательных (Ethernet, WiFi, WiMax и т.д.) сетях, как наиболее широко распространенных, что делает его незаменимым при поиске соответствий между логическими и физическими адресами.
Что такое ARP? Объясняем на пальцах
Powered by модель OSI
ARP-протокол
Многие называют его протоколом «2,5 уровня»: ARP должен работать поверх уровня ethernet (это условие выполняется), но поверх ARP должен работать хотя бы один протокол сетевого уровня. Однако в ARP не инкапсулируется ни один из протоколов третьего уровня модели OSI. Таким образом получается подобие уровня 2.5, что-то среднее между канальным и сетевым.
Что за ARP-таблица?
Здесь можно обратить внимание на широковещательный адрес ( broadcast ). Поле «адрес назначения Ethernet» заполняется единицами ( ff:ff:ff:ff:ff:ff ). Коммутатор, получив такой широковещательный фрейм, отправляет его всем компьютерам сети, как бы обращаясь ко всем с вопросом: «если Вы владелец этого ip адреса (ip адреса назначения), пожалуйста сообщите мне Ваш mac адрес».
Как это работает?
Один из хостов, которые получили этот широковещательный пакет, видит, что IP-адрес принадлежит ему. И в ответ шлет свой MAC-адрес. Соответственно запись связки IP-MAC заносится в ARP-таблицу. В следующий раз, понятное дело, это операция (для конкретного устройства с этим IP) уже не понадобится.
Наглядно:
Итак. у нас есть два ПК1 и ПК2. Придумаем им IP и MAC-адрес
Давайте из ПК1 запустим команду Ping
ping 192.168.1.2
Pinging 192.168.1.2 with 32 bytes of data:
Reply from 192.168.1.2: bytes=32 time=15ms TTL=57
Reply from 192.168.1.2: bytes=32 time=15ms TTL=57
Reply from 192.168.1.2: bytes=32 time=14ms TTL=57
Reply from 192.168.1.2: bytes=32 time=17ms TTL=57
Ping statistics for 192.168.1.2:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 14ms, Maximum = 17ms, Average = 15ms
Это очень краткое и поверхностное изложение протокола ARP — далеко не все аспекты работы лежат на поверхности. Дальше — самостоятельная работа. Stay Tuned!
Как посмотреть ARP-таблицу, ARP-запросы.
Что такое ARP-таблица, ARP-запрос?
Любое сетевое оборудование имеет физический 6 битный адрес уникальный для каждого экземпляра.
Отображение IP-адресов, в аппаратные адреса, выполняется с помощью следующих действий:
– в сеть отправляется широковещательный запрос (ARP-request), принимаемый всеми сетевыми устройствами. Он содержит IP и Ethernet адреса отправителя, а также, целевой IP-адрес, для которого выполняется определение MAC-адреса.
– каждое устройство, принявшее запрос проверяет соответствие целевого IP-адреса, указанного в запросе, своему собственному IP-адресу. При совпадении, отправителю передается ARP-ответ (ARP-Reply), в котором содержатся IP и MAC адреса ответившего узла. Кадр с ARP-ответом содержит IP и MAC адреса как отправителя, так и получателя-составителя запроса.
– информация, полученная в ARP-ответе, заносится в ARP-кэш и может использоваться для обмена данными по IP-протоколу для данного узла. ARP-кэш представляет собой таблицу в оперативной памяти, каждая запись в которой содержит IP, MAC и возраст их действительности (от нескольких секунд, до нескольких часов). Возраст записи учитывается для того, чтобы обеспечить возможность повторного выполнения процедуры ARP при каком либо изменении соответствия адресов.
В IP-сетях существует три способа отправки пакетов от источника к приемнику:
– одноадресная передача (Unicast);
При одноадресной передаче поток данных передается от узла-отправителя на индивидуальный IP-адрес узла-получателя.
– широковещательная передача (Broadcast);
Широковещательная передача предусматривает доставку потока данных от узла-отправителя множеству узлов-получателей, подключенных к данному сегменту локальной сети, с использованием широковещательного IP-адреса.
– многоадресная рассылка (Multicast).
Многоадресная рассылка обеспечивает доставку потока данных группе узлов на IP-адрес группы многоадресной рассылки. Узлы группы могут находиться в данной локальной сети или в любой другой. Узлы для многоадресной рассылки объединяются в группы при помощи протокола IGMP (Internet Group Management Protocol, межсетевой протокол управления группами). Пакеты, содержащие в поле назначения заголовка групповой адрес, будут поступать на узлы групп и обрабатываться. Источник многоадресного трафика направляет пакеты многоадресной рассылки не на индивидуальные IP-адреса каждого из узлов-получателей, а на групповой IP-адрес.
Замечания по практическому использованию команды ARP:
Параметры командной строки ARP:
-v – отображает текущие ARP-записи в режиме подробного протоколирования. Все недопустимые записи и записи в интерфейсе обратной связи будут отображаться.
inet_addr – определяет IP-адрес.
-d – удаляет узел, задаваемый inet_addr. Параметр inet_addr может содержать знак шаблона * для удаления всех узлов.
-s – добавляет узел и связывает адрес в Интернете inet_addr c физическим адресом eth_addr. Физический адрес задается 6 байтами (в шестнадцатеричном виде), разделенными дефисом. Эта связь является постоянной
eth_addr – определяет физический адрес.
if_addr – если параметр задан, он определяет адрес интерфейса в Интернете, чья таблица преобразования адресов должна измениться. Если параметр не задан, будет использован первый доступный интерфейс.
Формат командной строки ARP:
Пример содержимого таблицы ARP:
В данном примере присутствуют записи 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

Например, это команда в сети ethernet даёт возможность преобразовать IP адрес станции назначения в её 48 битный ethernet-адрес, или по-другому mac-адрес, для передачи пакета по локальной сети.
Обычно протокол ARP работает автоматически, и обрабатывает адреса, когда в этом есть необходимость.
Для чего нужна команда для командной строки arp
Но бывают случаи, когда нужно в ручном режиме скорректировать таблицы адресов, обычно это нужно администраторам.
Параметры
Параметр view ip показывает таблицу Arp. Ip это адрес, для которого нужна запись.
Add ip — добавление записей в таблицу Arp.
Del ip — удаляет записи из таблицы.
С помощью freeze можно заморозить таблицу Arp. После этого записи не будут вноситься в систему автоматически. Команда зафиксирует те записи, которые были внесены операторам.
Назначение команды ARP
Команда ARP нужна для просмотра и изменения. Она нужна для того, чтобы можно было просматривать изменять записи в кэш ARP.
Это протокол разрешения адресов, пользователь видит её в виде таблицы соответствия IP адресов аппаратным адресом сетевых устройств. Аппаратный адрес представляет собой уникальный 6-битный адрес сетевого устройства. Он присваивается ему при изготовлении, например это касается сетевой карты. По-другому этот адрес ещё называют mac-адресом, то есть управление доступом к среде.
У сетевых устройств есть аппаратный адрес, и он состоит из 2 частей, их значение зависит от производителя этого оборудования, и самого устройства.
Отображение ip-адреса в аппаратные адреса происходит следующим образом. В сеть идёт широковещательный запрос, по-другому ARP request, и он принимается всеми сетевыми устройствами.
В нём содержится IP и ethernet адреса отправителя, целевой ip-адрес, и происходит определение mac-адреса. Все устройства, на котором пришёл запрос, проверяет соответствие целевого ip-адреса из запроса, со своим собственным ip-адресом. Если он совпадает, то передаётся ответ, по-другому arp reply, где указаны и IP и mac-адреса ответного узла.
Возраст записи показывает пользователю то, что может обеспечить возможность повторного выполнения процедуры ARP при изменении соответствия адресов.
В ip-сетях есть несколько способов отправки пакетов от источника к его приемнику. Это одна адресная передача, по-другому unicast, широковещательная передача, broadcast, и многоадресная рассылка, multicast.
Во время одной адресной передача поток данных идёт от узла отправителя на индивидуальный ip-адрес получателя.
При широковещательной передаче есть доставка потока данных от узла отправителя большому количеству узлов получателей, которые подключены к этой локальной сети, где используется широковещательный ip-адрес. Многоадресная рассылка дает возможность провести доставку потока данных большому количеству узлов на ip-адрес группы многоадресной рассылки.
При этом узлы группы могут быть и в этой локальной сети, или же в другой. Объединять узлы в группы для многоадресной рассылки помогает протокол igmp. Это межсетевой протокол управления группами.
Групповые адреса представляет собой произвольную группу пазлов, которые присоединились к этой группе и будут получать адресованный трафик.
Особенность по использованию команды ARP
Записи в таблице ARP живут ограниченное количество времени, и перед просмотром конкретного адреса нужно выполнить пинг на этот адрес. И если ответ на Пинг не приходит, то это может означать блокировку пакетов пингуемоего узла.
ARP: определение MAC адресов в локальной сети
ARP (англ. Address Resolution Protocol — протокол определения адреса) — протокол в компьютерных сетях, предназначенный для определения MAC-адреса по IP-адресу другого компьютера. Существуют следующие типы сообщений ARP: запрос ARP (ARP request) и ответ ARP (ARP reply). Система-отправитель при помощи запроса ARP запрашивает физический адрес системы-получателя. Ответ (физический адрес узла-получателя) приходит в виде ответа ARP.
Компьютер А (IP-адрес 192.168.1.1) и компьютер Б (IP-адрес 192.168.1.2) соединены сетью Ethernet. Компьютер А желает переслать пакет данных на компьютер Б, IP-адрес компьютера Б ему известен. Компьютеру А для осуществления передачи через Ethernet требуется узнать MAC-адрес компьютера Б в сети Ethernet. Для этой задачи и используется протокол ARP.
Протокол имеет буферную память (ARP-таблицу), в которой хранятся пары адресов (IP-адрес, MAC-адрес) с целью уменьшения количества посылаемых запросов, следовательно, экономии трафика и ресурсов. Записи ARP-таблицы бывают двух вид видов: статические и динамические. Статические добавляются самим пользователем, динамические же — создаются и удаляются автоматически. При этом в ARP-таблице всегда хранится широковещательный физический адрес FF:FF:FF:FF:FF:FF.
Команда arp в Windows
Позволяет просмотреть ARP-таблицу, добавить в нее новую запись или удалить существующую:
Создать запись в ARP-таблице:
Вывести записи ARP-таблицы:
Команда arp в Linux
Позволяет просмотреть ARP-таблицу, добавить в нее новую запись или удалить существующую:
Создать запись в ARP-таблице:
Вывести записи ARP-таблицы:
Альтернативный способ просмотра записей таблицы — команда





