Phát hiện gói tin bằng Extcap

Xem nguồn trên GitHub

Hướng dẫn này đề cập đến cách định cấu hình extcap cho Wireshark để phân tích các gói từ một Mạng Thread.

Để dùng Pyspinel để kiểm tra gói tin mà không cần có extcap, hãy tham khảo phần Dùng Packet Sniffing bằng Pyspinel.

Thiết lập môi trường theo dõi

Trước khi bắt đầu, hãy hoàn thành các bước sau:

Xác minh

Hướng dẫn này đã được xác minh bằng Zolertia Firefly (Texas Instruments CC2538) SoC) trên các hệ thống lưu trữ sau:

  • Debian 4.19.37 — Wireshark 3.0.4
  • macOS Mojave 10.14.6 – Wireshark 3.0.5
  • Windows 10 64 bit phiên bản 17134 — Wireshark 3.0.6

Tạo và cài đặt ứng dụng sniffer

Hướng dẫn tạo và cài đặt ROM sẽ khác nhau tuỳ theo nền tảng.

Để biết hướng dẫn về cách tạo và cài đặt ROM CC2538, hãy tham khảo Ví dụ về CC2538 README trên GitHub.

Để biết hướng dẫn chung về bản dựng, hãy tham khảo Cách xây dựng OpenThread.

Sử dụng trình theo dõi

Màn hình chụp Wireshark được hiển thị khi Wireshark được khởi chạy lần đầu tiên. Nó phải liệt kê các giao diện phần cứng được kết nối với một trình theo dõi OpenThread.

Chụp từ một giao diện

Nếu đây là lần đầu tiên bạn sử dụng một giao diện, hãy nhấp vào nút Tùy chọn ở bên trái giao diện:

Chụp ngoại tuyến OT Sniffer Wireshark

  1. Đặt Channel thành giá trị mong muốn.
  2. Kiểm tra IEEE 802.15.4 TAP để đảm bảo rằng thông tin kênh có trong đầu ra pcap và có thể hiển thị trong GUI Wireshark.
  3. Chọn Lưu thông số khi bắt đầu chụp để đảm bảo rằng những thông số này sẽ được lưu sau khi bắt đầu chụp ảnh để tránh phải đặt lại cài đặt này vào lần tiếp theo bạn sử dụng giao diện (trừ phi bạn cần thay đổi kênh).
  4. Nhấp vào Bắt đầu.

Các lựa chọn hình ảnh mở rộng OT Sniffer Wireshark

Nếu các thông số của bạn đã được lưu, hãy bắt đầu kiểm tra bằng cách chọn phần cứng và nhấp vào biểu tượng Wireshark ở trên cùng bên trái.

Chụp từ nhiều giao diện

Chọn tất cả giao diện phần cứng được liệt kê trong màn hình chụp ảnh và nhấp vào Biểu tượng Wireshark ở trên cùng bên trái.

Sử dụng các trường này để xác định từng thiết bị theo dõi khi chụp từ nhiều thiết bị giao diện:

  • Mã giao diện (frame.Interface_id) — Giá trị nhận dạng giao diện mà Wireshark sử dụng để xác định giao diện chụp
  • Tên giao diện (frame.Interface_name) — Tên giao diện được sử dụng Wireshark để xác định giao diện chụp
  • Kênh (wpan-tap.ch_num) – Kênh chụp IEEE 802.15.4 (phạm vi: 11 – 26)

Gói OT Sniffer Wireshark Extcap

Khắc phục sự cố

Trình theo dõi OpenThread không được liệt kê là giao diện Wireshark

  1. Nếu bạn đã cài đặt nhiều trình thông dịch Python, hãy đảm bảo rằng Python 3 được sử dụng bởi tập lệnh extcap. Pyspinel không hỗ trợ Python 2.
  2. Kiểm tra xem phần cứng có được liệt kê trên USB và trình điều khiển đã được tải hay chưa.
  3. Kiểm tra xem bạn đã cài đặt đúng chương trình cơ sở (NCP hoặc RCP) vào phần cứng.
  4. Xác minh rằng tập lệnh Python nằm trong đường dẫn extcap có thể thực thi.
    • Đối với OS X và Linux:
      1. Xác minh rằng extcap_ot.py đã có quyền thực thi tệp:
        ls -l extcap_ot.py
        
      2. Nếu thiếu quyền thực thi (x), hãy sửa đổi các quyền đó:
        chmod +x extcap_ot.py
        
      3. Kiểm tra để đảm bảo giao diện được liệt kê:
        extcap_ot.py --extcap-interfaces
        
    • Đối với Windows:
      1. Kiểm tra để đảm bảo giao diện được liệt kê:
        extcap_ot.bat --extcap-interfaces
        
      2. Nếu phiên bản Python này thoát ra và gặp lỗi Python, hãy xác minh rằng phiên bản Python là 3.x:
        py -3 --version
        

Wireshark chỉ cho phép người dùng gốc thu thập các gói

Trong khi cài đặt Wireshark trên Ubuntu, người dùng sẽ được nhắc chọn một trong các tuỳ chọn sau:

  1. Tạo nhóm người dùng wireshark và cho phép tất cả thành viên của nhóm đó gói chụp.
  2. Chỉ cho phép người dùng root thu thập các gói dữ liệu.

Bạn không nên sử dụng Wireshark cho người dùng root. Nếu bạn chọn tuỳ chọn đó, hãy thay đổi chế độ cài đặt:

sudo dpkg-reconfigure wireshark-common

Nếu Wireshark được định cấu hình để chỉ cho phép các thành viên của wireshark nhóm, bạn có thể cần thêm đúng người dùng vào nhóm:

sudo usermod -a -G wireshark user

Đồng thời thêm đúng người dùng vào nhóm dialout:

sudo usermod -a -G dialout user

Đóng và khởi động lại Wireshark để áp dụng cài đặt nhóm người dùng mới.

Lỗi định dạng Wireshark khi chụp trên nhiều giao diện USB trên Windows

Đây là vấn đề đã biết cho một số phiên bản cũ của Wireshark. Hãy chắc chắn rằng bạn đang sử dụng Wireshark 3.0.6 hoặc sau.