实验3:OpenFlow协议分析实践

一.基本要求

1.搭建下图所示拓扑,完成相关 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

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

(1)Hello

  • 控制器6633端口与交换机44486端口相互交换hello报文建立连接,并使用openflow 1.0
  • 控制器向交换机发送hello报文
  • 交换机向控制器发送hello报文

    (2)Features Request
  • 控制器6633端口向交换机44486端口发送Features Request报文,请求获取交换机的特征信息

    (3)Set Config
  • 控制器6633端口向交换机44486端口发送Set Config报文,要求交换机按照指定的flag和max bytes of packet进行配置

    (4)Port_Status
  • 当交换机端口发生变化时,发送Port_Status报文告知控制器相应的端口状态

    (5)Features Reply
  • 交换机44486端口向控制器6633端口回送Features Reply报文,通知控制器查收自己的特征信息

    (6)Pocket_in
  • 有两种情况
    -- 交换机查找流表,发现没有匹配条目时

    -- 有匹配条目但是对应的action是OUTPUT=CONTROLLER时
    抓包的时候没找到
    (7)Packet_out
  • 控制器6633端口回送给交换机44486端口,指示它按照我给你的action进行处理

    (8)Flow_mod
  • 分析抓取的flow_mod数据包,控制器通过6633端口向交换机44486端口、交换机44568端口下发流表项,指导数据的转发处理
    第一次抓包时没有pingall就关了,因此再重新进行一次抓包

    (9)交互图

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

TCP协议,由抓包结果可知。

二.个人总结

又复习了下可视化拓扑的建立和保存,对抓包有了更深刻的理解,做的过程中还是磕磕碰碰的,一开始看不到交换机给控制器发的hello报文,后来过滤器输入openflow_v6才找到。然后也找不到Flow_mod的包,后来知道拓扑要pingall才会出来。

posted @ 2021-09-29 11:58  xtzc  阅读(67)  评论(0编辑  收藏  举报