OpenFlow协议简单介绍

1.OpenFlow交换机的基本构成

OpenFlow协议简单介绍_第1张图片
未命名文件.png

1.1 流表

版本 包含内容
1.0 头字段(Header Filed)、计数器(Counters)、行动(Actions)
1.1 匹配字段(Match Filed)、计数器)(Counters)、指令(Instruction)
1.2 同OpenFlow1.1
1.3 匹配字段(Match Filed)、优先级(Priority)、计数器(Counters)、指令(Instruction)、超时(Timeouts)、Cookies
1.4 同OpenFlow1.3
1.5 同OpenFlow1.5

OpenFlow流表由流表项构成,流表项的结构随着OpenFlow版本的不断演进不断变化,不同协议所包含的流表项结构不同,具体各版本如下表所示:

版本 包含内容
1.0 头字段(Header Filed)、计数器(Counters)、行动(Actions)
1.1 匹配字段(Match Filed)、计数器)(Counters)、指令(Instruction)
1.2 同OpenFlow1.1
1.3 匹配字段(Match Filed)、优先级(Priority)、计数器(Counters)、指令(Instruction)、超时(Timeouts)、Cookies
1.4 同OpenFlow1.3
1.5 同OpenFlow1.5

1.2 组表

OpenFlow交换机只含有一个组表,组表中包含许多组表项,每条组表项的结构如下:

组ID(Group identier) 组类型(Group Type) 计数器(Counters) 动作桶(Action Buckets)

1.3 Meter表

Meter表项用于关联流表项,对匹配流表项的报文实施QOS策略

Meter identifier Meter Bands Counters

其中Meter带又有如下组成:

Bands Type Rate Counters| Type Specific arguments

1.4 匹配字段

OpenFlow流表项的匹配域支持丰富的匹配字段,OpenFlow1.0支持匹配的数据包头的12个字段,到OpenFlow1.3,已经扩展到39个字段,并规定了OpenFlow交换机必须实现的13个字段(之后补充

OpenFlow1.0的12个字段如下:

Ingress Port Ether Source Ether Des Ether Type VLAN ID VLAN Priority IP Source IP Des IP Protocol IP TOS TCP/UDP Source Port TCP/UDP Des Port

1.5 指令集

指令 说明 可选/必选
Write-Action 添加指定动作到动作集 必选
GoTo-Table 转到另一个流表处理 必选
Meter 指示报文关联指定的Meter流表项 可选
Apply-Actions 应用动作列表中的动作 可选
Clear-Actions 清空动作集 可选
Write-Metadata 写入元数据 可选

当报文匹配上流表项时,执行表项包含的指令集,指令集类型如下所示:

指令 说明 可选/必选
Write-Action 添加指定动作到动作集 必选
GoTo-Table 转到另一个流表处理 必选
Meter 指示报文关联指定的Meter流表项 可选
Apply-Actions 应用动作列表中的动作 可选
Clear-Actions 清空动作集 可选
Write-Metadata 写入元数据 可选

1.6 动作集

当流表项的指令集中不包含GoTo-Table时,立即执行相关联的动作集,动作类型如下表所示:

动作类型 说明 可选/必选
Output 将报文转发到特性的OpenFlow端口 必选
Drop 满足条件时丢弃 必选
Group 将报文转交组表处理,动作由组表类型定义 必选
Set-Queue 将报文指定队列ID,用于实施QOS 可选
Push-Tag/Pop-Tag 适用于对VLAN头,MPLS头,PBB头进行操作 可选
Set-Field 识别匹配字段类型并修改字段的值 可选
Change-TTL 修改IPV4,IPV6,MPLS中的TTL 可选

1.7 动作列表

动作列表存在于特定协议报文中,它与动作集的区别在于,动作列表中的动作按照列表顺序依次执行,且可以包含多个同类型动作,这些动作的执行效果可以叠加。

1.8 OpenFlow端口

OpenFlow端口分为三类:物理端口,逻辑端口,保留端口

  • 物理端口为OpenFlow交换机的硬件接口
  • 逻辑端口通常由协议设置,如聚合口,隧道口
  • 保留端口由转发动作定义,例如转发到控制器

1.9 OpenFlow报文的处理流程

OpenFlow流水线将交换机内的一组流表串联起来,定义了每个流表怎样用于报文处理。

OpenFlow协议简单介绍_第2张图片
报文处理流程.png

1.10 安全信道

安全信道是控制器和其管理的每一台OpenFlow交换机间的可靠连接,具体流程如图所示:

OpenFlow协议简单介绍_第3张图片
安全通道流程.png

1.11 协议报文

1.同步消息

  • 可由交换机或控制器主动发起,并需要接受对方的应答。主要用于建立检测对方是否在线等。

  • 包括Hello、Echo、Vendo三种子消息

2.异步消息

  • 由OpenFlow交换机发起,用来通知交换机上发生的某些异步事件。消息是单向的,不需要控制器应答。主要用于交换机向控制器通知收到报文、状态变化、出现错误等事件信息

  • 包括Packet-In、Flow-removed、Port-status、Error四种子消息

3.控制器向交换机连接

  • 由控制器发起,对OpenFlow交换机进行状态查询和修改配置等操作;OpenFlow交换机接收并处理可能发送或不需要发送的应答消息

  • 包括Modify-state、Read-state、Packet-Out、Barrier request/reply等四类子消息

2.OpenFlow演进

2.1 OpenFlow协议的功能演进

OpenFlow各个协议版本之间的主要区别

版本 主要功能
OF 1.0 单表、IPV4
OF 1.1 多级流表、组表、MPLS、VLAN
OF 1.2 多控制器、IPV6
OF 1.3 Meter表、版本协商能力
OF 1.4 流表同步、协议消息完善
OF 1.5 数据包类型识别流程(以太网数据包、PPP数据包)egress Table

你可能感兴趣的:(OpenFlow协议简单介绍)