安裝和設定 Wireshark

前往 GitHub 查看原始碼

Wireshark 是一款開放原始碼工具,可解碼 Thread 堆疊中的網路通訊協定,例如 IEEE 802.15.4、6LoWPAN、IPv6、MLE (網狀連結建立)、UDP 和 CoAP。

Pyspinel Sniffer 工具會連線至 Thread NCP 或 RCP 裝置,並轉換成超大封包封包,產生 pcap (封包擷取) 串流,以便直接儲存或直接傳輸至 Wireshark。

如要搭配 Pyspinel 使用 Wireshark,請參閱下一個步驟的安裝建議。您還必須設定 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

當您看到詢問「Can non-superusers can capture 包 s?」時,請選取 [Yes] (是),然後新增 wireshark 使用者並更新檔案權限:

sudo adduser $USER wireshark
sudo chmod +x /usr/bin/dumpcap

macOS 和 Windows

下載並安裝 Wireshark。如要最佳化作業系統的安全性,請參閱 Wireshark - 與擷取權限相關的平台專屬資訊

設定 Wireshark 通訊協定

如要設定通訊協定,請在 Wireshark 中選取 [Preferences...] (偏好設定...),然後展開「Protocols」(通訊協定) 區段。

6LoWPAN

從通訊協定清單中選取 [6LoWPAN],然後驗證或變更下列設定:

  1. 取消勾選 [Derive ID on RFC 4944] (根據 RFC 4944 產生 ID)
  2. Context 0 更新為目標執行緒網路的網格本機前置字串。

OT Sniffer Wireshark 6LoWPAN

Wireshark 採用結構定義設定來剖析壓縮的 IPv6 位址,正確顯示 IPv6 來源和目的地位址。

如要顯示閘道上設定其他網狀前置字串的位址,請使用這些前置字串更新其他結構定義 ID。

如要取得特定網路網格前置字串的結構定義 ID,請在任何 MLE 資料回應訊息中查看執行緒網路資料 TLV。例如:

Context 1: fd00:7d03:7d03:7d03::/64

單次安裝出價

從通訊協定清單中選取 [CoAP],並將 CoAP UDP 通訊埠設為 61631。這可確保顯示 TMF 訊息 (例如地址徵求郵件)。

IEEE 802.15.4

從通訊協定清單中選取 [IEEE 802.15.4],然後驗證或變更下列設定:

  1. 將「802.15.4 Ethertype (十六進位)」設為「0x809a」。
  2. 將「Security Suite」設為 [AES-128 Encryption, 32-te Integrity Protection]。
  3. 按一下「Decryption Keys」(解密金鑰) 旁的 [Edit...] 按鈕,以便為封包解密新增 Thread 網路主金鑰。

    1. 按一下 [+] 新增「解密金鑰」
    2. 在 [解密金鑰] 欄中輸入 Thread 網路主金鑰。
    3. 輸入「1」做為解密金鑰索引
    4. 從 [金鑰雜湊] 欄清單方塊中選取 [執行緒雜湊]。

      OT Sniffer Wireshark IEEE 802.15.4

    5. 按一下「OK」儲存解密金鑰。

Thread

從通訊協定清單中選取 [Thread],然後驗證或變更下列設定:

  • 在「Thread 序列計數器」中輸入「00000000」。
  • 取消勾選 [使用 PAN ID 做為主鍵的前兩個八位元組]
  • 勾選 [自動取得執行緒序列計數器]

按一下 [OK] 按鈕,儲存任何通訊協定變更。

系統可能會將部分 Thread 流量分析為 ZigBee 通訊協定,如要正確顯示這兩個通訊協定,請編輯 Wireshark 中啟用的通訊協定:

  1. 在 Wireshark 中前往「Analyze」(分析),然後按一下「Enabled Protocols」(已啟用通訊協定)
  2. 取消勾選下列通訊協定:

    1. LwMesh
    2. ZigBee
    3. ZigBee 綠色動力

設定 Wireshark RSSI

如何在 Wireshark 中顯示 RSSI:

  1. 選取「Preferences...」(偏好設定...) 並展開「Protocols」(通訊協定) 區段,然後按一下「IEEE 802.15.4」
  2. 設定 FCS 格式

    • 如果 IEEE 802.15.4 TAP 已停用:TI CC24xx 中繼資料
    • 如果啟用了 IEEE 802.15.4 TAP:ITU-T CRC-16。如要追蹤北歐半導體 nRF52840 DK 的封包封裝指南,請參閱 --tap 標記
  3. 按一下「OK」儲存,然後返回「Preferences」(偏好設定) 選單。

  4. 在「偏好設定」中依序選取 [外觀] 和 [欄]

  5. 新增項目:

    • 標題:RSSI
    • 類型:自訂
    • 欄位:wpan.rssi

OT Sniffer Wireshark RSSI