تقصير الحزمة باستخدام Extcap

عرض المصدر على GitHub

يتناول هذا الدليل كيفية تهيئة الامتداد لـ Wireshark لشم الحزم من شبكة Thread.

لاستخدام Pyspinel في استنشاق طرد الحزم بدون استخراج الأحرف الكبيرة، يُرجى الرجوع إلى تقصُّ الحزم باستخدام Pyspinel.

إعداد بيئة الشم

قبل البدء، أكمل الخطوات التالية:

إثبات الملكية

تم التحقق من هذا الدليل باستخدام Zolertia Firefly (Texas Machines CC2538 SoC) على أنظمة الاستضافة التالية:

  • Debian 4.19.37 — Wireshark 3.0.4
  • macOS Mojave 10.14.6 — Wireshark 3.0.5
  • إصدار 17134 لنظام التشغيل Windows 10 بنظام 64 بت — Wireshark 3.0.6

صمِّم الجهاز وامضِه

تختلف إرشادات الإنشاء والوميض باختلاف النظام الأساسي.

للحصول على إرشادات حول إنشاء CC2538 ووميضها، يمكنك الرجوع إلى مثال CC2538 README على GitHub.

للحصول على تعليمات الإصدار العامة، يمكنك الرجوع إلى كيفية إنشاء OpenThread.

استخدام الشمّ

يتم عرض شاشة التقاط Wireshark عند تشغيل Wireshark لأول مرة. من المفترض أن يعرض التطبيق واجهات الأجهزة المتصلة بأداة OpenThread.

التقاط من واجهة واحدة

إذا كانت هذه هي أول مرة تستخدم فيها واجهة، فانقر على الزر خيارات على يمين الواجهة:

التقاط Sniffer Wireshark Extcap

  1. اضبط القناة على القيمة المطلوبة.
  2. يُرجى الاطّلاع على IEEE 802.15.4 TAP للتأكد من تضمين معلومات القناة في إخراج pcap وإمكانية عرضها في واجهة المستخدم التصويرية Wireshark.
  3. حدد حفظ المعلمات عند بدء الالتقاط لضمان حفظ هذه المعلمات بعد بدء الالتقاط، لتجنب تعيينها مرة أخرى في المرة التالية التي تستخدم فيها الواجهة (إلا إذا كنت بحاجة إلى تغيير القناة).
  4. انقر على Start (البدء).

خيارات ملحق Sniffer Wireshark Extcap

إذا كانت المعلمات محفوظة من قبل، فابدأ في الاستنشاق عن طريق تحديد واجهة الجهاز والنقر على رمز Wireshark في أعلى اليمين.

التقاط من واجهات متعددة

حدّد جميع واجهات الأجهزة المدرجة في شاشة الالتقاط وانقر على رمز Wireshark في الجانب العلوي الأيمن.

استخدِم الحقول التالية لتحديد شم المتنفس الفردي عند التقاط صور من واجهات متعددة:

  • Interface ID (frame.interface_id) — معرّف الواجهة الذي تستخدمه Wireshark لتحديد واجهة الالتقاط
  • اسم الواجهة (frame.interface_name) — اسم الواجهة الذي يستخدمه Wireshark لتحديد واجهة الالتقاط
  • القناة (wpan-tap.ch_num) — قناة التقاط IEEE 802.15.4 (النطاق: 11-26)

حِزم الأسلاك الخارجية للغطس الخارجي

تحديد المشاكل وحلّها

لم يتم إدراج واجهة OpenThread كواجهة Wireshark

  1. إذا كان لديك العديد من مترجمي Python، فتأكد من استخدام مترجم Python 3 بواسطة نص extcap. لا يدعم Pyspinel Python 2.
  2. تحقق مما إذا تم تعداد الأجهزة على USB ومن تحميل برامج التشغيل.
  3. تحقق من تثبيت البرامج الثابتة الصحيحة (NCP أو RCP) على الجهاز.
  4. تحقَّق من قابلية تنفيذ نص Python البرمجي في مسار extcap.
    • بالنسبة إلى نظامَي التشغيل OS X وLinux:
      1. تحقَّق من أنّ إذن التنفيذ متوفّر للملف extcap_ot.py:
        ls -l extcap_ot.py
        
      2. إذا كان إذن التنفيذ (x) مفقودًا، عدِّل الأذونات:
        chmod +x extcap_ot.py
        
      3. تحقَّق من أنّ الواجهة مدرَجة:
        extcap_ot.py --extcap-interfaces
        
    • بالنسبة إلى نظام التشغيل Windows:
      1. تحقَّق من أنّ الواجهة مدرَجة:
        extcap_ot.bat --extcap-interfaces
        
      2. إذا تم الخروج من خلال رسالة خطأ Python، تحقَّق من أنّ إصدار Python هو 3.x:
        py -3 --version
        

يسمح Wireshark للمستخدم الجذر فقط بتجميع الحزم

أثناء تثبيت Wireshark على Ubuntu ستتم مطالبة المستخدم بتحديد أحد الخيارات التالية:

  1. أنشئ مجموعة مستخدمي wireshark واسمح لجميع أعضاء هذه المجموعة بالتقاط الحزم.
  2. السماح لمستخدم 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 أو أحدث.