Topology を動かしてみよう
前回紹介した topology モジュールを動かしてみましょう。
ビルドと実行
trema 本体と topology のビルドを行ってください。
$ (cd trema/; ./build.rb) $ (cd apps/topology/; make)
ビルドができたら、以下のように実行してみてください。
$ (cd trema/; ./trema run -c ../apps/topology/topology_fullmesh.conf)
なにも表示されませんがこのままにしておいて、以降の操作は別の shell 上で行ってください。
トポロジー表示
上記の設定ファイル topology_fullmesh.conf 中には、vswitch 4 台、vhost 4 台、またフルメッシュになるようスイッチ間の link に関する記述が含まれています。これらの情報は、ネットワークエミュレーション機能により、仮想ネットワークの構成に用いられます。
コントローラである Trema アプリケーションから、これらのネットワークがどのように見えるかについて考えてみましょう。スイッチ側からはセキュアチャネルの接続が行われるので、ネットワーク中のスイッチの存在は知ることができます。さらに、今回の topology/topology_discovery モジュールを使うことで、スイッチ間のリンク情報も知ることができます。
実際に topology モジュールが、スイッチ間のリンクを把握できているかを確認してみましょう。以下のようなコマンドを実行してください。
$ (cd apps/topology/; TREMA_HOME=../../trema ./show_topology -D)
topology モジュールが認識しているトポロジーが表示されます。topology_fullmesh.conf と比較すると、topology モジュールの守備範囲外である vhost やスイッチ-ホスト間のリンクなどの情報は含まれていません。topology モジュールは、あくまでスイッチ間のリンクのみ管理します。この表示中の vswitch はリンクの両端の情報から再現したものです。つまり、他のスイッチと接続するリンクを一つも持たないスイッチは、ここでは表示されないことに注意が必要です。