คู่มือนี้ครอบคลุมวิธีกำหนดค่า Wireshark และเรียกใช้ Pyspinel เพื่อดักจับแพ็กเก็ต จากเครือข่ายเทรด
หากต้องการใช้ปลั๊กอิน Wireshark extcap สำหรับการดักจับแพ็คเก็ต โปรดดู Packet Sniffing (การดักจับแพ็กเก็ต) โดยใช้ส่วนขยาย
ตั้งค่าสภาพแวดล้อมสำหรับผู้ตรวจสอบ
ก่อนที่จะเริ่ม โปรดทำตามขั้นตอนต่อไปนี้
- อ่านข้อกำหนดการดักจับแพ็กเก็ต
- ติดตั้งและกำหนดค่า Wireshark
- ติดตั้ง Pyspinel และ Dependencies โดยไม่ใช้ชิ้นงาน
สร้างตัวดม
สร้างและแฟลชอุปกรณ์ NCP เพื่อทำหน้าที่เป็นตัวดักจับ โดยใช้เอาต์พุตไบนารี ot-rcp
นอร์ดิก nRF52840
วิธีตั้งค่าตัวอย่าง Nordic nRF52840 สำหรับใช้เป็นเครื่องดม, โคลน
openthread/ot-nrf528xx
และตั้งค่าสภาพแวดล้อมของบิลด์ดังนี้
git clone https://github.com/openthread/ot-nrf528xx --recursive
./script/bootstrap
ตั้งค่าอัตรารับส่งข้อมูลเป็น 460800 ค้นหาเส้น #define UART_BAUDRATE NRF_UARTE_BAUDRATE_115200
ใน src/nrf52840/transport-config.h
และแทนที่ด้วย #define UART_BAUDRATE NRF_UARTE_BAUDRATE_460800
สร้างไบนารีด้วยคำสั่งต่อไปนี้
./script/build nrf52840 UART_trans
แปลงเอาต์พุตไบนารี ot-rcp
เป็นเลขฐาน 16:
arm-none-eabi-objcopy -O ihex build/bin/ot-rcp ot-rcp.hex
แฟลชไฟล์ ot-rcp.hex
ไปยังบอร์ด nRF52840 ตามรายละเอียดใน
แฟลช nRF52840
ปิดใช้ Mass Storage Device (MSD) ใน nRF52840 เพื่อหลีกเลี่ยงปัญหาเกี่ยวกับข้อมูล เสียหายหรือลดลงเมื่อใช้พอร์ตแก้ไขข้อบกพร่อง:
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.
พร็อพเพอร์ตี้ของเครือข่ายเทรด
ก่อนดำเนินการต่อ โปรดรับพร็อพเพอร์ตี้ต่อไปนี้สำหรับเครือข่ายเทรดที่ต้องการ เพื่อดม คุณจะต้องใช้คีย์เหล่านี้ในการกำหนดค่า Wireshark และเรียกใช้ Pyspinel ดม
คำนำหน้าภายในของ Mesh
วิธีรับคำนำหน้า Mesh Local จากอุปกรณ์ในเครือข่ายเทรดเป้าหมาย
การใช้ OpenThread CLI
dataset active
Mesh Local Prefix: fd33:3333:3344:0/64การใช้
wpanctl
กับ NCPwpanctl getprop IPv6:MeshLocalPrefix
IPv6:MeshLocalPrefix = "fd33:3333:3344:0::/64"เลือกสถานะโดยใช้ OTBR Web GUI แสดงรายการคำนำหน้า Mesh Local แล้ว IPv6:MeshLocalPrefix ที่คล้ายกับ
wpanctl
ช่อง
วิธีรับช่องจากอุปกรณ์ในเครือข่ายเทรดเป้าหมาย
การใช้ OpenThread CLI
channel
15การใช้
wpanctl
กับ NCPwpanctl getprop NCP:Channel
NCP:Channel = 15เลือกสถานะโดยใช้ OTBR Web GUI ช่องจะแสดงเป็น NCP:ช่องที่คล้ายกับ
wpanctl
คีย์เครือข่าย
Wireshark จะใช้คีย์เครือข่ายเทรดเพื่อถอดรหัสแพ็กเก็ตหลังจาก การจับภาพ วิธีรับคีย์เครือข่ายจากอุปกรณ์ในเครือข่ายเทรดเป้าหมาย
การใช้ OpenThread CLI
networkkey
33334444333344443333444433334444การใช้
wpanctl
กับ NCPwpanctl getprop Network:Key
Network:Key = [33334444333344443333444433334444]
คีย์เครือข่ายเทรดไม่พร้อมใช้งานใน OTBR เว็บ GUI
ตัวเลือกเครื่องดักจับ
ตัวเลือก | |||||
---|---|---|---|---|---|
-u or --uart |
|
||||
-c or --channel |
|
||||
--no-reset |
|
||||
--crc |
|
||||
-b or --baudrate |
|
||||
--rssi |
|
||||
--tap |
|
เรียกใช้เครื่องมือดักจับ
อย่าลืมใช้เส้นทางอุปกรณ์ที่เฉพาะเจาะจงสำหรับ NCP และช่องสำหรับ เครือข่ายเทรดที่คุณพยายามตรวจหา
หากทำตามคู่มือนี้ คุณควรติด nRF52840 DK เข้ากับเครื่องโฮสต์โดย
พอร์ตดีบัก ตามที่อธิบายไว้ใน Flash
nRF52840 ในการเรียกใช้ Pyspinel Sniffer
ใช้แฟล็ก -b
เพื่อระบุอัตรารับส่งข้อมูล (หากมีการเปลี่ยนแปลงจากค่าเริ่มต้น)
และไม่ใส่ค่าสถานะ --no-reset
หากคุณกำหนดค่า Wireshark เพื่อแสดง RSSI คุณต้องระบุ --rssi
ด้วย
Flag เมื่อคุณเรียกใช้เครื่องมือSniffer ตัวอย่างเช่น หากต้องการดมในช่อง 15 โดยใช้
อุปกรณ์ที่ติดตั้งที่ /dev/ttyACM0
พร้อม RSSI ที่รวมอยู่ในเอาต์พุต Wireshark:
cd path-to-pyspinel
python sniffer.py -c 15 -u /dev/ttyACM0 --crc --rssi -b 460800 | wireshark -k -i -
ตอนนี้คุณควรจะสามารถดูแพ็กเก็ตและโปรโตคอลที่เกี่ยวข้องสำหรับกระบวนการนี้ การกำหนดค่าใน Wireshark:
ดูข้อมูลเพิ่มเติมได้ที่การดักจับดอกสปิเนล ข้อมูลอ้างอิงสำหรับ ดูข้อมูลเพิ่มเติมเกี่ยวกับการเรียกใช้ Pyspinel Sniffer
การเชื่อมต่อ USB โดยตรง
การใช้พอร์ต USB nRF52840 DK ต้องใช้ไบนารีของ OpenThread ot-rcp
เพื่อ
สร้างขึ้นด้วย USB_trans
:
./script/build nrf52840 USB_trans
--no-reset
แต่ไม่ต้องใส่ Flag -b
เมื่อเรียกใช้โปรแกรมตรวจจับ:
python sniffer.py -c 15 -u /dev/ttyACM0 --crc --no-reset --rssi | wireshark -k -i -
แหล่งข้อมูล
สำหรับเครื่องมือนอร์ดิกเพิ่มเติม โปรดดูที่ Nordic เซมิคอนดักเตอร์ — Thread เครื่องดมกลิ่นที่ใช้ nRF52840 พร้อม Wireshark