WiresharkにOpenFlowプラグインのインストール
以下にUbuntuでWireshark上にOpenFlowのプロトコルを解析するためのプラグインのインストール方法をまとめました。
ただしOpenFlowのバージョン1.0だとうまく表示がされませんでした。バージョン1.2および1.3では正しく表示がされていました。
Wiresharkのインストール
ソースコードからインストールする必要があります。
ダウンロード先は http://wiresharkdownloads.riverbed.com/wireshark/srcから選択してください。ここでは1.10.3ですが今はより新しいバージョンのものが使用可能になっています。
# apt-get install bison flex libgtk2.0-dev libpcap-dev gcc libmgl-qt5 # wget http://wiresharkdownloads.riverbed.com/wireshark/src/wireshark-1.10.3.tar.bz2 # tar xvf wireshark-1.10.3.tar.bz2 # cd wireshark-1.10.3 # ./configure # make # make install
OpenFlow用のPluginのインストール
下のexportコマンドを参照にして、環境変数にダウンロードしたWiresharkのディレクトリへのパスを指定してください。
ソースコードの取得とインストール
# apt-get install git scons # git clone https://github.com/CPqD/ofdissector # cd ofdissector/src # export WIRESHARK=/home/pide/wireshark-1.10.3 # scons install
インストール失敗
以下のようなメッセージが出た場合は、ソースコードを修正します。
openflow-common.cpp: In function 'void proto_reg_handoff_openflow()': openflow-common.cpp:59:60: error: 'dissector_add' was not declared in this scope scons: *** [openflow-common.os] Error 1 scons: building terminated because of errors.
openflow-common.cppの59行目と60行目のaddをadd_uintに書き換えます。
「unit」ではなくて、「uint」であることに気を付けてください。
dissector_add_uint("tcp.port", OFP_TCP_PORT, openflow_handle); dissector_add_uint("tcp.port", 43984, openflow_handle);
参考ページ
http://momijiame.tumblr.com/post/59851475180/cpqd-ofdissector-openflow-1-3のサイトを参考にさせていただきました。ありがとうございます。