Утилита Arping – проверяем доступность хоста по MAC-адресу [2011]
Довольно часто проверить доступность устройств в сети с помощью утилиты 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:
Рабочая среда сэмулирована. Правда, утилита arping будет работать в любом случае, но мы ведь стараемся сохранить чистоту эксперимента .
Особенностью запуска утилиты arping является необходимость указания ключа -i интерфейс, поскольку иначе будет использован интерфейс с индексом 0 в системе. В моем частном случае 192.168.192.20 необходимо «искать» на интерфейсе vr0: