Wireshark のインストールと設定

GitHub でソースを見る

Wireshark は、IEEE 802.15.4、6LoWPAN、IPv6、MLE(メッシュリンクの確立)、UDP、CoAP などの Thread スタック内のネットワーク プロトコルをデコードできるオープンソース ツールです。

Pyspinel スニファツールは、Thread NCP または RCP デバイスに接続し、それを無差別パケット スニファに変換して、Wireshark に保存またはパイプする pcap(パケット キャプチャ)ストリームを生成します。

Pyspinel で Wireshark を使用するには、次のステップのインストール推奨事項をご覧ください。また、Thread パケットを適切に表示し、RSSI 測定値を受信するように Wireshark を構成する必要があります。

Wireshark をインストールする

Linux

ターミナルを開き、次のコマンドを実行して Wireshark をダウンロードしてインストールします。

sudo add-apt-repository ppa:wireshark-dev/stable
sudo apt-get update
sudo apt-get install wireshark

Wireshark は root 以外のユーザーとして実行することをおすすめします。そのためには、パッケージを再構成します。

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] を選択し、次の設定を確認または変更します。

  1. [RFC 4944 に従って ID を取得する] チェックボックスをオフにします。
  2. コンテキスト 0 を、ターゲット Thread ネットワークのメッシュ ローカル プレフィックスに更新します。

OT Sniffer Wireshark 6LoWPAN

Wireshark は、コンテキスト構成を使用して圧縮された IPv6 アドレスを解析し、IPv6 送信元アドレスと宛先アドレスを正しく表示します。

ゲートウェイで構成された他のオンメッシュ プレフィックスのアドレスを表示するには、他のコンテキスト ID をこれらのプレフィックスで更新します。

特定のオンメッシュ プレフィックスのコンテキスト ID を取得するには、任意の MLE データ レスポンス メッセージで Thread ネットワーク データ TLV を表示します。次に例を示します。

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

CoAP

プロトコルのリストから [CoAP] を選択し、[CoAP UDP Port] を 61631 に設定します。これにより、TMF メッセージ(住所の確認など)が表示されます。

IEEE 802.15.4

プロトコルのリストから [IEEE 802.15.4] を選択し、次の設定を確認または変更します。

  1. 802.15.4 Ethertype(16 進数)を「0x809a」に設定します。
  2. [セキュリティ スイート] を [AES-128 暗号化、32 ビット完全性保護] に設定します。
  3. [復号鍵] の横にある [編集...] ボタンをクリックします。ここに、パケット復号用の Thread ネットワーク マスターキーを追加します。

    1. [+] をクリックして復号鍵を追加します。
    2. [復号鍵] 列に Thread ネットワーク マスターキーを入力します。
    3. [復号鍵のインデックス] に「1」を入力します。
    4. [Key hash] 列のリストボックスから [Thread hash] を選択します。

      OT Sniffer Wireshark IEEE 802.15.4

    5. [OK] をクリックして復号鍵を保存します。

スレッド

プロトコルのリストから [Thread] を選択し、次の設定を確認または変更します。

  • [スレッド シーケンス カウンタ] に「00000000」と入力します。
  • [Use PAN ID as first two octets of master key] チェックボックスをオフにします。
  • [Automatically acquire Thread sequence counter] をオンにします。

[OK] ボタンをクリックして、プロトコルの変更を保存します。

一部の Thread トラフィックは ZigBee プロトコルとして分析されることがあります。これらの 2 つのプロトコルを正しく表示するには、Wireshark で有効なプロトコルを編集します。

  1. Wireshark で [Analyze] に移動し、[Enabled Protocols] をクリックします。
  2. 次のプロトコルのチェックボックスをオフにします。

    1. LwMesh
    2. ZigBee
    3. ZigBee Green Power

Wireshark RSSI を構成する

Wireshark で RSSI を表示するには:

  1. [設定...] を選択し、[プロトコル] セクションを開いて、[IEEE 802.15.4] をクリックします。
  2. [FCS 形式] を設定します。

    • IEEE 802.15.4 TAP が無効になっている場合: TI CC24xx メタデータ
    • IEEE 802.15.4 TAP が有効になっている場合: ITU-T CRC-16。Nordic Semiconductor nRF52840 DK のパケット スニッフィング ガイドに沿って作業している場合は、--tap フラグの詳細をご覧ください。
  3. [OK] をクリックして保存し、[設定] メニューに戻ります。

  4. [設定] で [外観]、[表示項目] の順に選択します。

  5. 新しいエントリを追加します。

    • タイトル: RSSI
    • タイプ: カスタム
    • フィールド: wpan.rssi

OT スニファ Wireshark RSSI