এই গাইডটি কভার করে যে কীভাবে Wireshark কনফিগার করতে হয় এবং একটি থ্রেড নেটওয়ার্ক থেকে প্যাকেট স্নিফ করতে Pyspinel চালাতে হয়।
প্যাকেট স্নিফিংয়ের জন্য Wireshark extcap প্লাগইন ব্যবহার করতে, extcap ব্যবহার করে প্যাকেট স্নিফিং পড়ুন।
স্নিফার পরিবেশ সেট আপ করুন
আপনি শুরু করার আগে, নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:
- প্যাকেট স্নিফিং প্রয়োজনীয়তা পর্যালোচনা করুন।
- Wireshark ইনস্টল এবং কনফিগার করুন ।
- Extcap ছাড়া Pyspinel এবং নির্ভরতা ইনস্টল করুন ।
স্নিফার তৈরি করুন
ot-rcp
বাইনারি আউটপুট ব্যবহার করে স্নিফার হিসাবে পরিবেশন করার জন্য একটি NCP ডিভাইস তৈরি এবং ফ্ল্যাশ করুন।
নর্ডিক nRF52840
স্নিফার হিসাবে ব্যবহারের জন্য নর্ডিক nRF52840 উদাহরণ সেট আপ করতে, openthread/ot-nrf528xx
ক্লোন করুন এবং বিল্ড পরিবেশ সেট আপ করুন:
git clone https://github.com/openthread/ot-nrf528xx --recursive
./script/bootstrap
বড রেট 460800 হিসাবে সেট করুন src/nrf52840/transport-config.h
এ #define UART_BAUDRATE NRF_UARTE_BAUDRATE_115200
লাইনটি খুঁজুন এবং এটিকে #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-এ ভর স্টোরেজ ডিভাইস (MSD) নিষ্ক্রিয় করুন:
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.
থ্রেড নেটওয়ার্ক বৈশিষ্ট্য
চালিয়ে যাওয়ার আগে, আপনি যে থ্রেড নেটওয়ার্কটি স্নিফ করতে চান তার জন্য নিম্নলিখিত বৈশিষ্ট্যগুলি পান৷ আপনার ওয়্যারশার্ক কনফিগারেশন এবং পিসপিনেল স্নিফার চালানোর জন্য তাদের প্রয়োজন হবে।
মেশ স্থানীয় উপসর্গ
লক্ষ্য থ্রেড নেটওয়ার্কে একটি ডিভাইস থেকে মেশ স্থানীয় উপসর্গ পেতে:
OpenThread CLI ব্যবহার করে:
dataset active
Mesh Local Prefix: fd33:3333:3344:0/64একটি NCP এর সাথে
wpanctl
ব্যবহার করা:wpanctl getprop IPv6:MeshLocalPrefix
IPv6:MeshLocalPrefix = "fd33:3333:3344:0::/64"OTBR ওয়েব GUI ব্যবহার করে, স্থিতি নির্বাচন করুন। মেশ স্থানীয় উপসর্গটি IPv6:MeshLocalPrefix হিসাবে
wpanctl
এর মতো তালিকাভুক্ত।
চ্যানেল
লক্ষ্য থ্রেড নেটওয়ার্কে একটি ডিভাইস থেকে চ্যানেল পেতে:
OpenThread CLI ব্যবহার করে:
channel
15একটি NCP এর সাথে
wpanctl
ব্যবহার করা:wpanctl getprop NCP:Channel
NCP:Channel = 15OTBR ওয়েব GUI ব্যবহার করে, স্থিতি নির্বাচন করুন। চ্যানেলটি NCP হিসেবে তালিকাভুক্ত করা হয়েছে:
wpanctl
এর মতো চ্যানেল ।
নেটওয়ার্ক কী
থ্রেড নেটওয়ার্ক কীটি ওয়্যারশার্ক দ্বারা ক্যাপচারের পরে প্যাকেটগুলি ডিক্রিপ্ট করতে ব্যবহার করা হয়। লক্ষ্য থ্রেড নেটওয়ার্কের একটি ডিভাইস থেকে নেটওয়ার্ক কী পেতে:
OpenThread CLI ব্যবহার করে:
networkkey
33334444333344443333444433334444একটি NCP এর সাথে
wpanctl
ব্যবহার করা:wpanctl 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 ডিবাগ পোর্ট দ্বারা হোস্ট মেশিনের সাথে সংযুক্ত করা উচিত, যেমনটি ফ্ল্যাশ nRF52840 এ বর্ণিত হয়েছে। Pyspinel স্নিফার চালানোর জন্য, বড রেট নির্দিষ্ট করতে -b
পতাকা ব্যবহার করুন (যদি এটি ডিফল্ট থেকে পরিবর্তন করা হয়) এবং --no-reset
পতাকা বাদ দিন।
আপনি যদি RSSI প্রদর্শনের জন্য Wireshark কনফিগার করেন , আপনি স্নিফার টুল চালানোর সময় আপনাকে --rssi
পতাকাও অন্তর্ভুক্ত করতে হবে। উদাহরণস্বরূপ, Wireshark আউটপুটে অন্তর্ভুক্ত RSSI সহ /dev/ttyACM0
এ মাউন্ট করা একটি ডিভাইস ব্যবহার করে চ্যানেল 15-এ স্নিফ করতে:
cd path-to-pyspinel
python sniffer.py -c 15 -u /dev/ttyACM0 --crc --rssi -b 460800 | wireshark -k -i -
আপনি এখন Wireshark-এ এই কনফিগারেশনের জন্য প্যাকেট এবং সম্পর্কিত প্রোটোকল দেখতে সক্ষম হবেন:
পিসপিনেল স্নিফার চালানোর বিষয়ে আরও তথ্যের জন্য স্পিনেল স্নিফার রেফারেন্স পড়ুন।
নেটিভ ইউএসবি সংযোগ
nRF52840 DK USB পোর্ট ব্যবহার করার জন্য 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 -
সম্পদ
অতিরিক্ত নর্ডিক সরঞ্জামের জন্য, নর্ডিক সেমিকন্ডাক্টর পড়ুন — থ্রেড স্নিফার এনআরএফ৫২৮৪০-এর উপর ভিত্তি করে Wireshark-এর সাথে ।