SDN控制器Ryu、Floodlight、OpenDayLight的安裝以及Mininet連接


文章中文件名內的xxx需要替換成自己文件的具體版本
ubuntu下安裝之前可以先用​ sudo apt-cache madison soft_name查看一下apt安裝的版本,如果版本合適的話用apt更加方便。

Ryu控制器

Ryu是一款開源SDN 控制器,完全由Python 語言實現,用戶可以用Python 語言在其上實現自己的應用。Ryu 目前支持所有版本的Openflow協議。

安裝

先安裝依賴

sudo ​apt-get install ​python-eventlet
sudo ​​apt-get install​ python-routes
sudo ​​apt-get install​ python-webob
sudo ​​apt-get install​ python-paramiko

下載源碼

git clone git://github.com/osrg/ryu.git

執行安裝

sudo pip3 install -r tools/pip-requires
sudo python3 setup.py install

mininet連接

先打開ryu控制器

# 先進入app文件夾
cd xx/ryu/ryu/app # xx是安裝時的路徑
ryu-manager --verbose ryu.app.simple_switch_13

用mininet連接

# 通過打開ryu控制器的ip地址連接到ryu控制器
# 不指定port默認嘗試連接6653和6633兩個端口
mn --controller=remote,ip=xxx.xxx.xxx.xxx --mac --nat --topo=tree,depth=2,fanout=3 --nat

連接之后在打開ryu控制器的地方會輸出一些表項就代表連接成功。

關於連接時的參數:連續兩個“-”表示一個參數,一個參數內部可以有幾個選項,選項之間用逗號連接。如
–controller=remote,ip=xxx.xxx.xxx.xxx,port=XXX

Floodlight控制器

用到的軟件直接下載比較慢,文末提供了百度網盤資源

安裝

安裝ant

一. 可以使用sudo apt-get install ant安裝比較方便。但是可能安裝的ant不是最新的版本,與其它軟件不匹配。

二. 手動安裝

1.到Apache官網下載最新版本的ant:hzhttp://ant.apache.org/bindownload.cgi
推薦使用我提供的百度網盤的文件,下載更快。
2.解壓下載下來的.tar.gz文件: tar -xf apache-ant-1.8.2-bin.tar.gz
3.將解壓出來的文件移動到/opt/下:sudo mv apache-ant-1.8.2 /opt/
4.配置環境變量:sudo gedit /etc/profile,在原來基礎上添加以下內容

 export ANT_HOME=/opt/apache-ant-1.8.2
 export JAVA_HOME=/usr/lib/jvm/java-6-openjdk
 export PATH=$JAVA_HOME/bin:$PATH:$ANT_HOME/bin
 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

5.source /etc/profile 或者重啟(推薦)
6.驗證是否安裝成功: ant -version

安裝jdk

1.oracle官網下載壓縮包:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
推薦使用我提供的百度網盤的文件,下載更快。
2.解壓下載下來的.tar.gz文件: tar -zxvf jdk-8uxxx-linux-x64.tar.gz
3.將解壓出來的文件移動到/opt/下:sudo mv jdk1.8.0xxx /usr/local/jdk1.8
4.配置環境變量:sudo vim /etc/profile,在原來基礎上添加以下內容

export JAVA_HOME=/usr/local/jdk1.8
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=.:${JAVA_HOME}/bin:$PATH

5.source /etc/profile 或者重啟(推薦)
6.驗證是否安裝成功: java -version

安裝floodlight

# 解壓
tar -xvzf floodlight-1.2xxxxxxx
#進入目錄
cd floodlight
# 利用ant編譯
ant
# 然后就可以運行l

運行:​在 floodlight文件夾下輸入

java -jar target/floodlight.jar

連接

瀏覽器登陸控制界面

(localhost可以換成控制器所在機器的ip)

​​http://localhost:8080/ui/index.html

mininet連接

# 通過打開控制器的ip地址連接到ryu控制器
# 不指定port默認嘗試連接6653和6633兩個端口
mn --controller=remote,ip=xxx.xxx.xxx.xxx --mac --nat --topo=tree,depth=2,fanout=3 --nat

連接之后在打開floodlight控制器的地方會輸出一些表項就代表連接成功。
連接之后登陸控制界面即可看到拓撲結構

OpenDayLight控制器(碳版)

用到的軟件直接下載比較慢,文末提供了百度網盤資源

安裝

先安裝jdk

sudo apt-get install openjdk-8-jdk

把jdk加入環境變量 /etc/environment

sudo vim /etc/environment
最后加:JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"

重啟

reboot

安裝maven(碳版ODL建議3.8版本)

apt-get install maven

# 也可以用百度網盤內的軟件

下載OpenDayLight

# 下載源碼
# 也可以用百度網盤內的軟件
wget https://nexus.opendaylight.org/content/groups/public/org/opendaylight/integration/distribution-karaf/0.6.4-Carbon/distribution-karaf-0.6.4-Carbon.tar.gz
# 解壓
sudo tar -zxvf distribution-karaf-0.6.4-Carbon.tar.gz
# 進入目錄
cd distribution-karaf-0.6.4-Carbon/

修改文件etc/org.apache.karaf.management.cfg

vim etc/org.apache.karaf.management.cfg

# 對應的修改為以下內容
rmiRegistryHost = 127.0.0.1
rmiServerHost = 127.0.0.1

執行安裝,之后再運行也是這個方法

sudo ./bin/karaf

安裝模塊(以下命令是在OpenDayLight的命令行下運行的)

必須按順序安裝以下包(不同版本的ODL對應的包不太一樣)

feature:install odl-restconf odl-l2switch-switch-ui odl-openflowplugin-flow-services-ui odl-mdsal-apidocs odl-dluxapps-applications odl-faas-all

瀏覽器登陸控制界面(localhost可以換成控制器所在機器的ip)
http://localhost:8181/index.html,用戶名密碼都是admin

如果出錯:運行以下命令清除數據

./bin/karaf clean

然后重新安裝上述模塊。

mininet連接

mn --controller=remote,ip=127.0.0.1 --mac --nat  --switch ovs,protocols=OpenFlow13

如果pingall不通 :

1:確定添加參數:--switch ovs,protocols=OpenFlow13
2:關防火牆sudo systemctl stop firewalld

連接后打開llq進入管理界面看到拓撲結構即表示連接成功

mininet錯誤處理

添加 --nat選項后報錯:沒有/etc/network/interfaces文件

新建文件添加以下內容:

#This file describes the network interfaces available on your system
#and how to activate them. For more information,see interfaces(5).

source /etc/network/interfaces.d/*
#The loopback network interface

auto lo
iface lo inet loopback
iface nat0-eth0 inet manual

添加 --nat選項后在mininet中仍然無法訪問外網:

方法:修改:/etc/resolv.conf 的域名服務器為主機的DNS服務器
可以利用traceroute命令簡單查詢域名服務器地址

traceroute www.baidu.com

返回的第一個地址替換上述文件中的域名服務器地址即可。

判斷是否正確連接到控制器的方法:

一:打開控制器的控制界面查看連接到控制器的機器即可

二:利用交換機的命令ovs-vsctl show

出現connected=true即可

用到的文件(百度網盤)

用到什么下載什么即可,注意版本。

鏈接:https://pan.baidu.com/s/1OsjoML1fBL-ebL6EjCz6Qw
提取碼:0822


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM