Top / Network / Openflow / Mininet / Install
HTML convert time: 0.013 sec.

Network/Openflow/Mininet/Install

Last-modified: 2012-12-06 (木) 08:24:22

Mininetのインストール方法

以下の二つの方法があります。

  • 配布されているVMイメージを使う
  • Ubuntuにインストールする

僕のとこは回線が遅くて900MBも待ってられんのでUbuntuにインストールしました。
めんどくさいので基本的にはVMイメージを使うことを強く推奨

ダウンロードとインストール

下記ページの [Option 2: Native Mininet Installation on Ubuntu 11.10] に従ってダウンロード。
Mininetダウンロード http://yuba.stanford.edu/foswiki/bin/view/OpenFlow/MininetGettingStarted[外部リンク]

git clone してきた中のinstall.shを叩くだけなんですが、注意事項が2点。

  • aptが走るので sudo 出来ること
  • スクリプトの一部で特定のパスが期待されている

1つ目はUbuntuなら特に問題は無いと思いますが、2つ目がちょっと問題かなと。

特定のパスが期待されている

install.shを叩いた時にどうやら実行ユーザのホームディレクトリに git clone されてることを期待してるようで、例えば /home/gom/tmp に git clone して install.sh を叩くとこんなエラーが出力されます。

gom@ubuntu64:~/tmp$ ./mininet/util/install.sh -a
Detected Linux distribution: Ubuntu 12.04 precise amd64
Running all commands...
Install Mininet-compatible kernel if necessary
[sudo] password for gom:  

(aptログ省略)

cat: /home/gom/mininet/util/sysctl_addon: そのようなファイルやディレクトリはありません
gom@ubuntu64:~/tmp$

ファイルを探してみると /home/gom/tmp 以下にあるにはある。

gom@ubuntu64:~/tmp$ find `pwd` -name sysctl_addon
/home/gom/tmp/mininet/util/sysctl_addon

めんどくさそうなので専用ユーザを作って対応しました。

新規ユーザのホーム直下で再度インストール

sudo 出来るユーザとして作成して、 git colne, install !!

openflow@ubuntu64:~$ git clone git://github.com/mininet/mininet

(ログ省略)

openflow@ubuntu64:~$ ./mininet/util/install.sh -a
Detected Linux distribution: Ubuntu 12.04 precise amd64
Running all commands...
Install Mininet-compatible kernel if necessary
[sudo] password for openflow:

(ログ省略)

Please reboot, then run ./mininet/util/install.sh -c to remove unneeded packages.
Enjoy Mininet!
openflow@ubuntu64:~$ 

動作確認

動作確認のため mn コマンドを引数無しで実行してデフォルトネットワークと mininet CLI を起動します。

openflow@ubuntu64:~$ sudo mn
[sudo] password for openflow: 
*** 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> 

これでOpenflowスイッチ s1 にホスト h1, h2 が接続されたネットワークが構築されます。
引数無しで実行された mn コマンドが構築するネットワークでは、フローテーブルも準備されているのでこのまま通信が可能です。

mininet> pingall
*** Ping: testing ping reachability
h1 -> h2 
h2 -> h1 
*** Results: 0% dropped (0/2 lost)
mininet> 

Enjoy Mininet!