实验3:OpenFlow协议分析实践

## 一、实验目的
1. 能够运用 wireshark 对 OpenFlow 协议数据交互过程进行抓包;
2. 能够借助包解析工具,分析与解释 OpenFlow协议的数据包交互过程与机制。
## 二、实验环境
1. 下载虚拟机软件Oracle VisualBox;
2. 在虚拟机中安装Ubuntu 20.04 Desktop amd64,并完整安装Mininet;
## 三、实验要求
### (一)基本要求
1. 搭建下图所示拓扑,完成相关 IP 配置,并实现主机与主机之间的 IP 通信。用抓包软件获取控制器与交换机之间的通信数据包。
img
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的数据报文会让分析数据过程更直观一些,不至于眼花缭乱。
|

posted @ 2021-09-21 15:22  Apollo$  阅读(32)  评论(0编辑  收藏  举报