ryu

SDN实验---Ryu的应用开发(三)流量监控

妖精的绣舞 提交于 2019-12-02 22:09:05
一:实现流量监控 (一)流量监控原理 其中控制器向交换机周期下发获取统计消息,请求交换机消息------是主动下发过程 流速公式:是(t1时刻的流量-t0时刻的流量)/(t1-t0) 剩余带宽公式:链路总带宽-流速--------是这一个这一个,例如s2-s3(不是一条,例如:h1->s1->s2->s3->h2)的剩余带宽 路径有效带宽是只:这一整条路径中,按照最小的剩余带宽处理 二:代码实现 (一)代码框架 from ryu.app import simple_switch_13 from ryu.controller.handler import set_ev_cls from ryu.controller import ofp_event from ryu.controller.handler import MAIN_DISPATCHER,DEAD_DISPATCHER class MyMonitor(simple_switch_13): #simple_switch_13 is same as the last experiment which named self_learn_switch ''' design a class to achvie managing the quantity of flow ''' def __init__(self,*args,*

Understanding Ryu OpenFlow Controller, mininet, WireShark and tcpdump

家住魔仙堡 提交于 2019-12-02 21:22:22
I am a newbie to OpenFlow and SDN. I need help setting up the Ryu OpenFlow controller on a Ubuntu or Debian machine and understand a basic Ryu application. Note : this question already has an answer. U. Muneeb This is probably one of the longest posts I have written on Stack Overflow. I have been learning about OpenFlow, SDN and Ryu and would like to document my knowledge for a beginner here. Please correct/edit my post if needed. This short guide assumes you already have knowledge of computer networks and major networking protocols. This guide will help you get started with OpenFlow from

SDN实验---Ryu的应用开发(一)Hub实现

别等时光非礼了梦想. 提交于 2019-12-02 13:32:23
一:自学习交换机(二层MAC交换机)的编程思路 (一)明确问题 如何实现软件定义的自学习交换机? (二)设计解决方案 通过控制器来实现自学习交换算法,然后指导数据平面实现交换机操作 (三)确定具体的技术方案 控制器选用Ryu,数据平面通过Mininet模拟 (四)部署实施 在控制器上编程开发交换机应用,创建实验网络为验证方案做准备 (五)验证方案 运行程序,调试程序,验证程序 (六)优化 验证成功后,优化程序 二:自学习交换机原理 (一)普通交换机实现 交换机MAC地址表记录了统一网段中的各个主机对应交换机的端口和主机的MAC地址 当主机A要和主机B通信时,初始交换机MAC表是空的,会先记录主机A的MAC地址和对应的交换机端口,然后查找交换机MAC中是否有目标MAC地址,没有找到,会向其他所有端口泛洪查找 泛洪,通知其他主机。主机C接收到数据包,发现不是自己的,则不处理,丢弃数据包。当主机B接收后,发现是找自己的,则可以进行消息通信。交换机先进行MAC学习,记录主机B的MAC信息,再进行查表转发,单播发送给主机A (二)SDN中交换机实现 SDN中交换机不存储MAC表,(datapath)只存在流表。其地址学习操作由控制器(控制器中包含MAC 地址表)实现,之后控制器下发流表项给交换机 1.主机A向主机B发送信息,流表中只存在默认流表,告诉交换机将数据包发送给控制器。 2

SDN实验---Ryu的应用开发

隐身守侯 提交于 2019-12-02 13:14:24
补充: (一)Ubuntu下安装Notepadqq 背景:为什么安装Notepadqq Notepad++ 不仅有语法高亮度显示,也有语法折叠功能,并且支持宏以及扩充基本功能的外挂模组。但是可惜的是Notepad++只能在Windows平台下使用。 工作中必须使用Windows时,Notepad++是众多程序员最喜爱的文本编辑器,在Ubuntu下是否能够使用到相同的软件呢?Notepadqq就是这样一款与Notepad++非常接近的编辑器,拥有几乎相同的功能。 安装: sudo add-apt-repository ppa:notepadqq-team/notepadqq sudo apt-get update sudo apt-get install notepadqq 安装(2): snap install --classic notepadqq 补充: 什么是snap软件包? 卸载: sudo apt-get remove notepadqq sudo add-apt-repository --remove ppa:notepadqq-team/notepadqq (二) Ubuntu下安装 sublime 优点: 一流的Git集成 增量差异功能可跟踪正在编辑的文件的更改。 移动到GTK3,以及针对Linux的各种高DPI修复。 新的主题功能和块插入支持。 支持Unicode

SDN实验---Ryu的安装

隐身守侯 提交于 2019-12-02 04:56:32
一:Ryu是主流SDN开源控制器之一 (一)推文 https://ryu.readthedocs.io/en/latest/ https://www.sdnlab.com/1785.html (二)Ryu是什么 Ryu is a component-based software defined networking framework.  Ryu是一个基于组件的软件定义网络框架 Ryu provides software components with well defined API's that make it easy for developers to create new network management and control applications. Ryu为软件组件提供了定义良好的API,使开发人员能够轻松地创建新的网络管理和控制应用程序。Ryu supports various protocols for managing network devices, such as OpenFlow, Netconf, OF-config, etc.  支持管理网络设备的多种协议About OpenFlow, Ryu supports fully 1.0, 1.2, 1.3, 1.4, 1.5 and Nicira Extensions. 

通过源码安装RYU控制器

倾然丶 夕夏残阳落幕 提交于 2019-11-28 09:15:12
目录 安装 测试 安装 安装pip3 sudo apt-get install python3-pip 获取ryu源码 git clone https://github.com/osrg/ryu.git 安装依赖 cd ryu sudo pip3 install -r tools/pip-requires -i https://pypi.tuna.tsinghua.edu.cn/simple 安装ryu sudo python3 setup.py install 测试 运行ryu控制器 ryu-manager ryu/app/simple_switch.py 另开一个终端,运行mininet sudo mn --controller=remote 成功的截图如下: 来源: https://www.cnblogs.com/multhree/p/11938765.html

2019 SDN上机第5次作业

寵の児 提交于 2019-11-27 10:10:48
1.浏览 RYU官网 学习RYU控制器的安装和 RYU开发入门教程 ,提交你对于教程代码的理解,包括但不限于: 描述官方教程实现了一个什么样的交换机功能? 官方教程实现了一个将接收到的数据包发送到所有端口的交换机功能 控制器设定交换机支持什么版本的OpenFlow? 控制器设定交换机支持OpenFlow 1.0 控制器设定了交换机如何处理数据包? @set_ev_cls(ofp_event.EventOFPPacketIn, MAIN_DISPATCHER) 当Ryu收到OpenFlow交换机送来的packet_in消息时调用新增方法packet_in_handler,set_ev_cls的第一个参数也声明了 set_ev_cls的第二个参数MAIN_DISPATCHER意味着当Ryu和交换机握手过程(即hello, features request/reply, Set Config等)完毕,才会调用packet_in_handler 之后定义packet_in数据结构对象,数据路径对象datapath,OpenFlow协议和解析过程;定义交换机的动作,如何发送数据包;定义Ryu向交换机发送的packet_out内容,最后发送消息 分析教程中具体的数据操作: ev.msg:是表示packet_in数据结构的对象。每一个事件类ev中都有msg成员,是携带触发事件的数据包 msg

2019 SDN上机第5次作业

别等时光非礼了梦想. 提交于 2019-11-26 03:24:47
1.浏览RYU官网学习RYU控制器的安装和RYU开发入门教程,提交你对于教程代码的理解 1.描述官方教程实现了一个什么样的交换机功能? 让交换机在各个端口发送它接收到的数据包 2. 控制器设定交换机支持什么版本的OpenFlow? OpenFlow v1.0 3. 控制器设定了交换机如何处理数据包? 这里把官方给出的代码放上来(不然不知道在解释啥),备注中解释到处理函数定义为止的部分,部分需要单独列出的在下面用文字解释 from ryu.base import app_manager from ryu.controller import ofp_event from ryu.controller.handler import MAIN_DISPATCHER from ryu.controller.handler import set_ev_cls from ryu.ofproto import ofproto_v1_0 class L2Switch(app_manager.RyuApp): OFP_VERSIONS = [ofproto_v1_0.OFP_VERSION] #这里设置想要向交换机协商的OpenFlow版本号 #这玩意设置完后,控制器会自动交换Hello包,协商版本号,接着协商完成之后,它再自动执行交换Features包,进行握手 def __init__(self,