Wireshark 是開放原始碼工具,可解碼 Thread 堆疊中的網路通訊協定,例如 IEEE 802.15.4、6LoWPAN、IPv6、MLE (Mesh Link Establishment)、UDP 和 CoAP。
Pyspinel 嗅探器工具會連線至 Thread NCP 或 RCP 裝置,並將其轉換為混雜封包嗅探器,產生 pcap (封包擷取) 串流,以便儲存或直接管道傳送至 Wireshark。
如要將 Wireshark 與 Pyspinel 搭配使用,請參閱下一個步驟中的安裝建議。您也需要設定 Wireshark,才能正確顯示 Thread 封包並接收 RSSI 測量值。
安裝 Wireshark
Linux
開啟終端機並執行下列指令,下載並安裝 Wireshark:
sudo add-apt-repository ppa:wireshark-dev/stable
sudo apt-get update
sudo apt-get install wireshark
建議您以非 root
使用者的身分執行 Wireshark。如要這麼做,請重新設定套件:
sudo dpkg-reconfigure wireshark-common
當對話方塊詢問「是否應允許非超級使用者擷取封包?」時,請選取「是」,然後新增 wireshark
使用者並更新檔案權限:
sudo adduser $USER wireshark
sudo chmod +x /usr/bin/dumpcap
macOS 和 Windows
下載並安裝 Wireshark。如要最佳化作業系統的安全性,請參閱 Wireshark - 擷取權限的平台專屬資訊。
設定 Wireshark 通訊協定
如要設定通訊協定,請在 Wireshark 中選取「Preferences...」,然後展開「Protocols」部分。
6LoWPAN
從通訊協定清單中選取「6LoWPAN」,然後確認或變更下列設定:
- 取消勾選「根據 RFC 4944 衍生 ID」。
- 使用目標 Thread 網路的 Mesh Local Prefix 更新 Context 0。
Wireshark 會使用情境設定剖析壓縮的 IPv6 位址,並正確顯示 IPv6 來源和目的地位址。
如要顯示閘道上設定的其他同構網前置字串的位址,請使用這些前置字串更新其他 Context ID。
如要取得特定網格上前置字串的內容 ID,請查看任何 MLE 資料回應訊息中的 Thread Network Data TLV。例如:
Context 1: fd00:7d03:7d03:7d03::/64
CoAP
從通訊協定清單中選取「CoAP」,並將「CoAP UDP Port」設為 61631。這樣就能確保顯示 TMF 訊息 (例如地址索引)。
IEEE 802.15.4
從通訊協定清單中選取「IEEE 802.15.4」,然後確認或變更下列設定:
- 將 802.15.4 Ethertype (以十六進制表示) 設為「0x809a」。
- 將「Security Suite」設為「AES-128 Encryption, 32-bit Integrity Protection」。
按一下「Decryption Keys」旁的「Edit...」按鈕,即可新增 Thread 網路主金鑰,用於封包解密。
- 按一下「+」,即可新增解密金鑰。
- 在「Decryption key」欄中輸入 Thread 網路主控鍵。
- 輸入「1」做為解密金鑰索引。
從「Key hash」欄的清單方塊中,選取「Thread hash」。
按一下「確定」即可儲存解密金鑰。
討論串
從通訊協定清單中選取「Thread」,然後確認或變更下列設定:
- 在「Thread sequence counter」中輸入「00000000」。
- 取消勾選「使用 PAN ID 做為主鍵的前兩個八位元組」。
- 勾選「自動取得執行緒序列計數器」。
按一下「OK」按鈕,儲存任何通訊協定變更。
部分 Thread 流量可能會被分析為 ZigBee 通訊協定。如要正確顯示這兩種通訊協定,請在 Wireshark 中編輯已啟用的通訊協定:
- 在 Wireshark 中,前往「Analyze」,然後按一下「Enabled Protocols」。
取消勾選下列通訊協定:
- LwMesh
- ZigBee
- ZigBee Green Power
設定 Wireshark RSSI
如要在 Wireshark 中顯示 RSSI,請按照下列步驟操作:
- 選取「Preferences...」並展開「Protocols」部分,然後按一下「IEEE 802.15.4」。
設定 FCS 格式:
按一下「OK」儲存並返回「Preferences」選單。
在「偏好設定」中,依序選取「外觀」和「欄」。
新增項目:
- 標題:RSSI
- 類型:自訂
- 欄位:wpan.rssi