[[labs.beatcraft.com]] ~
[[OpenFlow]]

#contents

* OpenFlow/mininet [#pa467e1a]
mininet~
http://mininet.github.com/~
~
minninet は一つの Linux 環境上に~
OpenFlow スイッチ、OpenFlow コントローラー、スイッチに接続するホスト、~
から成る仮想ネットワークを構築して OpenFlow の開発やテストを行うことができる環境です。~
VM 上の Linux にも構築できるので、mininet を使うのが OpenFlow がどのような動作をするものなのかを~
実際に動かして試すのに最も手軽な方法です。~

* mininet setup [#qbe8ee99]
mininet のサイトでは設定済みの VM を配布しており、この VM を使用することを推奨していますが、~
インストールされる個々のアプリケーションを把握し VM を自分の思ったような構成に設定するため~
ここでは自分で mininet をインストールして設定します。~
~
http://mininet.github.com/download/~
のページにある Option2 : Native Installation を VMware 仮想マシン上の Ubuntu 12.04 LTS に対して行います。~
~
Ubuntu 12.04 Desktop amd64 を VMware Player で作成した仮想マシンにインストールした状態が前提です。~
Network を利用することが主目的の環境なので Server 版を使用すればいいのですが、~
Wireshark を利用した解析を同一マシン上で行えるので今回は Desktop 版を使用します。~
~
まず mininet ソース一式を取得します。~
 $ sudo apt-get install git-core
 $ git clone git://github.com/mininet/mininet
mininetのインストール手順は mininet/util/install.sh -aの手順に沿って行います。~
詳細についてはmininet/util/install.shスクリプトを参照してください。~
~
install.sh -a オプションは以下の項目が実行されます。~
- kernel インストール ~
- mininet のビルドと設定に必要なパッケージのインストール~
- sysctl の設定~
- OpenFlow リファレンス実装のインストール~
- avahi-daemon の削除~
- IPv6 の無効化~
- Wireshark の OpenFlow 解析機能インストール~
- Open vSwitch のインストール~
- pox のインストール~
- oftest のインストール~
- cbench のインストール~
- OpenFlow の動作には直接関係のないその他の細かい環境設定~

install.sh をそのまま使用してしまうと途中の過程が分からないので~
ここではinstall.sh -a で行われる手順を個別に自分で行ってみます。~

** kernel インストール [#z886e033]
Ubuntu 12.04 の default kernel は mininet に必要なプロセスベースネットワーク仮想化機能対応の~
3.2 なのでそのままで OK です。~
kernel に関して追加のビルドやインストールは必要ありません。~

** mininetの設定 [#ea1b6e65]
mininet のビルドと動作に必要なパッケージをインストールします。~
 $ sudo apt-get install gcc make screen psmisc xterm ssh iperf iproute telnet \
   python-setuptools python-networkx cgroup-bin ethtool help2man \
   pyflakes pylint pep8

** sysctl の設定 [#n3b742ea]
ネットワークの環境設定を追加します。(ネットワークバッファの増加など)~
 $ sudo -s
 # cat ~/mininet/util/sysctl_addon >> /etc/sysctl.conf

mininet をビルドしてインストールします。~
 $ cd ~/mininet
 $ sudo make install

** OpenFlow リファレンス実装のインストール [#wecf41da]
OpenFlow リファレンス実装のビルドと動作に必要なパッケージをインストールします。~
 $ cd ~
 $ sudo apt-get install autoconf automake autotools-dev pkg-config \
   libtool libc6-dev
OpenFlow リファレンス実装をビルドしてインストールします。
 $ git clone git://openflowswitch.org/openflow.git
 $ cd ~/openflow
 $ patch -p1 < ~/mininet/util/openflow-patches/controller.patch
 $ ./boot.sh
 $ ./configure
 $ make
 $ sudo make install

** avahi-daemon の削除 [#p12cd372]
意図しない通信を抑止するため、avahi-daemon を削除します。
 $ sudo apt-get remove avahi-daemon

** IPv6 の無効化 [#ofd8359d]
IPv6 は openflow 1.2 以降でないとサポートしないため停止します。~
 $ sudo -s
 # echo  'blacklist net-pf-10\nblacklist ipv6' >> /etc/modprobe.d/blacklist.conf

** Wireshark のインストール [#i264eace]
Wireshark と、Wireshark の OpenFlow 解析プラグインをインストールします。~
 $ cd ~
 $ sudo apt-get install wireshark libgtk2.0-dev scons mercurial libglib2.0-dev \
   libwiretap-dev libwireshark-dev
 $ hg clone https://bitbucket.org/barnstorm/of-dissector
 $ cd of-dissector/src
 $ export WIRESHARK=/usr/include/wireshark
 $ scons
 $ sudo cp openflow.so /usr/lib/wireshark/libwireshark1/plugins/
 $ mkdir -p ~/.wireshark
 $ cp ~/mininet/util/colorfilters ~/.wireshark

** Open vSwitch のインストール [#c46aa5e0]
Ubuntu 12.04 には Open vSwitch のパッケージがあるので、ソースからでなくパッケージでインストールします。~
 $ sudo apt-get install openvswitch-datapath-dkms openvswitch-switch openvswitch-controller
インストール後 Open vSwitch が mininet から起動されるようマシン起動時のデーモン設定を停止します。~
 $ sudo service openvswitch-controller stop
 $ sudo update-rc.d openvswitch-controller disable

** POX のインストール [#o0a63c07]
OpenFlow コントローラーとして POX をインストールします。~
POX は Python スクリプトなので取得して配置するだけです。
 $ cd ~
 $ git clone https://github.com/noxrepo/pox.git

** OFTestのインストール [#a158663d]
OpenFlow スイッチの Test ツール~
OFTest~
http://www.projectfloodlight.org/oftest/~
をインストールします。~
 $ cd ~
 $ sudo apt-get install tcpdump python-scapy
 $ git clone git://github.com/floodlight/oftest
 $ cd oftest
 $ git checkout -b oft-1.1 remotes/origin/oft-1.1
 $ cd tools/munger
 $ sudo make install

** Cbench のインストール[#ba8a30c9]
OpenFlowコントローラーのベンチマークソフト~
Cbench~
http://docs.projectfloodlight.org/display/floodlightcontroller/Cbench~
をインストールします。~
 $ cd ~
 $ sudo apt-get install libsnmp-dev libpcap-dev libconfig-dev
 $ git clone git://openflow.org/oflops.git
 $ cd oflops
 $ sh boot.sh
 $ sh boot.sh ← autoreconf のエラー対策で boot.sh は2回実行する。
 $ ./configure --with-openflow-src-dir=/home/beat/openflow
 $ make
 $ sudo make install
~
その他環境設定については、特に行いません。~
~
以上でmininet 環境の構築は完了です。~
インストール完了後 home ディレクトリには以下のようなディレクトリが出来ています。
 $ ls
 mininet       oflops    openflow
 of-dissector  oftest    pox

network への設定変更を反映するため再起動したら使用準備完了です。~
~
実際の動作確認は openfrow.org にある~
OpenFlow Tutorialを参照しながら行います。~
http://www.openflow.org/wk/index.php/OpenFlow_Tutorial~
[[OpenFlow/OpenFlow Tutorial 1]] ~

BC::labsへの質問は、bc9-dev @ googlegroups.com までお願い致します。
トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   最終更新のRSS