SDN第三次实验
实验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
有两种情况:
交换机查找流表,发现没有匹配条目,但是这种包没有抓到过

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


7、PACKET_OUT


8、FLOW_MOD



实验总结
- 本次实验其实并没有想前两次实验那样有明显的难点,主要的困难之处在于操作十分的繁琐,而且必须很严谨地按照实验手册PDF上写的那样做:先打开wireshark,之后才打开拓扑程序进行捕捉。一开始我是先打开了拓扑再打开wireshark捕获,结果不出所料地没有捕捉到hello等数据包。
- 做这个实验的时候也有看一看其他同学是怎么做的,我发现找源码这一步可以直接利用系统就已经提供的查找功能,这样会更加便捷一些。
- 总的来说,本次实验帮助我了解 Wireshark 抓包流程与 OpenFlow 协议的报文结构,让我熟悉了如何运用报文信息对使用 OpenFlow 协议通信的过程进行分析。
SDN第三次实验的更多相关文章
- 20145224&20145238 《信息安全系统设计基础》 第三次实验
20145224&20145238 <信息安全系统设计基础>第三次实验 课程:信息安全系统设计基础 班级:1452 姓名:陈颢文 荆玉茗 学号:20145224 20145238 ...
- 20145330Java程序设计第三次实验
20145330<Java程序设计>第三次实验报告 实验三 敏捷开发与XP实践 实验内容 1.使用git上传代码 2.使用git实现代码开发实践 3.实现代码的重载 实验步骤 使用git上 ...
- 20145320《Java程序设计》第三次实验报告
20145320<Java程序设计>第三次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.22 15: ...
- Linux第三次实验报告
北京电子科技学院(BESTI) 实 验 报 告 课程:信息安全系统设计基础 班级:201352 姓名:池彬宁 贺邦 学号:20135212 2013520 ...
- 南京邮电大学java第三次实验报告
实 验 报 告 ( 2017 / 2018学年 第2学期) 课程名称 JAVA语言程序设计 实验名称 Java集成开发环境的安装与使用. Java变量.表达式与控制结构 实验时间 2018 年 4 月 ...
- Java第三次实验敏捷开发与XP实验
实验三-1 1.实验要求: 实验三 敏捷开发与XP实践 http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的内容替换成IDEA 参考 http: ...
- SDN 第三次作业
SDN 第三次作业 列举openflow1.0的12元组? 12元组 入端口(Ingress port) 源MAC地址(Ether Source) 目的MAC地址(Ether Des) 以太网类型(E ...
- SDN 第三次上机作业
SDN 第三次上机作业 1.创建拓扑 2.利用OVS命令下发流表,实现vlan功能 3.利用OVS命令查看流表 s1: s2: 4.验证性测试 5.Wireshark 抓包验证
- java第三次实验报告
北京电子科技学院(BESTI) 实验报告 课程: Java程序设计 班级: 1352 姓名: 池彬宁 学号: 20135212 成绩: 指导教师: 娄嘉鹏 实验日期: 2015.6.3 实验密级: 无 ...
- 20162327WJH第三次实验——查找与排序2
20162327WJH第三次实验--查找与排序2 实 验 报 告 课程:程序设计与数据结构 班级: 1623 姓名: 王旌含 学号:20162327 成绩: 指导教师:娄嘉鹏 王志强 实验日期:11月 ...
随机推荐
- c++ stl 详解 csp备考
最近在准备csp认证考试,打算使用c++语言,以下是关于c++ stl库的内容: algorithm概览(作者:当格子衫爱上Helloworld) stl库详解(作者:c语言中文网) https:// ...
- 真正“搞”懂HTTP协议13之HTTP2
在前面的章节,我们把HTTP/1.1的大部分核心内容都过了一遍,并且给出了基于Node环境的一部分示例代码,想必大家对HTTP/1.1已经不再陌生,那么HTTP/1.1的学习基本上就结束了.这两篇文章 ...
- Sentry 后端云原生中间件实践 ClickHouse PaaS ,为 Snuba 事件分析引擎提供动力
目录(脑图) ClickHouse PaaS 云原生多租户平台(Altinity.Cloud) 官网:https://altinity.cloud PaaS 架构概览 设计一个拥有云原生编排能力.支持 ...
- JAVA虚拟机23---JAVA与线程
1 线程简介 线程是比进程更轻量级的调度执行单位,线程的引入,可以把一个进程的资源分配和执行调度分开,各个线程既可以共享进程资源(内存地址.文件I/O等),又可以独立调度 目前线程是Java里面进行处 ...
- 我让 ChatGPT 写了个 ChatGPT
这家伙实在是火得过头了,索性讲个它的故事. 去年11月份,OpenAI 推出了 ChatGPT. 这里就不赘述这个家喻户晓玩意的常识了. 要说刚开始也没多少人在意,一个聊天机器人-- 谁稀罕呐. 但 ...
- 使用nvm时报错:exit status 1: ļ Ѵ ʱ ļ 的解决办法
1.出现问题 如图,安装完nvm后,使用[nvm use 版本号]命令切换版本,出现如题错误,具体截图如下 2.分析原因 1)安装路径是否包含中文 2)安装路径有空格 3)cmd使用是否是管理员方式打 ...
- 学习Java Day24
今天明白了 一.面向对象(面向过程) 1. 面向对象 找对象(封装了过程)来干. 例如:洗衣服(洗衣机就是对象). 2. 面向对象思想特点 是一种更符合我们思想习惯的思想. 可以将复杂的事情简单化. ...
- uboot启动过程 2
512M内存, 地址范围 [0x80000000, 0xA0000000) UBOOT原先位置 0x87800000, 移动后的位置0x9FF47000, 也就是最后 700多k, 前面的位置 ...
- 浅显直白的Python深拷贝与浅拷贝区别说明
一.可变数据类型与不可变数据类型 在开始说深拷贝与浅拷贝前,我们先来弄清楚,可变对象与不可变对象 总的来说,Python数据类型可分为可变数据类型与不可变数据类型 可变数据类型:在不改变对象所指向的地 ...
- CF1141F2 Same Sum Blocks (Hard)
题目传送门 思路 简单题. 不妨先预处理出每一个区间的 \(\sum\),然后离散化 \(\sum\),对于每个 \(\sum\) 开一个 \(\mathcal vector\) 记录所有区间的左右端 ...