IT井戸端会議

IT井戸端会議

インフラ、ネットワーク、アプリケーション開発、IT界隈の話等々を東京都千代田区界隈から発信します。

Floodlight にOpen vSwitch を接続する

Floodlight は、Apache License の SDN コントローラです。 今回は、Floodlight を使用して Open vSwitch に接続する手順を簡単に紹介します。

使用環境

今回、Controller および vSwitch は、同一ホスト上で実行することとします。 Host: CentOS 6.3 OpenFlow Controller: Floodlight v0.85 OpenFlow Switch: Open vSwitch v1.7.1

Open vSwitch はあらかじめインストールしておく。

Floodlight インストール

Floodlight のソースコードのチェックアウト~ビルド~起動まで

$ sudo yum -y install ant
$ git clone git://github.com/floodlight/floodlight.git
$ cd floodlight/
$ git checkout v0.85
$ ant
$ cd target/
$ java -jar floodlight.jar

Open vSwitch の設定

Open vSwitch にブリッジを作って Floodlight に接続する。

$ sudo ovs-vsctl add-br br
$ sudo ovs-vsctl set-controller br tcp:127.0.0.1
$ sudo  ovs-vsctl show
184ad395-bff0-4c9f-8e91-5e29d8af97e6
   Bridge "br"
       Controller "tcp:127.0.0.1"
           is_connected: true
       Port "br"
           Interface "br"
               type: internal
   ovs_version: "1.7.1"

## Floodlight REST API による情報取得
Floodlight には情報を取得したり設定するための REST API が用意されてるので、それを使って接続してるスイッチ一覧を取得してみる。
OpenFlow の世界では OpenFlow Switch が DPID (Datapath ID) という単位で識別される。

$ curl http://127.0.0.1:8080/wm/core/controller/switches/json [{"dpid":"00:00:c6:17:2a:8e:f6:4a"}]

ちなみに Open vSwitch のブリッジは、あらかじめ何らかの Flow Rule が設定されていても OpenFlow Controller に接続した時点でまっさらになる模様。

$ sudo ovs-vsctl show 184ad395-bff0-4c9f-8e91-5e29d8af97e6 ovs_version: "1.7.1"

$ sudo ovs-vsctl add-br br

$ sudo ovs-ofctl dump-flows br NXST_FLOW reply (xid=0x4): cookie=0x0, duration=8.276s, table=0, n_packets=0, n_bytes=0, idle_age=8, priority=0 actions=NORMAL $ sudo ovs-vsctl set-controller br tcp:127.0.0.1

$ sudo ovs-ofctl dump-flows br NXST_FLOW reply (xid=0x4):