Что такое 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 выполняется только при операциях передачи данных по протоколу IP .
— время жизни записей в таблице ARP ограничено, поэтому, перед просмотром ее содержимого для конкретного адреса нужно выполнить ping на этот адрес.
— если ответ на ping не приходит, а запись для данного IP-адреса присутствует в таблице ARP, то этот факт можно интерпретировать как блокировку ICMP-пакетов брандмауэром пингуемого узла.
— невозможность подключения к удаленному узлу по протоколам TCP или UDP при наличии записей в таблице ARP для целевого IP, может служить признаком отсутствия служб обрабатывающих входящие подключения, или их блокировки брандмауэром (закрытые порты).
— ARP протокол работает в пределах локального сегмента сети. Поэтому, если выполнить ping на внешний узел ( например ping yandex.ru ), то в таблице ARP будет присутствовать запись для IP — адреса маршрутизатора, через который выполняется отправка пакета во внешнюю сеть.
Параметры командной строки ARP:
-a -отображает текущие ARP-записи, опрашивая текущие данные протокола. Если задан параметр inet_addr, то будут отображены IP и физические адреса только для заданного компьютера. Если ARP используют более одного сетевого интерфейса, то будут отображаться записи для каждой таблицы.
arp -a — отобразить все записи таблицы ARP.
arp -a | more — то же, что и в предыдущем случае, но с отображением информации в постраничном режиме.
arp -a > macaddr.txt — отобразить таблицу соответствия IP и MAC адресов для данного компьютера с выводом результатов в текстовый файл macaddr.txt .
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 .
-g — то же, что и параметр -a.
-v — отображает текущие ARP-записи в режиме подробного протоколирования. Все недопустимые записи и записи в интерфейсе обратной связи будут отображаться.
inet_addr — определяет IP-адрес.
-d — удаляет узел, задаваемый inet_addr. Параметр inet_addr может содержать знак шаблона * для удаления всех узлов.
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 -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.
-s — добавляет узел и связывает адрес в Интернете inet_addr c физическим адресом eth_addr. Физический адрес задается 6 байтами (в шестнадцатеричном виде), разделенными дефисом. Эта связь является постоянной
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 -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 - то же самое, что и в предыдущем случае, но с указанием сетевого интерфейса, для которого выполняется добавление статической записи.
eth_addr — определяет физический адрес.
if_addr — если параметр задан, он определяет адрес интерфейса в Интернете, чья таблица преобразования адресов должна измениться. Если параметр не задан, будет использован первый доступный интерфейс.
Формат командной строки ARP:
ARP -s inet_addr eth_addr [if_addr] ARP -d inet_addr [if_addr] ARP -a [inet_addr] [-N if_addr] [-v]
Пример содержимого таблицы 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-адреса.