Посмотреть исходный код на GitHub
В этом руководстве рассказывается, как настроить extcap для Wireshark для перехвата пакетов из сети Thread.
Чтобы использовать Pyspinel для анализа пакетов без extcap, обратитесь к разделу Анализ пакетов с помощью Pyspinel .
Настройка среды сниффера
Прежде чем начать, выполните следующие шаги:
- Ознакомьтесь с требованиями к анализу пакетов .
- Установите и настройте Wireshark .
- Установите Pyspinel и зависимости с помощью extcap .
Проверка
Это руководство было проверено с помощью Zolertia Firefly (система на кристалле 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 или более позднюю версию.