MiniNet

由一些虚拟的终端节点(end-hosts)、交换机、路由器连接而成的一个网络仿真器,支持0penflow协议,可以用它来实践SDN。

MiniNet安装

源码安装

git clone git://github.com/mininet/mininet

cd mininet/util
./install.sh -a

直接安装

apt install mininet

安装测试

sudo mn # 会显示mn的默认网络拓扑
pingall # 使用pingall测试,会显示主机h1和h2可以ping通
nodes #其他命令测试
net


singe,3

sudo mn --topo singe,3
pingall
nodes
net


linear,3

sudo mn --topo linear,3
pingall
nodes
net


tree,2

sudo mn --topo tree,2
pingall
nodes
net


cutsom

cd mininet/custom
ll
mn --custom topo-2sw-2host.py --topo mytopo
pingall
nodes
net


custom修改

vim topo-2sw-2host.py
mn --custom topo-2sw-2host.py --topo mytopo
pingall
nodes
net
from mininet.topo import Topoclass MyTopo( Topo ):"Simple topology example."def build( self ):"Create custom topo."# Add hosts and switchesleftHost = self.addHost( 'h1' )midHost = self.addHost( 'h3' )rightHost = self.addHost( 'h2' )leftSwitch = self.addSwitch( 's1' )midSwitch = self.addSwitch( 's3' )rightSwitch = self.addSwitch( 's2' )# Add linksself.addLink( leftHost, leftSwitch )self.addLink( leftSwitch, midSwitch)self.addLink( midHost, midSwitch )self.addLink( midSwitch, rightSwitch )self.addLink( rightSwitch, rightHost )topos = { 'mytopo': ( lambda: MyTopo() ) }


Ryu

RYU是一款基于python的控制器,你可用Ryu实现各种想要实现的网络功能,它可以下发或接收流表进行各种路由运算。

Ryu 安装

apt-get update
apt install python3-pip
pip3 install ryu

Ryu 测试

ryu-manager

Ryu 简单使用

Test 1

Terminal 1

ryu-manager


Terminal 2

mn --controller=remote,ip=127.0.0.1,port=6653
pingall
h1 ping h2


无法ping通

Test2

Terminal 1

ryu-manager ryu.app.simple_switch

Terminal 2

mn --controller=remote,ip=127.0.0.1,port=6653
pingall
h1 ping h2

Ryu Restful 控制

官方文档:https://ryu.readthedocs.io/en/latest/app/ofctl_rest.html

构建

ryu-manager ryu.app.ofctl_rest


Terminal 2

mn --controller=remote,ip=127.0.0.1,port=6653
pingall
h1 ping h2


无法ping通

获取信息

GET 192.168.30.134:8080/stats/desc/1

获取交换机流表

获取dpid为1的交换机流表

GET 192.168.30.134:8080/stats/flow/1

增加流表表项

POST 192.168.30.134:8080/stats/flowentry/add

{"dpid": 1,"match": {"in_port": 1},"actions": [{"type": "OUTPUT","port": 2}]
}
{"dpid": 1,"match": {"in_port": 2},"actions": [{"type": "OUTPUT","port": 1}]
}

ping通

删除流表表项

POST 192.168.30.134:8080/stats/flowentry/clear/1

无法ping通

参考文章

《虚拟化和云计算》实验报告——MININET实践SDN相关推荐

  1. 数据库原理及安全技术教学实验报告SQL实践(二)

    目录 一.实验目的 二.实验软硬件要求 三.实验预习 四.实验内容(实验步骤.测试数据等) 运行结果: 1.使用查询语句完成以下任务(每一个查询都要给出SQL语句,并且列出查询结果). 2.使用数据操 ...

  2. linux内核内存映射实验报告,动手实践-Linux内存映射基础(上)

    Linux内核分析与应用 西安邮电大学(陈莉君) 在庞大的Linux内核源代码学习中,如何抓住主要线索和思路,如何让所学能够切实地应用起来,本课程主讲以自己20年来对Linux内核的研究和教学为基础, ...

  3. 计算机科学与技术第6次上机实验报告,计算机科学与技术第次实验报告-20210602214116.docx-原创力文档...

    Document serial number[KK89K-LLS98YT-SS8CB-SSUT-SST108] Document serial number[KK89K-LLS98YT-SS8CB-S ...

  4. mfc实验报告心得体会_mfc实验报告.doc

    mfc实验报告 程序设计实践 设 计 报 告 课题概述 1.1课题目标和主要内容 主要内容 这个实验我主要是应用VS C++ 2010实现学生信息管理系统的设计,主要实现学生管理系统中选择学院和专业, ...

  5. 20202407 2021-2022-2 《网络与系统攻防技术》实验四实验报告

    20202407 2021-2022-2 <网络与系统攻防技术>实验四实验报告 1.实践内容 1.1 恶意代码基础知识 定义:指的是使计算机按照攻击者的意图执行以达到恶意目标的指令集. 恶 ...

  6. 20155225 实验三《敏捷开发与XP实践》实验报告

    20155225 实验三<敏捷开发与XP实践>实验报告 一.使用工具(Code->Reformate Code)把代码重新格式化 IDEA里的Code菜单有很多实用的功能可以帮助我们 ...

  7. 20145209 实验三 《敏捷开发与XP实践》 实验报告

    20145209 实验三 <敏捷开发与XP实践> 实验报告 实验内容 XP基础. XP核心实践. 相关工具. 实验步骤 敏捷开发与XP 1.敏捷开发 敏捷开发(Agile Developm ...

  8. 2018-2019-2 20175223 实验三《敏捷开发与XP实践》实验报告

    目录 北京电子科技学院(BESTI)实验报告 实验名称:实验三 敏捷开发与XP实践 实验内容.步骤与体会: 一.实验三 敏捷开发与XP实践-1 二.实验三 敏捷开发与XP实践-2 三.实验三 敏捷开发 ...

  9. 20155220 实验三 敏捷开发与XP实践 实验报告

    20155220 实验三 敏捷开发与XP实践 实验报告 实验内容 XP基础 XP核心实践 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim ...

最新文章

  1. 从URL输入到页面展现,过程中发生了什么?
  2. Mybatis的COMMENT生成备注
  3. Dart_VM的相关简介与运行模式解析
  4. 基于Unity的弹幕游戏多人联机尝试
  5. Leet Code OJ 118. Pascal's Triangle [Difficulty: Easy]
  6. IOS开发基础之网易新闻环境搭建异步请求json,AFN网络封装第1天
  7. linux lvm 系统快照,系统运维|在 LVM中 录制逻辑卷快照并恢复(第三部分)
  8. Linux NTP时间服务器
  9. libreoffice Error: source file could not be loaded
  10. “X“ In mathematics
  11. python lnum_python 基础笔记 — 数据类型之数字
  12. (GCC)STM32跑马灯代码的前世今生
  13. 谷歌搜索引擎优化(谷歌seo)怎么做?
  14. grub4dos linux live,grub4dos启动菜单示例
  15. 使用zabbix_sender发送文本
  16. 贴片铝电容识别及型号_TDK贴片电容识别方法及命名规则
  17. 第三章 标准单元库(下)
  18. c语言pm2.5检测系统,基于Arduino的PM2.5实时检测系统
  19. 全球与中国住院EHR系统市场现状及未来发展趋势(2022)
  20. Matlab编程技巧:文本文件的读写

热门文章

  1. 第一次走绿道,从长岭陂到梅林水库
  2. 2017计算机发展,【2017年整理】计算机发展的四个阶段.doc
  3. MATLAB中cif用于清除什么,cifti-matlab-master 能够对MRI数据进行功能成像 - 下载 - 搜珍网...
  4. python创建软连接_centos7 上 创建软连接 ln -s
  5. dedecms mysql 支持_安装dedecms MySQL 支持 不支持无法使用本系统 GD 支持Off解决办法...
  6. axios delete有请求体吗_封装 axios 取消重复请求
  7. 人行联网核查更新_又一批新职业公布,学互联网技术,等于站在就业“风口”...
  8. php如何替换 前的空格,php空格如何替换
  9. html中加盒子,在HTML中各类型盒子的基线应如何确定
  10. oracle 数据 时间间隔,如何掌握 Oracle 中的时间间隔型数据