Сетевому администратору протокол ARP может показаться знакомым. ARP — это протокол, который устройства уровня 2 реализуют для обнаружения и связи друг с другом. Инструмент arping работает по этому протоколу.
А зачем тебе arping? Представьте, что вы работаете с небольшой офисной сетью. Очень заманчиво использовать классическую команду ping для проверки связи с хостами, не так ли? Что ж, если вы используете протокол ICMP, тогда вы фактически выполняете запросы ARP для проверки устройств в сети.
Здесь на помощь приходит инструмент arping. Подобно ping, arping проверяет сетевые хосты с помощью пакетов ARP сетевого уровня. Этот метод полезен для хостов, которые не отвечают на запросы проверки связи уровня 3 и уровня 4.
В этой статье показано, как использовать команду arping в Linux.
Среди сетевых администраторов популярным инструментом является arping. Однако он не входит в стандартный набор инструментов, предлагаемых Linux. Итак, вам придется устанавливать arping вручную.
К счастью, arping — популярный инструмент. Независимо от того, какой дистрибутив вы используете, он должен быть доступен непосредственно с официальных серверов пакетов. Выполните следующую команду в соответствии с вашим дистрибутивом.
Для Debian/Ubuntu и производных для инструмента arp необходим пакет net-tools:
$ sudo apt install arping net-tools
Для Fedora и производных:
$ sudo dnf install arping
Для openSUSE и производных:
$ sudo zypper install arping2
Откройте для себя хосты
Если через Ethernet подключено несколько устройств, то в системах уже есть внутренняя таблица ARP для связи по сети. Вы можете использовать arping для вывода списка записей в сети.
Для этого выполните следующую команду:
$ arp -a
Как видите, команда напечатает список имен хостов вместе с их IP и MAC-адресами.
Пинг-хосты
Если вы знаете IP-адрес целевого устройства, вы можете просто передать его в arping для выполнения ARP ping.
$ arping
Arping также позволяет вам определить, сколько раз нужно проверять связь с целевым устройством. Для этого используйте флаг «-c», за которым следует количество выполненных эхо-запросов.
Один быстрый совет: если обнаружено новое устройство, вы должны выполнить следующую команду, чтобы обновить таблицу ARP:
$ arp -a
Если arping не может разрешить IP-адрес цели, это вызовет таймаут ARP. Чтобы продемонстрировать, выполните следующую команду. IP-адрес должен быть недоступен.
$ arping -c 7
Как видите, arping уведомит вас, если вы не указали сетевой интерфейс. Это потому, что arping ожидает, что вы укажете интерфейс. Если не указано иное, arping пытается его угадать.
Как вы видели в предыдущем разделе, arping предпочитает указывать сетевой интерфейс. Это особенно необходимо, если на сервере несколько сетевых интерфейсов. Arping не может угадать, какую сетевую карту использовать.
Чтобы избежать этой проблемы, мы можем вручную указать сетевой интерфейс для arping. Если используется этот метод, arping будет использовать указанный сетевой интерфейс вместо того, чтобы делать предположения.
Сначала перечислите все доступные сетевые интерфейсы с помощью следующей команды:
$ ip link show
Затем укажите сетевой интерфейс для arping с помощью флага «-I», как показано ниже:
$ arping -I -c 7
Как и в предыдущем методе, также можно указать MAC-адрес источника, из которого вы отправляете пакеты. Для этого используйте флаг «-s», за которым следует желаемый MAC-адрес, как показано ниже:
$ arping -c 7 -s
Теперь, в зависимости от того, владеете ли вы MAC-адресом, есть два результата:
Хорошо, что arping может работать в беспорядочном режиме. Чтобы включить этот режим, используйте флаг «-p». Команда будет выглядеть примерно так:
$ arping -c 7 -s -p
Еще одна интересная особенность arping — возможность вручную определять IP-адрес источника. Этот метод работает аналогично предыдущему шагу.
Однако у этого метода есть свои проблемы. Как только arping пингует устройство, устройство ответит на IP-адрес, который вы указали вручную. Без владения этим IP-адресом arping не получит ответов.
Чтобы определить исходный IP-адрес вручную, используйте флаг «-S».
$ arping -c 7 -S
У этого метода есть и другие нюансы. Как вы используете этот метод, зависит от того, владеете ли вы IP-адресом:
Если ваша ситуация соответствует второму варианту, используйте флаг «-p», чтобы включить неразборчивый режим.
$ arping -c 7 -S -p
Хотя это наиболее часто используемые команды arping, arping предлагает и другие функции. Например, arping предлагает страницу быстрой справки по документации на лету:
$ arping --help
Если вас интересует подробная информация об особенностях арпинга, вы можете глубже погрузиться в справочную страницу:
$ man arping
В этой статье рассматриваются некоторые из наиболее распространенных методов использования arping. Вы можете обновить таблицу ARP и подменить MAC- и IP-адрес, используя неразборчивый режим.