实验3:OpenFlow协议分析实践

一、基本要求

1.搭建拓扑



2.抓包结果

HELLO

控制器6633端口(我最高能支持OpenFlow 1.0) ---> 交换机41986端口

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

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

FEATURES_REQUEST

控制器6633端口(我需要你的特征信息) ---> 交换机41986端口

SET_CONFIG

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

PORT_STATUS

当交换机端口发生变化时,告知控制器相应的端口状态。

FEATURES_REPLY

交换机41986端口(这是我的特征信息,请查收) ---> 控制器6633端口

PACKET_IN

交换机41986端口(有数据包进来,请指示)--->控制器6633端口

PACKET_OUT

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

FLOW_MOD

第一次构建的时候没有pingall抓到这个包所以端口号会不一样


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

流程图

二、进阶要求

HELLO


FEATURES_REQUEST


SET_CONFIG


PORT_STATUS

FEATURES_REPLY


PACKET_IN

1.交换机查找流表,发现没有匹配条目

2.有匹配条目,对应的action是OUTPUT=CONTROLLER,固定收到向控制器发送包

PACKET_OUT


FLOW_MOD


个人总结

本次实验总体上跟着流程走难度不大,一遍实验下来对于OpenFlow协议中交换机与控制器的消息交互过程也有了一定的了解。由于在实验过程中构建拓扑网络后才开启wireshark,导致一部分包没有抓到,后来查阅了pdf才发现应该先打开wireshark,实验过程中出现了只有交换机端口向控制器发送HELLO的情况,后来采用miniedit可视化手动构建拓扑网络得以解决,最后通过过滤选择“openflow_v1”能够大大方便找到OpenFlow的包。

posted @ 2022-09-26 19:20  墨念  阅读(33)  评论(0编辑  收藏  举报