Hướng dẫn này trình bày cách định cấu hình extcap cho Wireshark để đánh hơi các gói từ mạng Thread.
Để sử dụng Pyspinel để phát hiện gói mà không cần extcap, hãy tham khảo phần Phát hiện gói bằng Pyspinel.
Thiết lập môi trường trình quan sát
Trước khi bắt đầu, hãy hoàn tất các bước sau:
- Xem lại Các yêu cầu về việc đánh hơi gói.
- Cài đặt và định cấu hình Wireshark.
- Cài đặt Pyspinel và các phần phụ thuộc bằng extcap.
Xác minh
Hướng dẫn này đã được xác minh bằng Zolertia Firefly (SoC CC2538 của Texas Instruments) trên các hệ thống máy chủ 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 ROM cho trình quan sát
Hướng dẫn tạo bản dựng và cài đặt ROM sẽ khác nhau tuỳ theo nền tảng.
Để biết hướng dẫn tạo và cài đặt ROM cho CC2538, hãy tham khảo README mẫu CC2538 trên GitHub.
Để biết hướng dẫn chung về bản dựng, hãy tham khảo phần Cách tạo OpenThread.
Sử dụng trình quan sát
Màn hình chụp Wireshark sẽ xuất hiện khi khởi chạy Wireshark lần đầu. Tệp này sẽ liệt kê các giao diện phần cứng được kết nối với trình quan sát OpenThread.
Ghi lại từ một giao diện
Nếu đây là lần đầu tiên bạn sử dụng giao diện, hãy nhấp vào nút Tuỳ chọn ở bên trái giao diện:
- Đặt Kênh thành giá trị mong muốn.
- Kiểm tra IEEE 802.15.4 TAP để đảm bảo rằng thông tin kênh được đưa vào đầu ra pcap và có thể hiển thị trong giao diện người dùng đồ hoạ của Wireshark.
- Đánh dấu vào Save parameters on capture start (Lưu thông số khi bắt đầu quay) để đảm bảo rằng các thông số này được lưu sau khi bắt đầu quay, tránh phải thiết lập lại thông số 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).
- Nhấp vào Bắt đầu.
Nếu các thông số của bạn đã được lưu, hãy bắt đầu phát hiện bằng cách chọn giao diện phần cứng và nhấp vào biểu tượng Wireshark ở trên cùng bên trái.
Ghi lại 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 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 trình quan sát khi thu thập từ nhiều 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 thu thập
- Tên giao diện (frame.interface_name) – Tên giao diện mà Wireshark sử dụng để xác định giao diện thu thập
- Kênh (wpan-tap.ch_num) — Kênh ghi lại IEEE 802.15.4 (dải: 11-26)
Khắc phục sự cố
Trình quét OpenThread không được liệt kê dưới dạng giao diện Wireshark
- Nếu bạn đã cài đặt nhiều trình thông dịch Python, hãy đảm bảo rằng tập lệnh extcap sử dụng trình thông dịch Python 3. Pyspinel không hỗ trợ Python 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ó được tải hay không.
- Kiểm tra để đảm bảo rằng bạn đã cài đặt đúng phần mềm (NCP hoặc RCP) vào phần cứng.
- Xác minh rằng tập lệnh Python nằm trong đường dẫn extcap có thể thực thi được.
- Đối với OS X và Linux:
- Xác minh rằng quyền thực thi có trong tệp
extcap_ot.py
:ls -l extcap_ot.py
- Nếu thiếu quyền thực thi (x), hãy sửa đổi các quyền:
chmod +x extcap_ot.py
- Xác minh giao diện có trong danh sách hay không:
extcap_ot.py --extcap-interfaces
- Xác minh rằng quyền thực thi có trong tệp
- Đối với Windows:
- Xác minh giao diện có trong danh sách hay không:
extcap_ot.bat --extcap-interfaces
- Nếu thao tác này thoát bằng lỗi Python, hãy xác minh phiên bản Python là 3.x:
py -3 --version
- Xác minh giao diện có trong danh sách hay không:
- Đối với OS X và Linux:
Wireshark chỉ cho phép người dùng cấp gốc chụp gói
Trong quá trình 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:
- Tạo nhóm người dùng
wireshark
và cho phép tất cả thành viên của nhóm đó ghi lại các gói. - Chỉ cho phép người dùng
root
chụp gói.
Bạn không nên sử dụng Wireshark làm 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 để hạn chế việc ghi lại đối với các thành viên của nhóm wireshark
, thì bạn có thể cần thêm đúng người dùng vào nhóm:
sudo usermod -a -G wireshark user
Ngoài ra, hãy 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 chế độ cài đặt nhóm người dùng mới.
Lỗi định dạng Wireshark khi ghi lại trên nhiều giao diện USB trên Windows
Đây là vấn đề đã biết đối với một số phiên bản cũ của Wireshark. Đảm bảo bạn đang sử dụng Wireshark 3.0.6 trở lên.