实验3:OpenFlow协议分析实践

一、实验目的
1.能够运用 wireshark 对 OpenFlow 协议数据交互过程进行抓包;
2.能够借助包解析工具,分析与解释 OpenFlow协议的数据包交互过程与机制。

二、实验环境
1.下载虚拟机软件Oracle VisualBox;
2.在虚拟机中安装Ubuntu 20.04 Desktop amd64,并完整安装Mininet;

三、实验要求
(一)基本要求
1.搭建下图所示拓扑,完成相关 IP 配置,并实现主机与主机之间的 IP 通信。用抓包软件获取控制器与交换机之间的通信数据包。

修改主机IP地址和 控制器IP:

保存拓扑文件:

首先打开一个终端输入sudo wireshark打开wires hark,选择any进行抓包,然后打开另一个终端打开保存的拓扑文件。

查看抓包结果,分析OpenFlow协议中交换机与控制器的消息交互过程

  • OFPT_HELLO控制器6633端口 ---> 交换机49308端口,从控制器到交换机

  • OFTP_HELLO 交换机49308端口---> 控制器6633端口

此处协议为openflow1.5

  • OFPT_FEATURES_REQUEST 源端口6633 -> 目的端口49308,从控制器到交换机

  • OFPT_SET_CONFIG 源端口6633 -> 目的端口49308,从控制器到交换机

  • OFPT_PORT_STATUS 源端口49308 -> 目的端口6633,从交换机到控制器

  • OFPT_FEATURES_REPLY 源端口49308 -> 目的端口6633,从交换机到控制器

  • OFPT_PACKET_IN 源端口49308 -> 目的端口6633,从交换机到控制器

  • OFPT_PACKET_OUT 源端口6633 -> 目的端口49308,从控制器到交换机

  • OFPT_FLOW_MOD 源端口6633 -> 目的端口49308,从控制器到交换机

画出相关交互图或流程图:

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

  • TCP协议

四、实验总结
通过这次实验,我已经能够运用 wireshark 对 OpenFlow 协议数据交互过程进行抓包;能够借助包解析工具,分析与解释 OpenFlow协议的数据包交互过程与机制。
实验过程中,一直找不到PORT_STATUS这个包,重新实验后仍然没有,后来看见有的同学用pingall成功了,便学习了他的方法,也从h1 ping h2改成ping all,最后终于出现了这个包。
通过抓包并查看每一个OpenFlow数据包的源端口、目的端口、类型和相关字段,我更进一步了解与掌握了OpenFlow协议。
整个实验并没有很复杂,但是很需要很多的截图,而且由于每次实验的目的端口不同,所以必须一次截下所有图片,如果有缺少却没发现,最后关闭了实验,就只能重新来过了,因为这个原因,我的实验重新做了好几次。

posted @ 2021-09-28 17:27  鲨鱼辣椒爱吃辣  阅读(29)  评论(0编辑  收藏  举报