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