คู่มือนี้ครอบคลุมวิธีกำหนดค่า extcap สำหรับ Wireshark เพื่อดักจับแพ็กเก็ตจาก เครือข่าย Thread
หากต้องการใช้ Pyspinel สำหรับการดักจับแพ็กเก็ตโดยไม่มีภายนอก โปรดดูการดักจับแพ็กเก็ตกับ Pyspinel
ตั้งค่าสภาพแวดล้อมสำหรับผู้ตรวจสอบ
ก่อนที่จะเริ่ม โปรดทำตามขั้นตอนต่อไปนี้
- อ่านข้อกำหนดการดักจับแพ็กเก็ต
- ติดตั้งและกำหนดค่า Wireshark
- ติดตั้ง Pyspinel และทรัพยากร Dependency ด้วยชิ้นงานภายนอก
การยืนยัน
คู่มือนี้ได้รับการยืนยันกับ Zolertia Firefly (Texas Instruments CC2538 SoC) ในระบบโฮสต์ต่อไปนี้
- Debian 4.19.37 — Wireshark 3.0.4
- macOS Mojave 10.14.6 — Wireshark 3.0.5
- Windows 10 เวอร์ชัน 64 บิต เวอร์ชัน 17134 — Wireshark 3.0.6
สร้างและโชว์ดม
วิธีการสร้างและการกะพริบจะแตกต่างกันไปตามแพลตฟอร์ม
สำหรับวิธีการสร้างและการแฟลช CC2538 โปรดดูตัวอย่าง CC2538 README บน GitHub
หากต้องการทราบวิธีการสร้างทั่วไป โปรดดูวิธีสร้าง OpenThread
ใช้เครื่องดม
หน้าจอจับภาพ Wireshark ปรากฏขึ้นเมื่อ Wireshark เปิดใช้งานเป็นครั้งแรก ทั้งนี้ ควรแสดงอินเทอร์เฟซฮาร์ดแวร์ที่เชื่อมต่อกับเครื่องมือดักจับ OpenThread
จับภาพจากอินเทอร์เฟซเดียว
หากใช้อินเทอร์เฟซเป็นครั้งแรก ให้คลิกปุ่มตัวเลือก ทางด้านซ้ายของอินเทอร์เฟซ:
- ตั้งค่าแชนเนลเป็นค่าที่ต้องการ
- ตรวจสอบ IEEE 802.15.4 TAP เพื่อให้แน่ใจว่าข้อมูลช่องเป็นไปตาม ที่รวมอยู่ในเอาต์พุต pcap และแสดงใน GUI ของ Wireshark ได้
- เลือกบันทึกพารามิเตอร์เมื่อเริ่มบันทึกเพื่อให้การตั้งค่าต่อไปนี้ จะมีการบันทึกพารามิเตอร์ไว้หลังจากเริ่มการบันทึก เพื่อหลีกเลี่ยงการ ตั้งค่าใหม่ในครั้งต่อไปที่คุณใช้อินเทอร์เฟซ (เว้นแต่คุณจะต้อง เปลี่ยนเวอร์ชัน)
- คลิกเริ่ม
หากบันทึกพารามิเตอร์แล้ว ให้เริ่มตรวจหาโดยการเลือกฮาร์ดแวร์ และคลิกไอคอน Wireshark ที่ด้านซ้ายบน
จับภาพจากอินเทอร์เฟซหลายรายการ
เลือกอินเทอร์เฟซฮาร์ดแวร์ทั้งหมดที่แสดงในหน้าจอจับภาพและคลิก ไอคอน Wireshark ที่ด้านซ้ายบน
ใช้ช่องเหล่านี้เพื่อระบุตัวดักจับแต่ละรายการเมื่อจับภาพจากหลายตัว อินเทอร์เฟซ:
- รหัสอินเทอร์เฟซ (frame.interface_id) — ตัวระบุอินเทอร์เฟซที่ Wireshark ใช้ เพื่อระบุอินเทอร์เฟซการจับภาพ
- ชื่ออินเทอร์เฟซ (frame.interface_name) — ชื่ออินเทอร์เฟซที่ใช้โดย Wireshark สำหรับระบุอินเทอร์เฟซการจับภาพ
- Channel (wpan-tap.ch_num) — IEEE 802.15.4 Capture Channel (ช่วง: 11-26)
การแก้ปัญหา
Sniffer ของ OpenThread ไม่อยู่ในรายการอินเทอร์เฟซ Wireshark
- หากคุณติดตั้งอินเทอร์พรีเตอร์ Python ไว้หลายรายการ ให้ตรวจสอบว่า Python 3 สคริปต์ขิ้นงานใช้ล่าม Pyspinel ไม่สนับสนุน Python 2
- ตรวจสอบว่ามีการแจกแจงฮาร์ดแวร์ใน USB และโหลดไดรเวอร์แล้วหรือไม่
- ตรวจสอบว่าได้แฟลชเฟิร์มแวร์ (NCP หรือ RCP) ที่ถูกต้องไปยัง ฮาร์ดแวร์
- ตรวจสอบว่าสคริปต์ Python ที่อยู่ในเส้นทางภายนอกเป็นไฟล์ปฏิบัติการ
- สำหรับ OS X และ Linux
- ยืนยันว่ามีสิทธิ์ดำเนินการสำหรับ
extcap_ot.py
ไฟล์:ls -l extcap_ot.py
- หากสิทธิ์ในการดำเนินการ (x) ขาดหายไป ให้แก้ไขสิทธิ์ดังนี้
chmod +x extcap_ot.py
- ตรวจสอบว่าอินเทอร์เฟซแสดงอยู่
extcap_ot.py --extcap-interfaces
- ยืนยันว่ามีสิทธิ์ดำเนินการสำหรับ
- สำหรับ Windows ให้ทำดังนี้
- ตรวจสอบว่าอินเทอร์เฟซแสดงอยู่
extcap_ot.bat --extcap-interfaces
- หากออกมาพร้อมกับข้อผิดพลาด Python ให้ตรวจสอบว่าเวอร์ชัน Python เป็น 3.x หรือไม่ ดังนี้
py -3 --version
- ตรวจสอบว่าอินเทอร์เฟซแสดงอยู่
- สำหรับ OS X และ Linux
Wireshark อนุญาตให้ผู้ใช้รูทจับแพ็กเก็ตได้เท่านั้น
ระหว่างการติดตั้ง Wireshark ใน Ubuntu ผู้ใช้จะได้รับแจ้งให้เลือก ตัวเลือกต่อไปนี้
- สร้างกลุ่มผู้ใช้
wireshark
และอนุญาตให้สมาชิกทั้งหมดของกลุ่มนั้นดำเนินการต่อไปนี้ได้ ดักจับแพ็กเก็ต - อนุญาตให้ผู้ใช้
root
บันทึกแพ็กเก็ตเท่านั้น
เราไม่แนะนำให้ใช้ Wireshark ในฐานะผู้ใช้ root
หากเลือก
ให้เปลี่ยนแปลงการตั้งค่าดังนี้
sudo dpkg-reconfigure wireshark-common
หากมีการกำหนดค่า Wireshark เพื่อจำกัดการจับภาพเฉพาะสำหรับสมาชิกของ
wireshark
คุณอาจต้องเพิ่มผู้ใช้ที่ถูกต้องลงในกลุ่ม
sudo usermod -a -G wireshark user
เพิ่มผู้ใช้ที่ถูกต้องลงในกลุ่ม dialout
ด้วย
sudo usermod -a -G dialout user
ปิดและรีสตาร์ท Wireshark เพื่อใช้การตั้งค่ากลุ่มผู้ใช้ใหม่
ข้อผิดพลาดของรูปแบบ Wireshark เมื่อจับภาพบนอินเทอร์เฟซ USB หลายอินเทอร์เฟซบน Windows
นี่เป็นปัญหาที่ทราบแล้ว สำหรับ Wireshark เวอร์ชันเก่าบางเวอร์ชัน ตรวจสอบว่าคุณกำลังใช้ Wireshark 3.0.6 หรือ ในภายหลัง