Extcap を使用したパケット スニッフィング

<ph type="x-smartling-placeholder"></ph> GitHub のソースを表示

このガイドでは、Wireshark 用に extcap を構成して、 Thread ネットワーク。

extcap を使用せずにパケット スニッフィングに Pyspinel を使用する方法については、Packet Sniffing with Pyspinel

スニファー環境を設定する

始める前に、次の手順を行います。

確認

このガイドは、Zolertia Firefly(Texas Instruments CC2538 SoC など)。

  • Debian 4.19.37 — Wireshark 3.0.4
  • macOS Mojave 10.14.6(Wireshark 3.0.5)
  • 64 ビット Windows 10 バージョン 17134 - Wireshark 3.0.6

スニファーをビルドしてフラッシュする

ビルドとフラッシュの手順はプラットフォームによって異なります。

CC2538 のビルドとフラッシュの手順については、CC2538 の例をご覧ください。 GitHub の README

一般的なビルド手順については、OpenThread のビルド方法をご覧ください。

スニファーを使用する

Wireshark を初めて起動したときに、Wireshark のキャプチャ画面が表示されます。これは、 OpenThread スニファーに接続されているハードウェア インターフェースをリストします。

単一のインターフェースからのキャプチャ

インターフェースを初めて使用する場合は、[オプション] ボタンをクリックします。 ] をクリックします。

OT Sniffer Wireshark の Extcap キャプチャ

  1. [チャンネル] を目的の値に設定します。
  2. IEEE 802.15.4 TAP でチャンネル情報が pcap 出力に含まれており、Wireshark の GUI に表示できます。
  3. [Save parameters on capture start] チェックボックスをオンにして、これらが キャプチャの開始後にパラメータが自動的に保存されるため、 次回その管理画面を使用するときに再度設定する( チャンネルを変更するなど)。
  4. [開始] をクリックします。

OT Sniffer Wireshark の Extcap オプション

パラメータがすでに保存されている場合は、ハードウェアを選択してスニッフィングを開始します。 左上の Wireshark アイコンをクリックします。

複数のインターフェースからのキャプチャ

キャプチャ画面に表示されるハードウェア インターフェースをすべて選択し、 左上の Wireshark アイコン

複数のソースからキャプチャするときに、これらのフィールドを使用して個々のスニファーを識別します。 インターフェース:

  • インターフェース ID(frame.interface_id)- Wireshark が使用するインターフェース識別子 2 つの画像のキャプチャ インターフェースと
  • インターフェース名(frame.interface_name)- Wireshark を使用してキャプチャ インターフェースを特定する
  • チャネル(wpan-tap.ch_num) - IEEE 802.15.4 キャプチャ チャネル(範囲: 11 ~ 26)

OT スニファー Wireshark の Extcap パケット

トラブルシューティング

OpenThread スニファーが Wireshark インターフェースとして表示されない

  1. 複数の Python インタープリタをインストールしている場合は、Python 3 が extcap スクリプトが使用します。Pyspinel は Python 2 をサポートしていません。
  2. ハードウェアが USB で列挙され、ドライバが読み込まれているかどうかを確認します。
  3. 正しいファームウェア(NCP または RCP)が あります。
  4. extcap パスにある Python スクリプトが実行可能であることを確認します。
    • OS X および Linux の場合: <ph type="x-smartling-placeholder">
        </ph>
      1. extcap_ot.py の実行権限が存在することを確認する ファイル:
        ls -l extcap_ot.py
        
      2. 実行(x)権限がない場合は、権限を変更します。
        chmod +x extcap_ot.py
        
      3. インターフェースが表示されていることを確認します。
        extcap_ot.py --extcap-interfaces
        
    • Windows の場合:
      1. インターフェースが表示されていることを確認します。
        extcap_ot.bat --extcap-interfaces
        
      2. Python エラーで終了する場合は、Python のバージョンが 3.x であることを確認します。
        py -3 --version
        

Wireshark がパケットのキャプチャを root ユーザーに許可する

Wireshark を Ubuntu にインストールするときに、いずれかを選択するよう求められます。 次のオプションから選択できます。

  1. ユーザー グループ「wireshark」を作成し、そのグループのすべてのメンバーに キャプチャできます。
  2. root ユーザーにパケットのキャプチャのみを許可します。

Wireshark を root ユーザーとして使用することはおすすめしません。「 設定を変更します。

sudo dpkg-reconfigure wireshark-common

Wireshark が、キャプチャを wireshark グループへの追加が必要になる場合があります。

sudo usermod -a -G wireshark user

また、dialout グループに適切なユーザーを追加します。

sudo usermod -a -G dialout user

Wireshark を閉じて再起動し、新しいユーザー グループ設定を適用します。

Windows で複数の USB インターフェースでキャプチャする際の Wireshark 形式エラー

これは既知の問題である 古いバージョンの Wireshark が使用していたためです。Wireshark 3.0.6 または 後で説明します