Arping - проверяем доступность хоста по MAC-адресу

Версия для печатиОтправить другуPDF version

Довольно часто проверить доступность устройств в сети с помощью утилиты ping нету возможности. Связано это с тем, что файрвол Windows-абонентов, включенный по умолчанию, блокирует ICMP-запросы. Также встречал некоторые маршрутизаторы, которые также блокируют направленные к ним ICMP-запросы.

Хорошо это, или плохо - решать не нам. А вот мониторить доступность хоста иногда все таки нужно. Чтобы обойти запрет ICMP-запросов, воспользуемся возможностями протокола ARP. Ну а инструментом будет выступать утилита  arping. Функционирует она аналогично утилите ping, но в отличие от неё работает на втором уровне модели OSI и, как я уже упоминал, использует протокол ARP. Имейте ввиду, что Arping можно использовать только в одноранговой сети, но данное ограничение можно обойти использованием  Proxy ARP.

Итак, выполним установку утилиты из системы портов:

# cd /usr/ports/net/arping && make install clean && rehash

Утилита небольшая (всего 129 килобайт в архиве), но "тянет" за собой порт libnet11, который немного "потяжелее".

По завершению установки советую ознакомиться с ее возможностями:

# arping --help

Проверим, что имеем в наличии... Определим доступность хоста 192.168.192.20:

# ping -c 3 192.168.192.20
PING 192.168.192.20 (192.168.192.20): 56 data bytes
64 bytes from 192.168.192.20: icmp_seq=0 ttl=128 time=0.362 ms
64 bytes from 192.168.192.20: icmp_seq=1 ttl=128 time=0.257 ms
64 bytes from 192.168.192.20: icmp_seq=2 ttl=128 time=0.298 ms
 
--- 192.168.192.20 ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.257/0.306/0.362/0.043 ms

На время теста запретил в файрволе обмен данными по протоколу icmp от  192.168.192.20:

# ipfw add 1 deny icmp from 192.168.192.20 to me

Проверяем, действительно ли заблокированы ping-и:

# ping -c 3 -W 3 192.168.192.20
PING 192.168.192.20 (192.168.192.20): 56 data bytes
 
--- 192.168.192.20 ping statistics ---
3 packets transmitted, 0 packets received, 100.0% packet loss

Рабочая среда сэмулирована. Правда, утилита arping будет работать в любом случае, но мы ведь стараемся сохранить чистоту эксперимента.

Особенностью запуска утилиты arping является необходимость указания ключа -i интерфейс, поскольку иначе будет использован интерфейс с индексом 0 в системе. В моем частном случае 192.168.192.20 необходимо "искать" на интерфейсе vr0:

# ifconfig vr0
vr0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=2808<VLAN_MTU,WOL_UCAST,WOL_MAGIC>
        ether 00:13:46:64:1d:13
        inet 192.168.192.100 netmask 0xffffff00 broadcast 192.168.192.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active

Проверяем "доступность" хоста 192.168.192.20 с помощью arping:

# arping -c 3 -i vr0 192.168.192.20
ARPING 192.168.192.20
60 bytes from 00:23:54:2b:5e:61 (192.168.192.20): index=0 time=284.259 msec
60 bytes from 00:23:54:2b:5e:61 (192.168.192.20): index=1 time=411.109 msec
60 bytes from 00:23:54:2b:5e:61 (192.168.192.20): index=2 time=280.415 msec
 
--- 192.168.192.20 statistics ---
3 packets transmitted, 3 packets received,   0% unanswered (0 extra)

где

  • - количество отправляемых пакетов (по умолчанию количество пакетов не ограничено);
  •  -i - интерфейс, через который доступен адресат.

Повторюсь, что список доступных опций можно просмотреть с помощью команды arping --help. Попробуем еще несколько ключей запуска:

# arping -p -uv -c 3 -i vr0 192.168.192.20
This box:   Interface: vr0  IP: 192.168.192.55   MAC address: 00:13:46:64:1d:13
ARPING 192.168.192.20
60 bytes from 00:23:54:2b:5e:61 (192.168.192.20): index=0/0 time=727.281 msec
60 bytes from 00:23:54:2b:5e:61 (192.168.192.20): index=1/2 time=57.936 usec
60 bytes from 00:23:54:2b:5e:61 (192.168.192.20): index=2/2 time=723.300 msec
 
--- 192.168.192.20 statistics ---
3 packets transmitted, 3 packets received,   0% unanswered (0 extra)

Думаю что утилита arping окажется довольно полезным инструментом для любого администратора.

Ваша оценка: Нет Средняя: 4.6 (14 голосов)

Вставай, Україно!

Литература

Тонет программист: - F1! F1! F1!