Rubyで創るOpenFlowネットワーク - LLまつり 2013/08/24 Sat 14:30 JST http://ll.jus.or.jp/2013/program.html#ruby_openflow LLプログラマ向けの発表です
こんにちは、インフラストラクチャ本部の大山です。 このエントリはGREE Advent Calendar 2013 22日目の記事です。 はじめに “ネットワークプログラミング” という言葉は、恐らくシステム屋さんにとって TCP/UDP あるいは IP といった L4, L3 の世界のプログラミングを想起させるのではないかと思います。ですが OpenFlow によって、そのレイヤが一気に L1 まで落ちました。つまり Layer-1 (物理層)までがプログラマブルに扱える領域になったということです。 これは主に Ethernet と IP に限定されるものの、従来 L1 から L3 の領域はネットワーク屋さんの領分で L4 以上がシステム屋さん、あるいはアプリケーション屋さんの領分という暗黙の了解を OpenFlow が無くしてしまいました。 今日は OpenFlow ネットワークを制御
前回「SDNの基本動作とアジャイルな開発が可能なSDN実装、『Trema』」ではSDN/OpenFlowの概要と、OpenFlowのプログラミングフレームワーク「Trema」の特徴を中心に紹介しました。今回は、実際にTremaを利用し、簡単なOpenFlowコントローラを作成する方法を紹介します。 これから「アジャイルなOpenFlowプログラミングフレームワーク環境」を、種も仕掛けもないPC1台だけで本当に開発してみます。 まず初めに、PCを1台用意してください。もちろん、普段利用しているPCでも構いません。Tremaを動作させるOSはLinuxですが、用意できるPCがWindowsマシンならば仮想PC環境(VMwareやVirtualBoxなど)を利用すればいいでしょう。 前提~Ubuntu環境の準備 TremaはLinux上で動作し、本家サイトではUbuntuやDebian環境への導
Trema is a full-stack, easy-to-use framework for developing OpenFlow controllers in Ruby and C. “ I poked through Trema recently. It looks like a *great* project. Very clean. ” -Martin Casado, Nicira CTO Install Installation is very easy. Run gem install trema and straight away you have a working Trema installation. $ gem install trema If you prefer manual installation, download .tgz or .zip from
はじめに 効率とは賢く怠けることである (作者不詳) 無精:エネルギーの総支出を減らすために, 多大な努力をするように, あなたをかりたてる性質。 (Larry Wall) 優れたプログラマが持つハッカー気質のひとつに「無精」があります。大好きなコンピュータの前から一時も離れずにどうやってジャンクフードを手に入れるか――普通の人からするとただの横着に見えるかもしれませんが,ハッカー達にとってそれはいつでも大きな問題でした。たとえば,ハッカーの巣窟として有名なMITのAIラボにはかつて,UNIXのコマンド一発でピザをFAX注文するxpizzaコマンドが存在しました(注1)。また,RFC 2325として公開されているコーヒーポットプロトコルでは,遠隔地にあるコーヒーポットのコーヒーの量を監視したり,コーヒーを自動的に淹れたりするための半分冗談のインターフェースを定義しています。 こうした「
SDNの基本動作とアジャイルな開発が可能なSDN実装、「Trema」:TremaでSDNを手のひらに(1)(1/2 ページ) IT関連イベントや勉強会などで注目を浴びたSDN/OpenFlow。この記事では「Trema」を例に、自分の手で実際にOpenFlowを「いじってみる」のに必要な情報を解説していきます。 SDN/OpenFlowとはどんなモノか IT関連イベントや勉強会などで万能の釜(聖杯)のように語られ、注目を浴びたSDN/OpenFlow(もっとも近頃では、日本でのSDN/OpenFlow注目度のカオスさは収まり、落ち着きが出てきましたが)。いったいSDN/OpenFlowとはどんなモノなのでしょうか。 「SDN/OpenFlow」と記載していますが、まずはSDNとOpenFlowを分けて紹介していきます。 SDNとはざっくり言うと、「ソフトウェアからネットワークを制御しよう」
はじめに やり方は3つしかない。 正しいやり方。間違ったやり方。俺のやり方だ 『カジノ』(マーティン・スコセッシ) そろそろ独り立ちするときがやってきました。これまで本連載では,OpenFlowコントローラの書き方とTremaの仮想ネットワークを使った実行方法(注1)を知り,テスト駆動によるOpenFlowコントローラの開発手法(注2)を学びました。Tremaのソースコードを探検し,その設計思想にも触れました(注3)。OpenFlowプログラマとしてやっていくための基本的な知識はすべて身につきました。 次は何をすればよいでしょうか? あとはやってみるだけです。まずは自宅のネットワークをOpenFlowで置き換えましょう。うまくいったら,こんどは職場のネットワークをOpenFlowで置き換えましょう。その環境で実際に暮らしてみて,初めて見えてくるアイデアや改善案があります。これは,とに
Trema本 Tremaを使ったOpenFlowプログラミングを解説するフリー書籍です. ブラウザ版のページ: https://yasuhito.github.com/trema-book/ 書籍版 (技術評論社) のページ: http://gihyo.jp/book/2016/978-4-7741-7983-4 もくじ ■1章:OpenFlowの仕組み 1.1 ソフトウェアで楽をする 1.2 ネットワークもソフトウェア制御 1.3 OpenFlowの動作モデル 1.4 OpenFlowのうれしさ 1.5 OpenFlowで気をつけること 1.6 まとめ ■2章:OpenFlowの仕様 2.1 OpenFlowの標準仕様 2.2 スイッチとコントローラ間のやり取り 2.3 フローエントリの中身 2.4 マルチプルテーブル 2.5 まとめ ■3章:Hello, Trema! 3.1 作ってわ
Tremaを使ったOpenFlowプログラミングを解説するフリー書籍です。対応スイッチの多いOpenFlowバージョン1.3.xを対象にしています。プログラミング言語はRubyバージョン2.0以降です。
昨日、@oshothebig主催のOpen vSwitchソースコードリーディングに参加してきたので、メモ書きをつれづれと。Open vSwitchはOpen Flowにも対応した仮想スイッチで、最近Linux 3.3にコードがマージされたというニュース「Open vSwitchがLinux 3.3でメインラインにマージ、標準サポートへ」が出ていた。Open vSwitchの一部にはLinux kernel用のモジュールが含まれているけど、これがマージされたようだ。 Open vSwitchはTrema経由で使ったことがあったけど、内部がどうなっているかとか、ましてやソースコードはまったく読んでいない。ということで本勉強会に参加してみたのだが、のっけの発表からOpen vSwitchの知識をある程度前提にされているようで、ついて行けない。ちょっと予習が必要だったかも。講演資料は各自アップロ
冬に掛けていた不織布を外しました。 どうやら最低気温が氷点下になる事は無さそうなので、 死んではいなそうなのですが、お日様いっぱい当てたら元気になってくれるのだろうか。。。 関東でも台湾パイナップルは屋外でも冬を越せたのか結果は、あと1ヶ月ぐらいしたら解るのかな。 自宅 ESXi 7.0 環境としての HP Thin Micro TM200 について、 最近ヤフオクで出回ってるんですよね。 iLO4が付いてて、M.2 2280スロットがあって、3.5 SATAが2個入って、サイズが小さいピザサイズ。 自宅向けじゃないですか? 仕事でサーバとか触ってると、自宅でも ESXi を使う事がたまにあると思いますが、ESXi 7.0からNICの要件が厳しくなったので、6.7のままというパターンがあったと思います。 6.7だと、net55-r8168を使って、RealtekなNICでも動かす事が出来た
InternetWeek 2012にてOpenFlow チュートリアル&ハンズオンでOpenFlowのプログラミングフレームラーク、Tremaについてのハンズオンに参加し、調子に乗って開発が止まっているバージョンのTremaにpull requestしてしまったりなどしつつ、講師の高宮さん、鈴木さんと名刺交換をさせていただきましたところ、OpenFlow実践入門の献本をいただきました! 非常に恐縮です・・・ さて、いただいたOpenFlow実践入門ですが、それについてお話する前に OpenFlow について簡単に説明しますね。 OpenFlowとはL2スイッチ(ハブとか呼ばれる)とかL3スイッチ(ルータとか呼ばれる)は大きく構成する要素をふたつに分けることができます。 ひとつはデータプレーン。こいつはパケットの転送を扱う部分です。目に見える部分でわかりやすく言うと足の部分ですね。ケーブルが
Tremaを使ったOpenFlowプログラミングを解説するフリー書籍です。対応スイッチの多いOpenFlowバージョン1.3.xを対象にしています。プログラミング言語はRubyバージョン2.0以降です。
2012年2月15日 初出:Software Design 2012年1月号(12月17日発売) Trema プロジェクト,高宮安仁,@yasuhito,すぎょうかずし,千葉靖伸,鈴木一哉,小出俊夫,@effy55 はじめに 初期ファイナル・ファンタジーの伝説的プログラマ,ナーシャ・ジベリの「早撃ち」エピソードを知っていますか? 彼はヒーローのようにさっそうと現れ,どんなプログラムでも電光石火で書いてしまいます。「見てくれの悪さは気にしねえ。誰よりも早くやってやるぜ」。やがていくつかの伝説を残し,彼もプロジェクトを去るときがやってきました。残った同僚たちは困りました。彼の超絶プログラムは彼にしか理解できず,バグがあっても修正できないのです。それに,変更しようとすると動かなくなってしまいます。「ナーシャ,カムバック!」でも彼はもう戻ってきません……。 こうした悲劇を防ぐ方法の1つがソ
2012年5月16日 初出:Software Design 2012年4月号(3月17日発売) Trema プロジェクト,高宮安仁,@yasuhito,すぎょうかずし,千葉靖伸,鈴木一哉,小出俊夫,@effy55 はじめに グーーッモーニング,ベトナーーーーーム! 『グッドモーニング,ベトナム』(バリー・レヴィンソン) 今回はOpenFlowでミニ放送局気分を味わってみましょう! 動画を配信するしくみの1つにマルチキャストがあります。これはNTT東/西の「ひかりTV」などで実際に使われているしくみで,動画などのデータを多くの視聴者に対して効率的に配信できるという特徴があります。このマルチキャストを使った動画配信をTremaで実現してみます。 観たい人にだけ届けるマルチキャスト マルチキャストを使った動画配信の動作を簡単に説明しておきましょう(図1)。動画ストリーミングサーバが配
2012年3月14日 初出:Software Design 2012年2月号(1月18日発売) Trema プロジェクト,高宮安仁,@yasuhito,すぎょうかずし,千葉靖伸,鈴木一哉,小出俊夫,@effy55 はじめに 「合言葉を」異口同音にささやく。「デンマーク」 アルトゥル・シュニッツラー 「夢奇譚」 平穏と思える日常生活にも,思わぬところに「闇」が潜んでいるものです。アメリカの最古の秘密結社の1つ,トライステロをご存じでしょうか。トライステロは裏社会の地下郵便組織で,その流通ネットワークはなんと全米に広がっています。恐ろしいことに,トライステロは重要な社会インフラの1つである郵便事業を通じて,あらゆる歴史的事件に社会の裏側から関与し続けていると言われています。 ところで,アメリカの街中で図1のような小さなラッパの落書きに気づいたことはありませんか? これはトライステロのマークで
はじめに 「そろそろ頃合い」セイウチは言った 「あれやこれやの積もる話」 ルイス・キャロル 「不思議の国のアリス」 今回は盛りだくさんです! まずは身近な例を使って,OpenFlowの動作モデルを説明します。これが理解できれば,OpenFlowの基本概念はバッチリです。次に,「トラフィック集計付きスイッチ」を実現するコントローラを実際に作ります。これはOpenFlowの重要な処理をすべて含んでいるので,応用するだけでさまざまなタイプのコントローラが作れるようになります。最後に,作成したコントローラをTremaの仮想ネットワーク上で実行します。すばらしいことに,Tremaを使えば開発から動作テストまでを開発マシン1台だけで完結できます! では前置きはこのぐらいにして,まずはOpenFlowでスイッチを制御するしくみを理解しましょう。 OpenFlowの動作モデル OpenFlowの動作を
OpenFlow Controllerフレームワークを試すメモです。 すごく簡単なL2スイッチのコントローラを似た感じの実装で並べてみます。(たいてい、各フレームワークにはサンプルでL2スイッチがついてますが、それとは別で。) まずは、POX(Python)とTrema(Ruby)で。(CはNOXを並べておきたいけど、おいおい。JavaはFloodlightもbeaconも微妙で悩み中、後者かなあ。) OpenFlow Swithを使った環境の準備方法は、Mininetとか、OpenvSwitchとKVMを使うとか、PC(サーバー)に多ポートNICつけてみるとか。 0. プログラム概要 一台のOpenFlow Switch用のシンプルな学習L2スイッチ。(学習: スイッチのどのポートにどのMacアドレスの通信機器がついているかを保存しておいて、それなりに振舞う。) このプログラムは、並べて
第2回クラウドネットワーク研究会「OpenFlow祭」でも好評だったOpenFlowコントローラフレームワークTrema。TremaをVMWare FusionのLinux上で動かしてみたときのメモを残しておこう。OpenFlowとPlan 9の関係は?と聞かれたけど、これには触れないことにしておくw TremaはOpen vSwitchを使った仮想ネットワーク構築機能を持っているので、OpenFlowに興味はあるけど、OpenFlowスイッチを持っていない人でも気軽に動かして試すことができる。ここではVMWareのhgfs上でTremaを動かす方法を書く。TremaはトップディレクトリのtmpディレクトリにUNIXドメインソケットを張るんだけど、hgfs側が対応していないので、そのままでは動かない。tmpディレクトリを/tmpなどに切り替える必要がある。ぱっと見、環境変数TREMA_TM
前回では PaperHouse を使えば簡単に C から実行ファイルをコンパイルできることを説明しました.なんと実行ファイルのほかにも, PaperHouse を使えばライブラリ (スタティックライブラリや共有ライブラリ) も同様に簡単にコンパイルできます. スタティックライブラリを作るときの面倒臭さって, .a ファイルを作るための gcc のオプションやコマンド (ar と ranlib) がすぐに思い出せないことです. PaperHouse::StaticLibraryTask はスタティックライブラリをコンパイルするための rake タスクです.PaperHouse::ExecutableTask と同じく単純なインタフェースで,gcc のオプションやコマンドを知らなくとも簡単にスタティックライブラリをコンパイルできます. 次の例は hello.c から libhello.a をコ
そろそろ「OpenFlow実践入門」についてステマしないといけないのではと思ったので書いてみる。OpenFlowに関して日本語で書かれた書籍はまだ2冊しか出ていないと思うけど、OpenFlowに興味あるならまずはこれを買っておけと。 OpenFlow本と言いつつ、実質はTrema本である。TremaはRubyで書かれたOpenFlowコントローラフレームワークなので、Rubyに愛のない人は厳しいだけど、Rubyを知らなくてもその都度Rubyの文法に関する補足がなされているので、最後まで読み通すことができる。Trema Dayでも、「Python版Tremaはどうなった?」という話が出てきたが、Pythonで再実装するぐらいなら、Rubyを覚えた方が早い。Python使いならRyuという選択肢もある。 高宮さんの巻頭言に感動しながら読み進めていくと、最初に出てくるhello-trema.rb
先月、「サーバ/インフラエンジニア養成読本 仮想化活用編」の改訂版が発売されました。献本頂きましたので、レビューをしたいと思います。 技術説明では、教科書的な説明にとどまらず、一歩踏み込んだ説明をしてくれています。この本は、Software Design 本誌に掲載されていた記事を、再編集してまとめたものなので、違う章で重複した説明があったりします。しかし、一線で活躍している各章の著者がどのように説明しているのか、その違いを比べてみるのも面白いかもしれません。 運用監視やセキュリティなど、実用上重要なポイントも取り扱っています。Hinemos/Zabbix/Nagios の比較記事などは、実際に現場で役立つ知識を得るのに適した記事かと思います。 OpenFlow の記事では、Trema でのプラグラミングを取り扱っています。「こんな夜中に」の記事を元にしていますが、Trema 最新版を使用
Transcript TremaͰICMPΛ੍ޚͯ͠Έͨ PINGΞεΩʔΞʔτ 2016/07/02 Trema Day #9 ؠా ߒਅ @kooshin ɹɹ@kooshin • ࣄ - ωοτϫʔΫͷӡ༻ɾߏங • झຯ - ζϯυίϧʔλͱ͔ ζϯυίΩϤγ with ϧʔλ - Cisco VIRLͱMPLS-TEͰζϯυίϧʔλΛ࣮ݱͯ͠Έͨ http://qiita.com/kooshin/items/2e00cdeb53cf9cf4c51d Ω˒Ϥ˒γ ζϯ υί ζϯ ζϯ ζϯ γείϧʔλͰ ΞεΩʔΞʔτΛ ඳ͍ͯΈͨ γείϧʔλͷPING ෯70จࣈͷΩϟϯόε ߏ - Trema + Open vSwitch OpenFlow εΠον γεί ϧʔλ γεί ϧʔλ Trema େ͖ Trema OpenFlow ίϯτϩʔϥ PACKET_IN
Welcome to Trema Trema is an OpenFlow controller programming framework that provides everything needed to create OpenFlow controllers in Ruby. It provides a high-level OpenFlow library and also a network emulator that can create OpenFlow-based networks for testing on your PC. This self-contained environment helps streamlines the entire process of development and testing. Prerequisites Ruby 2.0.0 o
Trema Day #4 参加してきました。というか発表してきました。毎度のごとく各発表のメモを公開しておきます。 Trema Day まとめ - TremaDay Trema Day #4 | 集客ならイベントアテンド Trema Day #4 #tremaday - Togetter Trema Dayといいつつ他の OFC Framework の話、RyuとかFloodlightとかに広がってみたり、実機ベースの話があったり、OpenStack の話が合ったり、また枠の広い話がいろいろ聞けて楽しかったですね。 あと今回発表してみたわけですよ。まあ思うところ詰め込みまくったので時間がね…。いやでも、思いの外好評だったので満足です。 Ryuの遊び方(Pica8も一緒にもっと楽しく!), 大柴さん Ryuの遊び方(pica8も併せてもっと楽しく) Ryuをベースにした使い方とかについて。
[追記 2013-10-27] See Also : Trema/Wireshark/OpenFlow Dissector関連情報 はじめに OpenFlow とか、単純にサンプルで動かすレベルなら特に考えなくても割と動いてしまう。が、ある程度複雑なものを作ってみようとか、ソフトウェア・シミュレーションから実機ベースに移してみると、とたんに、今どこで何が起きていて、予想通りに動いているのか、あるいは何が問題で動いていないのか、という状況に直面する。やる前にある程度、観測手段/検証方法を準備しておかないと、やってみたダメだった、というだけで、そこから先のステップに手が出せず、行き詰まってしまう。*1 Trema はその辺すごく考えてあって、テストフレームワークやデバッグツールなんかを用意して、開発プロセス全体をフォローしようという思想があったりする。今回は、低レベルでバッグツールである Tr
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Wakame-vdcの最新版(v11.12)リリース、多数の機能拡張と、OpenFlowに対応 Wakame Software Foundation(WSF)は、クラウド基盤ソフトウェアであるWakame-vdcの最新版となるv11.12をリリースしました。エンタープライズ向けの機能強化と事例の紹介が充実し、仮想ネットワーク関連技術で話題のOpenFlowを組み込むなど、クラウド基盤ソフトウェアとして更に大きく前進しています。 具体的には、ハイパーバイザーのFailoverの機能強化、システム全体の耐障害性強化、またRedHatへのインストールも可能になり、エンタープライズ分野で必要とされる安定化に向けた強化が数多くなされています。(詳細はアップデート事項一覧をご参照ください) また、最新の仮想ネットワーク関連技術として話題のOpenFlowをいち早く活用した事も重要なポイントになってい
Trema Day #1に参加した。まったりとした雰囲気の中、Tremaに限らずSDN関連のいろんな発表聴けて休日を潰しても十分元を取れた。その中でOpenFlow 1.3の話がいくつか出てきたので、まとめておきたいと思う。当日の様子はust録画されているとのことなので、まだ視聴できると思う。 1.0から1.3への変更について、機能レベルでIPv6やMPLS、PBBなどに対応したというのはあちこちで耳にするので、ここでは踏み込まない。グループやQoSのあたりも、具体的にどう使うのかいまいち分かっていないし。個人的には予想以上にプロトコルが変わっているという印象を強く受けた。詳しくは後で書くけど、packet inに関わる部分は特に変わりすぎじゃないかな。現実に即すように変更されたのだとは思うけど。Trema開発の中心人物である須堯さんは、1.0と1.3の互換性を取りながらコントローラを作る
2012年01月04日20:12 by 山崎泰宏 Wakame-VDC v11.12をリリースしてみて カテゴリWakame事業内容に関するもの Tweet sparklegate Comment(0)Trackback(0) 先月末にWakame-VDC v11.12がリリースされました。 私たちはこの半年の間、Wakame-VDCの安定化と、実案件への適用、運用、数多くのバグフィックスを通じて様々なナレッジが得られました。 今回のバージョンアップはそれらが全て反映されたもので、今すぐインストールDVDを入手することができます。 早速いろいろと感想が届いていて嬉しい限りです。(←日本語の感想はまだ無い) OpenFlow対応 特に大きな機能追加は、前回ポストした通り、OpenFlowに対応したことです。おそらく正式リリースされたプロダクトの内、IaaSのようなクラウド基盤ソフトウェアとし
前フリ この記事はTech-Circle Hands on Advent Calendar 2016の12/13の記事です。 昨日は@akiraabeによるシェル芸人 meets Dockerでした。 シェル芸は良いものです。この記事もDocker関連なのでカブリました。 この記事について この記事が公開される前日はTechCircleで試してわかるSDN~Tremaではじめるパケット生成ハンズオン~を開催しました。 その中のLTである「Trema本をbuildする話」の内容からネタ臭を控えめにDockerの活用という観点で焼き直したものです。 Trema本をbuildする! #docker #japanese #trema本 #techcircleja https://t.co/5K7ekicOSe @SlideShareさんから — Takumi Seike (@seiketkm) 2
Welcome to Trema Trema is an OpenFlow controller programming framework that provides everything needed to create OpenFlow controllers in Ruby. It provides a high-level OpenFlow library and also a network emulator that can create OpenFlow-based networks for testing on your PC. This self-contained environment helps streamlines the entire process of development and testing. Prerequisites Ruby 2.0.0 o
宮坂部長 @yasuhito ATND http://t.co/ush6Tmb0 はまだ若干空きがあるようです。 もちろん登録しないと会場には入れませんので、ふらりと来て参加するという斬新な行為は慎しんでいただくようお願い申し上げます #tremaday 2013-01-25 15:52:48
TOP > ブログ > OpenFlow ShowCase、ジュニパーの展示内容 [Interop Tokyo 2012] ジュニパーによるOpenFlow ShowCaseでのデモは、OpenFlow ShowCaseの中で最もマニアックだった気がします。 こういったマニアックさは、担当者のかたの個人的コダワリが溢れている感じがして好感が持てます。 OpenFlow ShowCaseでのジュニパーによるデモは、MPLSのPseudo WireのルーティングドメインとOpenFlowを組み合わせデータセンター間接続を実現するような内容でした。 それにネットワークのルーティングドメインを仮想化するLogical Systemと Open FlowSwitchを仮想化するMulti Controllerを組み合わせて、ネットワークのスライスを実現させています。 まず最初に、ネットワークの仮想化
今回は Trema Apps にある Sliceable Switch について紹介します。このアプリを使うと、OpenFlow ネットワーク全体をスライスに分割し,複数の L2 ネットワークとして動かすことができます。ちょうど,L2 スイッチを複数の VLAN に分けて使うイメージです。マルチテナントを収容するデータセンターで、テナント毎に独立したネットワークを実現するなどの用途を想定したものです。 準備 Sliceable Switch のソースコードは https://github.com/trema/apps/ にて公開されています。ソースコードをまだ取得していない場合は、git で取得してください。ここでは、以下のようなディレクトリ構成になっていることが前提です。 % ls -F apps/ trema/ Sliceable Switch は、topology や flow_ma
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く