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開始做起