第三篇博客:SDN第三次上机作业
- 实验任务一:搭建下图所示拓扑,完成相关 IP 配置,并实现主机与主机之间的 IP 通信。用抓包软件获取控制器与交换机之间的通信数据包。

2.实验任务二:分析OpenFlow协议中交换机与控制器的消息交互过程,画出相关交互图或流程图。

3.实验任务三:
问:交换机与控制器建立通信时是使用TCP协议还是UDP协议?
答:TCP协议。
4.进阶要求:将抓包结果对照OpenFlow源码,了解OpenFlow主要消息类型对应的数据结构定义。
1)HELLO
首先,控制器与交换机相互发送HELLO消息。


2)Features Request
OpenFlow 连接建立之后,控制器需要获得交换机的特性信息,因此控制器向交换机发送 Features Request 来消息查询交换机特性。

3)Features Reply
交换机在收到控制器发出的 Features Request 消息后,将自己的特性告诉给控制器,返回 Features Request 消息。

4)Set config
配置交换机

5)Packet in
• 有两种情况:
• 交换机查找流表,发现没有匹配条目时
• 有匹配条目但是对应的action是OUTPUT=CONTROLLER时

6)Flow Mod / Packet out
当控制器收到 Packet-in 消息时有两种响应的方式:
Flow-Mod:控制器收到 Packet‐in 消息后,可以发送 Flow‐Mod 消息向交换机下发一个流表项。
Packet-out:与Flow-Mod不同的是,控制器不会下发流表,而是直接告诉交换机该如何做。


5.将抓包结果对照OpenFlow源码,了解OpenFlow主要消息类型对应的数据结构定义。
OpenFlow协议支持三种消息类型,分别为:controller-to-switch,asychronous(异步)和symmetric(对称)。
6.个人总结:
这次实验比前两次会简单一点,但是我自己对于mininet以及wireshark还有很多不熟悉的地方,可以说还是很陌生,所以总会有一些低级问题,在开始做实验之前,借鉴了几位同学的经验,很多同学都踩的一个坑就是需要先开启抓包,然后再连接拓扑并且使主机间互联,才能顺利进行下一个步骤,正是因为几位同学这样的提示,帮助了我节省了不少时间,在实验过程中,我也更加了解和深入理解了析OpenFlow协议中交换机与控制器的消息交互过程,纸上得来终觉浅,绝知此事要躬行。


浙公网安备 33010602011771号