openflow controller lily
TRANSCRIPT
OpenFlowコントローラlily
2012/4/29宮下 一博@[email protected]
自己紹介
� 某電機メーカ勤務
� ネット系ソフトの開発に従事
� #sdnstudy OpenFlow勉強会その1、2を開催
– OpenFlow/SDNに関する技術的な情報源はまだ少ない
– 本勉強会をOpenFlow/SDN技術情報の中心的な発信源としていきたい
OpenFlowコントローラlilyのゴール
� Openで機能拡張ができる
� トラブルシューティングが簡単
� IaaS運用のための機能が豊富
� 導入が簡単
� 適当に配線しても動作し、既存ネットとの統合も容易
� 故障時のスイッチ交換後も再設定いらず
上記目的のため、OpenFlow/SDNを利用。
lilyの特徴
� ファブリック
� マルチテナント
� MACアドレス+入力ポートVLAN
� 物理ネットワークトポロジの自動検出
� ループの自動検出&回避
� 最短パス検索
� 障害箇所の迂回
� 帯域設定(OpenVswitch)
� 帯域プール
� OpenStack QuantumOpenStack QuantumOpenStack QuantumOpenStack Quantum API 1.0対応
� CLIによる操作
OpenStackアーキ抜粋
OpenStack compute API
引用:http://docs.openstack.org/trunk/openstack-compute/admin/content/logical-architecture.html
OpenStack EndUsers
OpenStack Quantum
� nova-networkに代わり、OpenStackのネットワーク制御を担当するコンポーネント
� ネットワークの管理を抽象化している
� プラグイン構造をとっており、様々なネットワークの制御方式に対応
� APIも備えており汎用性が高い
OpenStack Quantumアーキテクチャ
Open Vswitch
OpenStack nova
Quantum
VMHOST
Quantum-API
OpenFlow SW
Plugin Frame work(python)
NiciraPlugin
NECPlugin
CiscoPlugin
Nexus
OpenFlow Netconf
CLI
OpenFlow
Python base API
Quantumのネットワーク抽象化モデル
Network
Port
Attachment
Networkに対する論理的な
Portの作成/削除
Portに対する論理的なオブジェクトのプラグ/アンプラグ
論理的なネットワークの生成/削除
QuantumとNovaの管理分担および実リソースとの関連
Network
Port
Attachment
instance VM
VIF
OpenVswitch
vPort
Nova分担
Quantum分担
【OpenVswitchプラグイン例】1)Networkを作る(Quantum)2)instanceを起動(Nova)3)Networkに対応する
スイッチを決定(決め打ち)(Nova)4)OVSのvPort作成(Nova)5)AttachmentとVIFを関連付け(Nova)6)VM作成(Nova)7)Attachment(=VIF)をどのVLANに属させるのかの設定(Quantum)
lilyアーキテクチャ
Trema
OpenFlow-SW
OpenFlow protocol
VLAN,最適経路,最短パス,帯域管理ループ検出,トポロジ検索
Active support/Active Record
Webrick
Sqlite3
APIAPIAPIAPIハンドラハンドラハンドラハンドラ
Open Vswitchlily agentlily agentlily agentlily agent
OpenStack nova
lilylilylilylilyプラグインプラグインプラグインプラグイン
VMHOST
REST
lily CLIlily CLIlily CLIlily CLI
Quantum-API
OpenStackEndUsers
lily
Quantum Cloud Admin
REST
論理ネットワークの作成
VMの作成
VMの起動確認
スイッチ一覧表示[root@lily cli]# ./lily.rb sw
name| dpid| role| ip address(port no)---------------+ ---------------+ --------------------| --------------------
a1| 161| ACCESS| 127.0.0.1/59022a2| 162| ACCESS| 127.0.0.1/59023a4| 164| ACCESS| 127.0.0.1/59025a3| 163| ACCESS| 127.0.0.1/59024d1| 209| DISTRIBUTION| 127.0.0.1/59026c1| 193| CORE| 127.0.0.1/59028d2| 210| DISTRIBUTION| 127.0.0.1/59027
[root@lily cli]#
CORE
DISTRIBUTION
ACCESS
DISTRIBUTION
ACCESS ACCESSACCESS
トポロジ表示
[root@lily cli]# ./lily.rb topoa1:3 <-> d1:3a1:2 <-> d1:2a2:1 <-> d1:4a4:2 <-> d2:3a3:2 <-> d2:4a3:1 <-> d2:2d2:1 <-> c1:2d1:1 <-> c1:1ACCESS LINK=>[a1:1]ACCESS LINK=>[a4:1][root@lily cli]# ★最新版では、VMのUUIDが表示
帯域プール[root@lily cli]# ./lily bw
name|band width(Mbps)---------------+ ---------------
a1| 20000a2| 10000a4| 10000a3| 20000
band width pool(system total) = 60000Mbps[root@lily cli]#
lilyの課題(現状認識)
� メッシュ状にVM間の通信フロー定義するため、フロー数が爆発(Hop by hopのOpenFlowコントローラ共通の問題のはず)
� フロー圧縮技術が必要
• タグベースのパケット配送を検討
–802.1qタグを2重に設定する事を検討中(OF 1.1以上)
–Don't careをうまく使う
� 性能/信頼性/可用性
2012年開発項目
� FW/SLB(ソフトルータ ex: vyatta)との連携
� OpenFlow 1.2対応(stacked VLAN)
� Quantum L3対応(IPアドレス管理)
� エラーメッセージ改善
� トラブルシューティング
� ドキュメントの充実
� 大規模環境テスト(OCDET連携)
基本機能と品質を強化し、lilyを使って頂くフェーズへ。
2013年開発項目
� インテリジェントコネクション
� 管理LANレス
� コネクションアドバイザ(ベストつなぎ方をアドバイス)
� トラブル予兆検出
� データセンタ越え
� 物理/仮想を一貫しての帯域制御、プール
� GUI&AR
� lilyアーキ見直し(スケーラビリティ)
“ZeroConf SDN”適当につないでも使える世界の実現へ向けて
本当にできるのかな・・・
共同開発者募集中!https://github.com/miyakz1192/lily/