Довольно часто проверить доступность устройств в сети с помощью утилиты 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 |
Проверяем "доступность" хоста 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) |
где
Повторюсь, что список доступных опций можно просмотреть с помощью команды 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 окажется довольно полезным инструментом для любого администратора.
Последние комментарии
17 недель 3 дня назад
41 неделя 5 дней назад
2 года 42 недели назад
3 года 12 недель назад
3 года 35 недель назад
3 года 50 недель назад
3 года 51 неделя назад
4 года 2 недели назад
4 года 13 недель назад
4 года 17 недель назад