Обычно когда речь заходит об утилите arp как минимум один человек из присутствующих слушателей начинает вести себя, как тюлень, и выдает специфический для тюленя крик “Ап, ап, ап!”. Кроме вызывания улыбки на лицах компьютерных профессионалов утилита arp имеет еще несколько вариантов использования.

Команда arp создана на основе протокола Address Resolution Protocol (ARP), который необходим для функционирования протокола TCP/IP. Каждый фрагмент аппаратного обеспечения, подключенный к сети, имеет уникальный 48-ми разрядный идентификатор Media Access Control (MAC), который обычно выражается в шестнадцатеричной форме. Протокол ARP используется для связывания адресов MAC сетевых интерфейсов, например, 00-60-56-50-1B-DE, с соответствующими адресами IP, например, 20.0.0.100.

Когда одной системе требуется связаться с другой системой в локальной подсети, она выдает широковещательный запрос ARP в локальную подсеть, который содержит в себе вопрос “Эй, какой MAC адрес у системы с адресом IP 20.0.0.100?”. Как только адрес MAC для этого адреса IP будет получен, он записывается в системный кэш ARP. Кэширование связей адрес IP-MAC адрес позволяет отказаться от широковещательного запроса при следующей отправке пакета к этой системе.

Команда arp может оказаться полезной в ситуации, когда одна система не может связаться с другой системой в той же подсети. Примером ситуации, когда в кэше ARP возникают неправильные записи, является ситуация, когда оба компьютера случайно получают одинаковый адрес IP. Когда это происходит компьютер кэширует неправильный MAC адрес в соответствии с определенным адресом IP. Именно в этом случае оказывается полезной команда arp. Вот синтаксис этой команды:

arp -a [адрес IP] [-N <адрес_интерфейса>] arp -d <адрес IP> [адрес_интерфейса] arp -s <адрес IP> <адрес MAC> [адрес_интерфейса] 

Параметры команды arp рассматриваются в следующей таблице.

Параметры команды arp

Параметр Использование
-a Отображает соответствие Адрес IP-Адрес MAC, которое хранится в локальном кэше ARP
-d Удаляет запись кэша ARP для указанного адреса IP
-s Добавляет статическую (постоянную) запись в кэш ARP
<адрес IP> Приводит к отображению информации только для этого адреса IP
<адрес_интерфейса> Для систем с несколькими сетевыми адаптерами этот параметр используется для указания адреса MAC локального сетевого адаптера, для которого выполняется команда arp; в противном случае команда arp выполняется по отношению к первому же сетевому адаптеру в порядке привязки к сети
<адрес_MAC> Используется для указания адреса MAC, для которого создается статическая запись в кэше ARP

Вот некоторые примеры использования команды arp в целях решения возникающих проблем:

  • Отобразить все содержимое кэша ARP на компьютере с одним сетевым адаптером: arp -a
  • Удалить некорректную запись из кэша ARP: arp -d 10.98.7.205
  • Добавить статическую запись в кэш ARP: arp -s 10.98.7.205 00-bb-73-51-b8-4c

Хотя утилита arp является отличным инструментом, в некоторых ситуациях необходимо получить адрес MAC удаленного сетевого интерфейса. Именно в этом случае становится полезной утилита getmac, о которой рассказывается в следующей статье, ссылка на которую представлена ниже.