SlideShare uma empresa Scribd logo
1 de 32
Baixar para ler offline
LOOM
OpenFlow Controller
shun159@shunichigokew
trema/pio パケットマン
こんにちは,
今からOpenFlowのユルい話しをしま
す
LOOM OpenFlow Controller?
LOOM OpenFlow Controller?
•InfobloxとErlang Solutionsのエンジニ
アが主に開発
•Erlang/OTPが備える機能が持つ高いス
ケール性や耐障害性を備えたコント
ロールプレーンを目指す
•とはいえまだまだ開発中である
だけど…
もう結構出揃っている感はある
他にもJSやhaskell, OCaml
果てはLuaやJuliaなど多岐に渡る
もう他の言語の実装
なんていらないお…
もう他の言語の実装
なんていらないお…
でも待ってこういう話もあるよ!
Erlangで実装された AXD301は2002年1
月の導入以来, 99.9999999%の可用性のた
めにメンテナンススキルを習得できないと
いうリスクを持つという話しがある.
ErlangはネットワークサーバのDSLである,
と例えを聞く程用途が偏っている(気がす
る)
これをSDN/OpenFlowで実現したい…
でもちょっとまってErlangって?
ちょっとまってErlangって?
SDNアプリのドキュメントとか読んで
ると, 分散とか平行とか障害の局所化と
か, そんなキーワードがたまにきこえて
きませんか.
そして, OpenFlowを触ってて生のパ
ケットと触れ合ったこと, ありますよね.
ちょっとまってErlangって?①
• 以下の機能を言語レベルで提供しています
– Hot code reloading
– Supervisors
– Processes
– Asynchronous message passing
– Clustering
ちょっとまってErlangって?②
• バイナリパターンマッチが素敵
• L2 headerを上のようにパターンマッチ!
ちょっとまってErlangって?②
• 並行プログラミングがとてもやりやすい
• またそれに特化した例外等もわりと充実
ちょっとまってErlangって?③
• 分散プログラミングがやりやすい, これら
以外にも分散プログラミングを支援する
ためのモジュールや関数がたくさんある.
Erlang/OTPが持つこれらの能力や機能を
利用したOpenFlowプログラミングって…
面白そう(小並感
LOOM OpenFlow Controller
LOOM OpenFlow Controller
•私が好んでここで話すのは
•Binary Pattern Match
•Supervisons
•Concurrent Programming
をやれるということの他にも面白い機
能が備わっています
LOOM OpenFlow Controller
ofs_handler:sync_send/2
LOOM OpenFlow Controller
デモ
LOOM OpenFlow Controller
ofs_handler:sync_send/2
LOOM OpenFlow Controller
改めて, 試しに テキトーなアプリを書
いてみました.
LOOM OpenFlow Controller
仮想L2ネットワーク
LOOM OpenFlow Controller
デモ
LOOM OpenFlow Controller
LOOM OpenFlow Controller
たとえからあまりErlangの特徴見えないかも
…
ポートを管理するコードを書く時間がなかっ
たのでどうしようかと悩んだ末,
sync_send/2でブロードキャストする前にス
イッチ聞いたらイイね,ということでその分
ごっそり怠けた楽できた結果,実質200行で
かける.
LOOM OpenFlow Controller
LOOM作成ステップ
1. callback moduleを設定ファイルに
指定する
2. callback関数をもれなく書く
3. 各callbackにロジックを記述する
4. コンパイルして起動
LOOM OpenFlow Controller
また,mainコネクション接続とは別に,
Aux接続のためのcallback関数
connect/8があり, openflow messageを
受ける関数 handle_message/2は TCP
セッション毎にメッセージを受けるの
で, うまく使えればaux接続を有効利
用したプログラミングができるはず.
LOOM OpenFlow Controller
Flow modメッセージを作って送る
LOOM OpenFlow Controller
注意!
•init/7からスイッチに対してメッセー
ジを送ろうとすると, アプリがくたばり
ます.
LOOM OpenFlow Controller
Erlang/OTPは独特で難しい,けど文法的
には覚えることは少ない(はず).やりた
いことを最短できるというのであれば,
触れてみる価値はあるはず.

Mais conteúdo relacionado

Destaque

IoTとOpenFlowのライトニングトーク
IoTとOpenFlowのライトニングトークIoTとOpenFlowのライトニングトーク
IoTとOpenFlowのライトニングトークTomoya Hibi
 
Cloud stackユーザ会大阪 運用Tips 20130802
Cloud stackユーザ会大阪 運用Tips 20130802Cloud stackユーザ会大阪 運用Tips 20130802
Cloud stackユーザ会大阪 運用Tips 20130802hirokihojo
 
Mk state in-programming-01
Mk state in-programming-01Mk state in-programming-01
Mk state in-programming-01Miya Kohno
 
Jcsug21 20140912
Jcsug21 20140912Jcsug21 20140912
Jcsug21 20140912hirokihojo
 
Janog37 Pattern BoF
Janog37 Pattern BoFJanog37 Pattern BoF
Janog37 Pattern BoFMiya Kohno
 
FlexPod Day 2016 - Cisco session (Publish edition)
FlexPod Day 2016 - Cisco session (Publish edition)FlexPod Day 2016 - Cisco session (Publish edition)
FlexPod Day 2016 - Cisco session (Publish edition)Takao Setaka
 
Tokyo meetup 20160224
Tokyo meetup 20160224Tokyo meetup 20160224
Tokyo meetup 20160224Takao Setaka
 
OpenStack Congress and Datalog (English)
OpenStack Congress and Datalog (English)OpenStack Congress and Datalog (English)
OpenStack Congress and Datalog (English)Motonori Shindo
 
L2 over l3 ecnaspsulations (english)
L2 over l3 ecnaspsulations (english)L2 over l3 ecnaspsulations (english)
L2 over l3 ecnaspsulations (english)Motonori Shindo
 
中国にOpenflowを入れてきた話
中国にOpenflowを入れてきた話中国にOpenflowを入れてきた話
中国にOpenflowを入れてきた話cloretsblack
 
試してわかるSDN
試してわかるSDN試してわかるSDN
試してわかるSDNcloretsblack
 
Node最新トピックス
Node最新トピックスNode最新トピックス
Node最新トピックスshigeki_ohtsu
 
マルチCDNの概要
マルチCDNの概要マルチCDNの概要
マルチCDNの概要J-Stream Inc.
 
【Interop Tokyo 2016】 Seminar - EA-14 : シスコ スイッチが標的型攻撃を食い止める ~新しい内部対策ソリューション「C...
【Interop Tokyo 2016】 Seminar - EA-14 : シスコ スイッチが標的型攻撃を食い止める ~新しい内部対策ソリューション「C...【Interop Tokyo 2016】 Seminar - EA-14 : シスコ スイッチが標的型攻撃を食い止める ~新しい内部対策ソリューション「C...
【Interop Tokyo 2016】 Seminar - EA-14 : シスコ スイッチが標的型攻撃を食い止める ~新しい内部対策ソリューション「C...シスコシステムズ合同会社
 
最近のBurp Suiteについて調べてみた
最近のBurp Suiteについて調べてみた最近のBurp Suiteについて調べてみた
最近のBurp Suiteについて調べてみたzaki4649
 
【Interop Tokyo 2016】 Seminar - EA-18 : 「Cisco の先進セキュリティ ソリューション」 Shownet 2016...
【Interop Tokyo 2016】 Seminar - EA-18 : 「Cisco の先進セキュリティ ソリューション」 Shownet 2016...【Interop Tokyo 2016】 Seminar - EA-18 : 「Cisco の先進セキュリティ ソリューション」 Shownet 2016...
【Interop Tokyo 2016】 Seminar - EA-18 : 「Cisco の先進セキュリティ ソリューション」 Shownet 2016...シスコシステムズ合同会社
 

Destaque (20)

IoTとOpenFlowのライトニングトーク
IoTとOpenFlowのライトニングトークIoTとOpenFlowのライトニングトーク
IoTとOpenFlowのライトニングトーク
 
Cloud stackユーザ会大阪 運用Tips 20130802
Cloud stackユーザ会大阪 運用Tips 20130802Cloud stackユーザ会大阪 運用Tips 20130802
Cloud stackユーザ会大阪 運用Tips 20130802
 
Korejanai Story
Korejanai StoryKorejanai Story
Korejanai Story
 
Mk state in-programming-01
Mk state in-programming-01Mk state in-programming-01
Mk state in-programming-01
 
Jcsug21 20140912
Jcsug21 20140912Jcsug21 20140912
Jcsug21 20140912
 
Janog37 Pattern BoF
Janog37 Pattern BoFJanog37 Pattern BoF
Janog37 Pattern BoF
 
FlexPod Day 2016 - Cisco session (Publish edition)
FlexPod Day 2016 - Cisco session (Publish edition)FlexPod Day 2016 - Cisco session (Publish edition)
FlexPod Day 2016 - Cisco session (Publish edition)
 
Tokyo meetup 20160224
Tokyo meetup 20160224Tokyo meetup 20160224
Tokyo meetup 20160224
 
Contiv 20160914
Contiv 20160914Contiv 20160914
Contiv 20160914
 
OpenStack Congress and Datalog (English)
OpenStack Congress and Datalog (English)OpenStack Congress and Datalog (English)
OpenStack Congress and Datalog (English)
 
L2 over l3 ecnaspsulations (english)
L2 over l3 ecnaspsulations (english)L2 over l3 ecnaspsulations (english)
L2 over l3 ecnaspsulations (english)
 
中国にOpenflowを入れてきた話
中国にOpenflowを入れてきた話中国にOpenflowを入れてきた話
中国にOpenflowを入れてきた話
 
試してわかるSDN
試してわかるSDN試してわかるSDN
試してわかるSDN
 
TLS, HTTP/2演習
TLS, HTTP/2演習TLS, HTTP/2演習
TLS, HTTP/2演習
 
Node最新トピックス
Node最新トピックスNode最新トピックス
Node最新トピックス
 
マルチCDNの概要
マルチCDNの概要マルチCDNの概要
マルチCDNの概要
 
HTTP/2, QUIC入門
HTTP/2, QUIC入門HTTP/2, QUIC入門
HTTP/2, QUIC入門
 
【Interop Tokyo 2016】 Seminar - EA-14 : シスコ スイッチが標的型攻撃を食い止める ~新しい内部対策ソリューション「C...
【Interop Tokyo 2016】 Seminar - EA-14 : シスコ スイッチが標的型攻撃を食い止める ~新しい内部対策ソリューション「C...【Interop Tokyo 2016】 Seminar - EA-14 : シスコ スイッチが標的型攻撃を食い止める ~新しい内部対策ソリューション「C...
【Interop Tokyo 2016】 Seminar - EA-14 : シスコ スイッチが標的型攻撃を食い止める ~新しい内部対策ソリューション「C...
 
最近のBurp Suiteについて調べてみた
最近のBurp Suiteについて調べてみた最近のBurp Suiteについて調べてみた
最近のBurp Suiteについて調べてみた
 
【Interop Tokyo 2016】 Seminar - EA-18 : 「Cisco の先進セキュリティ ソリューション」 Shownet 2016...
【Interop Tokyo 2016】 Seminar - EA-18 : 「Cisco の先進セキュリティ ソリューション」 Shownet 2016...【Interop Tokyo 2016】 Seminar - EA-18 : 「Cisco の先進セキュリティ ソリューション」 Shownet 2016...
【Interop Tokyo 2016】 Seminar - EA-18 : 「Cisco の先進セキュリティ ソリューション」 Shownet 2016...
 

Loom openflow controller in 10 min