SDN控制器Ryu、Floodlight、OpenDayLight的安装以及Mininet连接

2023-05-16

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SDN控制器Ryu、Floodlight、OpenDayLight的安装以及Mininet连接 的相关文章

随机推荐

  • 常见网络协议

    网络协议为计算机网络中进行数据交换而建立的规则 标准或约定的集合 例如 xff0c 网络中一个微机用户和一个大型主机的操作员进行通信 xff0c 由于这两个数据终端所用字符集不同 xff0c 因此操作员所输入的命令彼此不认识 为了能进行通信
  • C++ 栈(stack)使用简述

    目录 1 有关函数的作用 2 测试用例 至于栈的结构与原理 xff08 先入后出 xff09 这里就不细说了 xff0c 这里主要记录下 C 43 43 的头文件 lt stack gt 有关栈的操作是如何使用的 1 有关函数的作用 sta
  • 解决一个镜像ID同时拥有多个tag的问题

    docker rmi span class token operator lt span REPOSITORY TAG span class token operator gt span
  • 蜂鸣器介绍

    蜂鸣器介绍 蜂鸣器是一种将电信号转换为声音信号的器件 xff0c 常用来产生设备的按键音 报警音等提示信号 蜂鸣器按驱动方式可分为有源蜂鸣器和无源蜂鸣器 有源蜂鸣器 xff1a 内部自带振荡源 xff0c 将正负极接上直流电压即可持续发声
  • DS1302时钟芯片(SPI协议)

    DS1302时钟芯片 DS1302是由美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片 它可以对年 月 日 周 时 分 秒进行计时 xff0c 且具有闰年补偿等多种功能 可以把该芯片看成一个小型的单片机 xff0c 其内部
  • ESP8266与单片机通信共地问题

    ESP8266与单片机通信共地问题 1 共地 xff1a 在数字电路中 xff0c 要判断一个电平信号的高低 xff0c 就需要一个标准来判断 xff0c 这个判断标准就是0电平 也叫地 xff09 xff0c 要把所有IC芯片的地连在一起
  • RS-485接口协议详解

    RS 485详解 通信协议 通讯协议主要是实现两个设备之间的数据交换功能 xff0c 通讯协议分硬件层协议和软件层协议 硬件层协议决定数据如何传输问题 xff0c 比如要在设备1向设备2发送0x63 xff0c 0x63的二进制数为0110
  • 使用阿里云IoT Studio建立物模型可视化界面

    使用阿里云IoT Studio建立物模型可视化界面 上一篇文章介绍了如何使用ESP 01S上报数据到物模型 xff1a https blog csdn net weixin 46251230 article details 12899671
  • 51单片机 简易光电循迹小车

    前言 应学校暑期课程要求 xff0c 也作为和小组成员完成一次对51单片机的练手 xff0c 制作了简易的光电小车 xff0c 完成了循迹功能 xff0c 下面包括较为详细的小车搭建过程以及完整代码 硬件部分准备 电源 可充电的电池组是智能
  • 阶段学习的总结

    当程序中存在多个对象的时候 xff0c 如何确定这些对象的析构顺序 单个对象创建时构造函数的调用顺序 调用父类的构造过程 调用成员变量的构造函数 xff08 调用顺序与声明顺序相同 xff09 调用类自身的构造函数 多个对象析构时 析构顺序
  • stm32学习笔记-1 STM32简介

    1 STM32简介 文章目录 1 STM32简介1 1 套件简介1 2 STM32芯片内部的外设1 3 STM32芯片系统结构1 4 STM32芯片引脚定义1 5 STM32最小系统 注 xff1a 笔记主要参考B站 江科大自化协 教学视频
  • Jetson Xavier NX 配置opencv3.4.5

    主要参考Jetson Xavier NX安装opencv3 x以及踩过的坑 xff0c 纪录下自己的错误 下载opencv3 4 5 链接 xff1a https pan baidu com s 17mASm87RNbgfmM 31vlxb
  • C++ 队列(queue、priority_queue)使用简述

    目录 1 queue有关函数的作用 2 priority queue 有关函数作用 3 queue 测试用例 4 priority queue 测试用例 至于队列的结构与原理 xff08 FIFO xff0c 先入先出 xff09 这里就不
  • 前端 | 数据可视化之ECharts

    文章目录 一 数据可视化1 1 什么是数据可视化1 2 数据可视化的使用场景1 3 常见可视化库1 4 小结 二 ECharts简介2 1 什么是ECharts 三 ECharts的快速入门3 1 ECharts使用五部曲3 2 选择不同类
  • Oracle数据库修改账户密码

    Oracle数据库用户密码忘记了怎么办 xff1f 1 首先需要进入cmd命令格式 xff1b 2 输入sqlplus as sysdba 超级用户角色 xff1b 3 SQL命令下输入alter user 用户名 account unlo
  • 如何让进程后台运行?(TX)

    一 运行指令 43 amp xff08 如 a out amp xff09 这样是将命令放入到一个作业队列中了 表现 xff1a 1 结果会输出到终端 2 前台出现进程号 3 使用Ctrl 43 C发送SIGINT信号 xff0c 程序免疫
  • Ubuntu20.04.2+ROS noetic打开rviz报错:...symbol lookup error...librviz.so: undefined symbol:

    打开rviz闪退 xff0c shell显示如下 xff1a 一开始我的独立显卡是安装好了的 xff0c 界面显示的OpenGL也是独显的 xff0c 但是用的其他博客的方法 xff1a span class token function
  • 计算机网络谢希仁第七版第四章习题

    4 09 xff1a xff08 1 xff09 子网掩码为 255 255 255 0 代表什么意思 xff1f xff08 2 xff09 一个网络的现在掩码为 255 255 255 248 xff0c 问该网络能够连接多少个主机 x
  • Ubuntu Linux操作系统——图形界面与命令行

    文章目录 Linux和Ubuntu命令行界面使用仿真终端窗口Shell基础正则表达式通配符模式表达式 Shell中的特殊字符 Linux命令行的使用命令行语法格式命令行基本用法命令行输入与输出执行Shell脚本vi编辑器vi操作模式打开vi
  • SDN控制器Ryu、Floodlight、OpenDayLight的安装以及Mininet连接

    文章中文件名内的xxx需要替换成自己文件的具体版本 ubuntu下安装之前可以先用 sudo apt cache madison soft name查看一下apt安装的版本 xff0c 如果版本合适的话用apt更加方便 Ryu控制器 Ryu