文章中文件名內的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