Сетевому администратору протокол ARP может показаться знакомым. ARP – это протокол, который устройства уровня 2 реализуют для обнаружения и связи друг с другом. Инструмент arping работает по этому протоколу.
А зачем тебе arping? Представьте, что вы работаете с небольшой офисной сетью. Очень заманчиво использовать классическую команду ping для проверки связи с хостами, не так ли? Что ж, если вы используете протокол ICMP, тогда вы фактически выполняете запросы ARP для проверки устройств в сети.
Здесь на помощь приходит инструмент arping. Подобно ping, arping проверяет сетевые хосты с помощью пакетов ARP сетевого уровня. Этот метод полезен для хостов, которые не отвечают на запросы проверки связи уровня 3 и уровня 4.
В этой статье показано, как использовать команду arping в Linux.
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
Использование arping
Откройте для себя хосты
Если через Ethernet подключено несколько устройств, то в системах уже есть внутренняя таблица ARP для связи по сети. Вы можете использовать arping для вывода списка записей в сети.
Для этого выполните следующую команду:
$ arp -a
Как видите, команда напечатает список имен хостов вместе с их IP и MAC-адресами.
Пинг-хосты
Если вы знаете IP-адрес целевого устройства, вы можете просто передать его в arping для выполнения ARP ping.
$ arping
Arping также позволяет вам определить, сколько раз нужно проверять связь с целевым устройством. Для этого используйте флаг «-c», за которым следует количество выполненных эхо-запросов.
Один быстрый совет: если обнаружено новое устройство, вы должны выполнить следующую команду, чтобы обновить таблицу ARP:
$ arp -a
Время ожидания ARP
Если arping не может разрешить IP-адрес цели, это вызовет таймаут ARP. Чтобы продемонстрировать, выполните следующую команду. IP-адрес должен быть недоступен.
$ arping -c 7
Как видите, arping уведомит вас, если вы не указали сетевой интерфейс. Это потому, что arping ожидает, что вы укажете интерфейс. Если не указано иное, arping пытается его угадать.
Укажите сетевой интерфейс
Как вы видели в предыдущем разделе, arping предпочитает указывать сетевой интерфейс. Это особенно необходимо, если на сервере несколько сетевых интерфейсов. Arping не может угадать, какую сетевую карту использовать.
Чтобы избежать этой проблемы, мы можем вручную указать сетевой интерфейс для arping. Если используется этот метод, arping будет использовать указанный сетевой интерфейс вместо того, чтобы делать предположения.
Сначала перечислите все доступные сетевые интерфейсы с помощью следующей команды:
$ ip link show
Затем укажите сетевой интерфейс для arping с помощью флага «-I», как показано ниже:
$ arping -I -c 7
Укажите MAC-адрес источника
Как и в предыдущем методе, также можно указать MAC-адрес источника, из которого вы отправляете пакеты. Для этого используйте флаг «-s», за которым следует желаемый MAC-адрес, как показано ниже:
$ arping -c 7 -s
Теперь, в зависимости от того, владеете ли вы MAC-адресом, есть два результата:
- Если у вас есть MAC-адрес, вы можете просто указать флаг «-s».
- Если у вас нет MAC-адреса, вы пытаетесь подделать его. Если это так, то вам придется использовать беспорядочный режим. Узнайте больше о беспорядочном режиме здесь. Напоминаем, что этот режим настроен таким образом, что он передает все кадры, полученные сетевой картой.
Хорошо, что arping может работать в беспорядочном режиме. Чтобы включить этот режим, используйте флаг «-p». Команда будет выглядеть примерно так:
$ arping -c 7 -s -p
Укажите исходный IP-адрес
Еще одна интересная особенность arping – возможность вручную определять IP-адрес источника. Этот метод работает аналогично предыдущему шагу.
Однако у этого метода есть свои проблемы. Как только arping пингует устройство, устройство ответит на IP-адрес, который вы указали вручную. Без владения этим IP-адресом arping не получит ответов.
Чтобы определить исходный IP-адрес вручную, используйте флаг «-S».
$ arping -c 7 -S
У этого метода есть и другие нюансы. Как вы используете этот метод, зависит от того, владеете ли вы IP-адресом:
- Если у вас есть IP-адрес, то все в порядке.
- Если у вас нет IP-адреса, вы можете использовать неразборчивый режим.
Если ваша ситуация соответствует второму варианту, используйте флаг «-p», чтобы включить неразборчивый режим.
$ arping -c 7 -S -p
Справка по arping
Хотя это наиболее часто используемые команды arping, arping предлагает и другие функции. Например, arping предлагает страницу быстрой справки по документации на лету:
$ arping --help
Если вас интересует подробная информация об особенностях арпинга, вы можете глубже погрузиться в справочную страницу:
$ man arping
Последние мысли
В этой статье рассматриваются некоторые из наиболее распространенных методов использования arping. Вы можете обновить таблицу ARP и подменить MAC- и IP-адрес, используя неразборчивый режим.