实验3:OpenFlow协议分析实践
## 一、实验目的 |
---|
1. 能够运用 wireshark 对 OpenFlow 协议数据交互过程进行抓包; |
2. 能够借助包解析工具,分析与解释 OpenFlow协议的数据包交互过程与机制。 |
## 二、实验环境 |
1. 下载虚拟机软件Oracle VisualBox; |
2. 在虚拟机中安装Ubuntu 20.04 Desktop amd64,并完整安装Mininet; |
## 三、实验要求 |
### (一)基本要求 |
1. 搭建下图所示拓扑,完成相关 IP 配置,并实现主机与主机之间的 IP 通信。用抓包软件获取控制器与交换机之间的通信数据包。 |
1. 查看抓包结果,分析OpenFlow协议中交换机与控制器的消息交互过程,画出相关交互图或流程图。 |
|
| |
|
| |
| (1)hello |
| |
|
| |
|
| |
| |
| |
| (2)Features Request/set Conig |
| |
|
| |
|
| |
| (3)Port_Status |
| |
|
| |
| (4)Features Reply |
| |
|
| |
| (5)Packet_in |
| |
|
| |
| (6)Flow_mod |
| |
|
| |
| (7)Packet_out |
| |
|
| |
| 回答问题:交换机与控制器建立通信时是使用TCP协议还是UDP协议? |
| |
| 使用tcp协议 |
| |
| ### (二)进阶要求 |
| |
| 1. 将抓包结果对照OpenFlow源码,了解OpenFlow主要消息类型对应的数据结构定义。 |
| |
| hello |
| |
|
| |
| features |
| |
|
| |
| set config |
| |
|
| |
| packet_in |
| |
|
| |
| flow_mod |
| |
|
| |
| packet_out |
| |
个人总结
这次的实验内容相对较少,其中主要是对抓包结果的分析。所以在最开始做实验的时候我遇到了抓不到hello包的情况。看了一下其他同学的作业,以为是在pingall之前要先开启wireshark,但还是没有hello包,尝试了几次之后才发现,原来是要在打开拓扑前就要开始抓包,这样才能抓到所有的数据包。另外,通过过滤器过滤出OpenFlow v1.0的数据报文会让分析数据过程更直观一些,不至于眼花缭乱。
|