今日も秋田で IoT

旧 Trema 日記

2012-04-01から1ヶ月間の記事一覧

Openvswitch を userspace で動かす

今回は Openvswitch (ovs-vswitchd) を userspace で動作させる方法を試してみたので紹介します。以前にも openvswitch の userspace での動作について紹介しましたが、その時用いていたのは ovs-openflowd でした。こちらの方は 1.4.0 にはすでに同梱されて…

GRE を使って OpenFlow ネットワークを作る

前回は etherip を使ってトンネルを組む方法について紹介しましたが、今回は GRE を使う方法について紹介します。 Linux には kernel module として動作する GRE ドライバが存在しますが、今回は Openvswitch に組み込まれている GRE 機能を使用します。その…

EtherIP を使って OpenFlow ネットワークを作る

今回は EtherIP を使って、openvswitch 同士を接続してみたいと思います。ハードウェア OpenFlow スイッチを持っていなくても、トンネルを使うことで、オーバーレイで OpenFlow ネットワークを作ることが出来ます。今回は、以下のような構成を作ることが目標…

C 言語で Match を書く (その1)

今回は、C 言語で Match を書いてみましょう。送信元 IP アドレス 192.168.1.0/24、宛先 IP アドレス 192.168.2.0/24 とマッチさせる Flow_mod を設定するコントローラは、以下のようになります。 ポイントは二点です。 宛先 IP アドレスをマッチ条件に用い…

Match 条件の wildcard について

Match 中の wildcard について説明します。前回記事で作成した matchtest.rb を動かしてみましょう。 $ ./trema run ./matchtest.rb -c ./network.conf -d $ TREMA_HOME=. ../apps/flow_dumper/flow_dumper [0x00000000000001] priority = 65535, match = [w…

Ruby で Match を書く (その2)

今回は Match を書く際の注意点について説明します。nw_dst を Matching の条件として使ってみましょう。 上記のサンプルを動かして、どのようなフローエントリが設定されたか確認してみましょう。 $ ./trema run ./matchtest.rb -c ./network.conf -d $ TRE…

Openvswitch を OpenFlow スイッチとして使う

以前 userspace で動作する openvswitch について紹介しましたが、今回は kernel-mode で転送動作を行う openvswitch を OpenFlow スイッチとして動作させる方法をまとめてみました。 ソースは ここ にあるものを利用し、INSTALL.Linux を参考にインストール…

Ruby で Match を書く (その1)

今回は Match の書き方について説明します。今回は C 言語よりもシンプルにかける Ruby を使います。OpenFlow 1.0 の仕様では、Packet の Matching に 12-tuple の情報を用いることができます。Trema において Match を作る際に、使用したい引数に値を設定す…