Ten przewodnik opisuje, jak skonfigurować Wireshark i uruchomić Pyspinel do wykrywania pakietów z sieci Thread.
Aby użyć wtyczki Wireshark extcap do przechwytywania pakietów, przeczytaj artykuł Przechwytywanie pakietów przy użyciu rozszerzenia extcap.
Konfigurowanie środowiska sniffera
Zanim zaczniesz, wykonaj te czynności:
- Zapoznaj się z wymaganiami dotyczącymi wykrywania pakietów.
- Zainstaluj i skonfiguruj program Wireshark.
- Zainstaluj Pyspinel i zależności bez rozszerzenia extcap.
Stwórz sniffera
Użyj wyjścia binarnego ot-rcp, aby utworzyć i zainstalować urządzenie NCP, które pełni rolę sniffera.
Nordycki nRF52840
Aby skonfigurować skandynawski przykład nRF52840 do użycia jako sniffer, skopiuj
openthread/ot-nrf528xx i skonfiguruj środowisko kompilacji:
git clone https://github.com/openthread/ot-nrf528xx --recursive./script/bootstrap
Ustaw szybkość transmisji na 460 800. Znajdź linię #define UART_BAUDRATE NRF_UARTE_BAUDRATE_115200
w src/nrf52840/transport-config.h i zastąpić go elementem #define UART_BAUDRATE NRF_UARTE_BAUDRATE_460800.
Skompiluj plik binarny:
./script/build nrf52840 UART_trans
Przekonwertuj dane wyjściowe binarne ot-rcp na wartości szesnastkowe:
arm-none-eabi-objcopy -O ihex build/bin/ot-rcp ot-rcp.hex
Wyślij plik ot-rcp.hex na płytkę nRF52840 zgodnie z opisem w tym artykule:
Błysk nRF52840
Wyłącz urządzenie masowe (MSD) w nRF52840, aby uniknąć problemów z danymi może zostać uszkodzony lub zniknie podczas używania portu debugowania:
expect <<EOFspawn JLinkExeexpect "J-Link>"send "msddisable\n"expect "Probe configured successfully."exitEOF
spawn JLinkExe SEGGER J-Link Commander V6.42b (Compiled Feb 5 2019 17:35:31) DLL version V6.42b, compiled Feb 5 2019 17:35:20 Connecting to J-Link via USB...O.K. Firmware: J-Link OB-SAM3U128-V2-NordicSemi compiled Jan 7 2019 14:07:15 Hardware version: V1.00 S/N: 683411111 VTref=3.300V Type "connect" to establish a target connection, '?' for help J-Link>msddisable Probe configured successfully.
Właściwości sieci Thread
Zanim przejdziesz dalej, pobierz te właściwości sieci Thread, które chcesz wąchać. Będą potrzebne do konfiguracji programu Wireshark i uruchomienia systemu Pyspinel węchem.
Lokalny prefiks sieci typu mesh
Aby uzyskać lokalny prefiks sieci typu mesh z urządzenia w docelowej sieci Thread:
Za pomocą interfejsu wiersza poleceń OpenThread:
dataset activeMesh Local Prefix: fd33:3333:3344:0/64Używanie identyfikatora
wpanctlz NCP:wpanctl getprop IPv6:MeshLocalPrefixIPv6:MeshLocalPrefix = "fd33:3333:3344:0::/64"W GUI OTBR Web GUI wybierz opcję Stan. Lokalny prefiks sieci typu mesh jest wymieniony jako IPv6:MeshLocalPrefix (podobne do
wpanctl).
Kanał
Aby pobrać kanał z urządzenia w docelowej sieci Thread:
Za pomocą interfejsu wiersza poleceń OpenThread:
channel15Używanie identyfikatora
wpanctlz NCP:wpanctl getprop NCP:ChannelNCP:Channel = 15W GUI OTBR Web GUI wybierz opcję Stan. Kanał jest podany jako NCP:Kanał podobny do parametru
wpanctl.
Klucz sieciowy
Klucz sieci Thread jest używany przez Wireshark do odszyfrowywania pakietów po zdjęcia. Aby uzyskać klucz sieciowy z urządzenia w docelowej sieci Thread:
Za pomocą interfejsu wiersza poleceń OpenThread:
networkkey33334444333344443333444433334444Używanie identyfikatora
wpanctlz NCP:wpanctl getprop Network:KeyNetwork:Key = [33334444333344443333444433334444]
Klucz sieciowy Thread nie jest dostępny w interfejsie internetowym OTBR.
Opcje sniffera
| Opcje | |||||
|---|---|---|---|---|---|
-u or --uart |
|
||||
-c or --channel |
|
||||
--no-reset |
|
||||
--crc |
|
||||
-b or --baudrate |
|
||||
--rssi |
|
||||
--tap |
|
||||
Uruchom sniffera
Pamiętaj, aby użyć konkretnej ścieżki urządzenia dla NCP oraz kanału dla Sieć Thread, którą próbujesz wykryć.
Jeśli postępujesz zgodnie z tym przewodnikiem, do hosta należy podłączyć kontroler nRF52840 DK przez
i port debugowania, zgodnie z opisem w sekcji Flash
nRF52840. Aby uruchomić sniffera Pyspinel,
użyj flagi -b, aby określić szybkość transmisji (jeśli została zmieniona z domyślnej).
i pominąć flagę --no-reset.
Jeśli konfigurujesz program Wireshark, aby wyświetlać RSSI, musisz także dodać --rssi
po uruchomieniu narzędzia sniffer. Na przykład do wąchania Channel 15 za pomocą
urządzenie podłączone do źródła danych /dev/ttyACM0 z RSSI dołączonym do danych wyjściowych programu Wireshark:
cd path-to-pyspinelpython sniffer.py -c 15 -u /dev/ttyACM0 --crc --rssi -b 460800 | wireshark -k -i -
Powinny być teraz widoczne pakiety i powiązane z nimi protokoły Konfiguracja w programie Wireshark:
Zobacz Spinel Sniffer referencyjnym znajdziesz więcej informacji na temat uruchamiania sniffera Pyspinel.
Natywne połączenie USB
Używanie portu USB nRF52840 DK wymaga pliku binarnego OpenThread ot-rcp do
utworzona za pomocą usługi USB_trans:
./script/build nrf52840 USB_trans
--no-reset
ale pomiń flagę -b przy uruchamianiu sniffera:
python sniffer.py -c 15 -u /dev/ttyACM0 --crc --no-reset --rssi | wireshark -k -i -
Zasoby
Informacje o dodatkowych narzędziach nordyckich znajdziesz na stronie Nordic Semiconductor – Thread Sniffer oparty na modelu nRF52840 w programie Wireshark.
