冒頭
逆立ちするOPで一時停止しようとする奴は信用できる。
コホン、さて。
先日、openvswitch-2.0.0のインストールが出来た ので、やっぱり流行に流されてOpenFlow 1.3が動きそうな雰囲気位は味わっておこうと思う。
そこで、可視化部分をGNS3にお願いして、簡単な構成でOpenFlow Controllerを使った通信をしてみようと思う。
構成はこんな感じ。
では、れっつごー。
状況説明
- Router : BSDRP 1.4 on VirtualBox
- node-01 : BSDRP 1.4 on VirtualBox
- node-02 : BSDRP 1.4 on VirtualBox
- ovs-01 : Ubuntu-12.04.3 + openvswitch-2.0.0 on VirtualBox
- SDN_Controller : Ubuntu-12.04.3 + ryu-3.3 on VirtualBox
RouterはVLANインタフェース10と20を切って、node-01とnode-02間をVLAN間ルーティングする感じ。
参考: https://blogs.oracle.com/fatbloke/entry/what_s_new_in_oracle
本記事中では、VirtualBox 4.3.2 + GNS 0.8.6の組み合わせで進行します。
全てのノードは、GNS3でVirtualBox設定画面で Enable console support
と Start in headless mode(without GUI)
にチェックを入れておこう。
コピペするのが面倒だからね!
あとNICの数もとりあえず4個位に増やしておこうね!
BSDRPはほぼ素体のまま。今は最新で1.5が手に入ると思うが今回扱う範囲では同じだろう。
Ubuntuを使用する ovs-01, SDN_Controller の2つは、先ほどチェックしたシリアルサポートが無効になっているので、GNS3で起動する前にVirtualBoxを使ってUbuntuのヘルプページの通りに以下の設定を入れておきます。
https://help.ubuntu.com/community/SerialConsoleHowto
|
|
それでは、GNS3で構成を組んで起動します。
設定
node-01
アドレスとDGWを設定するだけ。
|
|
node-02
アドレスとDGWを設定するだけ。
|
|
Router
VLANインタフェースを2個、IP Routingは最初からONになってる。あと、pingの違いを見分けるために、遅延を20ms程追加しておく。
|
|
SDN_Controller
Ubuntu-12.04.3をインストールしてシリアルサポートの設定を入れた後からスタートですよ、っと。
ryuのインストールもサクッとやりましょう。
後々ryuのバージョンを変えることもあるかもしれないので、virtualenvで環境を分けてしまいましょう。
|
|
ovs-01
前回インストール した後、Serialサポートの設定を入れた後からスタートですよ、っと。
|
|
動作チェック
ovs-01
|
|
node-01
|
|
で、ovs-01のtcpdumpは止めてしまって、フローエントリを確認してみましょう。
|
|
OpenFlow 1.3から、どのエントリにも一致しなかったパケットはpacket-inしないで破棄される、ということなので、一番上の"actions=CONTROLLER:65535"が追加されている。
下の2行は、宛先MACアドレスと出力ポートの関係を設定して、一般的なL2SWの処理をしている。
ちなみに、pingが流れている状態でそのパケットがどういうエントリと関連があったか、ということも見ることが出来る。
|
|
おしまい
とりあえずOpenFlow 1.3での動作もできそうだ、と言うところで一旦おしまい。
今回取得したキャプチャファイルは https://ainoniwa.net/data/pcap/GNS3_openflow13_01/ovs-01_eth1.pcap からダウンロードできたりします。
おわり。