يتناول هذا الدليل طريقة ضبط Wireshark وتشغيل Pyspinel لاستشعار حِزم البيانات من شبكة سلاسل المحادثات.
لاستخدام المكوّن الإضافي Wireshark supcaps لاختبار حِزم البيانات، يُرجى الرجوع إلى حِزمة الحزم باستخدام extcap.
إعداد بيئة السنفرة
قبل البدء، يُرجى إكمال الخطوات التالية:
تصميم المبخرة
يمكنك إنشاء جهاز NCP ونشره كعنصر عدّاد، وذلك باستخدام الإخراج الثنائي ot-rcp
.
بلدان الشمال الأوروبي nRF52840
لإعداد مثال 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
الناتج الثنائي إلى سداسي عشري:
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.
خصائص شبكة سلاسل المحادثات
قبل المتابعة، احصل على الخصائص التالية لشبكة سلسلة المحادثات التي ترغب في التعرّف عليها. ستحتاج إليهما لإعداد Wireshark وتشغيل مُبدل Pyspinel.
بادئة محلية للشبكة المتداخلة
للحصول على البادئة المحلية للشبكة المتداخلة من جهاز في شبكة سلسلة المحادثات المستهدفة:
باستخدام واجهة سطر الأوامر (CLI) على Openسلاسل:
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
.
القناة
للحصول على القناة من جهاز في شبكة سلاسل المحادثات المستهدفة:
باستخدام واجهة سطر الأوامر (CLI) على Openسلاسل:
channel
15استخدام
wpanctl
مع NCP:wpanctl getprop NCP:Channel
NCP:Channel = 15باستخدام واجهة برمجة تطبيقات الويب في OTBR، اختَر الحالة. تكون القناة مدرجة على أنها NCP:Channel مثل
wpanctl
.
مفتاح الشبكة
يستخدم Wireshark مفتاح مفتاح سلاسل المحادثات لفك تشفير الحِزَم بعد الالتقاط. للحصول على مفتاح الشبكة من جهاز في شبكة سلسلة المحادثات المستهدفة:
باستخدام واجهة سطر الأوامر (CLI) على Openسلاسل:
networkkey
33334444333344443333444433334444استخدام
wpanctl
مع NCP:wpanctl getprop Network:Key
Network:Key = [33334444333344443333444433334444]
لا يتوفر مفتاح شبكة سلاسل المحادثات في واجهة المستخدم التصويرية على الويب في OTBR.
خيارات السنفرة
الخيارات | |||||
---|---|---|---|---|---|
-u or --uart |
|
||||
-c or --channel |
|
||||
--no-reset |
|
||||
--crc |
|
||||
-b or --baudrate |
|
||||
--rssi |
|
||||
--tap |
|
تشغيل الشطيرة
تأكد من استخدام مسار الجهاز المحدد لبروتوكول NCP والقناة لشبكة سلاسل المحادثات التي تحاول التعرّف عليها.
في حال اتّباع هذا الدليل، يجب إرفاق nRF52840 DK مع الجهاز المضيف من خلال منفذ تصحيح الأخطاء، كما هو موضّح في Flash
nRF52840. لتشغيل البندقية Pyspinel،
استخدم العلامة -b
لتحديد معدل الباود (إذا تم تغييره من الإعداد التلقائي)
واحذف العلامة --no-reset
.
إذا ضبطت Wireshark لعرض RSSI، عليك أيضًا تضمين العلامة --rssi
عند تشغيل أداة 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:
يُرجى الرجوع إلى مرجع مُوصّل Spinel للحصول على مزيد من المعلومات حول تشغيل مُعدّل Pyspinel.
اتصال USB أصلي
في حال استخدام منفذ USB nRF52840 DK، يجب استخدام OpenString.ot-rcp
برامج ثنائية يتم إنشاؤها باستخدامUSB_trans
:
./script/build nrf52840 USB_trans
Flash nRF52840 DK،توصيله بالجهاز المضيف من خلال منفذ USB ، ثم استخدِم--no-reset
ثم احذف-b
الإبلاغ عند تشغيل السنفرة:
python sniffer.py -c 15 -u /dev/ttyACM0 --crc --no-reset --rssi | wireshark -k -i -
المراجع
للحصول على أدوات إضافية لبلدان الشمال الأوروبي، يُرجى الاطّلاع على الموصّل الشمالي - سلسلة المحادثات استنادًا إلى nRF52840 مع Wireshark.