今回は、Mininet VM imageにinstallされているものだけで、OpenFlowコントローラー(NOX)、OpenFlowスイッチ(Mininet)を準備します。
前回の説明と重複する部分がありますが、ご容赦ください。
Mininet VM imageの準備
- MininetのVM imageをDL
こちらを参考にMininetのVM imageをDLします。 - VirtualBoxのinstall
こちらからOS X用をDL - VirtualBoxにて、VMを新規作成
こちらを参考に、VM新規作成後、HDDイメージとして、上記1でDLしたvmdx fileを指定。 - VirtualBoxにて当該VM imageを選択し、設定をクリック。
ネットワークを選択し、ネットワーク設定を実施(今回はブリッジとして、Wi-fiを選択) - VirtualBoxにて当該VMを起動、login
ID:openflow
PW:openflow - /sbin/ifconfig eth0 にて、VM側のIPを確認
(defaultではDHCPになっているので必要に応じて、static IPを設定してください。こちらが参照になります) - Macからssh接続。
上記6で確認したIPに対して、ターミナルからssh接続します。
MAC$ ssh -X openflow@192.168.*.* #VMのIPを指定。 #X windowを利用できるように-Xを指定 openflow@192.168.*.*'s password: #default PW:openflow Welcome to Ubuntu 11.10 (GNU/Linux 3.0.0-12-generic i686) * Documentation: https://help.ubuntu.com/ New release '12.04 LTS' available. Run 'do-release-upgrade' to upgrade to it. Last login: Thu Jul 12 07:02:00 2012 openflow@mininet-vm:~$ #VMにlogin
OpenFlowコントローラーの起動
- こちらを参考に、noxの起動
openflow@mininet-vm:~$ cd ~/noxcore/build/src/ openflow@mininet-vm:~/noxcore/build/src$ sudo ./nox_core -v -i ptcp: pytutorial 00001|nox|INFO:Starting nox_core (/home/openflow/noxcore/build/src/.libs/lt-nox_core) 00002|nox|INFO:nox bootstrap complete
- こちらを参考に、Mininetを起動。スイッチ:s1に、ホスト:h2,h3,4を接続。
nodes,netコマンドで、node情報、接続情報を確認。
pingallコマンドで、h2,h3,h4間でpingが通ることを確認。
例として、h2 ifconfigコマンドにて、特定hostにてlinuxコマンドを実行。MAC$ ssh -X openflow@192.168.*.* openflow@192.168.*.*'s password: Welcome to Ubuntu 11.10 (GNU/Linux 3.0.0-12-generic i686) * Documentation: https://help.ubuntu.com/ New release '12.04 LTS' available. Run 'do-release-upgrade' to upgrade to it. Last login: Thu Jul 12 07:08:56 2012 from 192.168.115.139 openflow@mininet-vm:~$ sudo mn --topo single,3 --mac --switch ovsk --controller remote *** Loading openvswitch_mod *** Adding controller *** Creating network *** Adding hosts: h2 h3 h4 *** Adding switches: s1 *** Adding links: (s1, h2) (s1, h3) (s1, h4) *** Configuring hosts h2 h3 h4 *** Starting controller *** Starting 1 switches s1 *** Starting CLI: mininet> nodes available nodes are: h4 h3 h2 s1 c0 mininet> net s1 <-> h2-eth0 h3-eth0 h4-eth0 mininet> pingall *** Ping: testing ping reachability h2 -> h3 h4 h3 -> h2 h4 h4 -> h2 h3 *** Results: 0% dropped (0/6 lost) mininet> h2 ifconfig h2-eth0 Link encap:Ethernet HWaddr 00:00:00:00:00:02 inet addr:10.0.0.2 Bcast:10.255.255.255 Mask:255.0.0.0 inet6 addr: fe80::200:ff:fe00:2/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:32 errors:0 dropped:0 overruns:0 frame:0 TX packets:14 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2344 (2.3 KB) TX bytes:1028 (1.0 KB) mininet>
GUIコマンドの実行
MininetのHPに掲載されているGUIコマンドを試してみます。
- consoles.py
MAC$ssh -X openflow@192.168.*.* openflow@192.168.*.*'s password: Welcome to Ubuntu 11.10 (GNU/Linux 3.0.0-12-generic i686) * Documentation: https://help.ubuntu.com/ New release '12.04 LTS' available. Run 'do-release-upgrade' to upgrade to it. Last login: Thu Jul 12 07:27:10 2012 from 192.168.115.139 openflow@mininet-vm:~$ cd mininet/examples/ openflow@mininet-vm:~/mininet/examples$ pwd /home/openflow/mininet/examples openflow@mininet-vm:~/mininet/examples$ sudo ./consoles.py *** Adding controller *** Creating network *** Adding hosts: h1 h2 h3 h4 h5 h6 h7 h8 h9 h10 h11 h12 h13 h14 h15 h16 *** Adding switches: s17 s18 s19 s20 s21 *** Adding links: (h1, s18) (h2, s18) (h3, s18) (h4, s18) (h5, s19) (h6, s19) (h7, s19) (h8, s19) (h9, s20) (h10, s20) (h11, s20) (h12, s20) (h13, s21) (h14, s21) (h15, s21) (h16, s21) (s17, s18) (s17, s19) (s17, s20) (s17, s21) *** Configuring hosts h1 h2 h3 h4 h5 h6 h7 h8 h9 h10 h11 h12 h13 h14 h15 h16 *** Starting controller *** Starting 5 switches s17 s18 s19 s20 s21
(先のMininetコマンドにて作成した構成を利用する方法はこれから調べます。。。)
h1にてping 10.0.0.2(host2のIP)、h2にてifconfigを実行しています。 - miniedit.py
openflow@mininet-vm:~/mininet/examples$ pwd /home/openflow/mininet/examples openflow@mininet-vm:~/mininet/examples$ ls baresshd.py hwintf.py README tree1024.py consoles.py linearbandwidth.py scratchnet.py treeping64.py controllers.py miniedit.py scratchnetuser.py emptynet.py multitest.py sshd.py openflow@mininet-vm:~/mininet/examples$ sudo ./miniedit.py
下記のような画面が起動するので、スイッチ、hostを描いて、線で接続します。今回は、Mininet VM imageに含まれるアプリのみで、OpenFlowコントローラー、スイッチを起動してみました。また、GUIコマンドもいくつか起動してみました。次回からはいよいよ、コマンド詳細を調べて、複雑な構成・設定を試していきたいと思います。