• 検索結果がありません。

Trema を使って OpenFlow プログラミングを 始めてみませんか? 鈴木一哉 Trema 開発チーム 2012/4/13

N/A
N/A
Protected

Academic year: 2021

シェア "Trema を使って OpenFlow プログラミングを 始めてみませんか? 鈴木一哉 Trema 開発チーム 2012/4/13"

Copied!
14
0
0

読み込み中.... (全文を見る)

全文

(1)

Trema を使って

OpenFlow プログラミングを

始めてみませんか?

鈴木 一哉

Trema 開発チーム

2012/4/13

(2)

Agenda

OpenFlow 概要

OpenFlow とは

OpenFlow プログラミング

Trema の紹介

Trema とは

Trema を使ったコントローラ開発

「すぐ動かしてみる」 ためのネットワークエミュレータ機能

サンプルアプリ (Sliceable Routing Switch)

まとめ

(3)

OpenFlow とは

OpenFlow スイッチ

OpenFlow コントローラ

Flow table

OpenFlow protocol

(Match ⇒ Action) を設定

in_port = 2 ⇒ port 1 に出力 dl_src = 01:01:01:01:01:01 ⇒ drop

vlan_vid = 2 ⇒ strip して port 2 に出力

Flow table を参照

(4)

OpenFlow とは (続き)

OpenFlow スイッチ

OpenFlow コントローラ

Flow table

OpenFlow protocol

① 受信パケットが

match しなかった

②パケットを

コントローラへ

送る

③パケットから生成した

(Match, Action) を送信

④パケットを出力

(5)

OpenFlow プログラミング

OpenFlow を使って、何を実現する?

DC における仮想ネットワークの実現と管理 ⇒ 商用コントローラやソリュー

ションが、いくつか登場している

他にはなにかできないの?

作りこまれたソリューションがほしいのであれば、ベンダーからの登場を待つし

かない

自らの手でつくれないの? ⇒ プログラミングを行うことで、実現可能

(Software Defined Network)。

(6)

Trema とは

コントローラ開発は、敷居が高い

プログラミングが難しそう

試す環境がない

そもそもプログラミングできない

Trema : Full-Stack OpenFlow Framework in Ruby and C

「よくある処理」 が簡単に短く書ける

「コーディング → テスト → デバッグ」 を実現するために、ネットワークエミュ

レータ機能を用意

(7)

Trema とは (続き)

Library:

OpenFlow controller libraries and core modules

Library:

OpenFlow controller libraries and core modules

Developing environment:

Network/host emulator, debugging tool, etc

Developing environment:

Network/host emulator, debugging tool, etc

Operation environment:

trema commands

Operation environment:

trema commands

User application:

Your OpenFlow controller (in Ruby or C)

User application:

Your OpenFlow controller (in Ruby or C)

Trema

OpenFlow

controller

(8)

Trema を使ったコントローラ開発

「よくある処理」 が簡単に短く書ける

class RepeaterHub < Controller

def packet_in datapath_id, message send_flow_mod_add(

datapath_id,

:match => ExactMatch.from( message ),

:actions => ActionOutput.new( OFPP_FLOOD ) )

send_packet_out( datapath_id,

:packet_in => message,

:actions => ActionOutput.new( OFPP_FLOOD ) ) end end

フローエントリを送る

packet_in であがって

きたパケットを出力する

例: Trema で書いたリピータハブ

(9)

「すぐ動かしてみる」 ためのネットワークエミュレータ機能

「コーディング → テスト → デバッグ」 ⇒ ネットワークエミュレータ機能

OpenFlow スイッチとして、openvswitch を使用 (Trema に同梱)

vswitch("sw1") { datapath_id "0x1" } vswitch("sw2") { datapath_id "0x2" } vhost ("host1") vhost ("host2") link "host1", "sw1" link "sw1", "sw2" link "host2", "sw2" TremaTrema Trema My ControllerMy Controller My Controller vswitch(sw1)vswitch vswitch((sw1sw1)) vhost(host1)v

vhost(host1)host(host1) vhost(host2)vvhost(host2)host(host2)

vswitch(sw2) vswitch(sw2)

vswitch(sw2)

Secure Channel

(10)

サンプルアプリ (

Sliceable Routing Switch)

Sliceable Routing Switch

OpenFlow ネットワーク上に仮想的な L2 ドメイン (slice) を実現

L1-L4 アクセスコントロール

REST API による slice, acl の設定

L2 Switch (Slice #1)

L2 Switch (Slice #2)

(11)

サンプルアプリ (

Sliceable Routing Switch)

Sliceable Routing Switch

TremaTrema

Trema

Sliceable Routing SwitchSliceable Routing Switch

Sliceable Routing Switch

Quantum OpenFlow Plug-in

Quantum

Quantum OpenFlowOpenFlowPlugPlug--inin

OpenStackOpenStack

OpenStack

OpenFlow SwitchesOpenFlow

OpenFlow SwitchesSwitches

OpenFlow SwitchesOpenFlow

OpenFlow SwitchesSwitches

OpenFlow SwitchesOpenFlow

OpenFlow SwitchesSwitches

OpenFlow SwitchesOpenFlow

OpenFlow SwitchesSwitches

Any other Cloud Management System

Any

Any otherother Cloud Cloud Management System

Management System

OpenFlow controller The Sliceable Network Management API

OpenFlow protocol or

(12)

まとめ

OpenFlow フレームワーク Trema

OpenFlow のコントローラを短く書けて、すぐ動かせる

参考になるサンプルアプリも充実しています。

OpenFlow をより役立つツールとなるためにどうすればいいか考え、試し

てみませんか?

Trema がお役に立てれば幸いです。

(13)

リソース

Software Design 連載記事 “こんな夜中に OpenFlow でネットワークを

プログラミング! “

 http://gihyo.jp/dev/serial/01/openflow_sd

Trema 公式

 http://trema.github.com/trema/

(Tutorial 他、資料多数)

@trema_news (twitter)

Trema application repository (Sliceable routing switch 他、サンプル

アプリ)

 https://github.com/trema/apps

Quantum OpenFlow plug-in

(14)

補足 : Trema の構成

Core modules Core modules OpenFlow OpenFlow Controller Controller OpenFlow Switch Host Interactive Shell Interactive Interactive Shell Shell DebuggerDebugger Debugger Controller and network configuration Controller Controller and network and network configuration configuration

Integrated

network

emulator

Trema

Trema

Basic libraries

Basic libraries OpenFlowOpenFlow protocol stackprotocol stack User module

User module

Real network

User module

参照

関連したドキュメント

• 家族性が強いものの原因は単一遺伝子ではなく、様々な先天的要 因によってもたらされる脳機能発達の遅れや偏りである。.. Epilepsy and autism.2016) (Anukirthiga et

Using Virtual Tenant Network (VTN) function, four private networks were prepared on single physical network with OpenFlow switch.. Relocation of computer does not

“Microsoft Outlook を起動できません。Outlook ウィンドウを開けません。このフォルダ ーのセットを開けません。Microsoft Exchange

Correspondingly, the limiting sequence of metric spaces has a surpris- ingly simple description as a collection of random real trees (given below) in which certain pairs of

Keywords Catalyst, reactant, measure-valued branching, interactive branching, state-dependent branch- ing, two-dimensional process, absolute continuity, self-similarity,

たとえば、市町村の計画冊子に載せられているアンケート内容をみると、 「朝食を摂っています か 」 「睡眠時間は十分とっていますか」

• AF/AE ロック機能を使って、同じ距離の他の被写体にピントを 合わせてから、構図を変えてください(→ 43 ページ)。. •

湖水をわたりとんねるをくぐり 日が照っても雨のふる 汽車に乗って