Panduan ini membahas cara mengonfigurasi Wireshark dan menjalankan Pyspinel untuk mengendus paket dari jaringan Thread.
Untuk menggunakan plugin extcap Wireshark untuk sniffing paket, lihat Packet Sniffing menggunakan extcap.
Menyiapkan lingkungan sniffer
Sebelum memulai, selesaikan langkah-langkah berikut:
- Tinjau Persyaratan Penggolongan Paket.
- Instal dan Konfigurasikan Wireshark.
- Menginstal Pyspinel dan dependensi tanpa extcap.
Mem-build sniffer
Mem-build dan mem-flash perangkat NCP untuk berfungsi sebagai sniffer, menggunakan output biner ot-rcp
.
Nordik nRF52840
Untuk menyiapkan contoh Nordic nRF52840 agar dapat digunakan sebagai sniffer, clone
openthread/ot-nrf528xx
dan siapkan lingkungan build:
git clone https://github.com/openthread/ot-nrf528xx --recursive
./script/bootstrap
Tetapkan baud rate sebagai 460800. Cari baris #define UART_BAUDRATE NRF_UARTE_BAUDRATE_115200
di src/nrf52840/transport-config.h
, dan ganti dengan #define UART_BAUDRATE NRF_UARTE_BAUDRATE_460800
.
Buat biner:
./script/build nrf52840 UART_trans
Konversikan output biner ot-rcp
menjadi hex:
arm-none-eabi-objcopy -O ihex build/bin/ot-rcp ot-rcp.hex
Lakukan flash file ot-rcp.hex
ke board nRF52840 seperti yang dijelaskan dalam
Mem-flash nRF52840.
Nonaktifkan Mass Storage Device (MSD) di nRF52840 untuk menghindari masalah kerusakan atau penurunan data saat menggunakan port debug:
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.
Properti jaringan thread
Sebelum melanjutkan, dapatkan properti berikut untuk jaringan Thread yang ingin Anda sniff. Anda akan membutuhkannya untuk konfigurasi Wireshark dan menjalankan sniffer Pyspinel.
Awalan Lokal Mesh
Untuk mendapatkan Awalan Lokal Mesh dari perangkat dalam jaringan Thread target:
Menggunakan OpenThread CLI:
dataset active
Mesh Local Prefix: fd33:3333:3344:0/64Menggunakan
wpanctl
dengan NCP:wpanctl getprop IPv6:MeshLocalPrefix
IPv6:MeshLocalPrefix = "fd33:3333:3344:0::/64"Menggunakan GUI Web OTBR, pilih Status. Awalan Lokal Mesh dicantumkan sebagai IPv6:MeshLocalPrefix mirip dengan
wpanctl
.
Channel
Untuk mendapatkan Saluran dari perangkat di jaringan Thread target:
Menggunakan OpenThread CLI:
channel
15Menggunakan
wpanctl
dengan NCP:wpanctl getprop NCP:Channel
NCP:Channel = 15Menggunakan GUI Web OTBR, pilih Status. Saluran dicantumkan sebagai NCP:Channel yang mirip dengan
wpanctl
.
Kunci Jaringan
Kunci Jaringan Thread digunakan oleh Wireshark untuk mendekripsi paket setelah pengambilan. Untuk mendapatkan Kunci Jaringan dari perangkat di jaringan Thread target:
Menggunakan OpenThread CLI:
networkkey
33334444333344443333444433334444Menggunakan
wpanctl
dengan NCP:wpanctl getprop Network:Key
Network:Key = [33334444333344443333444433334444]
Thread Network Key tidak tersedia di OTBR Web GUI.
Opsi sniffer
Opsi | |||||
---|---|---|---|---|---|
-u or --uart |
|
||||
-c or --channel |
|
||||
--no-reset |
|
||||
--crc |
|
||||
-b or --baudrate |
|
||||
--rssi |
|
||||
--tap |
|
Menjalankan sniffer
Pastikan untuk menggunakan jalur perangkat tertentu untuk NCP dan saluran untuk jaringan Thread yang Anda coba deteksi.
Jika mengikuti panduan ini, nRF52840 DK harus dipasang ke mesin host oleh
port debug, seperti yang dijelaskan di Mem-flash
nRF52840. Untuk menjalankan sniffer Pyspinel,
gunakan flag -b
untuk menentukan baud rate (jika diubah dari default)
dan hapus flag --no-reset
.
Jika Mengonfigurasi Wireshark ditampilkan untuk RSSI, Anda juga harus menyertakan tanda --rssi
saat menjalankan alat sniffer. Misalnya, untuk menghirup Saluran 15 menggunakan
perangkat yang dipasang di /dev/ttyACM0
dengan RSSI yang disertakan dalam output Wireshark:
cd path-to-pyspinel
python sniffer.py -c 15 -u /dev/ttyACM0 --crc --rssi -b 460800 | wireshark -k -i -
Sekarang Anda dapat melihat paket dan protokol terkait untuk konfigurasi ini di Wireshark:
Lihat referensi sniffer Spinel untuk mengetahui informasi selengkapnya tentang menjalankan sniffer Pyspinel.
Koneksi USB native
Penggunaan port USB DRF nRF52840 mengharuskan biner ot-rcp
OpenThread dibuat
dengan USB_trans
:
./script/build nrf52840 USB_trans
Mem-flash nRF52840 DK, menghubungkan ke mesin host melalui port
USB, lalu menggunakan flag --no-reset
,
tetapi menghilangkan flag -b
saat menjalankan sniffer:
python sniffer.py -c 15 -u /dev/ttyACM0 --crc --no-reset --rssi | wireshark -k -i -
Resource
Untuk alat Nordik tambahan, lihat Nordic Semiconductor — Thread Sniffer berdasarkan nRF52840 dengan Wireshark.