「Wireshark」はパケットをキャプチャーして解析するツールとしてはメジャーな存在です。今回は原稿執筆時点で最新版となるVersion 2.0.3を利用しますが、このバージョンになってからMQTTを標準で解析できるようになりました(それ以前はMQTTを解析するためには、Luaなどで書かれたアドインのコードが必要でした)。
Wiresharkは公式サイトから、利用するプラットフォームに適合したものをダウンロードして、インストールしてください(本稿ではVersion 2.0.3をWindows 10で動作させています)。
ブローカーをインストールしたPC以外のノード間で、MQTTメッセージをやりとりするためには、ブローカーが動作するPCのTCPポート「1883」を解放する必要があります。
ポート開放は利用する環境によって手順が異なるため、全てを説明することはできませんが、Windowsの場合は「Windows ファイアウォールでポートを開く」が参考となります。セキュリティソフトやルーターも必要に応じて、ポートの状態を確認しましょう。
まずブローカーをインストールしたPCでmosquittoを起動します。起動時には、オプションの -v を指定して、ログを表示するモードで起動します。次にスマホアプリからこのブローカーに接続し、メッセージのやりとりを観測します。それでは早速、Wiresharkでこれらのパケットをキャプチャーしてみましょう。
c:\Program Files (x86)\mosquitto>mosquitto -v 1461811097: mosquitto version 1.4.3 (build date 19/08/2015 13:37:44.73) starting 1461811097: Using default config. 1461811097: Opening ipv6 listen socket on port 1883. 1461811097: Opening ipv4 listen socket on port 1883.
Wiresharkを起動すると以下のような画面が表れますので、キャプチャーしたいインタフェースをダブルクリックします。筆者の環境ではWi-Fiを選択しました。
次の画面はパケットをキャプチャーした画面です。緑になっているテキストボックスでmqttと入力してリターンキーを押すとmaqttプロトコルのパケットのみが表示されます。これでキャプチャー準備はOKです。
Copyright © ITmedia, Inc. All Rights Reserved.