Посмотреть исходный код на GitHub
В этом руководстве рассказывается, как настроить extcap для Wireshark для перехвата пакетов из сети Thread.
Чтобы использовать Pyspinel для анализа пакетов без extcap, обратитесь к разделу Анализ пакетов с помощью Pyspinel .
Настройка среды сниффера
Прежде чем начать, выполните следующие шаги:
- Ознакомьтесь с требованиями к анализу пакетов .
- Установите и настройте Wireshark .
- Установите Pyspinel и зависимости с помощью extcap .
Проверка
Это руководство было проверено с помощью Zolertia Firefly ( SoC Texas Instruments CC2538 ) на следующих хост-системах:
- Debian 4.19.37 — Wireshark 3.0.4
- macOS Мохаве 10.14.6 — Wireshark 3.0.5
- 64-битная Windows 10 версии 17134 — Wireshark 3.0.6
Собираем и прошиваем сниффер
Инструкции по сборке и прошивке различаются в зависимости от платформы.
Инструкции по сборке и обновлению CC2538 см. в примере README CC2538 на GitHub.
Общие инструкции по сборке см. в разделе Как собрать OpenThread .
Используйте сниффер
Экран захвата Wireshark отображается при первом запуске Wireshark. В нем должен быть указан список аппаратных интерфейсов, подключенных к анализатору OpenThread.
Захват из единого интерфейса
Если вы впервые используете интерфейс, нажмите кнопку «Параметры» слева от интерфейса:
- Установите для канала нужное значение.
- Проверьте IEEE 802.15.4 TAP, чтобы убедиться, что информация о канале включена в выходные данные pcap и может отображаться в графическом интерфейсе Wireshark.
- Установите флажок «Сохранить параметры при запуске захвата» , чтобы гарантировать, что эти параметры будут сохранены после начала захвата, чтобы избежать необходимости устанавливать их снова при следующем использовании интерфейса (если вам не нужно сменить канал).
- Нажмите «Пуск» .
Если ваши параметры уже сохранены, начните анализ, выбрав аппаратный интерфейс и щелкнув значок Wireshark в левом верхнем углу.
Захват с нескольких интерфейсов
Выберите все аппаратные интерфейсы, перечисленные на экране захвата, и щелкните значок Wireshark в левом верхнем углу.
Используйте эти поля для идентификации отдельных анализаторов при захвате данных с нескольких интерфейсов:
- Идентификатор интерфейса (frame.interface_id) — идентификатор интерфейса, используемый Wireshark для идентификации интерфейса захвата.
- Имя интерфейса (frame.interface_name) — имя интерфейса, используемое Wireshark для идентификации интерфейса захвата.
- Канал (wpan-tap.ch_num) — канал захвата IEEE 802.15.4 (диапазон: 11–26).
Поиск неисправностей
Сниффер OpenThread не указан как интерфейс Wireshark.
- Если у вас установлено несколько интерпретаторов Python, убедитесь, что в сценарии extcap используется интерпретатор Python 3. Pyspinel не поддерживает Python 2.
- Проверьте, пронумеровано ли оборудование на USB и загружены ли драйверы.
- Убедитесь, что на аппаратное обеспечение установлена правильная прошивка (NCP или RCP).
- Убедитесь, что сценарий Python, расположенный по пути extcap, является исполняемым.
- Для OS X и Linux:
- Убедитесь, что для файла
extcap_ot.py
имеется разрешение на выполнение:ls -l extcap_ot.py
- Если разрешение на выполнение (x) отсутствует, измените разрешения:
chmod +x extcap_ot.py
- Убедитесь, что интерфейс указан в списке:
extcap_ot.py --extcap-interfaces
- Убедитесь, что для файла
- Для Windows:
- Убедитесь, что интерфейс указан в списке:
extcap_ot.bat --extcap-interfaces
- Если это завершается с ошибкой Python, убедитесь, что версия Python — 3.x:
py -3 --version
- Убедитесь, что интерфейс указан в списке:
- Для OS X и Linux:
Wireshark позволяет захватывать пакеты только пользователю root
Во время установки Wireshark в Ubuntu пользователю будет предложено выбрать один из следующих вариантов:
- Создайте группу пользователей
wireshark
и разрешите всем членам этой группы перехватывать пакеты. - Разрешить захват пакетов только пользователю
root
.
Использование Wireshark в качестве пользователя root
настоятельно не рекомендуется. Если вы выбрали этот вариант, измените настройку:
sudo dpkg-reconfigure wireshark-common
Если Wireshark настроен на ограничение захвата членами группы wireshark
, вам может потребоваться добавить в группу нужного пользователя:
sudo usermod -a -G wireshark user
Также добавьте правильного пользователя в группу dialout
:
sudo usermod -a -G dialout user
Закройте и перезапустите Wireshark, чтобы применить новые настройки группы пользователей.
Ошибка формата Wireshark при захвате на нескольких USB-интерфейсах в Windows
Это известная проблема некоторых старых версий Wireshark. Убедитесь, что вы используете Wireshark 3.0.6 или более позднюю версию.