池の上にも

平均以下の理解力で、色々アウトプットしてみるブログ

Namespace では OvS が動かないらしい

Mininet 上で検証 NW を作ろうとしていて、各スイッチの Namespace を分けつつ、更に OvS を個々の Namespace 上で動作させたいと思っていたのですが、どうやら動作しないようです。

$ sudo mn --switch=ovs --innamespace
:
--------------------------------------------------------------------------------
Caught exception. Cleaning up...

Exception: OVS kernel switch does not work in a namespace
--------------------------------------------------------------------------------
:


ソースコード上でも、Mininet の OvSSwitch クラスを走らせる際に、Namespace のフラグが立っていたら Exception 飛ばすようになっていました。

https://github.com/mininet/mininet/blob/f65e1ab9361632f8ba83b296e27f1fecc257d4f9/mininet/node.py#L1167-L1169

それっぽい PDF が転がっていて、Kernel API が提供されていないため Namespace 上での OvS 利用には制限事項(新規追加した Namespace を OvS で検知する手段がないとか)が多いみたいです。

http://openvswitch.org/support/ovscon2015/17/1555-benc.pdf

Mininet 上の Namespace で OpenFlow に対応したスイッチを利用する場合は、UserSwitch を使用するしかなさそうです。Indigo Virtual Switch は、インストールに手間かかりそうだったので、使えるか試せていません。