sdn

sdn第一次作业

匿名 (未验证) 提交于 2019-12-03 00:17:01
git clone https://github.com/mininet/mininet.git cd mininet/util ./install.sh sudo mn --topo linear,3 sudo mn --topo tree,fanout=3,depth=2 cd mininet cd examples sudo ./miniedit.py #!/usr/bin/python #创建网络拓扑 """Custom topology example Adding the 'topos' dict with a key/value pair to generate our newly defined topology enables one to pass in '--topo=mytopo' from the command line. """ from mininet.topo import Topo from mininet.net import Mininet from mininet.node import RemoteController,CPULimitedHost from mininet.link import TCLink from mininet.util import dumpNodeConnections class MyTopo( Topo

2019 SDN上机第1次作业

匿名 (未验证) 提交于 2019-12-03 00:17:01
1.推荐github上的Mininet源安装 2.为了节约课程时间,实验室机房PC已经安装了Mininet,请大家在课后在自己的Ubuntu系统或虚拟机中尝试安装,并记录安装步骤。 使用git clone语句出现了一点小问题,直接拷贝了老师的Ubuntu解决问题。 1.清除已建立的网络拓扑: Sudo mn c 2.线性拓扑 Sudo mn topo linear , 3 3.树形拓扑:定义深度和扇出形成基于树的拓扑,深度2,扇出3 Sudo mn topo = tree , depth = 2 , fanout = 3 1.打开对应脚本(不加sudo会出问题) sudo ./ miniedit . py 2.开启OpenFlow以及CLI 3.建立拓扑并设置,设置h1(10.0.0.10)、h2(10.0.0.11)、h3(10.0.0.12) 4.命令行执行信息 5.run以后,网络创建成功通过net命令显示 6.保存生成的py文件 7.xterm验证主机 1.python代码 #!/usr/bin/python #创建网络拓扑 """Custom topology example Adding the 'topos' dict with a key/value pair to generate our newly defined topology enables one to

2019 SDN上机第1次作业

匿名 (未验证) 提交于 2019-12-03 00:16:01
安装轻量级网络仿真工具Mininet 用字符命令搭建给定的拓扑结构,并写出命令 利用可视化工具搭建给定的拓扑结构,并要求支持OpenFlow 1.0 1.1 1.2 1.3,设置h1(10.0.0.10)、h2(10.0.0.11)、h3(10.0.0.12),拓扑搭建完成后使用命令验证主机ip,查看拓扑端口连接情况 利用Python脚本完成给定的一个Fat-tree型的拓扑(交换机和主机名需与图中一致,即s1~s6,h1~h8,并且链路正确,请给出Mininet相关截图) 作业博客链接: https://edu.cnblogs.com/campus/fzu/fzusdn2019/homework/9902 实验环境:VMware Workstation Pro14.1、ubuntu-16.04 a.先在Ubuntu上安装git,打开终端并输入: sudo apt-get install git 安装成功后终端上会显示如下界面: b.安装git成功后,在终端上输入: sudo git clone http://www.github.com/mininet/mininet git clone成功后终端上会显示如下界面: c.进入mininet目录下的util文件,执行install.sh脚本,参数-a表示默认全部安装,具体执行步骤如下: cd mininet cd util .

2019 SDN上机第1次作业

匿名 (未验证) 提交于 2019-12-03 00:16:01
(1)首先从GitHub上获取mininet源码: git clone https://github.com/mininet/mininet.git (2)输入如下命令进行安装: cd mininet/util ./install.sh 每次克隆到某个文件的时候都会遇到这个问题: 解决方法:用查找install.sh文件中的有git clone的部分,然后再替换成http git clone git://github.com/mininet/openflow 替换成 git clone http://github.com/mininet/openflow 就解决了 等待一段时间后就安装成功啦 真希望我能够Enjoy Mininet哈哈哈哈 (3)安装完成后用mn --version命令查看所安装mininet的版本信息: mn --version (1) 命令如下: sudo mn --topo linear,3 (2) 命令如下: sudo mn --topo tree,fanout=3,depth=2 每次要新建拓扑时,需执行以下命令,防止上次操作对本次实验的影响。 sudo mn -c (1)在~/mininet/examples目录下打开终端,执行以下命令: ./miniedit.py 即可打开可视化控件,搭建拓扑: (2)设置h1(10.0.0.10)、h2(10.0.0

SDN学习笔记mininet+ryu开篇

匿名 (未验证) 提交于 2019-12-02 22:51:30
很久没写博客了,顺便最近要学一下sdn,顺便就记录一下自己的学习过程和心得体会这样子 顺便以后有个可以翻看笔记的地方: 1.mininet和ryu安装   只要照着那上面弄就没什么大问题   我使用的是Ubuntu安装的没有什么问题   以后会贴一些测试效果看一下   地址:http://osrg.github.io/ryu/resources.html   有繁体中文版 2.简单的测试: mn --topo single,3 --mac --switch ovsk --controller remote -x //mininet启动 single单个交换机;3三个host; mac自动设定host的mac; ovsk 交换机使用Open vSwitch;--controller remote使用外部控制器就是ryu;-x 显示xterm ovs-vsctl set Bridge s1 protocols=OpenFlow13 //设定ovs的OpenFlow 协议版本 //检查ovs里的某个流表 ryu-manager --verbose ./xxx.py //启动某个ryu APP 要进入相应路径 //现在基本上用到的这些 help可以查看帮助以后有用到的细节再添加    文章来源: SDN学习笔记mininet+ryu开篇

SDN实验---Ryu的应用开发(四)基于跳数的最短路径转发原理

ぃ、小莉子 提交于 2019-12-02 22:14:01
一:实现最短跳数转发 (一)原理 推文: 迪杰斯特拉算法 和 弗洛伊德算法 二:代码实现 (一)全部代码 from ryu.base import app_manager from ryu.controller.handler import set_ev_cls from ryu.controller import ofp_event from ryu.controller.handler import MAIN_DISPATCHER,CONFIG_DISPATCHER from ryu.lib.packet import packet,ethernet from ryu.topology import event from ryu.topology.api import get_switch,get_link from ryu.ofproto import ofproto_v1_3 import networkx as nx class MyShortestForwarding(app_manager.RyuApp): ''' class to achive shortest path to forward, based on minimum hop count ''' OFP_VERSIONS = [ofproto_v1_3.OFP_VERSION] def __init__

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