يتناول هذا الدليل كيفية تهيئة Wireshark وتشغيل Pyspinel لشم الحزم من شبكة Thread.
لاستخدام المكون الإضافي Wireshark لشم الحزم، راجع شم الحزم باستخدام extcap.
إعداد بيئة الشم
قبل البدء، أكمل الخطوات التالية:
- راجِع متطلبات جمع حِزم البيانات.
- تثبيت وتهيئة Wireshark.
- تثبيت تطبيق Pyspinel والاعتماديات بدون إضافات.
إنشاء جهاز الشمّ
يمكنك إنشاء جهاز NCP وتمريره ليكون بمثابة جهاز الشم، باستخدام الناتج الثنائي ot-rcp
.
اسكندنافية nRF52840
لإعداد مثال nRF52840 من Nordic لاستخدامه كجهاز استنساخ، 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
الثنائي إلى سداسي عشري:
arm-none-eabi-objcopy -O ihex build/bin/ot-rcp ot-rcp.hex
ثبِّت ملف ot-rcp.hex
على لوحة nRF52840 كما هو موضَّح بالتفصيل في
Flash nRF52840.
عطل جهاز التخزين الجماعي (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.
خصائص شبكة Thread
قبل المتابعة، احصل على الخصائص التالية لشبكة Thread التي ترغب في استنشاقها. ستحتاج إليها لتهيئة Wireshark وتشغيل Pyspinel.
بادئة شبكة متداخلة محلية
للحصول على بادئة شبكة متداخلة محلية من جهاز في شبكة Thread المستهدفة:
استخدام واجهة سطر الأوامر لـ OpenThread:
dataset active
Mesh Local Prefix: fd33:3333:3344:0/64استخدام
wpanctl
مع NCP:wpanctl getprop IPv6:MeshLocalPrefix
IPv6:MeshLocalPrefix = "fd33:3333:3344:0::/64"اختَر الحالة باستخدام واجهة مستخدم الويب التصويرية على الويب (OTBR). وتكون بادئة الشبكة المتداخلة المحلية مدرجة كـ IPv6:MeshLocalPrefix على النحو
wpanctl
.
القناة
للحصول على القناة من جهاز في شبكة Thread المستهدفة:
استخدام واجهة سطر الأوامر لـ OpenThread:
channel
15استخدام
wpanctl
مع NCP:wpanctl getprop NCP:Channel
NCP:Channel = 15اختَر الحالة باستخدام واجهة مستخدم الويب التصويرية على الويب (OTBR). وتكون القناة مُدرَجة على أنها NCP:Channel على غرار
wpanctl
.
مفتاح الشبكة
يتم استخدام مفتاح شبكة Thread من قِبل Wireshark لفك تشفير الحزم بعد التقاطها. للحصول على مفتاح الشبكة من جهاز في شبكة Thread المستهدفة:
استخدام واجهة سطر الأوامر لـ OpenThread:
networkkey
33334444333344443333444433334444استخدام
wpanctl
مع NCP:wpanctl getprop Network:Key
Network:Key = [33334444333344443333444433334444]
مفتاح شبكة Thread غير متاح في واجهة المستخدم التصويرية على الويب عبر OTBR.
خيارات الشم
الخيارات | |||||
---|---|---|---|---|---|
-u or --uart |
|
||||
-c or --channel |
|
||||
--no-reset |
|
||||
--crc |
|
||||
-b or --baudrate |
|
||||
--rssi |
|
||||
--tap |
|
تشغيل الشمّ
احرص على استخدام مسار الجهاز المحدّد لنظام NCP وقناة شبكة Thread التي تحاول استنشاقها.
في حال اتّباع هذا الدليل، يجب توصيل nRF52840 DK بالجهاز المضيف من خلال منفذ تصحيح الأخطاء، كما هو موضَّح في Flash
nRF52840. لتشغيل برنامج Pyspinel،
استخدم علامة -b
لتحديد معدل الباود (إذا تم تغييره من الإعداد التلقائي)
واحذف العلامة --no-reset
.
في حال ضبط Wireshark لعرض RSSI، عليك أيضًا تضمين العلامة --rssi
عند تشغيل أداة الشم. على سبيل المثال، يمكنك استنشاق قناة 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:
يمكنك الرجوع إلى Spinel sniffer المرجع لمزيد من المعلومات حول تشغيل Pyspinel sniffer.
اتصال USB أصلي
يتطلب استخدام منفذ USB nRF52840 DK إنشاء برنامج ثنائي لبرنامج OpenThread ot-rcp
باستخدام USB_trans
:
./script/build nrf52840 USB_trans
تثبيت nRF52840 DK وتوصيله بالجهاز المضيف من خلال منفذ USB، ثم استخدام علامة --no-reset
وحذف علامة -b
عند تشغيل أداة التشعيم:
python sniffer.py -c 15 -u /dev/ttyACM0 --crc --no-reset --rssi | wireshark -k -i -
المراجِع
للحصول على أدوات بلدان الشمال الإسكندنافي الإضافية، يُرجى الرجوع إلى شبه موصل الشمال — سنفير استنادًا إلى nRF52840 مع Wireshark.