इस गाइड में Wireshark को कॉन्फ़िगर करने और पैकेट स्निफ़ करने के लिए Pyspinel को चलाने का तरीका बताया गया है Thread नेटवर्क से लिया गया है.
पैकेट स्निफ़िंग के लिए, Wireshark एक्सटेंशन प्लगिन का इस्तेमाल करने के लिए, पैकेट स्निफ़िंग” देखें extcap का इस्तेमाल करके.
स्निफ़र एनवायरमेंट को सेट अप करें
शुरू करने से पहले, नीचे दिए गए चरणों को पूरा करें:
- पैकेट स्निफ़िंग की ज़रूरी शर्तें पढ़ें.
- Wireshark को इंस्टॉल और कॉन्फ़िगर करें.
- extcap के बिना Pyspinel और डिपेंडेंसी इंस्टॉल करें.
स्निफ़र तैयार करें
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 बोर्ड पर फ़्लैश करें
nRF52840 को फ़्लैश करें.
डेटा की समस्याओं से बचने के लिए, 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
का इस्तेमाल करना:wpanctl getprop IPv6:MeshLocalPrefix
IPv6:MeshLocalPrefix = "fd33:3333:3344:0::/64"OTBR वेब GUI का इस्तेमाल करके, स्थिति चुनें. मेश लोकल प्रीफ़िक्स सूची में शामिल है
wpanctl
के समान IPv6:MeshLocalPrefix के तौर पर.
चैनल
टारगेट Thread नेटवर्क में मौजूद किसी डिवाइस से चैनल पाने के लिए:
OpenThread सीएलआई का इस्तेमाल करके:
channel
15एनसीपी के साथ
wpanctl
का इस्तेमाल करना:wpanctl getprop NCP:Channel
NCP:Channel = 15OTBR वेब GUI का इस्तेमाल करके, स्थिति चुनें. चैनल इस रूप में सूचीबद्ध है
wpanctl
से मिलता-जुलता NCP:चैनल.
नेटवर्क कुंजी
Thread नेटवर्क कुंजी का इस्तेमाल Wireshark बाद में पैकेट को डिक्रिप्ट करने के लिए करता है कैप्चर करें. टारगेट Thread नेटवर्क में मौजूद किसी डिवाइस से नेटवर्क कुंजी पाने के लिए:
OpenThread सीएलआई का इस्तेमाल करके:
networkkey
33334444333344443333444433334444एनसीपी के साथ
wpanctl
का इस्तेमाल करना:wpanctl getprop Network:Key
Network:Key = [33334444333344443333444433334444]
OTBR वेब GUI में Thread नेटवर्क कुंजी उपलब्ध नहीं है.
स्निफ़र के विकल्प
विकल्प | |||||
---|---|---|---|---|---|
-u or --uart |
|
||||
-c or --channel |
|
||||
--no-reset |
|
||||
--crc |
|
||||
-b or --baudrate |
|
||||
--rssi |
|
||||
--tap |
|
स्निफ़र चलाएं
पक्का करें कि आप एनसीपी के लिए खास डिवाइस पाथ और चैनल का इस्तेमाल वह Thread नेटवर्क जिसे आपको सूंघने की कोशिश की जा रही है.
अगर इस गाइड का इस्तेमाल किया जा रहा है, तो nRF52840 DK को होस्ट मशीन से इस तरह अटैच किया जाना चाहिए
की जांच करें, जैसा कि फ़्लैश
nRF52840. पिनेल स्निफ़र चलाने के लिए,
बॉड रेट की जानकारी देने के लिए, -b
फ़्लैग का इस्तेमाल करें (अगर इसे डिफ़ॉल्ट से बदला गया था)
--no-reset
फ़्लैग को हटा दें.
अगर आरएसएसआई दिखाने के लिए वायर शार्क को कॉन्फ़िगर किया जाता है, तो आपको --rssi
को भी शामिल करना होगा
फ़्लैग करें. उदाहरण के लिए, चैनल 15 का इस्तेमाल करके
/dev/ttyACM0
पर माउंट किया गया ऐसा डिवाइस जिसमें वायर शार्क आउटपुट में आरएसएसआई शामिल है:
cd path-to-pyspinel
python sniffer.py -c 15 -u /dev/ttyACM0 --crc --rssi -b 460800 | wireshark -k -i -
अब आपको इसके पैकेट और उनसे जुड़े प्रोटोकॉल दिखेंगे Wireshark में कॉन्फ़िगरेशन:
स्पिनेल स्निफ़र देखें इसके लिए रेफ़रंस Pyspinel स्निफ़र चलाने के बारे में ज़्यादा जानकारी.
नेटिव यूएसबी कनेक्शन
nRF52840 DK यूएसबी पोर्ट का इस्तेमाल करने के लिए, OpenThread ot-rcp
बाइनरी की ज़रूरत होती है, ताकि
USB_trans
की मदद से बनाए जाएंगे:
./script/build nrf52840 USB_trans
--no-reset
फ़्लैग का इस्तेमाल करें
लेकिन स्निफ़र चलाते समय -b
फ़्लैग को छोड़ दें:
python sniffer.py -c 15 -u /dev/ttyACM0 --crc --no-reset --rssi | wireshark -k -i -
संसाधन
अतिरिक्त नॉर्डिक टूल के लिए, Nordic सेमीकंडक्टर — Thread देखें Wireshark की मदद से, nRF52840 के आधार पर स्निफ़र करें.