vSwitchインストールやラーニングスイッチの機能検証等、先日の組み込みシステム開発技術展での出展内容についてご紹介してきました。今回は、それらで使用したOpenFlowの通信をより視覚的に確認できる様にしてみましょう。上記の図を覚えておられますでしょうか。~Tremaリピーターハブ編」でご紹介した、Trema内に作成した仮想ネットワークです。詳細についてはリンク先記事をご参照下さい。これから同様の構成でvhost間のping疎通を行い、Wiresharkを使ってOpenFlowコントローラおよびOpenFlowスイッチの間で行われる通信をGUI上で確認できるか、挑戦してみようと思います。Wiresharkは内部動作および関連情報を可視化するツールですが、WiresharkにイベントコネクタとTremaプラグインをビルドする事で、Trema内部にあるTremasharkという機能を使用することが可能になります。Communication)イベントやメッセージ内容をWiresharkのユーザインターフェースで確認できる様になり、例えばOpenFlowの通信中に原因不明のバグ等が発生した際に、メッセージの中身まで視覚的に確認できるデバッカーとしての機能が果たせるのです。Tremasharkを使ってみよう!(1)Wiresharkのインストールこれまで同様、以下環境に対しWiresharkのインストールを行っていきます。(ver4.3.26)・OpenFlowコントローラ:Trema(ver0.4.6)インストールの開始に先立ち、システムにインストールされているパッケージリストを更新しておきましょう。updateTremasharkのユーザインターフェースにはWiresharkを利用するため、まずはWiresharkのパッケージがインストール済みか確認します。wireshark未インストールであれば、Wiresharkのパッケージをインストールした上で、正常にインストールされていることを確認します。Tremaプラグインのインストール次に、Tremaプラグインをインストールするために必要なパッケージやWiresharkのソースをインストールしましょう。下図の様にwireshark-1.6.7というディレクトリが作成された事を確認できるかと思います。-lソースをコンパイルするために必要なパッケージのインストールを行います。wiresharkTremaプラグインをビルドするために必要なシンボリックリンクを設定した上で、結果を確認します。-lカレントディレクトリにあるconfigureスクリプトを実行し、Tremaプラグインをビルドします。makeWiresharkプラグインのディレクトリを作成し、そこにTremaプラグイン等をコピーした上で、結果を確認します。OpenFlowプラグインのインストールTremaのモジュール間で交換されるOpenFlowメッセージをWireshark上で解析/表示するためには、Tremaプラグインに加えてOpenFlowプラグインも必要になります。ホームディレクトリーに戻り最新のOpenFlowプラグインのソースをダウンロードします。git://gitosis.stanford.edu/openflow.gitTrema内部のパッチファイルをOpenFlowプラグインに当て、プログラムの一部を修正します。/var/lib/gems/1.9.1/gems/trema-0.4.6/vendor/packet-openflow.diffOpenFlowプラグインをソースからコンパイルし、結果を確認します。openflow/packet-openflow.soOpenFlowプラグインをWiresharkのプラグインディレクトリにコピーした上で、確認をします。Tremasharkの起動リピーターハブと仮想ホストを立ち上げる際に「-s」オプションを指定することで、Wiresharkが起動しGUI画面が表示されます。Tremasharkのイベントコレクタを有効化するkillコマンドを使用し、イベントを収集したいプロセスに「USR2」シグナルを送ります。今回はリピーターハブとスイッチデーモンの間のイベントを見るため、下記ファイルからプロセスID(PID)を取得します。Tremashark上で疎通確認するではvhost1からvhost2に対して2回pingを飛ばしてみます。下図の様に、OpenFlowコントローラおよびOpenFlowスイッチの間で実際に行われる通信イベントをWiresharkのGUIで観測できました。停止ボタンを押せば、Wireshark上の動作が停止します。-c2ログを保存する際は、保存先ディレクトリーとファイル名を指定し、下部にある保存ボタンをクリックします。この際にファイル名の識別子を「cap」にしておけば、Wiresharkとの関連付けが自動的に行われます。killallコマンドで全てのTremaプロセスを停止させておきましょう。killallおわりにここまでTremasharkのインストールおよび動作確認について扱いました。Tremasharkを活用することで、Trema内部のパケットの流れやその中身まで確認する事が可能になります。次回記事では、今回のリピーターハブ(rhub.rb)に加えラーニングスイッチ(learning-switch.rb)に対してもTremasharkでパケットキャプチャを行い、両者の通信動作について、比較をしてみたいと思います。GUIを通じてより視覚的にOpenFlowの通信を理解して頂けるかと思います。今回も最後までお付き合いを頂き、ありがとうございます。9新年あけましておめでとうございます。3何故、それが読まれたか~上半期・エンジニアブログ閲覧数ランキング~2013.6.12「何」を知っているかではなく、「誰」が知っているか2013.5.28戦後、人間尊重の信念を貫きとおした1人の経営者がいた!2013.5.24健康な心が、健康な会社を作る。2iPhone5発売!LTE普及には切実な背景が...2012.9.12「だれを選ぶか」をまず決めて、その後に「何をすべきか」を決める。2012.8.17会社を回すのに大事な3つの感覚。7プロジェクトはたいてい失敗に終わるんです。6月刊『ニュートップリーダー』に記事掲載&"想いを語る夕べ"体験会やります!2012.1.31【第4回】想いを語る夕べ~フォロー編~2012.1.23タニタの社員食堂は"トップの想い"から生まれた!?2012.1.13【第3回】想いを語る夕べ~実施編~2011.12.27オフィスで簡単エクササイズ!2011.12.13【第2回】想いを語る夕べ~準備編~2011.11.24【第1回】想いを語る夕べ~誕生編~2011.11.17「責任感だけで仕事をしていた・・・。