⏱この記事を読むのに必要な時間は約 3 分です。
ゴールデンウィーク2日目はOpenFlow勉強会その2に参加しました。
当日のセッションや各種資料はATNDに掲載されています。
- –
今回、個人的に興味深かったのはTremaのハンズオン。
なんと、自分でOpenFlow Controllerを作れてしまいます。
当日はいくつかのサンプルコードをもとにOpenFlowコントローラを設定し、OpenFlowスイッチおよび接続するホストはTremaの持つシミュレータを使って動作をチェックする、といった内容でした。
ここで試したくなるのが、シミュレータではないOpenFlowスイッチでの動作。現在個人で用意できそうなOpenFlowスイッチと言えば、Open vSwitchかSRCHACK.orgさんのBuffalo無線LANルータのファーム差し替えによるものの、どちらか2択。
自宅ラック勉強会のおかげで私は後者も持っているのですが、中の人としてはCitrix XenServer 6.0から標準となった、Open vSwitchを使いたい!
もちろん、OSS XenやKVMが使えるLinuxディストリビューションで、Open vSwitchを導入可能なものもありますが、インストール?初期セットアップが10分ちょっとで終わるXenServerのほうが遥かに楽です。
なお、本来Citrix XenServerには有償版の機能として vSwitch ControllerというNOXベースのOpenFlowコントローラが用意されていますが、無償版でもOpen vSwitchそのものは動いているので、これをTremaに接続してみよう…ということで、要するにCitrix XenServerの機能というよりも、純粋にOpen vSwitchの機能を使ってみました。
実際どうやるのかというと、とりあえず接続のチェック方法は以下のとおり
【前提】
1.ATNDからリンクされているOpenFlow勉強会で使ったハンズオンのサンプルを参考に、OpenFlowスイッチを作成
2.XenServerをインストールし、XenServerのローカルCLIを開く
【方法】
・XenServerをControllerに接続する
1.仮想スイッチの名前を確認
# ovs-vsctl list-br
xenbr0※XenServerに標準で作成される仮想スイッチ名
2.仮想スイッチをコントローラに接続
# ovs-vsctl set-controller xenbr0 tcp:
成功すると、Tremaハンズオン資料11ページのswitch_readyメソッドによって、Trema側のコンソールに↓が表示されました。
ifswitch_ready => 0x3aa9528617d6
3.仮想スイッチをコントローラから切断
switch_disconnected => 0x3aa9528617d6
注意点として、Flowを全然設定していないControllerにxenbr0をつないでしまうと、SSHやXenCenterでの接続ができなくなってしまいます。最低限Tremaハンズオン24ページに掲載されているリピータHUBとして動作する機能をコントローラに持たせるか、XenServerをローカルコンソールで操作するか、いずれかの対応をできる状態にしておくと良いでしょう。
ちゃんとした制御をするにはまだまだ勉強が必要ですが、こつこつ試してみたいと思います。