パケットスニファ(パケットアナライザ)
パケットスニファ(パケットアナライザ)は無線通信内容を解析するツールです。TWELITE-トワイライト搭載製品の開発を円滑に行っていただくために無償でご提供しております。
本章では、パケットスニファ(パケットアナライザ)について解説します。パケットスニファ(パケットアナライザ)とはIEEE802.15.4の電波を受信し、パケットを捕捉して表示するツールです。
TWELITE-トワイライトのソフトウエア開発時やシステムの動作解析を行う際にお使いください。
ツール上には、時系列に捕捉されたパケットが表示されるため、どの無線モジュールがどの順序で電波を出したかを記録できます。動作分析には必須のツールです。
動作時には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ツールのインストール、プラグインの準備を行います。
TWELITE SDK 導入時
TWELITE SDK の場合、C:\TWESDK\Tools\Sniffer\ に以下が格納済みです。インストール(2) に進んでください。
- スニファ実行バイナリ(Sniffer_Binaries: TWELITE用)
- スニファサーバ(Sniffer_Server: Windows用)
- Wireshark portable (WiresharkPortable: Windows用、プラグイン導入済み)
※ WinPCap をあらかじめインストールしてください。
Wireshark のインストール
- Wireshark の入手
対応する Wireshark は v1.2.X となります。対応のインストールパッケージを入手してください。(本書では v1.2.13 での動作を確認しています。v1.4.X や64bit版Wiresharkは動作しません)
※ 現在 v1.2.X 系列は入手できないため、本サイトに WilreShark v1.2.17(win32) を置きます。(※ 本サイトに転載するインスールパッケージには十分な注意を払っておりますが、原本との同一性などの保証は致しかねます。同一性の確認のとれたサイトから入手する事をお勧めいたします。また導入前にウイルスチェックを必ずするようにしてください。)
参考リンク:source forge, 本家サイト - インストーラを実行
特に注意する点はありませんが、WinPCap を必ずインストールするようにしてください。 - インストーラに WinPcap が含まれていない場合
WinPcap のサイトより WinPcap 4.1.2 を入手し、インストールしてください。
※ 本サイトに WinPCap_4_1_2.exe を置きます(※ 本サイトに転載するインスールパッケージには十分な注意を払っておりますが、原本との同一性などの保証は致しかねます。同一性の確認のとれたサイトから入手する事をお勧めいたします。また導入前にウイルスチェックを必ずするようにしてください。)
追加ファイルのインストール
- 追加ファイル(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 でのインストールも参考にしてください。
- WireShark のインストール (v1.4.x)
WireShark 本家サイトより WireShark v1.4.x を入手し、インストールしてください。
※ 本サイトに WiresharkPortable-1.4.7paf.exe を置きます。(※ 本サイトに転載するインスールパッケージには十分な注意を払っておりますが、原本との同一性などの保証は致しかねます。同一性の確認のとれたサイトから入手する事をお勧めいたします。また導入前にウイルスチェックを必ずするようにしてください。) - WinPcap のインストール
WireShark パッケージに WinPCap が含まれていない場合は、
WinPcap のサイトより WinPcap 4.1.2 を入手し、インストールしてください。
※ 本サイトに WinPCap_4_1_2.exe を置きます(※ 本サイトに転載するインスールパッケージには十分な注意を払っておりますが、原本との同一性などの保証は致しかねます。同一性の確認のとれたサイトから入手する事をお勧めいたします。また導入前にウイルスチェックを必ずするようにしてください。) - 追加ファイルv2.2のインストール
ZIPアーカイブを展開し、C:\Jennic\Tools\Wireshark に格納します。
※ 追加ファイルv2.2 は WireShark 1.4.x 専用です。 - C:\Jennic\Tools\Wireshark\Plugins にある DLL ファイルを以下にコピーします。
{Wiresharkをインストールしたフォルダ}\WiresharkPortable\App\Wireshark\plugins
インストール(2)
ループバックネットワークアダプタ、無線モジュール の準備を行います。
ループバックネットワークアダプタの構成
- Windows の「ハードウェアの追加削除」にて、ネットワークアダプタ⇒Microsoft⇒Microsoft Loopback Adapterを選択しインストールしてください。
(参考:http://support.microsoft.com/kb/236869/ja)
Windows7 での手順は以下の通りです。
「ハードウェア追加ウィザード」(スタートメニューの検索入力領域で hdwwiz[Enter])を起動する。
[一覧から選択したハードウェアをインストールする」を選択
ネットワークアダプタ⇒Microsoft⇒Microsoft Loopback Adapter を選択
- 登録されたループバックネットワークアダプタ(仮想ハードウェア)の 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) - PCを再起動します。
無線モジュールの準備
- PC と TWE モジュールに対して シリアル接続を確認しておいてください FTDI 社製 UART-USB ケーブル、TWE-LITE-R など)。
※ 1Mbps のシリアル通信を行いますので、FTDI 社 FT232R など対応品を利用してください。 - スニファバイナリを書き込みます。
[TWESDK] C:\TWESDK\Tools\Sniffer\Sniffer_Binaries
にあるバイナリを書き込みます。
JennicSniffer_TWELITE.bin
使用方法
以下のようにPCとセンサー基板を接続します。スニファとサンプルアプリケーションの実行は別々のPCで実行してもかまいません。
[PC]-+-(UART-USBケーブル)--[センサー基板:スニファ用のファームウェアライブラリ]
IEEE802.15.4のチャネル
本スニファでは同時に一つのチャネルのみの観測となり、スニファ起動時にチャネルを指定しなければなりません。スニファ起動前にどのチャネルを観測するのか決めておいてください。
チャネルはTWELITE用のアプリケーションによって違いますが、例えばTWELITE 標準アプリケーションを含むTWELITE APPS - トワイライトアプリではインタラクティブモード(リンクは標準アプリケーション)により設定されていますので、事前に設定値を確認してください。
※ 複数チャネルを切り替えて送受信する設定をした場合(TWELITE NET チャネルアジリティ) は、同時に複数のチャネルの観察は出来ません。
Jennic Sniffer Server (JSniffer) の起動

- スニファ バイナリを書き込んだセンサー基板(UART0)をPCに接続します。この例ではCOM6に接続されているとします。
- 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
- TWESDK\Tools\Sniffer\Sniffer_Server にある SnifferServer.exe を起動します(図参照)。
- 802.15.4 Channel : 観察するチャネルを指定します。
- 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:デフォルトを指定します。
※ウインドウの画面下が切れることがありますが、サーバーとしての動作に支障はありません。 - 上記 SnifferServer の設定が終わった時点で、センサー基板(スニファ用)の電源を投入します。(DIO17 に接続されているLEDが場合) LED が点滅(1秒に1回くらい)します。
- Start Server ボタンを押します。 LED が先ほどより高速に点滅(1秒に2回くらい)します。これで SnifferServer とセンサー基板(スニファ用)が接続済みです。
Wiresharkの起動
- Wireshark を起動します。
C:\TWESDK\Tools\Sniffer\WiresharkPortable\WiresharkPortable.exe
- キャプチャの開始:メニューより[Capture][Interfaces...]を選択し、MS Loopbakc Driver 欄の [Start] ボタンを押します。
※ ループバックアダプタには、JSniffer Server 以外のネットワークパケットも届きます。後述するフィルタ機能で除外できます。
※ 何も出力されない場合は他のインタフェースにパケットが流れている場合があるため、他のインタフェースも確認してください。その場合、パケットの表示が黒バックに赤文字で表示されることがあります。 - キャプチャの終了:メニューより[Capture][Interfaces...]を選択し、[Stop]ボタンを押します。
- キャプチャしたデータを保存したい場合は、メニューより [File][Save As...] を選択してください。
- 以下にキャプチャ例を示します。
Wireshark について
- フィルタ機能:画面のツールバーにある Filter に jsniffer を指定すれば、関係ないネットワークパケットを除外できます。
- プロトコルの有効・無効: メニューより [Analyze][Enable Protocols...] を選択し、現在ツールにより解釈しているプロトコルを選択できます。通常は変更の必要はありません。
※ 関連プロトコルとして IEEE802.15.4*, JenNet, JSNIFFER, ZigBee* となります。
※ 一覧にプロトコルが表示されない場合は上述の「追加ファイルのインストール」を参照ください。 - プロトコルの設定: メニューより [Edit][Preferences...]を表示します。通常は変更の必要はありません。
※ JSniffer のUDPポート番号を変更する。
Wireshark は GNU GPL (General Public License) により公開されている強力なパケットアナライザです。以下に参考リンクを列挙します。
トラブルシュート
- 全くキャプチャが表示されない。
- 送信チャネルを確認する。事前にチャネルが解っているアプリケーションで動作確認します。
- 192.168.100.x のローカルアドレスが使用されている。ループバックアダプタを別のアドレスに構成してください。(方法は上述「Jennic Sniffer Server (JSniffer) の起動」の節を参照)
- スニファサーバ, WireShark を管理者権限で動作させてみる。
- 別のアダプタ(Ethernet など)を見てみる。そちらにパケットが流れている場合が有ります。他のインタフェースも確認してみてください。(解決が困難な場合もありますが、他のインタフェースでキャプチャした上、jsniffer プロトコルをフィルタして閲覧します)
- 802.15.4 としてのパケットが見えない。無線電波を送ると何か表示されるが・・・
- 追加ファイルの DLL を正しく格納されていないようです。再度、インストール(上述)を確認してください。
- Wireshark 起動時に、DLL が読み込めないといったエラーが報告される。
- この状態では 802.15.4 のパケット分析もうまくいかないはずです。Wireshark と DLL のバージョンが整合していないことが考えられます。再度、インストール(上述)を確認してください。
- パケットにエラーがあると表示される。
- TCP/IP (UDP) パケットとして一部エラーが報告される場合がありますが、気にする必要はありません。
- 自分で設計したパケット内容が ZigBee やら 6LoWPAN などに解析されて煩わしい。
- プロトコルの有効・無効: メニューより [Analyze][Enable Protocols...] を選択し、現在ツールにより解釈しているプロトコルを選択します。不要なものを削除してください。
- TWELITE NET や自身で作製したアプリケーションのパケットを解析したい。
- 対応プラグインの開発が必要になります。