POX安裝、與mininet做連接

POX簡介:

POX是一個開發openflow的平台,我們可以在POX上研究,並且開發出屬於我們的openflow程式,執行該程式的電腦即可當作你的controller,用來控制你目標的switch。

POX安裝與執行:

在VMware的terminal內輸入以下指令即可安裝POX於你的VMware內(須先進入root權限)

git clone http://github.com/noxrepo/pox

安裝openssl套件

aptitude install dh-autoreconf libssl-dev openssl

編譯Openvswitch

wget http://openvswitch.org/releases/openvswitch-2.3.1.tar.gz

tar zxvf openvswitch-2.3.1.tar.gz && cd openvswitch-2.3.1

./boot.sh

./configure --with-linux=/lib/modules/`uname -r`/build

sudo make

sudo make install

sudo make modules_install

sudo modprobe gre

sudo modprobe openvswitch

sudo modprobe libcrc32c

設定ovsdb(只須做一遍重啟後也不需要再製造)

ovsdb-tool create /usr/local/etc/openvswitch/conf.db /usr/local/share/openvswitch/vswitch.ovsschema

開啟ovsdb-server(用SSL)

ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \

--remote=db:Open_vSwitch,Open_vSwitch,manager_options \

--private-key=db:Open_vSwitch,SSL,private_key \

--certificate=db:Open_vSwitch,SSL,certificate \

--bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert \

--pidfile --detach --log-file

開啟 ovs-vsctl

ovs-vsctl --no-wait init

開啟 ovs-switchd 功能

ovs-vswitchd --pidfile --detach --log-file

POX使用:

首先清除所有的controller(須進入root權限)

killall controller

清除你的mininet

mn -c

建立一個新的mininet網路拓墣

mn --topo single,3 --mac --switch ovsk --controller remote

網路拓墣類似

進入pox資料夾(若安裝路徑有改,請到你的安裝路徑內尋找)

cd pox

啟動POX的程式碼

./pox.py forwarding.l2_learning

在這邊我們啟動的是在/pox/pox/forwarding裡面的l2_learning程式碼,此為預設的程式碼,沒有特殊的功能,如果想要加入你自己設計的功能,你可以自行創建一個檔案,或者修改此檔案後,再來執行,即

./pox.py "你要啟動的檔案名稱"

重啟電腦後啟動方法 :

如果重新啟動電腦必須從以下動作開始

進入超級使用者

cd openvswitch-2.3.1/

並且從編譯Openvswitch裡面的

sudo modprobe gre

步驟開始做起

或是可以設定開機自動 load module

echo "openvswitch " >> /etc/modules

echo "gre" >> /etc/modules

echo "libcrc32c" >> /etc/modules

開機後可以直接從開啟ovsdb-server開始做起