パケットスニファ・アナライザ

ざまりん

パケットスニファ(パケットアナライザ)は無線通信内容を解析するツールで、以下に示すソフトウェアの設定をすることで無償で利用可能です。

本章では、パケットスニファ(パケットアナライザ)について解説します。パケットスニファ(パケットアナライザ)とはIEEE802.15.4の電波を受信し、パケットを捕捉して表示するツールです。

TWE-LITE(トワイライト)のソフトウエア開発時やシステムの動作解析を行う際に便利です。

ツール上には、時系列に捕捉されたパケットが表示されるため、どの無線モジュールがどの順序で電波を出したかを記録できます。動作分析には必須のツールです。

動作時にはMONOSTICK(モノスティック)などPCとシリアル接続可能なTWEモジュールを一つ使用します。

※ 本書は、Windows のアプリケーション・デバイスドライバのインストール、ネットワーク関連の設定(ウイルス検出ソフト等のファイアウォールの無効化)が可能な方を対象として記載しています。

環境

Windows XP/Vista/7 以降 が動作するPC (64bit 版も一部動作の確認をしております)
1Mbps 通信可能なシリアル接続 (FTDI 社製 FT-232R など)

※ CPU速度やメモリ容量性能は特に指定しませんが、場合によっては動作が困難であることが考えられます。目安として1GHz以上のCPU、512MB(XP)~1GB(Vista)のメモリ容量は必要とお考えください。

※ 本サイトに転載するインスールパッケージには十分な注意を払っておりますが、原本との同一性などの保証は致しかねます。同一性の確認のとれたサイトから入手する事をお勧めいたします。また導入前にウイルスチェックを必ずするようにしてください。

※ 本スニファバイナリ等は開発元から参考用として無保証の原則で供給されています。

※ 通信モジュールを使用し特別な装置やソフトウェアを導入することなく実行する事を目的とした、簡易スニファーである点をご了承ください。

アーキテクチャ

ツール構成

以下のように無線モジュールを通じてダンプされたIEEE802.15.4のパケットを、UDPパケットに変換してWiresharkにてスニファします。

Wireshark(パケットの保存、表示、分析)
      ↑WinPCapを通じたスニファ
MS Loopback adaptor(192.168.100.1,2)
      ↑UDP:49999 パケット
JSniffer Server(UDPパケットに変換)
      ↑UART-シリアル
無線モジュール(802.15.4パケットダンプ)

パケット構造

Wiresharkを用いたスニファでは、JSniffer Server が送出する UDPパケットを受信します。UDPパケット上に JSniffer プロトコルを乗せ、この中に IEEE802.15.4 パケットを包含しています。

Ethernet
  Internet Protocol (IP)
    User DataGram Protocol (UDP)
      Jennic Sniffer Protocol (JSniffer)
        IEEE 802.15.4 Data

インストール(1)

Wiresharkツールのインストール、プラグインの準備を行います。

TWE-SDK 導入時

TWE-SDK の場合、C:\TWESDK\Tools\Sniffer\ に以下が格納済みです。インストール(2) に進んでください。

Wireshark のインストール

  1. Wireshark の入手
    対応する Wireshark は v1.2.X となります。対応のインストールパッケージを入手してください。(本書では v1.2.13 での動作を確認しています。v1.4.X や64bit版Wiresharkは動作しません)
    ※ 現在 v1.2.X 系列は入手できないため、本サイトに WilreShark v1.2.17(win32) を置きます。(※ 本サイトに転載するインスールパッケージには十分な注意を払っておりますが、原本との同一性などの保証は致しかねます。同一性の確認のとれたサイトから入手する事をお勧めいたします。また導入前にウイルスチェックを必ずするようにしてください。)
    参考リンク:source forge, 本家サイト
  2. インストーラを実行
    特に注意する点はありませんが、WinPCap を必ずインストールするようにしてください。
  3. インストーラに WinPcap が含まれていない場合
    WinPcap のサイトより WinPcap 4.1.2 を入手し、インストールしてください。
    ※ 本サイトに WinPCap_4_1_2.exe を置きます(※ 本サイトに転載するインスールパッケージには十分な注意を払っておりますが、原本との同一性などの保証は致しかねます。同一性の確認のとれたサイトから入手する事をお勧めいたします。また導入前にウイルスチェックを必ずするようにしてください。)

追加ファイルのインストール

  1. 追加ファイル(v2.0)をダウンロードしてください。
    ZIPアーカイブを展開し、C:\Jennic\Tools\Wireshark に格納します
C:\Jennic\Tools\Wireshark\Plugins にある DLL ファイルを以下にコピーします。
WindowsXP の場合:
       C:\Documents and Settings\<USER1>\Applicaiton Data\Wireshark\plugins
Windows Vista の場合:
        C:\Users\<USER1>\AppData\Roaming\Wireshark\plugins
※ <USER1> は Windows のユーザフォルダ名。
※ ディレクトリが非可視になっている場合があります。エクスプローラを適切に設定してください。
※ plugins ディレクトリが存在しない場合は、作成してください。

WireShark 1.4.x での動作方法

本節では、WireShark 1.4.x でのインストールの差異情報を解説します。大枠は同じですから 1.2.x でのインストールも参考にしてください。

  1. WireShark のインストール (v1.4.x)
    WireShark 本家サイトより WireShark v1.4.x を入手し、インストールしてください。
    ※ 本サイトに WiresharkPortable-1.4.7paf.exe を置きます。(※ 本サイトに転載するインスールパッケージには十分な注意を払っておりますが、原本との同一性などの保証は致しかねます。同一性の確認のとれたサイトから入手する事をお勧めいたします。また導入前にウイルスチェックを必ずするようにしてください。)
  2. WinPcap のインストール
    WireShark パッケージに WinPCap が含まれていない場合は、
    WinPcap のサイトより WinPcap 4.1.2 を入手し、インストールしてください。
    ※ 本サイトに WinPCap_4_1_2.exe を置きます(※ 本サイトに転載するインスールパッケージには十分な注意を払っておりますが、原本との同一性などの保証は致しかねます。同一性の確認のとれたサイトから入手する事をお勧めいたします。また導入前にウイルスチェックを必ずするようにしてください。)
  3. 追加ファイルv2.2のインストール
    ZIPアーカイブを展開し、C:\Jennic\Tools\Wireshark に格納します。
    ※ 追加ファイルv2.2 は WireShark 1.4.x 専用です。
  4. C:\Jennic\Tools\Wireshark\Plugins にある DLL ファイルを以下にコピーします。
{Wiresharkをインストールしたフォルダ}\WiresharkPortable\App\Wireshark\plugins

インストール(2)

ループバックネットワークアダプタ、無線モジュール の準備を行います。

ループバックネットワークアダプタの構成

  1. Windows の「ハードウェアの追加削除」にて、ネットワークアダプタ⇒Microsoft⇒Microsoft Loopback Adapterを選択しインストールしてください。

(参考:http://support.microsoft.com/kb/236869/ja

Windows7 での手順は以下の通りです。

「ハードウェア追加ウィザード」(スタートメニューの検索入力領域で hdwwiz[Enter])を起動する。

[一覧から選択したハードウェアをインストールする」を選択

ネットワークアダプタ⇒Microsoft⇒Microsoft Loopback Adapter を選択

  1. 登録されたループバックネットワークアダプタ(仮想ハードウェア)の IPv4 設定の設定を行います。IPアドレスを 192.168.100.1 (マスク 255.255.255.0)と設定します。
    ※ 192.168.100.* が利用されている場合は、お使いのPCをネットワークと切り離すか、上記アドレスを192.168.111.1 といった別の未使用アドレスへ変更してください。
    ※ ウイルス検出ソフトウェア等のファイアーウォールによりパケットが破棄されないように設定してください。

    ※ Windows7 でのネットワークアダプタの設定 (参考: http://windows.microsoft.com/ja-jp/windows7/change-tcp-ip-settings)
  2. PCを再起動します。

無線モジュールの準備

  1. PC と TWE モジュールに対して シリアル接続を確認しておいてください(評価開発キット同梱の FTDI 社製 UART-USB ケーブル、TWE-LITE-R など)。
    ※ 1Mbps のシリアル通信を行いますので、FTDI 社 FT232R など対応品を利用してください。
    1. [TWE-SDK] 書き込み方法
  2. スニファバイナリを書き込みます。

[TWESDK] C:\TWESDK\Tools\Sniffer\Sniffer_Binaries

にあるバイナリを書き込みます。

JennicSniffer_TWE-LITE.bin

  1. 無線基板の電源を投入し DIO17 に LEDが接続されていると点滅します。書き込みは成功です。

使用方法

以下のようにPCとセンサー基板を接続します。スニファとサンプルアプリケーションの実行は別々のPCで実行してもかまいません。

[PC]-+-(UART-USBケーブル)--[センサー基板:スニファ用のファームウェアライブラリ]

IEEE802.15.4のチャネル

本スニファでは同時に一つのチャネルのみの観測となり、スニファ起動時にチャネルを指定しなければなりません。スニファ起動前にどのチャネルを観測するのか決めておいてください。

チャネルはTWE用のアプリケーションによって違いますが、例えばTWE-LITE 標準アプリケーションを含むTWE-APPSアプリケーションではインタラクティブモード(リンクは標準アプリケーション)により設定されていますので、事前に設定値を確認してください。

※ 複数チャネルを切り替えて送受信する設定をした場合(TWE-NET チャネルアジリティ) は、同時に複数のチャネルの観察は出来ません。

Jennic Sniffer Server (JSniffer) の起動

  1. スニファ バイナリを書き込んだセンサー基板(UART0)をPCに接続します。この例ではCOM6に接続されているとします。
  2. Windows Vista/7/8 では最初に以下のコマンドを実行しておきます。XXXはループバックアダプタのアドレスが192.168.100.1なら100を192.168.111.1なら111を指定します。
    arp -s 192.168.XXX.2 00-00-00-00-00-01
  3. \TWESDK\Tools\Sniffer\Sniffer_Server にある SnifferServer.exe を起動します(図参照)。
    - 802.15.4 Channel : 観察するチャネルを指定します。(超簡単!TWEアプリの初期値は18ch)
    - Sniffer ID: ユーザ定義IDとしてJsniffer プロトコルに埋め込まれます。空白でもかまいません。
    - Destination IP Address: ループバックアダプタへのIPアドレス。192.168.100.1 なら 100.2、111.1なら111.2 を指定します。
    - Destination UDP Port: UDP で利用するポート(49999:デフォルト)です。変更時には Wireshark のプロトコル設定も必要です。
    - COM Port: センサー基板(スニファ用)のCOMポートです。
    - Baud Rate: COMの通信速度です。 上記では1000000bps で通信するバイナリを書き込んでいますので、1000000:デフォルトを指定します。
    ※ウインドウの画面下が切れることがありますが、サーバーとしての動作に支障はありません。
  4. 上記 SnifferServer の設定が終わった時点で、センサー基板(スニファ用)の電源を投入します。(DIO17 に接続されているLEDが場合) LED が点滅(1秒に1回くらい)します。
  5. Start Server ボタンを押します。 LED が先ほどより高速に点滅(1秒に2回くらい)します。これで SnifferServer とセンサー基板(スニファ用)が接続済みです。

Wiresharkの起動

  1. Wireshark を起動します。
C:\TWESDK\Tools\Sniffer\WiresharkPortable\WiresharkPortable.exe 
  1. キャプチャの開始:メニューより[Capture]>[Interfaces...]を選択し、MS Loopbakc Driver 欄の [Start] ボタンを押します。
    ※ ループバックアダプタには、JSniffer Server 以外のネットワークパケットも届きます。後述するフィルタ機能で除外できます。
    ※ 何も出力されない場合は他のインタフェースにパケットが流れている場合があるため、他のインタフェースも確認してください。その場合、パケットの表示が黒バックに赤文字で表示されることがあります。
  2. キャプチャの終了:メニューより[Capture]>[Interfaces...]を選択し、[Stop]ボタンを押します。
  3. キャプチャしたデータを保存したい場合は、メニューより [File]>[Save As...] を選択してください。
  4. 以下にキャプチャ例を示します。

Wireshark について

Wireshark は GNU GPL (General Public License) により公開されている強力なパケットアナライザです。以下に参考リンクを列挙します。

トラブルシュート