SDN/OpenFlow入門
高宮 安仁 @yasuhito
今日のお題
•SDN とは何か?•利用例•開発方法
SDN FAQ
「結局どういうこと?」
Open Networking Foundation ダン・ピット氏
今のネットワーク機器は 昔のメインフレームと同じ“
https://www2.ucar.edu/ucarat50/a-center-is-born
実行 (してもらう)
昔のメインフレーム
設定 (してもらう)
今のネットワーク
APIがほしい!• 実は API はすでにある
• ただし、各ベンダごとにバラバラ
• API の共通化の一つ= OpenFlow
共通
SDN FAQ
「OpenFlowって何?」
フローテーブル
ファームウェア領域
パケットの転送ルール
制御するソフトウェア
従来のスイッチ
コントローラ
OpenFlow プロトコル
ソフトウェア
ハードウェア
フローテーブル
コントローラ
フローテーブル
転送ルールを参照速い
知らない パケット
フローテーブル の更新遅い
OpenFlow/SDN FAQ
「何がうれしいの?」
コントローラ
フローテーブル
Ruby, Python, C++,Java,...好きな言語で書ける
OpenFlow プロトコル
(e.g., VLANの上限)
既存のプロトコルに縛られない
OpenFlowのうれしさ
•ソフトウェアによる高い自由度
• システム連携と自動化
• ソフトウェア開発手法をネットワークに適用可能
コントローラ
フローテーブル
TEサーバ ミドル DB
自由に連携
PaxosChubby
GFSコントローラ
フローテーブル
データセンター
• ネットワークを段階的に反復構築(アジャイル)
• ネットワークのテスト(各種テスト、テストドリブン)
• バージョン管理や巻き戻し(git などのバージョン管理ツール)
ソフトウェア手法の応用
SDNとはプログラミング分野の1つ
「GUIプログラミング」とかと同じ!
OpenFlow とは
SDNのいち実装手段
GtkとかjQueryとかと同じ!
SDNOpenFlow
つまり
は純粋にソフトウェア開発の話
今日のお題
•SDN とは何か?•利用例•開発方法
OpenFlow/SDN FAQ
「何の役に立つの?」
http://itpro.nikkeibp.co.jp/article/NEWS/20120418/391401/
バックボーンはすでにSDNにしたよ!
Urs Hölzle
OpenFlow/SDN FAQ
「何の役に立つの?」→Googleの事例を解説
Googleのチャレンジ
•平均 PUE = 1.13
• 年間アベイラビリティ = 99.984%
• 処理するデータ量/day = 数十ペタ
最先端
次のチャレンジはデータセンターを
つなぐネットワークだ!
WAN 回線のコスト 日米間(4.8Tbps、1万km)=320億円
回線を追加せずに、既存のを有効活用したい
DC DC
DC
どれだけ流せる?
従来のルーティング
• ルータは自律分散で動く• 宛先に対して必ず最短路を選択• 帯域の使用量は加味してくれない
DC DC
DC
10Gbps
6Gbps
帯域は?
DC DC
DC
10Gbps
6Gbps ?
DC DC
DC
TEサーバ空き帯域の収集
帯域の割り当て
DC
TEサーバ
OpenFlow スイッチ
BGPルータ BGP処理部
コントローラ経路情報
経路制御
トラフィック情報
Google WANの利用率
ほぼ100%使い切り
DC
TEサーバ
OpenFlow スイッチ
BGPルータ BGP処理部
コントローラ
OpenFlow/SDN FAQ
「フローで 何ができるの?」
スイッチコントローラ
転送
パケットの宛先MACアドレス→出力ポート
スイッチ(トラフィックモニタ)
コントローラ
転送流量
トラフィック情報
ルータ
コントローラ
転送書き換え
送信元・宛先MACアドレスを書き換え
ロードバランサコントローラ
転送書き換え
トラフィック量に応じて転送先を調整
流量
トラフィック情報
バックエンドサーバ
帯域を目一杯使う
転送 転送
転送 転送
転送 転送
DC DC
レプリケーション
分岐
分岐
DC
DC
分岐
DC
DC
DC
パッチパネル
ネットワーク A
コントローラ
転送
ネットワーク B所属するネットワーク
をソフトウェアで切り替え
今日のお題
•SDN とは何か?•利用例•開発方法
DC
TEサーバ
BGPルータ BGP処理部
コントローラ
OpenFlow/SDN FAQ
「Tremaって何?」
! よくある誤解 !フレームワークをインストールすれば、 ネットワークを OpenFlow 化できる?
OpenFlow化するには1.コントローラを自分で作る
2.フリーなコントローラを探す
3.ソリューションを購入する
本演習で作るもの
OpenFlow でいろいろ作ろう:
• 基本的なスイッチやロードバランサ• トポロジディスカバリ、ルーティング• DC の仮想ネットワーク
演習とレポート
HelloWorld
スイッチ
トポロジディスカバリ
ルーティングスイッチ
仮想NW