<ph type="x-smartling-placeholder"></ph> Quelle auf GitHub ansehen
In diesem Leitfaden wird beschrieben, wie Sie Wireshark konfigurieren und Pyspinel zum Schnüffeln von Paketen ausführen. aus einem Thread-Netzwerk.
Informationen zur Verwendung des Wireshark-extcap-Plug-ins für das Sniffing finden Sie unter Paket-Sniffing extcap verwenden.
Sniffer-Umgebung einrichten
Führen Sie zuerst die folgenden Schritte aus:
- Lesen Sie die Anforderungen für das Paket-Sniffing.
- Wireshark installieren und konfigurieren
- Pyspinel und Abhängigkeiten ohne extcap installieren
Sniffer erstellen
Erstellen und flashen Sie ein NCP-Gerät, das als Sniffer dient, unter Verwendung der Binärausgabe ot-rcp
.
Nordisch nRF52840
Wenn Sie das Nordic nRF52840-Beispiel zur Verwendung als Sniffer einrichten möchten, klonen Sie
openthread/ot-nrf528xx
und richten Sie die Build-Umgebung ein:
git clone https://github.com/openthread/ot-nrf528xx --recursive
./script/bootstrap
Lege die Baudrate auf 460800 fest. Die Linie #define UART_BAUDRATE NRF_UARTE_BAUDRATE_115200
finden
in src/nrf52840/transport-config.h
und ersetzen Sie es durch #define UART_BAUDRATE NRF_UARTE_BAUDRATE_460800
.
Erstellen Sie die Binärdatei:
./script/build nrf52840 UART_trans
Wandeln Sie die Binärausgabe ot-rcp
in einen Hexadezimalwert um:
arm-none-eabi-objcopy -O ihex build/bin/ot-rcp ot-rcp.hex
Flashen Sie die Datei ot-rcp.hex
auf das nRF52840-Board, wie unter
nRF52840 blinken.
Massenspeichergerät (Mass Storage Device, MSD) auf nRF52840 deaktivieren, um Datenprobleme zu vermeiden bei Verwendung des Debugging-Ports beschädigt wird oder ausfällt:
expect <<EOF
spawn JLinkExe
expect "J-Link>"
send "msddisable\n"
expect "Probe configured successfully."
exit
EOF
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.
Thread-Netzwerkeigenschaften
Bevor Sie fortfahren, rufen Sie die folgenden Eigenschaften für das gewünschte Thread-Netzwerk ab zu schnuppern. Sie benötigen sie für die Wireshark-Konfiguration und zum Ausführen von Pyspinel. schnüffeln.
Lokales Mesh-Präfix
So rufen Sie das lokale Mesh-Präfix von einem Gerät im Ziel-Thread-Netzwerk ab:
Über die OpenThread-Befehlszeile:
dataset active
Mesh Local Prefix: fd33:3333:3344:0/64Verwendung von
wpanctl
mit einem NCP:wpanctl getprop IPv6:MeshLocalPrefix
IPv6:MeshLocalPrefix = "fd33:3333:3344:0::/64"Wählen Sie auf der OTBR-Web-GUI die Option Status aus. Das lokale Mesh-Präfix ist aufgeführt als IPv6:MeshLocalPrefix ähnlich wie
wpanctl
.
Kanal
So rufen Sie den Kanal von einem Gerät im Ziel-Thread-Netzwerk ab:
Über die OpenThread-Befehlszeile:
channel
15Verwendung von
wpanctl
mit einem NCP:wpanctl getprop NCP:Channel
NCP:Channel = 15Wählen Sie auf der OTBR-Web-GUI die Option Status aus. Der Kanal ist aufgeführt als NCP:Channel ähnlich wie
wpanctl
.
Netzwerkschlüssel
Der Thread-Netzwerkschlüssel wird von Wireshark verwendet, um Pakete nach dem aufnehmen. So rufen Sie den Netzwerkschlüssel von einem Gerät im Ziel-Thread-Netzwerk ab:
Über die OpenThread-Befehlszeile:
networkkey
33334444333344443333444433334444Verwendung von
wpanctl
mit einem NCP:wpanctl getprop Network:Key
Network:Key = [33334444333344443333444433334444]
Der Thread-Netzwerkschlüssel ist in der OTBR-Web-GUI nicht verfügbar.
Sniffer-Optionen
Optionen | |||||
---|---|---|---|---|---|
-u or --uart |
|
||||
-c or --channel |
|
||||
--no-reset |
|
||||
--crc |
|
||||
-b or --baudrate |
|
||||
--rssi |
|
||||
--tap |
|
Schnüffeln
Achten Sie darauf, den spezifischen Gerätepfad für Ihren NCP und den Kanal für die Thread-Netzwerk, das du schnüffeln möchtest.
Wenn Sie sich an diese Anleitung halten, sollte der nRF52840 DK folgendermaßen an den Host-Computer angeschlossen werden:
an den Debug-Port, wie im Abschnitt Flash-
nRF52840 Um den Pyspinel-Sniffer auszuführen,
Das Flag -b
verwenden, um die Baudrate anzugeben (wenn die Standardeinstellung geändert wurde)
und lassen Sie das Flag --no-reset
weg.
Wenn Sie Wireshark konfigurieren, um RSSI anzuzeigen, müssen Sie auch die --rssi
wenn du das Sniffer Tool ausführst. Um beispielsweise mit einem
Gerät unter /dev/ttyACM0
mit RSSI in der Wireshark-Ausgabe bereitgestellt:
cd path-to-pyspinel
python sniffer.py -c 15 -u /dev/ttyACM0 --crc --rssi -b 460800 | wireshark -k -i -
Sie sollten jetzt die Pakete und zugehörigen Protokolle für diese Konfiguration in Wireshark:
Weitere Informationen finden Sie unter Spinel Sniffer Referenz für zum Ausführen des Pyspinel-Sniffers.
Native USB-Verbindung
Bei Verwendung des USB-Ports nRF52840 DK muss das OpenThread-Binärprogramm ot-rcp
verwendet werden, um
mit USB_trans
erstellt werden:
./script/build nrf52840 USB_trans
--no-reset
.
aber lassen Sie das Flag -b
weg, wenn Sie den Sniffer ausführen:
python sniffer.py -c 15 -u /dev/ttyACM0 --crc --no-reset --rssi | wireshark -k -i -
Ressourcen
Weitere nordische Tools finden Sie unter Nordic Semiconductor – Thread Sniffer basiert auf nRF52840 mit Wireshark