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

你可能感兴趣的:(网络与Linux系列,SDN,mininet,openflow,ryu控制器,SDN)