实验3:OpenFlow协议分析实践

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

主机 IP地址

  • h1 192.168.0.101/24
  • h2 192.168.0.102/24
  • h3 192.168.0.103/24
  • h4 192.168.0.104/24

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

  • HELLO
    1.控制器6633端口(我最高能支持OpenFlow 1.0) ---> 交换机50478端口

    2.交换机50478端口(我最高能支持OpenFlow 1.3)--- 控制器6633端口

    于是双方建立连接,并使用OpenFlow 1.0

  • Feature Request/Set Conig
    1.控制器6633端口(我需要你的特征信息) ---> 交换机50478端口

    2.控制器6633端口(请按照我给你的flag和max bytes of packet进行配置) --->
    交换机50478端口

  • Features Reply
    1.交换机50478端口(这是我的特征信息,请查收)--- 控制器6633端口

  • Packet_in
    有两种情况:
    (1)交换机查找流表,发现没有匹配条目时
    (2)有匹配条目但是对应的action是OUTPUT=CONTROLLER时
    1.交换机50478端口(有数据包进来,请指示)--- 控制器6633端口

    分析抓取的数据包,可以发现是因为交换机发现此时自己并没有匹配的流表(Reason: No matching flow (table-miss flow entry) (0)),所以要问控制器如何处理

  • Flow_mod
    新建topo流表为空,就不建了,结果和之前差不多。

  • Packet_out
    1.控制器6633端口(请按照我给你的action进行处理) ---> 交换机40578端口

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

答:TCP协议,可以在抓包时看到。

实验总结

个人总结与想法

这次虽然上课有些不懂,但经过实验过程算是略微理解了。难度适中,适合学习分析与解释 OpenFlow协议的数据包交互过程与机制。自己课上还是应尽量听懂,这样有助于加深印象,而不是实验才开始搞明白什么是什么。

困难与解决方法

1.在建立拓扑和抓包过程中没有大问题,就是有时会突然忘记命令是什么。后翻翻之前的作业和pdf看了之后再自己多敲敲。
2.一开始抓包时以为就只需要看到简单的版本和端口就行,后多方了解才明白这次实验是要展现OpenFlow协议的数据包交互过程,所以又多花了些时间从头再来。

posted @ 2021-09-14 22:49  楚御  阅读(60)  评论(0编辑  收藏  举报