五、南向接口协议(二)—— OpenFlow协议

1 OpenFlow协议概述

OpenFlow协议为控制器与交换机之间的通信,提供了一种开放标准的方式。OpenFlow交换机通过安全通道与控制器进行信息交互。

2 OpenFlow消息类型

在这里插入图片描述

2.1 controller-to-switch消息

由控制器发起,可能会要求交换机回复对应的消息
在这里插入图片描述

  • Features消息:在建立传输安全会话时,控制器主动向交换机发Feature_Request消息,请求交换机的特性信息,交换机通过Feature_Reply消息回复所支持的功能特性
  • Modify-state消息:修改状态消息主要用于增加、修改、删除交换机的流表项、组表项及端口状态
  • Send-packet消息:一般用于响应Packet-in消息的处理,Packet-out信息必须携带一个Buffer_id,来定位缓存在交换机上的数据包
  • Barrier消息:用于告知控制器该报文之前的动作均已执行

2.2 asynchronous信息(异步)

用于告知控制器新数据包的到达和交换机状态的改变
这类消息的触发不是由控制器触发,而是有交换机主动发起的,用于告知控制器新数据包的到达,和交换机状态的改变

在这里插入图片描述

2.3 symmtric消息(对称)

由控制器或交换机任意一方发送,无需对方的许可或请求
在这里插入图片描述

3 Openflow消息格式

3.1 OpenFlow头部

Openflow协议数据包:Openflow Header和Openflow Message组成
在这里插入图片描述
在这里插入图片描述

3.2 OpenFlow消息体

与具体的消息类型有关,消息类型是一种枚举类型,每种消息类型被定义为一个常数
在这里插入图片描述

4 OpenFlow协议的主要通信流程

  1. 控制器和交换机连接的建立
    在这里插入图片描述
  2. 双方建立TLS隧道后,方法发送hello消息进行版本协商,如果协议版本协商成功,则连接建立。否则发送Error消息描述协商失败原因,并终止连接
    在这里插入图片描述
  3. 协商完成后,控制器和交换机之间发送Features消息,获取交换机参数,参数包括支持的buffer数目、流表数、Actions等
    在这里插入图片描述
  4. 控制器发送SET_CONFIG消息向交换机发送配置参数
    在这里插入图片描述
  5. 通过GET_CONFIG消息得到交换机修改后的配置信息
    在这里插入图片描述
  6. 制器与OpenFlow交换机之间,发送PACKET_OUT和PACKET_IN消息,通过PACKET_OUT中内置的LLDP包进行网络拓扑的探测
  7. 控制器通过FLOW_MOD向控制器下发流表操作
    在这里插入图片描述
    举例:
    在这里插入图片描述

5 OpenFlow通信流程详解

在这里插入图片描述

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值