文章目录
1 OF-Config概述
交换机与控制器继续通信前,是需要对其功能、特性以及资源进行配置才能进行工作,这些配置是如何实现的?是由专门的配置协议指导完成的
1.1 OF-Config概念
OF-Config是OpenFlow交换机管理配置协议,是OpenFlow的伴侣协议
1.2 OF-Config协议版本
1.3 OF-Config协议和OpenFlow协议区别
- OpenFlow协议实现的目的:是实现控制器与OpenFlow交换机之间的信息交互。控制器通过OpenFlow协议对OpenFlow交换机流表的转发进行指导
- OF-Config协议实现的目的:是实现OpenFlow交换机的远端配置,OF配置点通过OF-Config协议完成OpenFlow交换机的配置与管理工作
OF-Config协议实现中将各组件从逻辑上进行抽象
1.4 OF-Config中各组件及其关系
- 一个OpenFlow交换机相当于一个物理的或者虚拟的网元设备,可以由一个或多个OpenFlow逻辑交换机构成,逻辑交换机相当于数据路径DataPath。
- 每个OpenFlow逻辑交换机都被分配了一定的资源,比如端口、队列等
- 发送OF-Config消息到OpenFlow交换机的服务称为OpenFlow配置点
1.5 OF-Config协议实现了那些管理配置功能
1.5.1 配置需求
- 控制器连接设置
在交换机连接到控制器之前,有3个参数需要提前设置:控制器IP地址、控制器端口号和传输协议(TLS或TCP)。 - 多控制器(Multiple Controllers)设置
OF-Config协议提供交换机同时连接多控制器的参数配置 - OpenFlow逻辑交换机设置
OF-Config协议需要支持OpenFlow逻辑交换机各种资源的配置,如端口或队列。 - 连接中断(Connection Interruption)设置
配置连接失效后进入的模式
当交换机与控制器失去连接时,可以进入两种可选模式,失败安全模式或者失败独立模式,OF-Config协议支持预先配置交换机连接中断后进入的模式 - 加密(Encryption)设置
身份认证方式
OF-Config协议提供交换机与控制器安全连接的证书配置 - 队列(Queues)设置
OF-Config协议支持对队列的设置,包括 最小速率(min‐rate)、最大速率(max-rate)、自定义速率(experimenter) - 端口(Ports)设置
OpenFlow协议本身实现了部分端口的配置,但是十分有限。
OF-Config协议提供了更加全面的端口配置功能:禁止接收(no-receive)、禁止转发(no-forward)、禁止Packet-in消息(no–packetin)、管理状态(admin-state)等 - 能力发现(Capability Discovery)
发现能力特性,OpenFlow协议为逻辑交换机定义了多种能力特征,比如多种Action类型。
OF-Config支持发现这些能力特征 - Datapath ID设置
1.5.2 操作运维需求
支持OF交换机被多个OpenFlow配置点配置
支持一个OpenFlow配置点管理多个OF交换机
支持一个OpenFlow逻辑交换机被多个控制器控制
- 支持配置OpenFlow交换机的端口和队列;
- 支持OpenFlow逻辑交换机的能力发现;
- 支持配置隧道,如IPinGRE、VXLAN及NVGRE
1.5.3 管理协议需求
保障安全性,支持对交换机和配置点双向认证;
支持配置请求和应答的可靠传输;
支持由配置点或交换机进行连接设置;
能够承载局部交换机配置以及大范围交换机配置;
支持配置点在交换机配置参数及接收来自交换机的配置参数;
支持在交换机创建、更改及删除配置信息,并支持报告配置结果;
支持独立发送配置请求,并支持交换机到配置点的异步通知;
支持记忆能力、可伸展性以及报告自身属性和能力
2 数据模型
2.1 数据模型数据结构
- OF-CONFIG采用XML来描述其数据结构
- 数据模型由类和类的属性构成
2.2 XML数据标识
OpenFlow Capable Switch
OpenFlow Configuration Point
OpenFlow Logical Switch
Logical Switch Capabilities
OpenFlow Controller
OpenFlow Resource (Superclass)
OpenFlow Port
OpenFlow Port Feature
OpenFlow Queue
External Certificate
Owned Certificate
OpenFlow Flow Table
这些ID由字符串定义,是XML中的ID属性唯一值。利用XML定义的数据模型有很好的可读性和扩展性。利于软件的实现
2.3 数据模型与XML实现
3 传输协议
通过NETCONF协议来传输其内容(RFC6241)