2012年05月15日

#自宅ラック勉強会 2.7 〜Tremaの続きを、始めよう〜

というわけで、先日勉強会を開催しました。
自宅ラック勉強会として、僕の自宅でやりました。
(OpenFlow系は2系らしいので、2.7になりましたw)

「Tremaの続きを、始めよう。」と題して、
#sdnstudy第2回Tremaハンズオン資料をもとに
できなかった部分をやろう、という企画でした。

そもそも僕はTremaのセットアップができなくて、実は全くハンズオンに参加できていなかったんです(泣
しかも勉強会前にTremaセットアップしておくつもりだったのに、何度やってもうまくいかず。。

仕方ないので、構築実績のある人に教えてもらいました^^;

まず、資料にはgemを使ってTremaをインストールする手順になっていますが
世間のブログ見ると、githubからとってくる人が大半のようで
そっちでやってみることにしたのですが、うまくいかない。
やっぱりbuld.rbでこける。

どうやらこれは何らかのライブラリが足りないことに起因しているらしいです。
で、Ubuntu10.04だとうまくいかないけれど、11.10だとうまくいってるよ?
ということで、11.10をインストールしてセットアップしてみたところ・・・

おお、ちゃんとビルドしとるwww

というわけで何とかTremaのセットアップができたわけでした。
ここでやっとスタート地点に立った感じですねw

教えていただいた@PANTOMAIMUさんのブログはこちら
http://ligayasystem.blog92.fc2.com/

以下、コマンドメモ
cd /var/tmp
sudo apt-get install git-core gcc make ruby ruby-dev irb libpcap-dev libsqlite3-dev
git clone git://github.com/trema/trema.git
./trema/build.rb

buildが完了したら、資料にあるmy_simu.confとmy_app.rbを作成して動かしてみる
./trema run -c my_simu.conf my_app.rb

をを、ちゃんと動いた。(この時点では命令を入れてないので、何の反応もありませんがw)

そして資料を進めていく。。(周囲に聞きながら)

途中詰まったところとして、こちらのブログに書いてあったので気づいたこと。
http://ping.hatenablog.com/entry/2012/04/29/191811

features_replyの引数は、datapath_idとmessageを両方渡さないと動かなかったです。
ハンズオンの資料にはdatapath_idの記載が無いのですが、これは
gemインストールのパッケージに何かが欠落してて、datapath_idが無くても動くらしいのです。
githubからbuildした場合はdatapath_idを引数に指定しないと動きません。

なので、githubからbuildした場合はこうなるのが正しい。
def features_reply datapath_id,message

資料で補足しないといけないところはそこらへんくらいで、あとはつつがなく進みました。
リピータハブができましたw

そして、自宅ラック勉強会界隈では某牛ルータをOpenFlowコントローラにするのが流行っておりまして
今回はそれをTremaに認識させて、リピータハブにするところまでできました。

ちなみにリピータハブ同士をつないで通信させようとしたんですが
それは「アップリンクポート作らないと駄目じゃね?」ということで
今回はできませんでした。

というわけで、充実した勉強会になりました。
参加者の皆様、ありがとうございました。
posted by maroon at 23:32| Comment(1) | IT_勉強会 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
当日はお世話になりました :-)
gemパッケージの罠には苦労しましたが、何とかHUBまでいきました。
Tremaの試験用ネットワークでの動作確認を行ったのは、今回が初めてだったのでいい勉強になりました :-)
Posted by PANTOMAIMU at 2012年05月16日 00:14
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: