SDN 教程[2]: SDN基础操作
实验二:SDN 基础操作学习
- Mininet 可视化工具创建拓扑
- Mininet 拓扑动态更改
- Mininet 连接控制器
- 流表操作
Mininet 可视化工具创建拓扑
Mininet 2.2.0 以上版本自带
1. 进入 mininet/example
在~目录下操作
cd ~
cd mininet/example
2. 启动 miniedit.py
sudo ./miniedit.py
界面如下:
3. 自定义拓扑:拖拽设备到画布
4. 配置 Mininet 设备属性
① 设置控制器属性
长按右键控制器图标-选择「Properties」
修改 Controller Type
点击OK,开启 miniedit 的终端变化:
② 配置交换机属性
填写 16位 DPID,更改 Switch Type
③ 配置主机属性
设置主机 IP 地址
④ 配置全局属性
菜单栏 - Edit - Preferences
勾选:Start CLI 和 OpenFlow 1.3
IP Base 默认设置了网段,刚才第③步骤可以不填。
5. 点击左下角 Run
观察打开 miniedit.py 的终端变化
6. mininet 基础命令
① 使用 dump 命令查看网络节点信息
② 使用 net 命令查看链路端口对应信息
③ 使用 nodes 查看节点信息
④ 使用 links 查看链路连接状态
7. 保存拓扑图
菜单栏选择:File - Export Level 2 Script 保存
创建好后,终端 CTRL+C 关闭 miniedit
8. 验证下次使用
打开新的终端Ctrl+Alt+T
cd mininet/examples
sudo python sdnsy.py
9. 退出mininet
exit
10. 如果再次使用Mininet报错,RTENETLINK answers:File exists
sudo mn -c
清空一下缓存再使用。
mininet 拓扑动态更改
已经启动 mininet 拓扑条件下
1. 增加主机
py net.addHost('h4')
2. 增加链路(主机h4和交换机s2
py net.addLink(s2,net.get('h4'))
3. 交换机新增端口,连接主机
py s2.attach('s2-eth3')
4. 新增主机配置 IP 地址
py net.get('h4').cmd('ifconfig h4-eth0 10.4')
5. links 查看结果
mininet 连接控制器
1. 启动控制器
开启终端1
启动 Ryu 应用(二层交换)
ryu-manager ryu/app/simple_switch.py
2. 启动 mininet 拓扑
再开启终端2, 用刚才自己创建的拓扑
cd mininet/examples
sudo python sdnsy.py
3. Ryu 接收到 PACKET-IN 消息
4. mininet 测试连通性
在mininet 终端页面
pingall
5. mininet 测试带宽
iperf h1 h2
流表操作
1. 启动控制器
在 ryu 文件夹内操作
cd ryu/
ryu-manager ryu/app/simple_switch.py
2. 启动mininet
打开新的终端Ctrl+Alt+T
cd mininet/examples
sudo python sdnsy.py
3. mininet 查看当前流表
网络拓扑刚创建,没有数据流传输,初始流表为空
dpctl dump-flows
4. pingall 产生PACKET-IN数据包
simple_switch 应用会处理 Packet-in 并下发流表
pingall
5. 再次查看流表
dpctl dump-flows
6. 删除所有流表
dpctl del-flows
7. 查看流表,验证删除结果
dpctl dump-flows
8. 手动添加流表,实现数据转发
dpctl add-flow in_port=1,ations=output:2
dpctl add-flow in_port=2,ations=output:1
9. 查看流表,验证添加结果
dpctl dump-flows
观察到两个交换机均添加了这两条流
10. ping,验证流表
h1 ping h2
可以 ping 通
h1 ping h3
由于流表匹配项是in_port=1,执行的action是转发到端口2,所以h1 ping h3时,流表匹配,全部转发到端口2,到达不了h3,ping不通
11. 数据包丢弃的流表操作
交换机丢弃所有端口2传入的数据包
① 手动添加流表
dpctl add-flow in_port=2,actions=drop
② 查看流表结果
dpctl dump-flows
③ ping 查看流表是否作用
pingall
发现 ping 不通,流表项起作用
12. 流表优先级
① 先删除所有流表
dpctl del-flows
② pingall 通过应用:simple_switch 下发流
pingall
③ 添加数据包丢弃流表
dpctl add-flow in_port=2,actions=drop
④ 查看流表结果
dpctl dump-flows
⑤ 验证pingall 是否仍然连通
pingall
结果仍然能够 ping 通
思考:为什么这次主机间还可以通信?不是已经添加 drop 了么?
13. 删除指定流表
删除交换机 s1 条件字段中包含 in_port=1 的所有流表,并查看当前流表
sh ovs-ofctl del-flows s1 in_port=2
dpctl dump-flows
SDN 教程[2]: SDN基础操作相关推荐
- 【保姆级教程】Docker基础操作篇-Dokerfile(含源码)
Docker系列文章: 你好!Docker[概念+源码+保姆式教程] [保姆级教程]Docker进阶操作篇-Compose(含源码) Docker常用命令 [保姆级教程]VMware+CentOS 7 ...
- Python3入门教程:Excel 基础操作(上)
人生苦短,我选Python 不知道各位同学有没有见过有关 Python 操作 Excel 的广告.小编是见过好多次的,还只需 ¥9.9 就能学习,今天小编就为大家带来免费的 Python 操作 Exc ...
- 【总目录1】基础操作、保姆教程、Office、PhotoShop、科普总结大全
首先,关于为什么要写博客,可以看一下我的第一篇博客:我的第一篇博客 . 如果想写好一篇博客,可以查看:关于CSDN博客中Markdown编辑器和数学公式LaTeX的基本使用. 本目录主要为基础操作.保 ...
- 3dsmax怎么添加uv坐标_YND科研绘图3Dsmax基础操作
励志这东西,是有时间期限的. 不要期待一个刺激就可以顺利地改变你, 一个人的动力归根结底只能来源于自己. 你只有换着法子地激励自己, 直到它变成你血液的一部分. 你只有不停跌倒, 才能学会怎样用自己的 ...
- java jdbc 教程_java JDBC系列教程之JDBC类的简析与JDBC的基础操作
什么是JDBC? 概念:JAVA Database Connectivity Javas数据库连接,Java语言操作数据库接口,然后由各个数据库厂商去实现这个接口,提供数据库驱动java包,我们可以使 ...
- 结果显示窗口如何缩小_【操作教程】零基础如何学习PS与Sai?
小伙伴们大家好呀~今天鳗鱼君给零基础的小伙伴们带来一篇PS.SAI的操作干货教程. 字字是干货,特别硬核,希望大家收藏加关注,也希望漫域视觉的这篇文章能够帮助到你~ 加入QQ群:715087165,有 ...
- gis导出栅格数据为什么不能tif_GIS基础操作教程(3)--点数据操作【附带练习数据】...
又到了专栏更新的时候了,接下来的几期专栏我会系统性的讲一讲GIS的基础操作.在几个月前专栏里我分享过栅格数据的平移.裁剪.镶嵌(需要的同学可以点进专栏看一看),FLOW MAP的专题制作.这期文章我想 ...
- 计算机应用基础任务化教程试题及答案,计算机应用基础任务化教程windows7office2010试卷(带操作题)及答案.doc...
计算机应用基础任务化教程windows7office2010试卷(带操作题)及答案 一.单项选择题:(20分)1.下列选项中,属于计算机外部设备的是( )A 主板 B CPU C 硬盘 D 鼠标2.当 ...
- ArcGIS Pro 简明教程(2)基础操作和简单制图
ArcGIS Pro 简明教程(2)基础操作和简单制图 By 李远祥 本章主要介绍ArcGIS Pro如何加载数据并进行简单的地图制作,以基本的操作为主. 上一章节介绍过,ArcGIS Pro是可以直 ...
最新文章
- iOS App 连接外设的几种方式
- 美国《时代》周刊公布年度25大最佳发明名单
- 超越 一切还刚刚开始
- 分布式技术比较(RPC,CORBA,WebService)
- CF1037H Security(SAM)
- MySQL concat()函数
- leetcode —— 238. 除自身以外数组的乘积
- 记一次Kafka集群的故障恢复
- 【华为云技术分享】云小课 | 容灾切换:业务一键切换到容灾站点
- 需求分析解决方案文案,展示图文结合的文案的视觉感。运用屏幕摄影师Snaglt实现屏幕图像文本捕获与编辑,为技术文案的编写提供素材支持。
- IT计算机实习:JAVA实习报告范文(一)
- 用C++可编程管线渲染obj模型
- Android之adb安装apk
- 金属、指纹、全网通该有的都有 中兴小鲜3正式发布
- Springboot实现发送邮件功能
- 高洛峰2015年新版视频发布
- 文件浏览 视频播放器
- SMS发送WapPush
- word2vec聚类
- 聊天机器人中的深度学习
热门文章
- 有的项目是没有seting ,.project文件的,import时not project found处理办法
- 【读书笔记】【程序员的自我修养 -- 链接、装载与库(三)】函数调用与栈(this指针、返回值传递临时对象构建栈、运行库与多线程、_main函数、系统调用与中断向量表、Win32、可变参数、大小端
- js前端判断登录超时即清除登录状态
- div+css(一)
- 小白也能写前端?推荐一款超实用的app----JsHD调试器,助你写出炫酷的网页!
- 基于CentOS7系统环境下的Snort3安装指南
- 方便、免费的PDF在线处理网站汇总:PDF合并、文字编辑、页面提取与删除、格式转换…
- oracle删除字段约束条件,Oracle 数据库中关于对表字段约束的操作(设置、删除、查询)...
- 美国研究生院计算机数据科学排名,美国研究生数据科学专业排名
- vba调用python代码_Python替代Excel Vba系列(终):vba中调用Python