EtherIP を使って OpenFlow ネットワークを作る
今回は EtherIP を使って、openvswitch 同士を接続してみたいと思います。ハードウェア OpenFlow スイッチを持っていなくても、トンネルを使うことで、オーバーレイで OpenFlow ネットワークを作ることが出来ます。今回は、以下のような構成を作ることが目標です。
etherip のインストール
EtherIP の Kernel module 実装である EtherIP for Linux を使用します。kernel module は kernel のバージョンが違うと build 出来ないことがあるので、最新版を利用しましょう。ここ から取ってきます。
$ git clone git://git.8bytes.org/scm/etherip.git $ cd etherip $ make $ make driver $ sudo make install $ sudo make driver-install
kernel module のロードと tunnel endpoint の設定
対向の IP アドレスを 192.168.1.2 としたトンネルインターフェス ethip0 を、以下のように作ります。
$ sudo insmod /lib/modules/`uname -r`/misc/etherip.ko $ sudo /usr/sbin/ethiptunnel -a -d 192.168.1.2 -n ethip0 $ sudo ifconfig ethip0 up
192.168.1.2 側の PC も同様に設定を行ってください。こちら側からのトンネルの対向のアドレスは 192.168.1.1 になります。
openvswitch の設定
openvswitch のインストールと初期設定は、こちら を参考にしてください。
$ sudo ovs-vsctl add-br ofs0 $ sudo ovs-vsctl add-port ethip0 $ sudo ovs-vsctl add-port vnet0 $ sudo ovs-vsctl set-controller ofs0 tcp:192.168.1.1:6633
二台とも同様な設定を行って下さい。
trema/routing_switch の起動
Trema は 192.168.1.1 側のマシンで動作させます。
$ cd trema/ $ ./trema run -c ../apps/routing_switch/routing_switch_null.conf -d $ TREMA_HOME=. ../apps/show_description/show_description Manufacturer description: Nicira Networks, Inc. Hardware description: Open vSwitch ... 省略
show_description コマンドにより、openvswitch 二台分の情報が表示されるはずです。次にトポロジーが正しく認識できているかを次のコマンドで確認します。
$ TREMA_HOME=. ../apps/topology/show_topology
二台の openvswitch の datapath_id と、それらの間のリンクに関する情報が表示されるはずです。
ここまで出来ていれば、VM 間の通信が出来るはずです。一方の VM 上から対向の VM に対して、ping を打ってみましょう。
次回は、EtherIP の代わりに GRE を使う方法について紹介したと思います。