2011年8月2日火曜日

Open vSwitchを使ってOpenFlowコントローラに接続

Open vSwitchからOpenFlowコントローラに接続するには、まず、接続したい仮想スイッチを把握する。
# ovs-vsctl list-br
このコマンドで、今動作している仮想スイッチ(BRIDGE)の一覧が表示される。
各仮想スイッチに繋がっている仮想マシンや物理ポートを知りたい場合には以下のコマンドを実行する。
# ovs-vsctl list-ports BRIDGE

次に、OpenFlowコントローラに接続するために、接続したい仮想スイッチ(BRDGE)を引数に以下のコマンドを実行する。
# ovs-vsctl set-controller BRIDGE tcp:IPADDRESS
ちなみに、切断したい場合は
# ovs-vsctl del-controller BRIDGE
意外にすぐに情報が見つからなかったので、メモ。

接続できた場合でも、Open vSwitch側では特に何も表示されないので、接続できたか心配になる。
/var/log/openvswitch/ovs-vswitchd.logで、成功か失敗かを確認できる。
また、OpenFlowコントローラに接続してしまうと、その仮想マシン経由の通信は一度全て遮断される。これは、仮想スイッチのパケット転送制御の権限が全てOpenFlowコントローラに移譲されるため、OpenFlowコントローラから指定されなければすべてのパケットが破棄されてしまうからである。

(8月9日追記)
ちなみに、OpenFlowコントローラとの切断がきれると、普通のOpen vSwitchとして動作する。