一、安裝VirtualBox 虛擬機,並安裝ubuntu
1)安裝虛擬機
sudo apt-get install virtualbox-5.1
2)虛擬機安裝ubuntu操作系統
參考how to install ubuntu on virtualBox?
二、ubuntu系統下搭建SDN實驗平臺
1)首先根據步驟一,在虛擬機上安裝兩個ubuntu操作系統,一個命名mininet用於安裝mininet網絡仿真器,一個命名OpenDayLight用於安裝OpenDayLight控制器;
2)配置虛擬機配置網絡鏈接,實現主機與虛擬機、虛擬機間的通信。
- 啓動虛擬機選擇File –> preferences –> Network –> Host-only Networks–>點擊添加按鈕(會出現vboxnet0)
- 關閉虛擬機,爲虛擬機添加虛擬網卡,Setting –> Network –> Adapter 2 –> Enable Network Adapter - Attached to: (選擇Host-onlyAdapter) - Name(選擇1中新建的vboxnet0).
- 然後啓動虛擬機,打開命令行,輸入ifconfig,多出enp0s8 網卡配置(如圖所示)
主機會虛擬出一塊vboxnet0網卡,虛擬出192.168.56.*/24 網段
至此,虛擬機與主機互相通信已經實現,互相之間可以 ping 通
爲虛擬機安裝openssh-server,允許遠程登陸 (ssh命令: ssh username@remote-host ip)
sudo apt-get install openssh-server
三、在mininet虛擬機上本地安裝mininet源碼,步驟如下
1、安裝需要軟件
sudo apt-get install git
2、獲取需要Mininet源代碼
git clone git://github.com/mininet/mininet
3、獲取mininet源代碼之後即可安裝mininet
- 以下命令將安裝Mininet VM 中的所有安裝工具,包括Open vSwitch 、Wireshark抓包工具和POX,默認情況下這些將安裝在用戶的主目錄下
mininet/util/install.sh -a
- 以下命令默認安裝Mininet、user switch 和Open vSwitch:
mininet/util/install.sh -nfv
- 以下命令用可以將Mininet 安裝在指定目錄下,而不是默認主目錄(推薦)
mininet/uitl/install.sh -s mydir -a
mininet/util/install.sh -s mydir -nfv
4、安裝成功之後,驗證openvswitch-controller是否在運行,如果正在運行,應將其停止,以確保Mininet在啓動時可以指定自己的控制器
server openvswitch-controller stop
update-rc.d openvswitch-controller disable
5、測試Mininet是否安裝成功,測試命令如下
sudo mn --test pingall
至此,Mininet安裝測試成功。學習mininet簡單命令行 and API 詳解
四、在OpenDayLight虛擬機上安裝OpenDayLight控制器(參考博客),步驟如下:
1、首先安裝Java環境
- 安裝jdk
sudo apt-get install openjdk-8-jdk
- 配置環境變量JAVA_HOME 和PATH,在/etc/environment 中加入java目錄,cat 查看配置後的信息如下
- 用source 命令啓動生效
source /etc/environment
2.安裝Opendaylight
- 下載OpenDayLight,官網下載預編譯版https://www.opendaylight.org/downloads (推薦),也可一下載opendaylight源碼自己編譯(此過程比較麻煩)
- 解壓下載的opendaylight
tar -xvf distribution-karaf-*.tar.gz
- 啓動opendaylight
cd distribution-karaf-*
./bin/karaf
- 安裝 OpenDaylight features
opendaylight-user@root> feature:install odl-restconf odl-l2switch-switch odl-mdsal-apidocs odl-dlux-all
五、啓動mininet,並設置遠程控制器,命令及效果圖如下:
1)mininet啓動自定義拓撲
sudo mn --custom ~/mininet/custom/test1.py --topo mytopo --mac
--controller=remote,ip=192.168.56.102,port=6633 --switch ovs,protocols=OpenFlow13
測試連通性
2)OpenDayLight控制器,查看網絡拓撲;
正在運行opendaylight虛擬機的IP是192.168.56.102,opendaylight的端口是8181
瀏覽器訪問:http://192.168.56.102:8181/index.html
用戶名和密碼均爲admin
此時輸入用戶名和密碼會出現無法登錄情況(即:unable to login)
此問題是因爲缺乏依賴的features,執行如下命令問題即可解決
opendaylight-user@root> feature:install odl-dlux-all odl-restconf-all odl-l2switch-switch