• 欢迎光临~

实验3:OpenFlow协议分析实践

开发技术 开发技术 2022-10-05 次浏览

实验3:OpenFlow协议分析实践

一、实验目的

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

二、实验环境

Ubuntu 20.04 Desktop amd64

三、实验要求

(一)基本要求

  • 导出拓扑文件,存入/home/ubuntu/212106624/lab3/

  • 文件目录
    实验3:OpenFlow协议分析实践

  • 目录下拓扑文件

    实验3:OpenFlow协议分析实践

  1. 查看抓包结果,分析OpenFlow协议中交换机与控制器的消息交互过程,画出相关交互图或流程图。
  • 根据抓包结果,可以得出交换机与控制器在本实验中是如以下过程进行消息交互的
    1. OFPT_HELLO, 源端口6633 -> 目的端口51664,从控制器到交换机,协议支持OpenFlow 1.0实验3:OpenFlow协议分析实践
      也有源端口51664 -> 目的端口6633的,即交换机到控制器的另一个包,此处协议为openflow1.5实验3:OpenFlow协议分析实践

       

    2. OFPT_FEATURES_REQUEST, 源端口6633 -> 目的端口51664,从控制器到交换机,请求特征信息实验3:OpenFlow协议分析实践

       

    3. OFPT_SET_CONFIG, 源端口6633(请按照我给你的flag和max bytes of packet进行配置) -> 目的端口51664,从控制器到交换机实验3:OpenFlow协议分析实践

       

    4. OFPT_PORT_STATUS, 源端口44812 -> 目的端口6633,从交换机到控制器,交换机端口发生变化,告知控制器相应的端口状态。实验3:OpenFlow协议分析实践

       

    5. OFPT_FEATURES_REPLY, 源端口44812 -> 目的端口6633,从交换机到控制器,(发送的特征信息,请查收)实验3:OpenFlow协议分析实践

       

    6. OFPT_PACKET_IN, 源端口44182 -> 目的端口6633,从交换机到控制器实验3:OpenFlow协议分析实践

       

    7. OFPT_PACKET_MOD, 源端口6633 -> 目的端口44178,分析抓取的flow_mod数据包,控制器通过6633端口向交换机44178端口下发流表项,指导数据的转发处理实验3:OpenFlow协议分析实践

       

    8. OFPT_PACKET_OUT, 源端口6633(请按照我给你的action进行处理) -> 目的端口36424实验3:OpenFlow协议分析实践
      • 综上可知,本实验中交换机和控制器之间消息交互过程,大致如下图所示:
        实验3:OpenFlow协议分析实践
        1. 回答问题:交换机与控制器建立通信时是使用TCP协议还是UDP协议?
      实验3:OpenFlow协议分析实践

      答:根据图上红框内容可知,交换机与控制器建立通信时是使用TCP(Transmission Control Protocol)协议

      (二)进阶要求

      将抓包结果对照OpenFlow源码,了解OpenFlow主要消息类型对应的数据结构定义。

      1. HELLO

      实验3:OpenFlow协议分析实践 实验3:OpenFlow协议分析实践

      2. FEATURES_REQUEST

      源码参数格式与HELLO相同,将抓包截图与之对比

      实验3:OpenFlow协议分析实践

      3. SET_CONFIG

      实验3:OpenFlow协议分析实践

      对比

      实验3:OpenFlow协议分析实践

      4. PORT_STATUS

      实验3:OpenFlow协议分析实践

       

      实验3:OpenFlow协议分析实践

      5. FEATUERS_REPLY

      实验3:OpenFlow协议分析实践

      实验3:OpenFlow协议分析实践

      物理接口描述

      6. PORT_IN

      实验3:OpenFlow协议分析实践 实验3:OpenFlow协议分析实践 实验3:OpenFlow协议分析实践

       

      实验3:OpenFlow协议分析实践

      7. PORT_MOD

      实验3:OpenFlow协议分析实践

      实验3:OpenFlow协议分析实践

      8. PORT_OUT

      实验3:OpenFlow协议分析实践

      实验3:OpenFlow协议分析实践

      四、个人总结

      实验过程遇到问题:打开wireshark后创建拓扑,过滤Openflow数据包,并没有发现Flow_Mod数据包

      解决:阅读文档之后,发现Flow_Mod数据包是控制器想交换机下发流表项,指导数据的转发处理,所以在启动wireshark之后,再尝试执行pingall,最后发现了Flow_mod数据包。

      本次实验学习到了运用 wireshark 对 OpenFlow 协议数据交互过程进行抓包;借助包解析工具,分析与解释 OpenFlow协议的数据包交互过程与机制,实验本身难度不难,主要时间消耗在截图和设置解释图片上,在实验过程中,要注意的是需要先开启抓包后再进行创建拓扑,避免出现遗漏。 本次实验,也使我对OpenFlow协议有了更深刻形象的认识,提升了自主学习能力。而且同时对wireshark包解析工具的使用更加熟练,也大致了解了switch与controller之间消息交互的方式。

程序员灯塔
转载请注明原文链接:实验3:OpenFlow协议分析实践
喜欢 (0)