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):