实验3:OpenFlow协议分析实践

实验目的

  • 能够运用 wireshark 对 OpenFlow 协议数据交互过程进行抓包;
  • 能够借助包解析工具,分析与解释 OpenFlow协议的数据包交互过程与机制。

实验要求

(1)基本要求

搭建拓扑,完成相关 IP 配置



(2)查看抓包结果

  • HELLO

控制器6633端口(我最高能支持OpenFlow 1.0) ---> 交换机42530端口



交换机42530端口(我最高能支持OpenFlow 1.6) ---> 控制器6633端口



于是双方建立连接,并使用OpenFlow 1.0

  • FEATURES_REQUEST

控制器6633端口(我需要你的特征信息) ---> 交换机42530端口

  • SET_CONFIG

控制器6633端口(请按照我给你的flag和max bytes of packet进行配置) ---> 交换机42530端口

  • PORT_STATUS

当交换机端口发生变化时,告知控制器相应的端口状态。

  • FEATURES_REPLY

交换机42530端口(这是我的特征信息,请查收) ---> 控制器6633端口



  • PACKET_IN

交换机42530端口(有数据包进来,请指示)--->控制器6633端口

  • PACKET_OUT

控制器6633端口--->交换机42530端口(请按照我给你的action进行处理)

  • FLOW_MOD

分析抓取的flow_mod数据包,控制器通过6633端口向交换机42530端口、交换机42530端口下发流表项,指导数据的转发处理



  • 分析OpenFlow协议中交换机与控制器的消息交互过程,画出相关交互图或流程图

  • 回答问题:交换机与控制器建立通信时是使用TCP协议还是UDP协议?

    答:TCP协议,如下图所示

(3)进阶要求

将抓包基础要求第2步的抓包结果对照OpenFlow源码,了解OpenFlow主要消息类型对应的数据结构定义。

1、Hello



2、FEATURES_REQUEST



源码参数格式与HELLO的一致

3、SET CONFIG



4、PORT_STATUS



5、FEATURES_REPLY



6、PACKET_IN

有两种情况:

  1. 交换机查找流表,发现没有匹配条目,但是这种包没有抓到过

  2. 有匹配条目,对应的action是OUTPUT=CONTROLLER,固定收到向控制器发送包



7、PACKET_OUT

8、FLOW_MOD





实验总结

  • 本次实验其实并没有想前两次实验那样有明显的难点,主要的困难之处在于操作十分的繁琐,而且必须很严谨地按照实验手册PDF上写的那样做:先打开wireshark,之后才打开拓扑程序进行捕捉。一开始我是先打开了拓扑再打开wireshark捕获,结果不出所料地没有捕捉到hello等数据包。
  • 做这个实验的时候也有看一看其他同学是怎么做的,我发现找源码这一步可以直接利用系统就已经提供的查找功能,这样会更加便捷一些。
  • 总的来说,本次实验帮助我了解 Wireshark 抓包流程与 OpenFlow 协议的报文结构,让我熟悉了如何运用报文信息对使用 OpenFlow 协议通信的过程进行分析。

SDN第三次实验的更多相关文章

  1. 20145224&20145238 《信息安全系统设计基础》 第三次实验

    20145224&20145238 <信息安全系统设计基础>第三次实验 课程:信息安全系统设计基础 班级:1452 姓名:陈颢文 荆玉茗 学号:20145224 20145238 ...

  2. 20145330Java程序设计第三次实验

    20145330<Java程序设计>第三次实验报告 实验三 敏捷开发与XP实践 实验内容 1.使用git上传代码 2.使用git实现代码开发实践 3.实现代码的重载 实验步骤 使用git上 ...

  3. 20145320《Java程序设计》第三次实验报告

    20145320<Java程序设计>第三次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.22 15: ...

  4. Linux第三次实验报告

    北京电子科技学院(BESTI) 实     验    报     告 课程:信息安全系统设计基础             班级:201352 姓名:池彬宁 贺邦 学号:20135212 2013520 ...

  5. 南京邮电大学java第三次实验报告

    实 验 报 告 ( 2017 / 2018学年 第2学期) 课程名称 JAVA语言程序设计 实验名称 Java集成开发环境的安装与使用. Java变量.表达式与控制结构 实验时间 2018 年 4 月 ...

  6. Java第三次实验敏捷开发与XP实验

    实验三-1 1.实验要求: 实验三 敏捷开发与XP实践 http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的内容替换成IDEA 参考 http: ...

  7. SDN 第三次作业

    SDN 第三次作业 列举openflow1.0的12元组? 12元组 入端口(Ingress port) 源MAC地址(Ether Source) 目的MAC地址(Ether Des) 以太网类型(E ...

  8. SDN 第三次上机作业

    SDN 第三次上机作业 1.创建拓扑 2.利用OVS命令下发流表,实现vlan功能 3.利用OVS命令查看流表 s1: s2: 4.验证性测试 5.Wireshark 抓包验证

  9. java第三次实验报告

    北京电子科技学院(BESTI) 实验报告 课程: Java程序设计 班级: 1352 姓名: 池彬宁 学号: 20135212 成绩: 指导教师: 娄嘉鹏 实验日期: 2015.6.3 实验密级: 无 ...

  10. 20162327WJH第三次实验——查找与排序2

    20162327WJH第三次实验--查找与排序2 实 验 报 告 课程:程序设计与数据结构 班级: 1623 姓名: 王旌含 学号:20162327 成绩: 指导教师:娄嘉鹏 王志强 实验日期:11月 ...

随机推荐

  1. python装饰器拦截方法执行

    import time def log(delay=0): def decorator(func): def wrapper(*args, **kwargs): """我 ...

  2. spring cloud12-spring cloud sleuth

    1.为什么需要Spring Cloud Sleuth 微服务架构是一个分布式架构,它按业务划分服务单元,一个分布式系统往往有很多个服务单元.由于服务单元数量众多,业务的复杂性,如果出现了错误和异常,很 ...

  3. Windows/office常用的激活工具有哪些

    Windows/office常用的激活方式 Windows激活方式有两种 Kms激活与数字权利永久激活,这两种激活方式各有优势,KMS激活通用性强(支持Windows+Office),但只能激活180 ...

  4. sqlserver数据库批量新增修改类

    MSSql Server 数据库批量操作 需要引用的命名空间 using System; using System.Collections.Generic; using System.Data; us ...

  5. python判断密码连续,重复,大小写、数字、符号混合密码复杂度要求

    一.python 判断密码连续,重复,大小写.数字.符号混合密码复杂度要求 1. 运行环境 python 3.6.8 2. 密码必须包含大小写.数字.特殊符号中的3种且长度为8-16位 def ver ...

  6. 视觉十四讲:第七讲_3D-3D:ICP估计姿态

    1.ICP 假设有一组配对好的3D点, \(P={P_{1}, ..., P_{N}}\) , \(P^{'}={P_{1}^{'}, ..., P_{N}^{'}}\). 有一个欧式变换R,t,使得 ...

  7. CodeArts Snap:辅助你编程的神器

    摘要:通过将自然语言转化为规范可阅读.无开源漏洞的安全编程语言,提升开发者编程效率,助力企业快速响应市场需求. 本文分享自华为云社区<华为云发布智能编程助手 CodeArts Snap!> ...

  8. zerologon复现

    zerologon漏洞复现 目录 zerologon漏洞复现 漏洞介绍 实验环境 实验开始 一.在github上下载脚本 二.检测是否可以利用 三.利用漏洞 1.清空域控账号密码 2.导出admin凭 ...

  9. Windows 10系统设置多用户同时远程登录教程 and rdpwrap下载 and Win10多用户同时远程桌面的另类解决方案---支持1809和1909和2004版本V2.0

    转载简书: Windows 10系统设置多用户同时远程登录教程 - 简书 (jianshu.com) 转载github: 发布 ·stascorp/rdpwrap ·GitHub 转载csdn: Wi ...

  10. PostGIS之地理坐标

    1. 概述 PostGIS 是PostgreSQL数据库一个空间数据库扩展,它添加了对地理对象的支持,允许在 SQL 中运行空间查询 PostGIS官网:About PostGIS | PostGIS ...