一:RYU的安装:

参考  :

https://blog.csdn.net/Mr_Wanderer/article/details/107028267

https://blog.csdn.net/qq_19696893/article/details/123747960

bug解决:

sudo pip3 install webob==1.2.3sudo easy_install webob==1.2.3
应该会有很多红色的都根据上面的方式进行更新即可

最后 

测试是否可以正常运行。

二:Ryu是主流SDN开源控制器之一

1.Ryu是什么

Ryu是一种基于Python语言的软件定义网络(SDN)控制器,它提供了一个开放的应用程序接口(API),使网络管理员和开发人员能够轻松地编写新的网络控制应用程序来进行网络流量的控制和管理。Ryu通过OpenFlow协议与网络交换机通信,可以对网络设备进行配置、监控和管理。Ryu是一个开源项目,由日本NTT实验室开发和维护,被广泛应用于SDN应用程序的开发和部署。

2.Ryu的架构

3.RYU的特点

Ryu在SDN控制器领域有以下几个特点:

  1. 简单易用:Ryu采用Python语言编写,易于学习和使用,提供了丰富的API和文档,使开发人员能够快速地构建自己的SDN应用程序。

  2. 高度可扩展:Ryu提供了一个基于插件的架构,使开发人员可以方便地扩展和定制SDN应用程序的功能。

  3. 支持多种OpenFlow协议版本:Ryu支持多种OpenFlow协议版本,包括1.0、1.3和1.4版本,使其可以兼容不同厂家的网络交换机。

  4. 高性能:Ryu采用异步I/O模型和事件驱动的设计,提供了高性能的网络流量控制和管理能力。

  5. 开放源代码:Ryu是一个开源项目,可以自由获取代码并进行修改和定制,有助于推动SDN技术的发展和普及。

4.RYU可以做什么?

RYU是一款SDN控制器,可以实现以下功能:

  1. 网络拓扑发现和管理:RYU可以发现和管理SDN网络中的拓扑结构,包括交换机、主机、链路和路径等信息。

  2. 网络流量控制和管理:RYU可以控制网络流量的转发和策略,支持流表、QoS、ACL等功能,可以实现网络流量的精确控制和管理。

  3. 网络安全和监控:RYU可以对网络流量进行监控和分析,能够识别和处理恶意流量和攻击行为,提高网络安全性。

  4. 网络服务质量(QoS)保障:RYU可以实现基于流量的服务质量保障,包括带宽限制、拥塞控制、流量分类等功能。

  5. 网络编程和应用开发:RYU提供了丰富的API和SDK,支持Python编程语言,可以方便地开发和部署SDN应用程序,如基于SDN的网络监控、负载均衡、流量控制和优化等。

总之,RYU可以实现SDN网络的灵活和高效管理和控制,提高网络性能和安全性,同时也为SDN应用程序的开发和部署提供了便利。

5.GUI

官方:
https://ryu.readthedocs.io/en/latest/gui.html第三方:
http://ww7.sdnhub.org/releases/sdn-starter-kit-ryu/

6.Ryu的源码目录

 1.base:

base中有一个非常重要的文件:app_manager.py,其作用是RYU应用的管理中心。用于加载RYU应用程序,接受从APP发送过来的信息,同时也完成消息的路由。

其主要的函数有app注册、注销、查找、并定义了RYUAPP基类,定义了RYUAPP的基本属性。包含name, threads, events, event_handlers和observers等成员,以及对应的许多基本函数。如:start(), stop()等。

这个文件中还定义了AppManager基类,用于管理APP。定义了加载APP等函数。不过如果仅仅是开发APP的话,这个类可以不必关心。

  2.controller:

        controller文件夹中许多非常重要的文件,如events.py, ofp_handler.py, controller.py等。其中controller.py中定义了OpenFlowController基类。用于定义OpenFlow的控制器,用于处理交换机和控制器的连接等事件,同时还可以产生事件和路由事件。其事件系统的定义,可以查看events.py和ofp_events.py。

在ofp_handler.py中定义了基本的handler句柄,完成了基本的如:握手,错误信息处理和keep alive 等功能。更多的如packet_in_handler应该在app中定义。

在dpset.py文件中,定义了交换机端的一些消息,如端口状态信息等,用于描述和操作交换机。如添加端口,删除端口等操作。

3. lib:

       lib中定义了我们需要使用到的基本的数据结构,如dpid, mac和ip等数据结构。在lib/packet目录下,还定义了许多网络协议,如ICMP, DHCP, MPLS和IGMP等协议内容。而每一个数据包的类中都有parser和serialize两个函数。用于解析和序列化数据包。lib目录下,还有ovs, netconf目录,对应的目录下有一些定义好的数据类型,不再赘述。

4.ofproto:

在这个目录下,基本分为两类文件,一类是协议的数据结构定义,另一类是协议解析,也即数据包处理函数文件。 如ofproto_v1_0.py是1.0版本的OpenFlow协议数据结构的定义,而ofproto_v1_0_parser.py则定义了1.0版本的协议编码和解码。具体内容不赘述,实现功能与协议相同。

      5.topology:

包含了switches.py等文件,基本定义了一套交换机的数据结构。

event.py定义了交换上的事件。

dumper.py定义了获取网络拓扑的内容。

最后api.py向上提供了一套调用topology目录中定义函数的接口。

        6. contrib:这个文件夹主要存放的是开源社区贡献者的代码。

        7.cmd:定义了RYU的命令系统,具体不赘述。

8.services:完成了BGP和vrrp的实现。

9.tests:tests目录下存放了单元测试以及整合测试的代码

三:Ryu和Mininet联用

1.开启控制器,使用二层交换

ryu-manager simple_switch.py

2.开启Mininet

sudo mn --controller=remote运行成功并且 pingall测试

3.连接成功如图:

SDN实验---RYU介绍相关推荐

  1. 生动的SDN基础内容介绍(三)--Ryu控制器

    生动的SDN基础内容介绍(三)--Ryu控制器 控制器 Ryu的目录 Ryu的学习 simple_switch_13.py simple_switch_rest_13.py 交换机信息及流表项的查询 ...

  2. 生动的SDN基础内容介绍(二)--OpenFlow协议

    生动的SDN基础内容介绍(二)--OpenFlow协议 背景 OpenFlow OpenFlow的基础概念 流表项 流表 漏表 流表项的下发 流表项的删除 计量表 组表 控制器与交换机的通信 总结 背 ...

  3. 生动的SDN基础内容介绍(六)--SDN应用平面和网络测量

    生动的SDN基础内容介绍(六)--SDN应用平面和网络测量 背景 网络测量 网络测量的定义 网络测量的对象 网络状态参数 网络性能参数 网络流量参数 Heavy Hitter和Hierarchical ...

  4. SDN实验(四)——Learning Switch自学习交换机

    SDN实验(四)--Learning Switch自学习交换机 一.自学习交换机原理 (一)普通交换机实现 (二)SDN交换机实现 二.自学习交换机代码实现 (一)代码 (二)代码讲解 (三)实验 三 ...

  5. SDN实验(六)——SDN流量监控

    SDN实验(六)--SDN流量监控 一.流量监控原理 二.代码实现 (一)代码 (二)讲解 三.实验演示 (一)开启Ryu (二)开启Mininet (三)Ryu显示结果 四.扩展 一.流量监控原理 ...

  6. SDN实验(八)——网络时延探测

    SDN实验(八)--网络时延探测 一.原理 二.程序设计 1.构建网络拓扑 2.获取控制器到每个交换机的往返时延 3.获取LLDP时延 4.整体代码 三.实验验证 1.运行Ryu控制器 2.运行网络拓 ...

  7. 生动的SDN基础内容介绍(五)--SDN北向协议/接口和意图驱动

    生动的SDN基础内容介绍(五)--SDN北向协议/接口和意图驱动 背景 北向协议 REST API REST API在Ryu中的实现 意图驱动 总结 背景 经过前几章的讲解,现在回过头来再看看SDN的 ...

  8. ftt传感器_FTTTB温度传感器温度特性实验仪介绍及实验数据(新).doc

    FTTTB温度传感器温度特性实验仪介绍及实验数据(新).doc FD-TTT-B温度传感器温度特性实验仪 "溫度"是一种重耍的热学物理量,它不仅和我们的生活环境密切相尖,在科研及生 ...

  9. SDN/Mininet/ryu 踩坑

    1.Mininet安装不了2.5.0版本ovs 可能是ubuntu版本过高(20.04),降低版本后(14.04)成功 2.mininet连接远程ryu控制器不成功 原先: 启动ryu控制器 ryu- ...

最新文章

  1. 在ubuntu 14.04 64bit下配置安装PyQt4(python2.7和python3.4)
  2. 创新工场有哪些失败项目?不要只看着成功
  3. Ubuntu 16.04 LTS 下安装PyCharm
  4. HTML与CSS基础之伪元素(五)
  5. 67. 二进制求和(转换法)
  6. 微服务间保持事务一致性
  7. 被国产机所迫?苹果或将每半年发布一次新iPhone
  8. 管理动物园动物c++_中国动物园行业供需预测及投资潜力分析
  9. golang实现文件服务器,【Golang】实现文件服务器断点续传
  10. 30岁的职场危机,人生下半场的困局
  11. angular6之Http服务
  12. PHP生成TXT文件并自动下载
  13. mybatis报错:Could not find resource mapper/UserMapper.xml
  14. Java校验身份证、手机号、银行卡号
  15. Matlab 科研绘图汇总
  16. 人工智能与人脸识别门禁产品方案
  17. recyclerview滚动到指定条目
  18. 《运营力——微信公众号 设计 策划 客服 管理 一册通》一一1.2 团队岗位介绍...
  19. sqoop从oracle抽数到hive
  20. shiro设置ip白名单_亚马逊家庭IP:Luminati的搭建的步骤

热门文章

  1. 如何将CCBUPT全能墙小程序添加到手机桌面
  2. jzoj5920. 【NOIP2018模拟10.21】风筝(dp,最长上升子序列)
  3. C语言学生管理系统(结构体数组)
  4. vue.js实现的,添加和删除代办事项列表页面源码
  5. 8c sql手册 二
  6. 利用自制回流焊高温炉焊接表贴LED
  7. printk打印不出信息可能的原因
  8. android(安卓)悠悠导航v2.3.27.1,悠悠导航地图app
  9. viewpager2异常: java.lang.IllegalStateException: Fragment no longer exists for key f#1: unique id 8052
  10. GDI+ 小破孩动画