パケットの送信元・宛先 TCP/UDP ポート番号を書き換える

しばらく Modify-Field アクションでパケットを書き換える記事が続いています。今日はパケットの送信元・宛先 TCP/UDP ポート番号を書き換える方法です。

Continue reading

Tagged , ,

悪いコピペを防ぐ

コードのコピペには良いコピペ悪いコピペがあります。オープンソースのコードから使えそうなところを改変して取り込むのは良いコピペ (ライセンスとコピーライトの確認も忘れずに)。一つのソースツリーの中に同じコード断片がたくさんあるのが悪いコピペ。

Continue reading

Tagged ,

パケットの送信元・宛先 IP アドレスを書き換える

昨日にひきつづき Modify-Field アクションでパケットを書き換えてみましょう。今日はパケットの送信元と宛先 IP アドレスを書き換える方法です。

Continue reading

Tagged , ,

パケットの送信元・宛先 MAC アドレスを書き換える

OpenFlow では Modify-Field アクションを使ってパケットのいろいろな部分を書き換えることができるのでした。今回はこのうち、パケットの送信元と宛先 MAC アドレスを書き換える方法を説明します。

Continue reading

Tagged , ,

おすすめの本: ケント・ベックの Smalltalk ベストプラクティス・パターン

Trema で使われる Ruby はうまく使うととても簡潔に OpenFlow コントローラを実装できますが、そのお手軽さゆえに何も考えずに書くと途端にひどいコードができあがる言語でもあります。どんなプログラミング言語でもそうですが、きれいなコードを書くには専門的な学習が必要です。そこで今回から数回に分け、 Ruby のプログラミングに役立つ本を何冊か紹介します。今日紹介する本は、「ケント・ベックの Smalltalk ベストプラクティス・パターン」です。

Continue reading

Tagged , ,

Trema のチュートリアルやドキュメント

今回は Trema の主なチュートリアルスライドやドキュメント類を紹介します。自習や仲間内での勉強会など自由に役立ててください。

Continue reading

Tagged , ,

OpenFlow プログラミングフレームワーク 人気度ランキング

主要な OpenFlow プログラミングフレームワークの github 上での watcher 数と fork 数を比べてみました。比較したフレームワークとそれぞれがターゲットとしているプログラミング言語は次の通りです。

Continue reading

Tagged , , , , , ,

Exact Match を楽に作る

マッチングルールの中でもすべての条件が指定されたものを Exact Match と呼びます。たとえばよくある例ですが Packet In としてコントローラに入ってきたパケットと

  • スイッチの物理ポート番号
  • 送信元 MAC アドレス
  • 宛先 MAC アドレス

などなどマッチングルールが定義する 12 個の条件がすべてまったく同じ、というものが Exact Match です。これを普通にコードにするとこうなります。

Continue reading

Trema T シャツを着よう!

チームワークが良いことで有名な Trema の開発チームですが、その仲の良さの秘密は開発メンバ全員がいつもお揃いの T シャツを着ていることにあります。

Continue reading

Tagged

Flow Mod してみよう 1

Flow Mod はスイッチのフローテーブルを変更する OpenFlow メッセージの総称で、次の 3 種類があります。

  • Add フローエントリを追加する
  • Delete フローエントリを削除する
  • Modify フローエントリを変更する

Trema の Flow Mod API はそれぞれ

というメソッドで定義されています。今回は、この中でもとくによく使う send_flow_mod_add メソッドの API 定義を見ていきましょう。

Continue reading