Download - OpenFlow プログラミング フレームワーク Trema · OpenFlow プログラミング フレームワーク Trema Trema 開発チーム 須堯 一志 OSSユーザーのための勉強会
![Page 1: OpenFlow プログラミング フレームワーク Trema · OpenFlow プログラミング フレームワーク Trema Trema 開発チーム 須堯 一志 OSSユーザーのための勉強会](https://reader030.vdocuments.us/reader030/viewer/2022040419/5dd140efd6be591ccb64f562/html5/thumbnails/1.jpg)
OpenFlow プログラミング フレームワーク Trema
Trema 開発チーム
須堯 一志
OSSユーザーのための勉強会 < OSS X Users Meeting > #3 OpenFlow
![Page 2: OpenFlow プログラミング フレームワーク Trema · OpenFlow プログラミング フレームワーク Trema Trema 開発チーム 須堯 一志 OSSユーザーのための勉強会](https://reader030.vdocuments.us/reader030/viewer/2022040419/5dd140efd6be591ccb64f562/html5/thumbnails/2.jpg)
自己紹介
日本電気株式会社 情報・ナレッジ研究所 須堯 一志 (すぎょう かずし)
•主にネットワークのプロトコルを開発している 技術者
• 1997年にIPv6のプロトコルスタック開発を通じてオープンソース開発に関わる
• 2009年頃から OpenFlow に関わる
• 2011年 Tremaがオープンソースとして公開される
• Trema開発チームとして開発を継続中
2 OSSユーザーのための勉強会 #3 OpenFlow
![Page 3: OpenFlow プログラミング フレームワーク Trema · OpenFlow プログラミング フレームワーク Trema Trema 開発チーム 須堯 一志 OSSユーザーのための勉強会](https://reader030.vdocuments.us/reader030/viewer/2022040419/5dd140efd6be591ccb64f562/html5/thumbnails/3.jpg)
今日の内容
3 OSSユーザーのための勉強会 #3 OpenFlow
SDNとOpenFlowとTremaの関係
Tremaの考え方とアーキテクチャ
コミュニティーのご紹介
現状の課題と今後
![Page 4: OpenFlow プログラミング フレームワーク Trema · OpenFlow プログラミング フレームワーク Trema Trema 開発チーム 須堯 一志 OSSユーザーのための勉強会](https://reader030.vdocuments.us/reader030/viewer/2022040419/5dd140efd6be591ccb64f562/html5/thumbnails/4.jpg)
SDNとOPENFLOWとTREMAの関係
4 OSSユーザーのための勉強会 #3 OpenFlow
SDN
OpenFlow
Trema
![Page 5: OpenFlow プログラミング フレームワーク Trema · OpenFlow プログラミング フレームワーク Trema Trema 開発チーム 須堯 一志 OSSユーザーのための勉強会](https://reader030.vdocuments.us/reader030/viewer/2022040419/5dd140efd6be591ccb64f562/html5/thumbnails/5.jpg)
• 明確な定義がない
• ソフトウェアでネットワークを制御・管理する技術全般 または、コンセプト
• 仮想的なネットワークで作ると物理的な制約を受けにくいため、仮想ネットワークを作り上げる技術を指す場合もある
SDN (Software-Defined Networking)
• OpenFlow仕様でさめられたプロトコルまたは、それに基づく実装
• 仕様ではコントローラの動作が規定されていないが、コントローラを含めた技術を指す場合が多い
OpenFlow
SDNとOpenFlow
5 OSSユーザーのための勉強会 #3 OpenFlow
![Page 6: OpenFlow プログラミング フレームワーク Trema · OpenFlow プログラミング フレームワーク Trema Trema 開発チーム 須堯 一志 OSSユーザーのための勉強会](https://reader030.vdocuments.us/reader030/viewer/2022040419/5dd140efd6be591ccb64f562/html5/thumbnails/6.jpg)
OpenFlowとは
OSSユーザーのための勉強会 #3 OpenFlow 6
制御処理
転送処理
OpenFlow コントローラ
制御処理
既存のスイッチ
転送処理
OpenFlow スイッチ制御
OpenFlow プロトコル
OpenFlow スイッチ
OpenFlow 仕様書で決められている箇所 (OpenFlowコントローラの動作は含まれない)
既存のスイッチの制御処理と転送処理を分離。 単に分離しただけでなく
• 今まで、スイッチでできなかった処理ができるようになる
• 複数のスイッチを集中管理する
![Page 7: OpenFlow プログラミング フレームワーク Trema · OpenFlow プログラミング フレームワーク Trema Trema 開発チーム 須堯 一志 OSSユーザーのための勉強会](https://reader030.vdocuments.us/reader030/viewer/2022040419/5dd140efd6be591ccb64f562/html5/thumbnails/7.jpg)
リソース管理
運用管理
ベンダ依存 その他標準 プロトコル
OpenFlow コントローラ
SDNコントローラ プラットフォーム
アプリケーションC
アプリケーションB
アプリケーションA
SDNの概略図例
7 OSSユーザーのための勉強会 #3 OpenFlow
OpenFlowスイッチ
![Page 8: OpenFlow プログラミング フレームワーク Trema · OpenFlow プログラミング フレームワーク Trema Trema 開発チーム 須堯 一志 OSSユーザーのための勉強会](https://reader030.vdocuments.us/reader030/viewer/2022040419/5dd140efd6be591ccb64f562/html5/thumbnails/8.jpg)
• MPLS Japan (2012/10) で発表
• 矛盾のない一括設定
• ネットワーク構築のスピードアップ
• 大規模なネットワークに対応
• VLAN以上のマルチテナント化を実現するため
• データセンター仮想化を実現するクラウドコントローラを独自に開発
• 自動化とインフラ構築時間を短縮
NECビッグローブのSDN
8 OSSユーザーのための勉強会 #3 OpenFlow
http://www.mpls.jp/presentations/mpls2012_biglobe.pdf MPLS Japan NECビッグローブの資料
![Page 9: OpenFlow プログラミング フレームワーク Trema · OpenFlow プログラミング フレームワーク Trema Trema 開発チーム 須堯 一志 OSSユーザーのための勉強会](https://reader030.vdocuments.us/reader030/viewer/2022040419/5dd140efd6be591ccb64f562/html5/thumbnails/9.jpg)
NECビッグローブのSDNの概略図
VM VM VM VM
サーバ群
Router Load Balancer
ハードウェアアプライアンス
OpenFlowコントローラ クラスタ
クラウド コントローラー
OSSユーザーのための勉強会 #3 OpenFlow 9
![Page 10: OpenFlow プログラミング フレームワーク Trema · OpenFlow プログラミング フレームワーク Trema Trema 開発チーム 須堯 一志 OSSユーザーのための勉強会](https://reader030.vdocuments.us/reader030/viewer/2022040419/5dd140efd6be591ccb64f562/html5/thumbnails/10.jpg)
• Open Networking Summit (2012/4) で発表
• データセンター間接続 (G-Scale) で利用
• 急増するトラフィックへの対策
• 徹底したコスト削減
• G-Scale全体の空き帯域を一括して管理するために、トラフィックエンジニアリングを導入
GoogleのSDN
10 OSSユーザーのための勉強会 #3 OpenFlow
http://www.opennetsummit.org/archives/apr12/vahdat-wed-sdnstack.pdf Open Networking Summit Google の資料
![Page 11: OpenFlow プログラミング フレームワーク Trema · OpenFlow プログラミング フレームワーク Trema Trema 開発チーム 須堯 一志 OSSユーザーのための勉強会](https://reader030.vdocuments.us/reader030/viewer/2022040419/5dd140efd6be591ccb64f562/html5/thumbnails/11.jpg)
GoogleのSDNの概略図
11
データ センターA
データ センターB
データ センターC
データセンター間接続 (G-Scale)
OpenFlow コントローラA OpenFlow
コントローラC
OpenFlow コントローラB
SDNゲートウェイ
トラフィック エンジニアリングサーバ
OSSユーザーのための勉強会 #3 OpenFlow
![Page 12: OpenFlow プログラミング フレームワーク Trema · OpenFlow プログラミング フレームワーク Trema Trema 開発チーム 須堯 一志 OSSユーザーのための勉強会](https://reader030.vdocuments.us/reader030/viewer/2022040419/5dd140efd6be591ccb64f562/html5/thumbnails/12.jpg)
• OpenFlow仕様でプロトコルまたは、それに基づく実装
• 仕様ではコントローラの動作が規定されていないが、コントローラを含めた技術を指す場合が多い
• 複数の実装がある
OpenFlow
• OpenFlowコントローラを作成するための基盤(フレームワーク)
• RubyおよびCで書かれている
• 作成したコードをテストしやすい
Trema
OpenFlowとTremaの関係
12 OSSユーザーのための勉強会 #3 OpenFlow
![Page 13: OpenFlow プログラミング フレームワーク Trema · OpenFlow プログラミング フレームワーク Trema Trema 開発チーム 須堯 一志 OSSユーザーのための勉強会](https://reader030.vdocuments.us/reader030/viewer/2022040419/5dd140efd6be591ccb64f562/html5/thumbnails/13.jpg)
主なフレームワーク
13 OSSユーザーのための勉強会 #3 OpenFlow
名前 開発言語 開発元 ライセンス Trema Ruby, C Trema プロジェクト GPL2 POX Python UC バークレイ GPL3 NOX C++ Nicira, スタンフォード大学,
UC バークレイ GPL3
Floodlight Java Big Switch Networks Apache OpenDaylight Java OpenDaylightプロジェクト EPL
主なOpenFlowコントローラフレームワーク
![Page 14: OpenFlow プログラミング フレームワーク Trema · OpenFlow プログラミング フレームワーク Trema Trema 開発チーム 須堯 一志 OSSユーザーのための勉強会](https://reader030.vdocuments.us/reader030/viewer/2022040419/5dd140efd6be591ccb64f562/html5/thumbnails/14.jpg)
考え方とアーキテクチャ
14 OSSユーザーのための勉強会 #3 OpenFlow
考え方 アーキ
テクチャ
![Page 15: OpenFlow プログラミング フレームワーク Trema · OpenFlow プログラミング フレームワーク Trema Trema 開発チーム 須堯 一志 OSSユーザーのための勉強会](https://reader030.vdocuments.us/reader030/viewer/2022040419/5dd140efd6be591ccb64f562/html5/thumbnails/15.jpg)
OpenFlowプロトコルをフルに実装
RubyまたはCで、簡単にOpenFlowコントローラを開発できるように心がけている
•短いコードは読みやすくバグが出にくいため、短くかけることを意識している
書いたコードを簡単にテストできる
•短いサイクルで“コーディング、テスト、デバッグ”を繰り返す開発スタイルを実現できる
一台のノートで開発できる
Tremaの考え方
15 OSSユーザーのための勉強会 #3 OpenFlow
![Page 16: OpenFlow プログラミング フレームワーク Trema · OpenFlow プログラミング フレームワーク Trema Trema 開発チーム 須堯 一志 OSSユーザーのための勉強会](https://reader030.vdocuments.us/reader030/viewer/2022040419/5dd140efd6be591ccb64f562/html5/thumbnails/16.jpg)
Tremaを利用した時の開発のイメージ
16 OSSユーザーのための勉強会 #3 OpenFlow
シナリオを作成
設計・コーディング
Tremaに含まれるテスト環境でテスト
デバッグ・修正・テスト
スイッチなどの実機でテスト
評価
改善の計画
![Page 17: OpenFlow プログラミング フレームワーク Trema · OpenFlow プログラミング フレームワーク Trema Trema 開発チーム 須堯 一志 OSSユーザーのための勉強会](https://reader030.vdocuments.us/reader030/viewer/2022040419/5dd140efd6be591ccb64f562/html5/thumbnails/17.jpg)
Tremaの紹介
17 OSSユーザーのための勉強会 #3 OpenFlow
Trema
OpenFlow コントローラ向けライブラリ (Ruby & C)
ネットワークエミュレータ
Trema
コマンド
![Page 18: OpenFlow プログラミング フレームワーク Trema · OpenFlow プログラミング フレームワーク Trema Trema 開発チーム 須堯 一志 OSSユーザーのための勉強会](https://reader030.vdocuments.us/reader030/viewer/2022040419/5dd140efd6be591ccb64f562/html5/thumbnails/18.jpg)
Tremaアーキテクチャ
18 OSSユーザーのための勉強会 #3 OpenFlow
Trema コアモジュール
Trema Rubyライブラリ
コントローラD
コントローラC
コントローラA
コントローラB
仮想 スイッチ
仮想 リンク
仮想 ホスト
実環境 ネットワークエミュレータ
Trema Cライブラリ
ユーザ アプリケーション
フレームワーク
![Page 19: OpenFlow プログラミング フレームワーク Trema · OpenFlow プログラミング フレームワーク Trema Trema 開発チーム 須堯 一志 OSSユーザーのための勉強会](https://reader030.vdocuments.us/reader030/viewer/2022040419/5dd140efd6be591ccb64f562/html5/thumbnails/19.jpg)
• よくわかっていない
• 大学、企業の研究で使われることを期待していた
• 日本では、よく使われている
–本を含め、日本語による情報が増え てきたため
• 実際に自社のネットワークに 導入した事例もある
Tremaは、どのように使われているのか?
19 OSSユーザーのための勉強会 #3 OpenFlow
教育?
研究?
商用?
![Page 20: OpenFlow プログラミング フレームワーク Trema · OpenFlow プログラミング フレームワーク Trema Trema 開発チーム 須堯 一志 OSSユーザーのための勉強会](https://reader030.vdocuments.us/reader030/viewer/2022040419/5dd140efd6be591ccb64f562/html5/thumbnails/20.jpg)
• 少し、体を動かしながら聞いてください
• Tremaの開発で大変なこと
• オープンソースの開発で大変なこと
• オープンソースにする意味 (個人の感想)
(ブレイク)
20 OSSユーザーのための勉強会 #3 OpenFlow
![Page 21: OpenFlow プログラミング フレームワーク Trema · OpenFlow プログラミング フレームワーク Trema Trema 開発チーム 須堯 一志 OSSユーザーのための勉強会](https://reader030.vdocuments.us/reader030/viewer/2022040419/5dd140efd6be591ccb64f562/html5/thumbnails/21.jpg)
ユーザのコミュニティーのご紹介
21 OSSユーザーのための勉強会 #3 OpenFlow
メーリングリスト
Trema塾
とれま寺
![Page 22: OpenFlow プログラミング フレームワーク Trema · OpenFlow プログラミング フレームワーク Trema Trema 開発チーム 須堯 一志 OSSユーザーのための勉強会](https://reader030.vdocuments.us/reader030/viewer/2022040419/5dd140efd6be591ccb64f562/html5/thumbnails/22.jpg)
• Trema塾 http://www.trema.info/
• とれま寺 http://www.trema.info/ 2012/08/toremajuku/
Tremaユーザコミュニティーのご紹介
22 OSSユーザーのための勉強会 #3 OpenFlow
コミュニティーで多くの人に レビューしていただいて
出来た本 「OpenFlow実践入門」
http://yasuhito.github.io/trema-book/
![Page 23: OpenFlow プログラミング フレームワーク Trema · OpenFlow プログラミング フレームワーク Trema Trema 開発チーム 須堯 一志 OSSユーザーのための勉強会](https://reader030.vdocuments.us/reader030/viewer/2022040419/5dd140efd6be591ccb64f562/html5/thumbnails/23.jpg)
• 定期的に行われる勉強会 写真は、4月に行われたTrema Day 第2回
Trema Day
23 OSSユーザーのための勉強会 #3 OpenFlow
https://sites.google.com/site/tremaday/trema-day-toha/2013-nian-4-20-tu
![Page 24: OpenFlow プログラミング フレームワーク Trema · OpenFlow プログラミング フレームワーク Trema Trema 開発チーム 須堯 一志 OSSユーザーのための勉強会](https://reader030.vdocuments.us/reader030/viewer/2022040419/5dd140efd6be591ccb64f562/html5/thumbnails/24.jpg)
• メーリングリスト groups.google.com/forum/ ?fromgroups#!forum/trema-dev
• Twitter @trema_news
• 個人のブログ http://trema.hatenablog.jp/
メーリングリスト、その他
24 OSSユーザーのための勉強会 #3 OpenFlow
![Page 25: OpenFlow プログラミング フレームワーク Trema · OpenFlow プログラミング フレームワーク Trema Trema 開発チーム 須堯 一志 OSSユーザーのための勉強会](https://reader030.vdocuments.us/reader030/viewer/2022040419/5dd140efd6be591ccb64f562/html5/thumbnails/25.jpg)
• Trema で OpenFlow を始めるために ruby を勉強している方がいる
• 既存のネットワークでの課題を持っている人
• SDN関連の最新の情報を押さえておきたい人
• ある日、「上司から OpenFlow を導入できないか?」と言われた人 (本当にいるそうです)
• ネットワークの世界で有名になりたい人
• ネットワークのプログラミングをしたい人 (私)
ユーザコミュニティーに参加している人
25 OSSユーザーのための勉強会 #3 OpenFlow
![Page 26: OpenFlow プログラミング フレームワーク Trema · OpenFlow プログラミング フレームワーク Trema Trema 開発チーム 須堯 一志 OSSユーザーのための勉強会](https://reader030.vdocuments.us/reader030/viewer/2022040419/5dd140efd6be591ccb64f562/html5/thumbnails/26.jpg)
• Trema-sharkというデバッグツールのインストールについて
• OpenFlow バージョン1.3サポートについて問い合わせ
• Trema の API の設計方針とツールについて – Trema ruby API をどのように決めているかを紹介
• SDN の Northbound API という用語の定義を教えてください
• Trema ruby での Match の作成について
• 人生相談 (OpenFlowをやりたい、上司をどのように説得すればいいか?)
最近の話題
26 OSSユーザーのための勉強会 #3 OpenFlow
![Page 27: OpenFlow プログラミング フレームワーク Trema · OpenFlow プログラミング フレームワーク Trema Trema 開発チーム 須堯 一志 OSSユーザーのための勉強会](https://reader030.vdocuments.us/reader030/viewer/2022040419/5dd140efd6be591ccb64f562/html5/thumbnails/27.jpg)
現状の課題と今後
27 OSSユーザーのための勉強会 #3 OpenFlow
今後 課題
![Page 28: OpenFlow プログラミング フレームワーク Trema · OpenFlow プログラミング フレームワーク Trema Trema 開発チーム 須堯 一志 OSSユーザーのための勉強会](https://reader030.vdocuments.us/reader030/viewer/2022040419/5dd140efd6be591ccb64f562/html5/thumbnails/28.jpg)
Tremaの予定
OSSユーザーのための勉強会 #3 OpenFlow 28
Trema 現行版 (OpenFlow
v1.0対応版) Trema の改善
Trema-edge (OpenFlow
v1.3対応版)
Trema App の Trema-edge 対応
Trema 現行版と Trema-edge のマージ
Trema Apps アプリケーションの追加
![Page 29: OpenFlow プログラミング フレームワーク Trema · OpenFlow プログラミング フレームワーク Trema Trema 開発チーム 須堯 一志 OSSユーザーのための勉強会](https://reader030.vdocuments.us/reader030/viewer/2022040419/5dd140efd6be591ccb64f562/html5/thumbnails/29.jpg)
• ユースケース (アプリケーション)が不足 – 情報が公開されない
• してくれるひと・できないひと
• OpenFlow v1.3対応 Trema-edge – ソースコードをマージする予定
– OpenFlow v1.0との互換をどうするのかが課題
• OpenFlow v1.3 対応したが接続性の確認ができていない
• SDN Northbound APIや抽象化、モデル化など、上位アプリケーションへの期待が大きくなってきている
Tremaの現状の課題
29 OSSユーザーのための勉強会 #3 OpenFlow
![Page 30: OpenFlow プログラミング フレームワーク Trema · OpenFlow プログラミング フレームワーク Trema Trema 開発チーム 須堯 一志 OSSユーザーのための勉強会](https://reader030.vdocuments.us/reader030/viewer/2022040419/5dd140efd6be591ccb64f562/html5/thumbnails/30.jpg)
• Trema Day を続ける。次回は 7月を予定 (未定) 下記の内容を募集:
–作ってみた
– こんなところでも使えるのでは? (アイディア)
– こんなことに使いたい (相談)
– OpenFlowやSDNはデータセンターやキャリヤ向け
が議論されている。もっと小さなところに広げていきたい
• 今年は、OpenFlow v1.3対応スイッチがでてくるため、フィードバックを反映する
Tremaの今後
30 OSSユーザーのための勉強会 #3 OpenFlow
![Page 31: OpenFlow プログラミング フレームワーク Trema · OpenFlow プログラミング フレームワーク Trema Trema 開発チーム 須堯 一志 OSSユーザーのための勉強会](https://reader030.vdocuments.us/reader030/viewer/2022040419/5dd140efd6be591ccb64f562/html5/thumbnails/31.jpg)
ご清聴 ありがとうございました
31 OSSユーザーのための勉強会 #3 OpenFlow
SDNとOpenFlowとTremaの関係
Tremaの考え方とアーキテクチャ
コミュニティーのご紹介
現状の課題と今後