OpenDaylight Hydrogenを試す_環境構築編

前回のエントリではHydrogenのインストール方法について書きました。
今回はHydrogenで色々試してみたいのでOpenflow環境を構築します。

VirtualBOX仮想マシン1台ですべて行います。
OSはUbuntu13.04です。
HydrogenはService Provider版を使用します。

Mininetのインストール

Mininetとは・・・Openflow環境を擬似構築できるツールです。
詳しくはこちら  

インストール

# git clone git://github.com/mininet/mininet
# git checkout -b 2.1.0p1 2.1.0p1
# mininet/util/install.sh -nfv
 ※openflowパケットが見れるWiresharakとかインストールしたいなら”-nfv”ではなく”-a”で

確認

# mn --version
2.1.0p1

Mininet起動

# mn --controller=remote
*** Creating network
*** Adding controller
*** Adding hosts:
h1 h2
*** Adding switches:
s1
*** Adding links:
(h1, s1) (h2, s1)
*** Configuring hosts
h1 h2
*** Starting controller
*** Starting 1 switches
s1
*** Starting CLI:
mininet>

デフォルトでスイッチが1台、ホストが2台起動します。

ではHydrogenのGUIで確認してみます。

f:id:kashigeru:20140224232429j:plain

スイッチが1台認識されています。
CLI上でもログが出ています。

 
osgi> 2014-02-24 23:13:30.162 JST [ControllerI/O Thread] INFO  o.o.c.p.o.core.internal.Controller - Switch:127.0.0.1:49763 is connected to the Controller
2014-02-24 23:13:30.308 JST [ControllerI/O Thread] INFO  o.o.c.p.o.core.internal.Controller - Switch:127.0.0.1:49764 is connected to the Controller
2014-02-24 23:13:30.574 JST [SwitchEvent Thread] INFO  o.o.affinity.l2agent.L2Agent - Added new node = OF|00:00:00:00:00:00:00:01 to mac_to_ports
2014-02-24 23:13:30.577 JST [SwitchEvent Thread] INFO  o.o.affinity.l2agent.L2Agent - Added new learned MAC = 178208016834021 on incoming connector = OF|2@OF|00:00:00:00:00:00:00:01 to mac_to_ports
2014-02-24 23:13:31.175 JST [SwitchEvent Thread] INFO  o.o.affinity.l2agent.L2Agent - Added new learned MAC = 266947267539790 on incoming connector = OF|1@OF|00:00:00:00:00:00:00:01 to mac_to_ports

ではFlowを作ってみます。
Mininetでpingallコマンドを実施。

mininet> pingall

GUIで確認します。

f:id:kashigeru:20140224232659j:plain

ホストが2台認識されました。
CLI上のログ

2014-02-24 23:15:03.936 JST [SwitchEvent Thread] INFO  o.o.affinity.l2agent.L2Agent - Installed flow Flow[match = Match [fields={DL_DST=DL_DST(f2:c9:81:0e:33:4e), IN_PORT=IN_PORT(OF|2@OF|00:00:00:00:00:00:00:01)}, matches=5], actions = [OUTPUT[OF|1@OF|00:00:00:00:00:00:00:01]], priority = 1, id = 0, idleTimeout = 0, hardTimeout = 0] in node OF|00:00:00:00:00:00:00:01
2014-02-24 23:15:03.946 JST [SwitchEvent Thread] INFO  o.o.affinity.l2agent.L2Agent - Installed flow Flow[match = Match [fields={DL_DST=DL_DST(f2:c9:81:0e:33:4e), IN_PORT=IN_PORT(OF|2@OF|00:00:00:00:00:00:00:01)}, matches=5], actions = [OUTPUT[OF|1@OF|00:00:00:00:00:00:00:01]], priority = 1, id = 0, idleTimeout = 0, hardTimeout = 0] in node OF|00:00:00:00:00:00:00:01
2014-02-24 23:15:03.951 JST [Thread-30] INFO  o.o.a.flatl2.FlatL2AffinityImpl - Host update received (new = true).
2014-02-24 23:15:03.958 JST [Thread-31] INFO  o.o.a.flatl2.FlatL2AffinityImpl - Host update received (new = true).
2014-02-24 23:15:03.973 JST [SwitchEvent Thread] INFO  o.o.affinity.l2agent.L2Agent - Installed flow Flow[match = Match [fields={DL_DST=DL_DST(a2:14:49:8a:1d:e5), IN_PORT=IN_PORT(OF|1@OF|00:00:00:00:00:00:00:01)}, matches=5], actions = [OUTPUT[OF|2@OF|00:00:00:00:00:00:00:01]], priority = 1, id = 0, idleTimeout = 0, hardTimeout = 0] in node OF|00:00:00:00:00:00:00:01

これで色々試せる環境の構築は完了しました。
あとはUserGuideを見ながら色々と試してみたいと思います。

最後に

今回Service Provider版を使用したのですが、
Out of Memory Error: java.lang.OutOfMemoryError: Java heap spaceが出て起動しませんでした。

こちらVMのメモリを2048にして./run.sh -Xmx1024m で起動させたら無事に起動しました。
(ノ´▽`)ノ{+++THANK YOU+++}ヽ(´▽`ヽ)