SDN/OpenFlow入門 - handai-trema.github.iohandai-trema.github.io/deck/week1/sdn_intro.pdf · Open...

63
SDN/OpenFlow入門 高宮 安仁 @yasuhito

Transcript of SDN/OpenFlow入門 - handai-trema.github.iohandai-trema.github.io/deck/week1/sdn_intro.pdf · Open...

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

集中

ヒマ?

理想DC DC

DC

DC DC

DC

10Gbps

6Gbps

帯域は?

DC DC

DC

10Gbps

6Gbps ?

DC DC

DC

どう分ける?

DC DC

DC

TEサーバ空き帯域の収集

帯域の割り当て

DC DC

DC

TEサーバ

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って何?」

Webフレームワーク

OFフレームワーク

SDN

! よくある誤解 !フレームワークをインストールすれば、 ネットワークを OpenFlow 化できる?

OpenFlow化するには1.コントローラを自分で作る

2.フリーなコントローラを探す

3.ソリューションを購入する

Trema

本演習で作るもの

OpenFlow でいろいろ作ろう:

• 基本的なスイッチやロードバランサ• トポロジディスカバリ、ルーティング• DC の仮想ネットワーク

演習とレポート

HelloWorld

スイッチ

トポロジディスカバリ

ルーティングスイッチ

仮想NW

集団ペアプログラミング