Длительный захват трафика с dumpcap
Назад к блогу

Длительный захват трафика с dumpcap

Одной из основных проблем использования Wireshark для длительного захвата трафика является нестабильность работы приложения, в частности, его зависание и аварийное завершение работы. Существует простое решение этой проблемы - использование утилиты dumpcap.

dumpcap - это утилита командной строки, установка которой производится вместе с Wireshark и ее можно найти в той же директории, в которую установлен Wireshark. dumpcap предназначен для захвата трафика с сетевых интерфейсов ПК и записи файлов захвата на диск. Wireshark сам по себе не выполняет операцию захвата трафика - это делает dumpcap. Все, что делает Wireshark - это запуск утилиты dumpcap, дальнейшее чтение непрерывно растущего в размере файла захвата и отображение пакетов из этого файла со всей дополнительной функциональностью.

Использовать dumpcap достаточно просто. Основная сложность здесь - это то, что это утилита командой строки и необходимо освоить несколько команд.

Проверить работоспособность dumpcap можно следующим способом:

  • откройте командную строку (Win+R);
  • перейдите в каталог Wireshark: cd \program files\wireshark
  • введите команду dumpcap

После указанных действий начнется захват сетевого трафика. Этот захват начнется с одного из доступных интерфейсов (первого, который обнаружит утилита) и в произвольный файл. Но мы можем дополнить команду настройками, которые позволят производить захват с того интерфейса (или даже нескольких интерфейсов - да, да!), с которого необходимо; задать имя и расположение файла, в который будет производиться запись; настроить кольцевой буфер; настроить фильтры захвата и другое. Прежде чем приступать к этим настройкам, остановите запущенный захват трафика сочетанием клавиш CTRL+C (таким образом завершать захвата трафика можно и далее в ходе работы).


Выбор интерфейса захвата

Прежде всего необходимо понять, какие интерфейсы есть в распоряжении dumpcap. Для этого необходимо воспользоваться командой:

dumpcap -D

Результат этой команды - пронумерованный список интерфейсов.

Для того, чтобы выбрать интерфейс, необходимы вызвать dumpcap c параметром '-i', указав номер интерфейса, например:

dumpcap -i 5

Начнется захват трафика с интерфейса №5.


Задание наименования и расположения файла захвата

Для задания наименования и расположения файла захвата необходимо вызывать dumpcap с параметром '-w', указав путь сохранения файла и наименование, например:

dumpcap -i 5 -w C:\Users\gav\Documents\test.pcapng


Задание размера файла захвата

Для того, чтобы впоследствии мы могли успешно (без зависаний и тормозов) открыть файл захвата в Wireshark для его анализа, мы можем сделать так, чтобы данные захвата сохранялись в файлах определенного размера. При достижении указанного размера файл будет сохранен и будет создан новый файл для сохранения данных, если захват продолжается. К наименованию файла добавляется номер файла, а также год, месяц, день, часы, минуты и секунды начала захвата. Например, мы можем вызвать dumpcap следующей командой:

dumpcap -i 5 -w C:\Users\gav\Documents\test.pcapng -b filesize:50000

Указанная запись означает, что файлы захвата будут иметь размер не более 50 Мбайт.


Конфигурирование кольцевого буфера

Если запись трафика планируется осуществлять на достаточно продолжительном отрезке времени, а объем свободного места на жестком диске ограничен, целесообразно сделать так, чтобы утилита dumpcap осуществляла перезапись старых файлов на новые. Допустим вы располагаете 1 Гб свободного места. Тогда при размере каждого файла 50 Мбайт, мы имеем: 1*1024/50 = 20 файлов - это то число файлов, которое мы можем хранить. В таком случае мы должны вызвать dumpcap со следующими параметрами:

dumpcap -i 5 -w C:\Users\gav\Documents\test.pcapng -b filesize:50000 -b files:20


Настройка фильтра захвата

Возможно применить фильтр захвата в соответствии с синтаксисом BPF. Для этого необходимо вызвать dumpcap со следующими параметрами:

dumpcap -i 5 -f "ether proto 0x88ba or (vlan and ether proto 0x88ba)" -w C:\Users\gav\Documents\test.pcapng -b filesize:50000 -b files:20

Выражение фильтра (захват кадров Sampled Values) написано в скобках, поскольку содержит пробелы.


Настройка захвата с нескольких интерфейсов

Как упоминалось выше, с использованием dumpcap можно осуществлять захват с нескольких интерфейсов. Для этого необходимо вызвать утилиту просто указав дополнительный интерфейс, а также используя дополнительный параметр '-t' для использования отдельного потока на интерфейс для балансировки нагрузки:

dumpcap -t -i 5 -i 1 -w C:\Users\gav\Documents\test.pcapng -b filesize:50000 -b files:20


Результат

Обладая данными знаниями, вы можете производить длительный захват трафика без риска остаться без данных и с зависшим ПК в итоге!