2012-04-01から1ヶ月間の記事一覧
今回は Openvswitch (ovs-vswitchd) を userspace で動作させる方法を試してみたので紹介します。以前にも openvswitch の userspace での動作について紹介しましたが、その時用いていたのは ovs-openflowd でした。こちらの方は 1.4.0 にはすでに同梱されて…
前回は etherip を使ってトンネルを組む方法について紹介しましたが、今回は GRE を使う方法について紹介します。 Linux には kernel module として動作する GRE ドライバが存在しますが、今回は Openvswitch に組み込まれている GRE 機能を使用します。その…
今回は EtherIP を使って、openvswitch 同士を接続してみたいと思います。ハードウェア OpenFlow スイッチを持っていなくても、トンネルを使うことで、オーバーレイで OpenFlow ネットワークを作ることが出来ます。今回は、以下のような構成を作ることが目標…
今回は、C 言語で Match を書いてみましょう。送信元 IP アドレス 192.168.1.0/24、宛先 IP アドレス 192.168.2.0/24 とマッチさせる Flow_mod を設定するコントローラは、以下のようになります。 ポイントは二点です。 宛先 IP アドレスをマッチ条件に用い…
Match 中の wildcard について説明します。前回記事で作成した matchtest.rb を動かしてみましょう。 $ ./trema run ./matchtest.rb -c ./network.conf -d $ TREMA_HOME=. ../apps/flow_dumper/flow_dumper [0x00000000000001] priority = 65535, match = [w…
今回は Match を書く際の注意点について説明します。nw_dst を Matching の条件として使ってみましょう。 上記のサンプルを動かして、どのようなフローエントリが設定されたか確認してみましょう。 $ ./trema run ./matchtest.rb -c ./network.conf -d $ TRE…
以前 userspace で動作する openvswitch について紹介しましたが、今回は kernel-mode で転送動作を行う openvswitch を OpenFlow スイッチとして動作させる方法をまとめてみました。 ソースは ここ にあるものを利用し、INSTALL.Linux を参考にインストール…
今回は Match の書き方について説明します。今回は C 言語よりもシンプルにかける Ruby を使います。OpenFlow 1.0 の仕様では、Packet の Matching に 12-tuple の情報を用いることができます。Trema において Match を作る際に、使用したい引数に値を設定す…