Wireshark là một công cụ nguồn mở có thể giải mã các giao thức mạng trong ngăn xếp Luồng, chẳng hạn như IEEE 802.15.4, 6LoWPAN, IPv6, MLE (Thiết lập liên kết lưới), UDP và CoAP.
Công cụ sniffer Pyspinel kết nối với một thiết bị Thread NCP hoặc RCP và chuyển đổi thiết bị đó thành một sniffer gói hỗn hợp, tạo luồng pcap (chụp gói) để lưu hoặc chuyển trực tiếp vào Wireshark.
Để sử dụng Wireshark với Pyspinel, hãy tham khảo các đề xuất cài đặt trong bước tiếp theo. Bạn cũng cần định cấu hình Wireshark để hiển thị chính xác các gói Luồng và nhận kết quả đo lường RSSI.
Cài đặt Wireshark
Linux
Mở một cửa sổ dòng lệnh rồi chạy các lệnh sau để tải và cài đặt Wireshark:
sudo add-apt-repository ppa:wireshark-dev/stable
sudo apt-get update
sudo apt-get install wireshark
Bạn nên chạy Wireshark dưới dạng người dùng không phải root
. Để làm như vậy, hãy định cấu hình lại gói:
sudo dpkg-reconfigure wireshark-common
Khi bạn thấy hộp thoại hỏi "Người dùng không phải là người dùng cấp cao có thể ghi lại gói không?", hãy chọn Có, sau đó thêm người dùng wireshark
và cập nhật quyền đối với tệp:
sudo adduser $USER wireshark
sudo chmod +x /usr/bin/dumpcap
macOS và Windows
Tải và cài đặt Wireshark. Để tối ưu hoá tính bảo mật cho hệ điều hành, hãy tham khảo Wireshark — thông tin dành riêng cho nền tảng về các đặc quyền ghi lại.
Định cấu hình giao thức Wireshark
Để định cấu hình giao thức, hãy chọn Preferences... (Lựa chọn ưu tiên) trong Wireshark rồi mở rộng phần Protocols (Giao thức).
6LoWPAN
Chọn 6LoWPAN trong danh sách giao thức rồi xác minh hoặc thay đổi các chế độ cài đặt sau:
- Bỏ đánh dấu Derive ID according to RFC 4944 (Trích xuất mã nhận dạng theo RFC 4944).
- Cập nhật Context 0 (Ngữ cảnh 0) bằng tiền tố Mesh Local (Lưới cục bộ) cho mạng Luồng mục tiêu.
Wireshark sử dụng cấu hình ngữ cảnh để phân tích cú pháp địa chỉ IPv6 được nén và hiển thị chính xác địa chỉ nguồn và đích IPv6.
Để hiển thị địa chỉ cho các tiền tố trên mạng khác được định cấu hình trên cổng, hãy cập nhật các mã nhận dạng ngữ cảnh khác bằng các tiền tố đó.
Để lấy mã nhận dạng ngữ cảnh cho một tiền tố cụ thể trên mạng, hãy xem TLV Dữ liệu mạng luồng trong bất kỳ thông báo phản hồi Dữ liệu MLE nào. Ví dụ:
Context 1: fd00:7d03:7d03:7d03::/64
CoAP
Chọn CoAP trong danh sách giao thức và đặt Cổng UDP CoAP thành 61631. Điều này đảm bảo các thông báo TMF (chẳng hạn như thông báo yêu cầu địa chỉ) sẽ hiển thị.
IEEE 802.15.4
Chọn IEEE 802.15.4 trong danh sách giao thức rồi xác minh hoặc thay đổi các chế độ cài đặt sau:
- Đặt 802.15.4 Ethertype (ở dạng hex) thành "0x809a".
- Đặt Security Suite (Bộ bảo mật) thành "AES-128 Encryption, 32-bit Integrity Protection" (Mã hoá AES-128, Bảo vệ tính toàn vẹn 32 bit).
Nhấp vào nút Chỉnh sửa... bên cạnh Khoá giải mã. Đây là nơi bạn thêm Khoá chính của mạng Thread để giải mã gói.
- Nhấp vào biểu tượng + để thêm Khoá giải mã.
- Nhập Khoá chính của mạng Thread vào cột Khoá giải mã.
- Nhập "1" làm Chỉ mục khoá giải mã.
Chọn Thread hash (Đường dẫn băm luồng) trong hộp danh sách cột Key hash (Đường dẫn băm khoá).
Nhấp vào OK để lưu khoá giải mã.
Chuỗi hội thoại
Chọn Luồng trong danh sách giao thức rồi xác minh hoặc thay đổi các chế độ cài đặt sau:
- Nhập "00000000" cho Bộ đếm trình tự luồng.
- Bỏ đánh dấu Sử dụng mã số định dạng chung (PAN) làm hai octet đầu tiên của khoá chính.
- Đánh dấu vào Tự động lấy bộ đếm trình tự luồng.
Nhấp vào nút OK để lưu mọi thay đổi về giao thức.
Một số lưu lượng truy cập Thread có thể được phân tích dưới dạng giao thức ZigBee. Để hiển thị chính xác hai giao thức này, hãy chỉnh sửa các giao thức đã bật trong Wireshark:
- Trong Wireshark, hãy chuyển đến Analyze (Phân tích), sau đó nhấp vào Enabled Protocols (Giao thức đã bật).
Bỏ chọn các giao thức sau:
- LwMesh
- ZigBee
- ZigBee Green Power
Định cấu hình RSSI Wireshark
Cách hiển thị RSSI trong Wireshark:
- Chọn Preferences... (Lựa chọn ưu tiên) rồi mở rộng phần Protocols (Giao thức), sau đó nhấp vào IEEE 802.15.4.
Đặt FCS Format (Định dạng FCS):
- Nếu TAP IEEE 802.15.4 bị tắt: Siêu dữ liệu TI CC24xx.
- Nếu đã bật TAP IEEE 802.15.4: ITU-T CRC-16. Nếu bạn đang làm theo hướng dẫn Nhận biết gói cho Nordic Semiconductor nRF52840 DK, hãy tham khảo cờ
--tap
để biết thêm thông tin.
Nhấp vào OK để lưu và quay lại trình đơn Lựa chọn ưu tiên.
Trong phần Lựa chọn ưu tiên, hãy chọn Giao diện, rồi chọn Cột.
Thêm mục mới:
- Tiêu đề: RSSI
- Loại: Tuỳ chỉnh
- Trường: wpan.rssi