实验3:OpenFlow协议分析实践

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

第3次上机作业_数据

 

 hello第3次上机作业_流程图_02

 

 Features Request/Set Conig

第3次上机作业_抓包_03

Port_Status、Features Reply

第3次上机作业_数据结构_04Packet_in、Packet_out

第3次上机作业_抓包_05

2、查看抓包结果,分析OpenFlow协议中交换机与控制器的消息交互过程,画出相关交互图或流程图。

第3次上机作业_协议分析_06

3、交换机与控制器建立通信时是使用TCP协议还是UDP协议?

     交换机与控制器建立通信时使用TCP协议

进阶--OpenFlow主要消息类型对应的数据结构

header

第3次上机作业_数据结构_07

 

 hello

第3次上机作业_抓包_08

OFPT_FEATURES_REQUES

OFPT_FEATURES 主要是请求交换机的特性

第3次上机作业_流程图_09

 

 set config

flags:分片怎么处理
miss_send_len:不匹配,发给交换机发的数据长度

第3次上机作业_协议分析_10

 

 第3次上机作业_数据_11

 

ofpt packt  in

ofpt packt  in产生的原因有两种,一种是没匹配到流表,另一种是匹配到了,动作是转发的控制器

第3次上机作业_抓包_12

 

 

第3次上机作业_协议分析_13

 

 packet  out

packet  in之后,一般会触发两类事件,packet  out和flow  mod。两者都是指导交换机如何处理数据包,区别是是否下发流表项

第3次上机作业_流程图_14

 

 flow  mod

控制器收到 packet  in 消息后,可以发送flow  mod消息向交换机下发一个流表项,指导交换机转发数据包

第3次上机作业_数据结构_15

 

实验心得

这一次的实验相对来说比较简单,可能是因为只需要截图就可以,所以并不怎么难,可能是之前做过搭建拓扑和抓包,所以来说相对简单一点。不过还是遇到了一点点小问题,在用wireshark抓包的时候,找hello老是找不到,向同学求助,之后在同学的帮助下终于通过抓包any口找到hello。进阶的数据分析也看的不太懂,不过通过自己上网查询,自己看ppt还有同学的讲解下慢慢的稍微可以理解是什么内容。