2012-02-01から1ヶ月間の記事一覧
topology_discovery が LLDP でトポロジー検出を行う仕組みをみてみます。topology_discovery は LLDP メッセージを作り、packet_out でスイッチへと送ります。スイッチから出力された LLDP は隣接するスイッチに届き、packet_in でコントローラへと戻ってき…
前回の flow_dumper に似たアプリとして show_description があります。さっそく起動してみましょう。 $ ./trema run -c ../apps/routing_switch/routing_switch.conf -d $ TREMA_HOME=`pwd` ../apps/show_description/show_description Manufacturer descri…
Trema を使ってコントローラの開発をしていると、OpenFlow スイッチにちゃんとフローが設定できているのか気になります。OpenFlow の仕様では、OpenFlow スイッチに設定されているフローを取得するために、stats_request メッセージの OFPST_FLOW タイプが用…
作成した OpenFlow コントローラを trema 上で起動すると、セキュアチャネル用にデフォルトで tcp/6633 ポートを Listen します。このポート番号を変えるためには、コンフィグファイルに以下のような 1 行を付け加えます。 config.port = 6644 ネットワーク…
前回の記事で用いた topology_fullmesh.conf には run で始まる箇所が三つあり、それぞれ topology, topology_discovery, dumper という3つのアプリケーションを起動しています。このように trema では複数のアプリを同時に立ち上げることができます。しかし…
前回紹介した topology モジュールを動かしてみましょう。 ビルドと実行 trema 本体と topology のビルドを行ってください。 $ (cd trema/; ./build.rb) $ (cd apps/topology/; make) ビルドができたら、以下のように実行してみてください。 $ (cd trema/; .…
github 上の以下のリポジトリに、Trema を使ったアプリケーションがいくつか登録されています。https://github.com/trema/appsこの中にある topology について紹介します。 Topology とは? 複数の OpenFlow スイッチから構成されるネットワークを、コントロ…
./cruise.rb が最近失敗するようになった。こんな感じに。 kazuya@ubuntu0:~/proj/trema$ ./cruise.rb /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require': no such file to load -- bundler/setup (LoadError) from /…
質問を頂いたので、Trema のネットワークエミュレーション機能において、openvswitch がどのように起動されるかを解説します。 openvswitch の起動 openvswitch は、Trema 内の Ruby において、OpenVswitch クラスとして表現されています(ソース)。このクラ…
Trema のネットワークエミュレーション機能の中身を見てみたいと思います。例えば、以下のようなコンフィグファイルを Trema から起動したとします。 vswitch ( "vsw" ) { datapath_id "0xabc" } vhost ( "host1" ) vhost ( "host2" ) link "host1", "vsw" l…