最近NWインフラではOpenFlowというジャンルが熱いです。
そして自分も仕事で扱うことになりました。
右も左も分からないまま突っ込むのは危険だと思ったので予習がてら
家でネットをだらだら見てると、なにやらすごいことになってました。
なんと!家庭用のBUFFALOのブロードバンドルーター、WHR-G301Nを
OpenFlow対応スイッチにしてしまえるんだそうです!!
↓おそらく日本最大級の有志コミュニティ。はてはインターロップにまで出展
OpenFlow in theBox
↓BHR-4RVに汎用のOpenFlow 1.0 for OpenWRTファームをぶっこむ猛者
バッファローのクソ安いルータにOpenFlow for OpenWrtを突っ込んでOpenflowで遊びたい(未達) 1日目
~味を占めたやる夫、データセンターの提案にて~
A社 | B社 | 当社 | |
---|---|---|---|
機器台数 | 30 | 28 | 55 |
価格 | 1200万円 | 1400万円 | 15万円 |
家でネットワークの勉強をするとなるとそれなりの投資が必要でしたが、
これから自宅でもがりがり勉強ができそうですね。ありがたや。
自分もやってみたので手順なんかを書いてみます。
ちなみにOpenFlowとはなんぞや、という人にはこの辺の資料が分かりやすいです。
SDN時代の開発よもやま話 – OpenFlowとTrema
OpenFlow フレームワークの選びかた
コントローラはいくつか種類が出ているものの、現状Tremaの一人勝ちのようなので
自分もTremaをインストールしてみました。
■1.コントローラの準備
■2.スイッチの準備(BUFFALO WHR-G301N)
■3.動作確認
■4.BUFFALO WHR-G301Nのファームを戻す
■1.コントローラの準備
仮想でもなんでもいいのでLinuxを用意しましょう。
最近はみなさんUbuntuでやってるみたいなので、自分もVirtualBoxにUbuntuパターンでやってみました。
1.インストールしたらIPを固定にする。
2.面倒なのでrootでログインできるようにする。
sudo su - (ユーザパスワード入力) passwd (rootパスワード入力)
3.コピペができるようにSSHログインができるようにする。
(参照:Ubuntu 13.04をインストールして、sshでログインできるようにしてみた)
4.RubyとTremaをインストールする。上から順番に流せばOK。
# apt-get update # apt-get install git gcc make ruby rubygems ruby-dev libpcap-dev libsqlite3-dev libglib2.0-dev # git clone git://github.com/trema/trema.git # gem install trema # cd /var/lib/gems/1.9.1/gems/trema-0.4.6(バージョンが違ったら読み替える。ここがTremaのホームになる) # bundle install # git init # ./build.rb
5.Tremaプロセスを一度止める。
# cd /var/lib/gems/1.9.1/gems/trema-0.4.6 # trema killall
6.Tremaプロセスを立ち上げる。
# ./trema run ./src/examples/learning_switch/learning-switch.rb -d
src/exampleの中にはサンプル構成ファイルが入っている。learning-switchは
通常のL2SWになるらしい。書式は ./trema run [Ruby設定ファイル] -d になる。
Rubyの中身を書き換えた時は、プロセスを一度殺し、再度立ち上げる。
これでコントローラの準備は完了。続いてBUFFAOのセットアップです。