Команда ARP — просмотр и изменение таблиц 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 [if_addr]
ARP -d inet_addr [if_addr]
ARP -a [inet_addr] [-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 );
— многоадресная рассылка ( Multicast ).
При одноадресной передаче поток данных передается от узла-отправителя на индивидуальный IP-адрес узла-получателя.
Широковещательная передача предусматривает доставку потока данных от узла-отправителя множеству узлов-получателей, подключенных к данному сегменту локальной сети, с использованием широковещательного IP-адреса.
Многоадресная рассылка обеспечивает доставку потока данных группе узлов на IP-адрес группы многоадресной рассылки. Узлы группы могут находиться в данной локальной сети или в любой другой. Узлы для многоадресной рассылки объединяются в группы при помощи протокола IGMP (Internet Group Management Protocol, межсетевой протокол управления группами). Пакеты, содержащие в поле назначения заголовка групповой адрес, будут поступать на узлы групп и обрабатываться. Источник многоадресного трафика направляет пакеты многоадресной рассылки не на индивидуальные IP-адреса каждого из узлов-получателей, а на групповой IP-адрес.
Групповые адреса определяют произвольную группу IP-узлов, присоединившихся к этой группе и желающих получать адресованный ей трафик. Международное агентство IANA (Internet Assigned Numbers Authority, «Агентство по выделению имен и уникальных параметров протоколов Интернета»), которое управляет назначением групповых адресов, выделило для многоадресной рассылки адреса IPv4 класса D в диапазоне от 224.0.0.0 до 239.255.255.255.
Примеры использования ARP :
arp -a — отобразить таблицу соответствия IP и MAC адресов для данного компьютера.
arp -a | more — то же, что и в предыдущем случае, но с отображением информации в постраничном режиме.
arp -a > macaddr.txt — отобразить таблицу соответствия IP и MAC адресов для данного компьютера с выводом результатов в текстовый файл macaddr.txt .
Пример содержимого таблицы ARP:
Интерфейс: 127.0.0.1 — 0x1
адрес в Интернете Физический адрес Тип
224.0.0.22                                                     статический
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: определение 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.
Компьютер А отправляет широковещательный запрос, адресованный всем компьютерам в одном с ним широковещательном домене. Суть запроса: «компьютер с IP-адресом 192.168.1.2, сообщите свой MAC-адрес компьютеру с МАС-адресом . ». Этот запрос доставляется всем устройствам в том же сегменте Ethernet. Компьютер Б отвечает компьютеру А на запрос и сообщает свой MAC-адрес.
Протокол имеет буферную память (ARP-таблицу), в которой хранятся пары адресов (IP-адрес, MAC-адрес) с целью уменьшения количества посылаемых запросов, следовательно, экономии трафика и ресурсов. Записи ARP-таблицы бывают двух вид видов: статические и динамические. Статические добавляются самим пользователем, динамические же — создаются и удаляются автоматически. При этом в ARP-таблице всегда хранится широковещательный физический адрес FF:FF:FF:FF:FF:FF.
Команда arp в Windows
Позволяет просмотреть ARP-таблицу, добавить в нее новую запись или удалить существующую:
Создать запись в ARP-таблице:
Вывести записи ARP-таблицы:
Команда arp в Linux
Позволяет просмотреть ARP-таблицу, добавить в нее новую запись или удалить существующую:
Создать запись в ARP-таблице:
Вывести записи ARP-таблицы:
Альтернативный способ просмотра записей таблицы — команда
arp arp
Область применения: Windows Server (половина ежегодного канала), Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012 Applies to: Windows Server (Semi-Annual Channel), Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012
Отображает и изменяет записи в кэше протокола ARP. Displays and modifies entries in the Address Resolution Protocol (ARP) cache. Кэш ARP содержит одну или несколько таблиц, которые используются для хранения IP-адресов и разрешенных физических адресов Ethernet или Token Ring. The ARP cache contains one or more tables that are used to store IP addresses and their resolved Ethernet or Token Ring physical addresses. Для каждого сетевого адаптера Ethernet или Token Ring, установленного на компьютере, существует отдельная таблица. There is a separate table for each Ethernet or Token Ring network adapter installed on your computer. При использовании без параметров в ARP отображаются справочные сведения. Used without parameters, arp displays help information.
Синтаксис Syntax
Параметры Parameters
Параметр Parameter | Описание Description |
---|---|
[/a [ ] [/n ] | Отображает текущие таблицы кэша ARP для всех интерфейсов. Displays current arp cache tables for all interfaces. Параметр /n учитывает регистр. The /n parameter is case-sensitive. Чтобы отобразить запись кэша ARP для определенного IP-адреса, используйте ARP/a с параметром инетаддр , где инетаддр — это IP-адрес. To display the arp cache entry for a specific IP address, use arp /a with the inetaddr parameter, where inetaddr is an IP address. Если инетаддр не указан, используется первый подходящий интерфейс. If inetaddr is not specified, the first applicable interface is used. Чтобы отобразить таблицу кэша ARP для определенного интерфейса, используйте параметр /n ифацеаддр в сочетании с параметром /a , где инетаддр — это IP-адрес, назначенный интерфейсу. To display the arp cache table for a specific interface, use the /n ifaceaddr parameter in conjunction with the /a parameter where inetaddr is the IP address assigned to the interface. |
[/g [ ] [/n ] | Идентично /a. Identical to /a. |
[/d [ ] | Удаляет запись с указанным IP-адресом, где инетаддр — это IP-адрес. Deletes an entry with a specific IP address, where inetaddr is the IP address. Чтобы удалить запись в таблице для определенного интерфейса, используйте параметр ифацеаддр , где ифацеаддр — это IP-адрес, назначенный интерфейсу. To delete an entry in a table for a specific interface, use the ifaceaddr parameter where ifaceaddr is the IP address assigned to the interface. Чтобы удалить все записи, используйте подстановочный знак звездочки (*) вместо инетаддр. To delete all entries, use the asterisk (*) wildcard character in place of inetaddr. |
[/s [ ] | Добавляет статическую запись в кэш ARP, которая разрешает IP-адрес инетаддр с физическим адресом есераддр. Adds a static entry to the arp cache that resolves the IP address inetaddr to the physical address etheraddr. Чтобы добавить статическую запись кэша ARP в таблицу для определенного интерфейса, используйте параметр ифацеаддр , где ифацеаддр — это IP-адрес, назначенный интерфейсу. To add a static arp cache entry to the table for a specific interface, use the ifaceaddr parameter where ifaceaddr is an IP address assigned to the interface. |
/? /? | Отображение справки в командной строке. Displays help at the command prompt. |
Комментарии Remarks
IP-адреса для инетаддр и ифацеаддр выражаются в десятичной нотации. The IP addresses for inetaddr and ifaceaddr are expressed in dotted decimal notation.
Физический адрес для есераддр состоит из шести байт, выраженных в шестнадцатеричной нотации и разделенных дефисами (например, 00-AA-00-4F-2A-9C). The physical address for etheraddr consists of six bytes expressed in hexadecimal notation and separated by hyphens (for example, 00-AA-00-4F-2A-9C).
Записи, добавленные с параметром /s , являются статическими и не выходят за пределы времени ожидания кэша ARP. Entries added with the /s parameter are static and do not time out of the arp cache. Записи удаляются, если протокол TCP/IP остановлен и запущен. The entries are removed if the TCP/IP protocol is stopped and started. Чтобы создать постоянные статические записи кэша ARP, поместите соответствующие команды ARP в пакетный файл и используйте запланированные задания для запуска пакетного файла при запуске. To create permanent static arp cache entries, place the appropriate arp commands in a batch file and use Scheduled Tasks to run the batch file at startup.
Примеры Examples
Чтобы отобразить таблицы кэша ARP для всех интерфейсов, введите: To display the arp cache tables for all interfaces, type:
Чтобы отобразить таблицу кэша ARP для интерфейса, которому назначен IP-адрес 10.0.0.99, введите: To display the arp cache table for the interface that is assigned the IP address 10.0.0.99, type:
Чтобы добавить статическую запись кэша ARP, которая разрешает IP-адрес 10.0.0.80 к физическому адресу 00-AA-00-4F-2A-9C, введите: To add a static arp cache entry that resolves the IP address 10.0.0.80 to the physical address 00-AA-00-4F-2A-9C, type: