一。安装Mininet

apt-get install git

这是最好的方式。git下载方式安装容易出错。

二、安装并测试Ryu控制器
1、安装并更新pip

sudo apt-get update
sudo apt-get install python3-pip
sudo pip3 install --upgrade pip
2、下载ryu源码

git clone git://github.com/osrg/ryu.git
3、打开Ryu,查看文件夹内包含内容

cd ryu
ls
4、安装Ryu的依赖

sudo pip3 install -r tools/pip-requires
如果出现报错,再执行一遍即可,或者重启系统后执行。

5、安装Ryu

sudo python3 setup.py install
6、测试是否安装成功

cd ryu
cd app
sudo ryu-manager simple_switch.py

出错:pkg_resources.ContextualVersionConflict: (PyYAML 3.12 (/usr/lib/python3/dist-packages), Requirement.parse('PyYAML>=5.1'), {'oslo.config'})

解决方法:# 亲测可用
pip install --ignore-installed PyYAML

7、另打开一个终端,进入root模式,并输入权限密码

su root
8、创建网络拓扑

mn --controller remote --mac --topo tree,2,2

9、先回车ryu-manager,然后回车mn网络拓扑,正常通信即证明mininet和Ryu安装完成;

在网络拓扑中输入“pingall”查看网络连通性。

10. RYU安装GUI

安装依赖: 
  #pip install Flask((Python 上一個非常知名的輕量化 Web Famework))
  #pip install gevent-websocket(在Web Browser 与 GUI Server做联系的套件)
获取图形界面源码:
  在gui-patch-v3-rebase 下载gui-patch-v3- rebase软件压缩包,解压,把里面的ryu/gui目录复制到安装Ryu的源代码目录/ryu/ryu;

然后接着我们要到/ryu/ryu/topology/文件夹下修改switches.py文件中的第45行至53行注释掉,  如下图所示:不支持lldp消息处理。

 启动Ryu,进入源码目录ryu/app,执行
 # ryu-manager --verbose --observe-links  ryu.topology.switches ryu.app.rest_topology  ryu.app.ofctl_rest ryu.app.simple_switch
  启动GUI界面,进入ryu/ryu/gui目录
 #python3 controller.py
打开浏览器界面 http://127.0.0.1:8000,即可查看

第二种方式:Ryu自带了网络拓扑可视化的app,名称为gui_topology.py,路径为:ryu安装目录/ryu/app/gui_topology/gui_topology.py。

ryu-manager --verbose --observe-links ryu.app.gui_topology.gui_topology ryu.app.rest_topology ryu.app.ofctl_rest ryu.app.simple_switch

浏览器输入:

http://localhost:8080

Ryu是支持同时启用多个app的,也就是说,启用gui_topology.py这个app并不影响你启用你自己写的控制逻辑app, 即你可以使用如下命令来启用多个app:

ryu-manager /ryu/app/gui_topology/gui_topology.py yourApp.py

三. 使用POSTMAN调用RESTAPI,方便调试

安装Postman:

官网下载地址:https://www.getpostman.com/根据机器类型选择64位下载。

在POSTMAN中输入正确的内容就可以下发请求信息。如请求dpid为1的交换机上的流表信息:

1

http://localhost:8080/stats/flow/1

选择动作类型为GET,点击send,可以马上获得交换机1上的流表信息。

详细流表内容如下。可见目前交换机上有三条流表项,其中第一条是默认的miss_table_entry.后两条是h1和h2通信的双向流表项。

也可以使用POST动作类型,下发一个flow_mod消息,对现有流表进行操作。

四、使用miniedit建立网络拓扑

root 权限模式下依次运行以下代码

root@ubuntu:/home/grape/mininet/examples# ./miniedit.py

ImportError: No module named '_tkinter',

sudo apt install tk-dev
sudo apt-get install python-tk

Ubuntu18.04 安装SDN ryu+mininet相关推荐

  1. 基于Ubuntu18.04的OVS与Mininet仿真工具安装及网络测量应用案例

    目录 一.Ubuntu18.04 安装 1.1镜像下载地址 1.2在VMware Workstation中安装镜像 1.3在Ubuntu18.04apt修改为国内的阿里云镜像源 1.4Ubuntu18 ...

  2. Ubuntu18.04安装教程及SLAM常用软件安装教程

    文章目录 前言 Ubuntu18.04安装教程 一.准备工作 1.1.下载ubuntu镜像 1.2.制作U盘启动项 1.3.给ubuntu分配硬盘空间 二 安装ubuntu18.04系统 2.1.设置 ...

  3. Ubuntu18.04安装g2o,及问题解决_HyperZhu的博客-CSDN博客_ubuntu18.04安装g2o

    Ubuntu18.04安装g2o,及问题解决_HyperZhu的博客-CSDN博客_ubuntu18.04安装g2o sudo apt-get install cmake libeigen3-dev ...

  4. linux18.04安装显卡驱动,详细介绍ubuntu18.04安装NVIDIA显卡驱动(亲测有效!)

    详细介绍ubuntu18.04安装NVIDIA显卡驱动(亲测有效!) 详细介绍ubuntu18.04安装NVIDIA显卡驱动(亲测有效!) 详细介绍ubuntu18.04安装NVIDIA显卡驱动(亲测 ...

  5. Ubuntu18.04安装Dlib-19.19.0成功

    VMware内Ubuntu18.04安装Dlib-19.19.0成功 本人第一篇博客,如果哪里写的不好还请多多包涵. 说明一下,我是通过pip去安装的所有库,除了Cmake.因为Dlib需要C++环境 ...

  6. ubuntu18.04安装python3.7并将python3指向python3.7

    ubuntu18.04系统默认装了三个版本的python,如下: ubuntu18.04安装python3.7并将python3指向python3.7 参考此篇文章:https://blog.csdn ...

  7. ubuntu18.04 安装qt5.12.8及环境配置的详细教程

    这篇文章主要介绍了ubuntu18.04 安装qt5.12.8及环境配置的教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 环境 系统: ...

  8. linux下anaconda3安装教程,Ubuntu18.04 安装 Anaconda3的教程详解

    Anaconda指的是一个开源的Python发行版本,其包含了conda.Python等180多个科学包及其依赖项. 因为包含了大量的科学包,Anaconda 的下载文件比较大(约 531 MB),如 ...

  9. Ubuntu18.04安装cuDNN和Tensorflow的正确姿势

    文章目录 Ubuntu18.04安装cuDNN和Tensorflow的正确姿势 一.检查NVIDIA驱动是否安装成功 二.检查CUDA是否安装成功 三.安装cuDNN 1. 确定版本 2. 下载安装包 ...

最新文章

  1. Sharepoint 2010 新特性笔记
  2. 数组 ——求出一组数的最大值(用数组实现)
  3. asp(javascript)中request.form(a).count 在ie6中总是为0
  4. 阅读开源源码的正确姿势建议
  5. BZOJ3589 动态树(树链剖分+容斥原理)
  6. Spring Boot 最佳实践
  7. Linux 命令之 7z(7-zip) -- 压缩/解压文件
  8. Centos 6.5部署nginx+uwsgi+django
  9. python读写文件操作_详解Python文件读写操作
  10. rhel系统启动过程_Linux启动过程详解
  11. opencv基础:结构光立体成像原理及标定
  12. (转)B-树、B+树、B*树
  13. Lua解析器管理器(封装解析器通用函数(销毁解析器,垃圾清理),通过ab包加载lua文件的加载器)
  14. 边缘计算开源项目概述
  15. 从初级开发者到资深架构师,看这
  16. 程序人生 - 库克:苹果收取 30% 佣金很合理!
  17. 2016-1-21高博活动
  18. TOJ 2977.Eight
  19. 「转」中国数据库40年历史:隐秘的江湖与恩怨
  20. 天猫店群玩法有流量销售额却上不去?可能是转化率出了问题。

热门文章

  1. Mybatis3基础示例
  2. PTA-python练习题-2(简单的计算及输入输出①)
  3. PB级大规模Elasticsearch集群运维与调优实践
  4. d3.js:取代d3.mouse的d3.pointer
  5. 25 参数估计——样本量的确定
  6. 八位彻底改变App Store的iOS开发者
  7. jdk1.8下载及安装
  8. 同时遍历两个list
  9. Soul Dance
  10. UTC和本地时间互相转换