OpenFlow的伴侣协议:OF-CONFIG

简介

在OpenFlow协议的规范中,控制器需要和已配置的交换机进行通信。而交换机在正常工作之前需要对其特性以及资源进行配置才能正常工作。而这些配置超出了OpenFlow协议规范的范围,理应由其他的配置协议来完成。OF-Config(OpenFlow Management and Configuration Protocol)协议就是一种OpenFlow交换机配置协议。OF-CONFIG由ONF于2012年1月提出,目前已经演化到1.2版本。OF-CONFIG协议与OpenFlow协议的关系如图1所示。

作为一种交换机配置协议,OF-CONFIG的主要功能包括配置交换机连接的多个控制器信息、端口和队列等资源的配置以及端口等资源的状态修改等内容。此外,作为一个配置协议,OF-CONFIG也要求链接必须是安全可靠的。为满足实际网络运维要求,OF-CONFIG支持通过配置点对多个交换机进行配置,也支持多个配置点对同一个交换机进行配置。

为了满足OpenFlow版本更新的需求以及协议的可拓展要求,OF-CONFIG采用XML来描述其数据结构。此外,在OF-CONFIG的初始规范中也规定了采用NETCONF协议作为其传输协议。由于OF-Config协议没有和数据交换和路由等模块直接相关,所以相比于对实时性要求高的OpenFlow等南向协议而言,OF-CONFIG协议对实时性要求并不高。

![](https://img1.sdnlab.com/wp-content%2Fuploads%2F2016%2F03%2Fof-config-and-openflow.jpg)

图1. OF-CONFIG 与OpenFlow以及OpenFlow Switch之间的关系图

原理

OF-Config协议主要分为Server和Client两部分,其中Server运行在OpenFlow交换机端,而Client运行在OpenFlow配置点上。本质上,OpenFlow配置点就是一个普通的通信节点,其可以是独立的服务器,也可以是部署了控制器的服务器。通过OpenFlow Configuration Point(OpenFlow配置点)上的Client程序可以实现远程配置交换机的相关特性,比如连接的控制器信息、交换机特性及端口和队列等相关配置。最新的1.2版本的OF-CONFIG协议支持OpenFlow1.3版本的交换机的主要配置如下:

  • 配置datapath(在OF-CONFIG协议中称为OpenFlow逻辑交换机)连接的控制器信息,支持配置多个控制器信息,实现备份。
  • 配置交换机的端口和队列,实现资源的分配
  • 远程改变端口的状态以及特性
  • 完成OpenFlow交换机与OpenFlow控制器之间安全链接的证书配置
  • 发现OpenFlow逻辑交换机的能力
  • 配置VXLAN、NV-GRE等隧道协议

OF-CONFIG采用XML来描述其数据结构,并通过NETCONF协议来传输其内容。其最顶层的数据结构图如图2所示。其中OpenFlow Capable Switch是有OpenFlow Logical Switch实例化出来的一个数据结构,用于与OpenFlow配置节点通信,并由配置节点对其属性进行配置。OpenFlow逻辑交换机是指对OpenFlow交换机实体的逻辑描述,用于指导交换机进行相关动作,也是与OpenFlow控制器通信的实体。OpenFlow逻辑交换机拥有包括端口,队列,流表等资源。

![](https://img1.sdnlab.com/wp-content%2Fuploads%2F2016%2F03%2Fdata-model-of-of-config.jpg)

图2. OF-CONFIG 核心数据结构UML图

作为OpenFlow的伴侣协议,OF-CONFIG很好地弥补了OpenFlow协议规范之外的内容。在OpenFlow协议的SDN框架中,OF-CONFIG需完成交换机的配置工作,包括配置控制器信息等内容。当交换机和控制器建立连接之后,将通过OpenFlow协议来传递信息。从面向对象的角度看,OpenFlow协议规范的范围仅负责指导交换机对数据流进行操作而无法对交换机的资源进行配置,转而由OF-CONFIG等配置协议来完成交换机的配置工作,此设计体现了面向对象的理念,使得协议内容更加合理。

而作为伴侣协议,OF-CONFIG协议是对OpenFlow协议的补充,所以其设计动机、设计目的和实现方式等方式都不一样。但值得注意的是,OpenFlow逻辑交换机的某些属性可以通过OpenFlow协议和OF-CONFIG协议两种方式来进行配置,所以两个协议也有相互重叠的地方。笔者将OpenFlow和OF-CONFIG的差异整理于表1。


OpenFlow OF-CONFIG
设计动机 修改流表项等规则来指导通过OpenFlow交换机的网络数据包的修改和转发等动作。 通过远端的配置点来对多个OpenFlow交换机进行配置,简化网络运维工作。
传输 通过TCP,TSL或者SSL来传输OpenFlow比特流。 通过XML来描述数据,并通过NETCONF来传输。
协议终结点

(1) OpenFlow控制器(代理或者中间层在交换机看来就是控制器)

(2) OpenFlow交换机/datapath

(1)OF-CONFIG配置点

(2) OpenFlow使能交换机

使用示例 OpenFlow控制器下发一条流表项指导交换机将从端口1进入的数据包丢弃。 通过OF-CONFIG配置点将某个OpenFlow使能交换机连接到指定的控制器。

发展趋势

自2012年发布的OF-CONFIG 1.0版本之后,为支持OpenFlow协议的新版本特性,OF-CONFIG协议也不断更新协议版本。至2014年为止,OF-CONFIG已更新到1.2版本,其支持OpenFlow1.3版本协议的新特性。目前为止尚无更新版本更新。

与OF-CONFIG类似的配置协议还有OVSDB,其专门为OpenVSwitch的数据库配置服务,可用于创建网桥并配置。而随着OpenVSwitch的流行,OVSDB的曝光率相比要高于OF-CONFIG,所以两者在技术上是一种竞争关系。但是OF-CONFIG适用于所有支持OpenFlow协议的交换机,包括软件交换机和硬件交换机,而OVSDB只支持OpenVSwitch交换机。这点差异使得OF-CONFIG在物理交换机环境下占有一定优势。

随着SDN的发展,OpenFlow不再是唯一的,也不再是必须的选项。但是无论选择哪一种南向协议,都需要通过交换机配置协议,所以相比OpenFlow而言,OF-CONFIG似乎更有生命力。因此笔者看好OF-CONFIG在SDN发展的很长一段时间内将拥有稳定的技术市场,这个趋势和OpenFlow的发展有很大的关系,但是OF-CONFIG不会随着OpenFlow的可能消亡而失去竞争力。

作者简介:

李呈,2014/09-至今,北京邮电大学信息与通信工程学院未来网络理论与应用实验室(FNL实验室)攻读硕士研究生。

个人博客:www.muzixing.com


  • 本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。 本站中所有编译类文章仅用于学习和交流目的,编译工作遵照 CC 协议,如果有侵犯到您权益的地方,请及时联系我们。
  • 本文链接https://www.sdnlab.com/16024.html
分享到:
相关文章
条评论

登录后才可以评论

李呈 发表于16-03-01
1