Tremaコントローラが勝手に終了してしまう現象の回避方法
書籍『OpenFlow実践入門』(初版)の P.292 には、実機の OpenFlow スイッチをラーニングスイッチとして動かしてフローエントリを表示するという手順が書いてあります。
ところが困ったことに、フローエントリを表示するコマンドを実行するとデーモンとして起動しておいたコントローラのプロセスが必ず終了してしまう現象が発生します。
使用している Trema のバージョンは現時点での最新である trema 0.3.3 です。
正しい方法なのか分からないですが回避策を見つけたので書いておきます。
回避策:
空のファイルを作成し、コントローラ起動時に -c オプションで指定する。
(つまり、中身のない仮想ネットワークの定義を指定します。)
空のファイルを ~/emtpy.conf に作るとすると、p.292 の1行目に記載のコントローラの起動を以下のようにすれば良いわけです(あくまでいち例です。他のやり方でも構いません)。
$ cp /dev/null ~/empty.conf $ trema run ./learning-switch.rb -d -c ~/empty.conf
ちなみに、デーモンで起動したコントローラを停止する方法ですが「5.5 trema コマンド」の P.73 に書いてあるとおり、以下を実行します。
$ trema killall
p.s
OpenWRT with OpenFlow 1.0 を入れたMZK-W300NH2 で試していて、コントローラと切断してしまう現象がやたらおきるのでしばらく悩んでしまいましたが上記の現象でした...。
« 書籍『OpenFlow実践入門』でTremaをインストール | トップページ | 書籍『OpenFlow ネットワーク入門』は、Trema の解説書だった »
「OpenFlow」カテゴリの記事
- ◆ 【Open vSwitchのみで OpenFlowプログラミング】VLAN ID コンバータ 改(2013.08.10)
- ◆ 【Open vSwitchのみで OpenFlowプログラミング】VLAN ID コンバータ(2013.08.05)
- ◆ 【TremaでOpenFlowプログラミング】VLAN ID コンバータ(2013.05.12)
- ◆ Linux のネットワークネームスペース機能と Open vSwitch で仮想ネットワーク(OpenFlowスイッチとTrema)(2013.05.11)
- ◆ OpenFlow 1.0.0 メッセージと Trema API(Ruby) との対応表(2013.05.08)
「Trema」カテゴリの記事
- ◆【改訂】OpenFlow フレームワーク Trema 0.4 のインストール手順【0.4.7対応】(2014.06.11)
- ◆ Trema 0.4.7インストール失敗とバージョン指定インストール(2014.06.08)
- ◆ OpenFlowフレームワーク Trema 0.4 のインストール(2013.10.06)
- ◆ 【TremaでOpenFlowプログラミング】VLAN ID コンバータ(2013.05.12)
- ◆ Linux のネットワークネームスペース機能と Open vSwitch で仮想ネットワーク(OpenFlowスイッチとTrema)(2013.05.11)
コメント
この記事へのコメントは終了しました。
« 書籍『OpenFlow実践入門』でTremaをインストール | トップページ | 書籍『OpenFlow ネットワーク入門』は、Trema の解説書だった »
とある海外ベンダーのスイッチでも同様の事象が起きておりましたが、
この対処法で解決しました。
この事象の原因がすごく気になりますが、(もしかしたら機種などに依存しない問題??)参考にさせていただきました!有難う御座います。
投稿: Shun159 | 2013年2月 6日 (水) 13時56分