Trema アプリの起動方法 (ネットワークエミュレータ編)

今回は、ネットワークエミュレータ機能を使う場合の OpenFlow アプリケーションの起動方法について、解説します。

ネットワークエミュレータを使った起動方法

例えば、一台のスイッチに二台のホストが接続されているネットワークをエミューレートすることを考えます。まず、network.conf という名前で、以下のような内容のコンフィグファイルを用意します。

vswitch ( "vsw" ) { 
  datapath_id "0xabc" 
}
vhost ( "host1" )
vhost ( "host2" )

link "host1", "vsw"
link "host2", "vsw"

このネットワーク環境下で、例えばコントローラとして learning_switch を用いる場合には、以下のように起動させます。

$ ./trema run ./objects/examples/learning_switch/learning_switch -c ./network.conf -d

ネットワークエミュレータを使った起動方法(その二)

前節では、ネットワーク環境はコンフィグファイルに記載し、起動させる Trema アプリはコマンドラインから直接起動していました。しかし、両方ともに合わせて一つのコンフィグファイルから起動させることも、もちろん可能です。
learning_switch_with_network.conf という名前で、以下の内容のファイルを用意します。

vswitch ( "vsw" ) { 
  datapath_id "0xabc" 
}
vhost ( "host1" )
vhost ( "host2" )

link "host1", "vsw"
link "host2", "vsw"

run {
  path "./objects/examples/learning_switch/learning_switch"
}

以下のように、起動させます。

$ ./trema run -c ./learning_switch_with_network.conf -d

おわりに

前回と今回で、主に使われる Trema アプリの起動方法を紹介しました。Trema アプリを複数同時に起動させる方法については、また別の機会に紹介したいと思います。今回紹介した Trema の持つネットワークエミュレーション機能は非常に強力な機能です。ぜひ、この記事を参考に活用してみてください。