OpenFlow协议基础
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
– 由控制器发起,对OpenFlow交换机进行状态查询和修改配置等操作;OpenFlow交换 机接受并处理可能发送或不需要发送的应答消息
– 包括Modify-state、Read-state、Packet-Out、Barrier request/replay等四类十 余种子消息
18
OpenFlow-CONFIG
2. OpenFlow协议简介
3. OpenFlow典型应用
6
OpenFlow交换机的基本构成
• OpenFlow的全称是OpenFlow Switch Specification,它描述了 OpenFlow交换机的基本组成和功能,以及集中式控制器如何使用 OpenFlow协议对交换机进行远程控制
IP TOS
TCP/UDP Source Port
TCP/UDP Des Port
• 发展至OpenFlow V1.3,已扩展至39个字段,并规定 了OpenFlow交换机必须实现的13个字段
11
指令集
• 当报文匹配上流表项时,执行表项包含的指令集,指令集类型如下表所示
必选 必选 可选 可选 可选 可选
15
OpenFlow报文的处理流程
• OpenFlow流水线将交换机内的一组流表串起来,定义了每个流表如 何作用于报文
进入第一个流表
匹配上 表项 否
Table-Miss处理
转由其他流表处理
是 执行动作列表
否
指令为 Drop
是
是
指令含 GotoTable
丢弃报文
16
安全信道
• 安全信道是Controller和它管理的每一台OpenFlow交换机之间的可 靠连接
Write-Action Goto-Table Meter Apply-Actions Clear-Actions Write-Metadata
添加指定动作到动作集 转到另一个流表处理 指示报文关联指定的Meter流表项 应用动作列表中的动作 清空动作集 写入元数据
12
动作集
• 当流表项的指令集中不含Goto-Table时,立即执行关联的动作集被, 动作类型如下表所示
13
动作列表
• 动作列表存在于特定协议报文中,它与动作集的区别在于,动 作列表中的动作按照列表顺序依次执行,且可以包含多个同类 型动作,这些动作的执行效果可以叠加
14
OpenFlow端口
• OpenFlow端口分为三类:物理端口、逻辑端口和保留端口
– 物理端口通常为OpenFlow交换机的硬件接口 – 逻辑端口通常由协议设置,如聚合口、隧道口 – 保留端口由转发动作定义,例如转发到控制器
OpenFlow Protocol Controller
OpenFlow Channel
Group Table
Flow ... Flow
Table Pipeline Table
7
流表
• OpenFlow流表由流表项构成,流表项的结构随着OpenFlow版本的 演进不断丰富,不同协议版本的流表项结构如下
建立OpenFlow连接
Fail-secure mode
协商版 本 失败
终止连接
成功
信道连接正常运行
echo超 时
配置决 定
Fail-standalone mode
17
协议报文
• 同步消息
– 可由交换机或者控制器主动发起,并需要接收对方应答。主要用于建立连接、检测对方 是否在线等
– 包括Hello、Echo、Vendo三种子消息
OpenFlow标准化组织
• ONF(Open Networking Foundation,开放网络基金会)于 2011年成立,致力于SDN及其核心技术OpenFlow的标准化以及商 业化
• ONF的主要研究成果包括OpenFlow标准和OpenFlow-CONFIG标 准
5
目录
1. OpenFlow概述
Group Identier Group Type Counters Action Buckets
9
Meter表
• Meter表项用于关联流表项,对匹配流表项的报文实施QOS策略
Meter Identifier Meter Bands Counters
Bands Type
Rateபைடு நூலகம்
Counters Type Specific arguments
V1.0
Header Filed
Counters
Actions
V1.1&V1.2
Match Filed
Counters Instruction
V1.3
Match Filed
Priority Counters Instruction
Timeouts
Cookies
8
组表
• OpenFlow交换机只含有一个组表,组表由许多组表项构成,每条流 表项的结构如下
Controller
23
控制器应用分析
• 控制器是SDN架构中的核心组成,通过对交换机流表的控制实现对流 量的精细控制
Controller
OpenFlow Switch
24
课程总结
了解OpenFlow的起源 掌握OpenFlow的协议工作原理 熟悉OpenFlow的典型应用
25
请对 您本 扫课 描程 二做 维评 码价
10
匹配域
• OpenFlow流表项的匹配域支持丰富的匹配字段
• OpenFlow V1.0支持匹配数据包头的12个字段
Ingress Ether Ether Port Source Des
Ether Type
VLAN ID
VLAN Priority
IP Source
IP Des
IP Protocol
OpenFlow的起源
• OpenFlow起源于2006年斯坦福大学的Clean Slate项目,其核心理 念为将传统网络设备的数据转发和路由控制模块相分离,通过集中式 控制器,以标准化的接口对网络设备进行管理和配置
OpenFlow Switch
Controller
OpenFlow Switch
4
OpenFlow协议基础
杭州华三通信技术有限公司 版权所有,未经授权不得使用与传播
学习完本课程,您应该能够:
了解OpenFlow协议的基本概念 了解OpenFlow协议在SDN网络中的常见应用
2
目录
1. OpenFlow概述
2. OpenFlow协议简介 3. OpenFlow典型应用
3
21
目录
1. OpenFlow概述 2. OpenFlow协议简介
3. OpenFlow典型应用
22
多控制器
• 一 个OpenFlow交 换 机 可 以连 接 多 个OpenFlow Controller来 提高 其 稳 定 性,同时实现负载分担
OpenFlow Switch
Controller
• OF-CONFIG用于对OpenFlow交换机进行基础配置,以使得 交换机能够与控制器建立数据信道
• OF-CONFIG V1.1.1选用NETCONF作为传输协议
19
OpenFlow的演进
OpenFlow 1.0.0(2009.12)
OpenFlow 1.2(2011.12)
OF-CONFIG 1.1(2013.3)
OpenFlow1.3.2(2013.4) OpenFlow V1.4(2013.10)
20
OpenFlow协议的功能演进
• OpenFlow各协议版本之间的主要区别
OF 1.0 单表、IPv4 OF 1.1 多级流表、组表、MPLS、VLAN OF 1.2 多控制器、IPv6 OF 1.3 Meter表、版本协商能力 OF 1.4 流表同步、协议消息完善
• 异步消息
– 由OpenFlow交换机发起,用来通知交换机上发生的某些异步事件。消息是单向的,不 需要控制器应答。主要用于交换机向控制器通知收到报文、状态变化、出现错误等事件 信息
– 包括Packet-in、Flow-removed、Port-status、Error四种子消息
• Controller-to-switch
必选 必选 必选 可选 可选
可选 可选
Output Drop Group Set-Queue Push-Tag Pop-Tag Set-Field Change-TTL
将报文转发到特性的OpenFlow端口 当满足特定条件时报文被丢弃 将报文转由组表处理,动作由组表类型定义 为报文指定队列ID,用于实施QOS 适用于对VLAN头、MPLS头、PBB头进行操 作 识别匹配字段类型并修改字段的值 修改IPv4、IPv6、MPLS中的TTL
– 包括Modify-state、Read-state、Packet-Out、Barrier request/replay等四类十 余种子消息
18
OpenFlow-CONFIG
2. OpenFlow协议简介
3. OpenFlow典型应用
6
OpenFlow交换机的基本构成
• OpenFlow的全称是OpenFlow Switch Specification,它描述了 OpenFlow交换机的基本组成和功能,以及集中式控制器如何使用 OpenFlow协议对交换机进行远程控制
IP TOS
TCP/UDP Source Port
TCP/UDP Des Port
• 发展至OpenFlow V1.3,已扩展至39个字段,并规定 了OpenFlow交换机必须实现的13个字段
11
指令集
• 当报文匹配上流表项时,执行表项包含的指令集,指令集类型如下表所示
必选 必选 可选 可选 可选 可选
15
OpenFlow报文的处理流程
• OpenFlow流水线将交换机内的一组流表串起来,定义了每个流表如 何作用于报文
进入第一个流表
匹配上 表项 否
Table-Miss处理
转由其他流表处理
是 执行动作列表
否
指令为 Drop
是
是
指令含 GotoTable
丢弃报文
16
安全信道
• 安全信道是Controller和它管理的每一台OpenFlow交换机之间的可 靠连接
Write-Action Goto-Table Meter Apply-Actions Clear-Actions Write-Metadata
添加指定动作到动作集 转到另一个流表处理 指示报文关联指定的Meter流表项 应用动作列表中的动作 清空动作集 写入元数据
12
动作集
• 当流表项的指令集中不含Goto-Table时,立即执行关联的动作集被, 动作类型如下表所示
13
动作列表
• 动作列表存在于特定协议报文中,它与动作集的区别在于,动 作列表中的动作按照列表顺序依次执行,且可以包含多个同类 型动作,这些动作的执行效果可以叠加
14
OpenFlow端口
• OpenFlow端口分为三类:物理端口、逻辑端口和保留端口
– 物理端口通常为OpenFlow交换机的硬件接口 – 逻辑端口通常由协议设置,如聚合口、隧道口 – 保留端口由转发动作定义,例如转发到控制器
OpenFlow Protocol Controller
OpenFlow Channel
Group Table
Flow ... Flow
Table Pipeline Table
7
流表
• OpenFlow流表由流表项构成,流表项的结构随着OpenFlow版本的 演进不断丰富,不同协议版本的流表项结构如下
建立OpenFlow连接
Fail-secure mode
协商版 本 失败
终止连接
成功
信道连接正常运行
echo超 时
配置决 定
Fail-standalone mode
17
协议报文
• 同步消息
– 可由交换机或者控制器主动发起,并需要接收对方应答。主要用于建立连接、检测对方 是否在线等
– 包括Hello、Echo、Vendo三种子消息
OpenFlow标准化组织
• ONF(Open Networking Foundation,开放网络基金会)于 2011年成立,致力于SDN及其核心技术OpenFlow的标准化以及商 业化
• ONF的主要研究成果包括OpenFlow标准和OpenFlow-CONFIG标 准
5
目录
1. OpenFlow概述
Group Identier Group Type Counters Action Buckets
9
Meter表
• Meter表项用于关联流表项,对匹配流表项的报文实施QOS策略
Meter Identifier Meter Bands Counters
Bands Type
Rateபைடு நூலகம்
Counters Type Specific arguments
V1.0
Header Filed
Counters
Actions
V1.1&V1.2
Match Filed
Counters Instruction
V1.3
Match Filed
Priority Counters Instruction
Timeouts
Cookies
8
组表
• OpenFlow交换机只含有一个组表,组表由许多组表项构成,每条流 表项的结构如下
Controller
23
控制器应用分析
• 控制器是SDN架构中的核心组成,通过对交换机流表的控制实现对流 量的精细控制
Controller
OpenFlow Switch
24
课程总结
了解OpenFlow的起源 掌握OpenFlow的协议工作原理 熟悉OpenFlow的典型应用
25
请对 您本 扫课 描程 二做 维评 码价
10
匹配域
• OpenFlow流表项的匹配域支持丰富的匹配字段
• OpenFlow V1.0支持匹配数据包头的12个字段
Ingress Ether Ether Port Source Des
Ether Type
VLAN ID
VLAN Priority
IP Source
IP Des
IP Protocol
OpenFlow的起源
• OpenFlow起源于2006年斯坦福大学的Clean Slate项目,其核心理 念为将传统网络设备的数据转发和路由控制模块相分离,通过集中式 控制器,以标准化的接口对网络设备进行管理和配置
OpenFlow Switch
Controller
OpenFlow Switch
4
OpenFlow协议基础
杭州华三通信技术有限公司 版权所有,未经授权不得使用与传播
学习完本课程,您应该能够:
了解OpenFlow协议的基本概念 了解OpenFlow协议在SDN网络中的常见应用
2
目录
1. OpenFlow概述
2. OpenFlow协议简介 3. OpenFlow典型应用
3
21
目录
1. OpenFlow概述 2. OpenFlow协议简介
3. OpenFlow典型应用
22
多控制器
• 一 个OpenFlow交 换 机 可 以连 接 多 个OpenFlow Controller来 提高 其 稳 定 性,同时实现负载分担
OpenFlow Switch
Controller
• OF-CONFIG用于对OpenFlow交换机进行基础配置,以使得 交换机能够与控制器建立数据信道
• OF-CONFIG V1.1.1选用NETCONF作为传输协议
19
OpenFlow的演进
OpenFlow 1.0.0(2009.12)
OpenFlow 1.2(2011.12)
OF-CONFIG 1.1(2013.3)
OpenFlow1.3.2(2013.4) OpenFlow V1.4(2013.10)
20
OpenFlow协议的功能演进
• OpenFlow各协议版本之间的主要区别
OF 1.0 单表、IPv4 OF 1.1 多级流表、组表、MPLS、VLAN OF 1.2 多控制器、IPv6 OF 1.3 Meter表、版本协商能力 OF 1.4 流表同步、协议消息完善
• 异步消息
– 由OpenFlow交换机发起,用来通知交换机上发生的某些异步事件。消息是单向的,不 需要控制器应答。主要用于交换机向控制器通知收到报文、状态变化、出现错误等事件 信息
– 包括Packet-in、Flow-removed、Port-status、Error四种子消息
• Controller-to-switch
必选 必选 必选 可选 可选
可选 可选
Output Drop Group Set-Queue Push-Tag Pop-Tag Set-Field Change-TTL
将报文转发到特性的OpenFlow端口 当满足特定条件时报文被丢弃 将报文转由组表处理,动作由组表类型定义 为报文指定队列ID,用于实施QOS 适用于对VLAN头、MPLS头、PBB头进行操 作 识别匹配字段类型并修改字段的值 修改IPv4、IPv6、MPLS中的TTL