OpenFlow协议标准演进过程

     OpenFlow是一种新型网络协议,起源于斯坦福大学的Clean Slate项目组。OpenFlow提出的出发点是因为研究人员没法改变现有网络设备进行创新网络架构和协议的研究和实验,而这些新的网络创新思想偏偏须要在实际的网络上才能更好地验证。斯坦福大学所以提出了控制转发分离架构,将控制逻辑从网络设备中分离出来,交给中央控制器集中统一控制,实现网络业务的灵活部署,而且他们设计了OpenFlow协议做为控制器与交换机通信的标准接口。近年OpenFlow已经引发了网络设备商和网络管理员的普遍关注,使用OpenFlow协议实现软件定义网络,能够把网络做为一个总体而不是许多独立分散的设备来集中进行管理,大大提高了网络可用性和网络管理效率。网络

     OpenFlow的思路很简单,网络设备维护一个或者若干个流表,而且数据流只按照这些流表进行转发。流表自己的生成、维护彻底由外置的控制器来管理。流表项并不是仅指普通的IP五元组,而是由一些关键字和执行动做组成的灵活规则,而且每一个关键字字段都是能够通配的。在实际应用中,网络管理人员能够经过配置流表项中具体的匹配关键字来决定使用何种粒度的流转发规则。例如,若是只须要根据目的IP进行路由,那么下发流表项时,关键字只匹配目的IP字段,其它关键字全通配,而动做中只须要一个出端口便可实现常规的IP路由转发。架构

     自2009年末发布第一个正式版本v1.0以来,OpenFlow协议已经经历了1.11.21.3以及最新发布的1.4等版本的演进过程。同时,2012OpenFlow管理和配置协议也发布了第一个版本(OF-CONFIG1.0&1.1),用于配合OpenFlow协议进行自动化的网络部署。图1给出了OpenFlow协议各个版本的演进过程和主要变化,目前使用和支持最多的是OpenFlow1.0OpenFlow1.3版本,图2说明了这两个版本的主要变化。测试

                         图1OpenFlow协议版本演进图spa

    OpenFlow协议是描述控制器和交换机之间交互信息的南向接口标准。OpenFlow协议支持三类消息类型:Controller-to-SwitchAsynchronousSymmetric,每一种类型都有多个子类型,控制器和交换机之间经过这三类消息进行链接创建,流表下发和信息交换,实现对网络中全部OpenFlow交换机的控制。设计

              图2OpenFlow1.01.3版本演进的主要结构变化接口

下面简单介绍一下OpenFlow协议中1.01.4版本的主要变化过程。ci

     OpenFlow1.0协议指定每一个OpenFlow交换机中都存在一张流表,用于数据包查找、处理和转发,而且只能同一台控制器进行通讯,流表的维护也是经过控制器下发相应的OpenFlow消息来实现。流表由多个流表项组成,而每一个流表项就是一个转发规则。流表项由匹配字段、计数器和动做组成。其中匹配字段是流表项的标识,OpenFlow1.0支持12个匹配字段;计数器用于流表项的匹配和收发包统计;动做指示对匹配流表项的数据包应该执行的动做,如转发到另外一端口,丢弃或送控制器处理,甚至能够修改数据包字段转发。但OpenFlow1.0只支持IPv4路由

    OpenFlow1.0版本的优点是它能够与现有的商业交换芯片兼容,经过在传统交换机上升级固件就能够支持OpenFlow1.0版本,既方便OpenFlow的推广使用也有效保护了用户的投资,所以OpenFlow1.0是目前使用和支持最普遍的协议版本。部署

    自OpenFlow1.1版本开始支持多级流表,将流表匹配过程分解成多个步骤,造成流水线处理方式,这样能够有效和灵活利用硬件内部固有的多表特性,同时把数据包处理流程分解到不一样的流表中也避免了单流表过分膨胀问题。除此以外OpenFlow1.1中还增长了对于VLANMPLS标签的处理,而且增长了Group表,经过在不一样流表项动做中引用相同的组表实现对数据包执行相同的动做,简化了流表的维护。OpenFlow1.1版本是OpenFlow协议版本发展的一个分水岭,它和OpenFlow1.0版本开始不兼容,但后续版本仍然仍是在此基础上发展。get

    为了更好支持协议的可扩展性,OpenFlow1.2版本发展为下发规则的匹配字段再也不经过固定长度的结构来定义,而是采用了TLV结构定义匹配字段,称为OXM(OpenFlow Extensible Match),这样用户就能够灵活的下发本身的匹配字段,增长了更多关键字匹配字段的同时也节省了流表空间。同时,OpenFlow1.2规定可使用多台控制器和同一台交换机进行链接增长可靠性,而且多控制器能够经过发送消息来变换本身的角色。还有重要的一点是自OpenFlow1.2版本开始支持IPv6

    通过1.11.2版本的演变积累,20124月发布的OpenFlow1.3版本成为长期支持的稳定版本。OpenFlow1.3流表支持的匹配关键字已经增长到40个,足以知足现有网络应用的须要。OpenFlow1.3主要还增长了Meter表,用于控制关联流表的数据包的传送速率,但控制方式目前还相对简单。OpenFlow1.3还改进了版本协商过程,容许交换机和控制器根据本身的能力协商支持的OpenFlow协议版本。同时,链接创建也增长了辅助链接提升交换机的处理效率和实现应用的并行性。其它还有IPv6扩展头和Table-miss表项的支持。

    2013年最新发布的OpenFlow1.4版本仍然是基于1.3版本的特征改进版本,数据转发层面没有太大变化,主要是增长了一种流表同步机制,多个流表能够共享相同的匹配字段,但能够定义不一样的动做;另外又增长了Bundle消息,确保控制器下发一组完整消息或同时向多个交换机下发消息的状态一致性。其它还支持光口属性描述,多控制器相关的流表监控等特征。

    OpenFlow协议的发展演进一直都围绕着两个方面,一方面是控制面加强,让系统功能更丰富更灵活;另外一方面是转发层面的加强,能够匹配更多的关键字,执行更多的动做。每个后续版本的OpenFlow协议都在前一版本的基础上进行了或多或少的改进,但自OpenFlow1.1版本开始和以前版本不兼容,OpenFlow协议官方维护组织ONF为了保证产业界有一个稳定发展的平台,把OpenFlow1.01.3版本做为长期支持的稳定版本,一段时间内后续版本发展要保持和稳定版本的兼容。

    神州数码网络公司(DCN)2011年就开始OpenFlow交换机的研发,全线交换产品支持OpenFlow1.01.3协议,并配合国内多家高校,科研机构和互联网公司进行了OpenFlow科研和商用网络的部署,是目前国内拥有最多实际案例的设备厂商,在行业内处于领先地位。201311月开放网络基金会ONF正式推出OpenFlow1.0协议一致性认证业务,为网络设备商提供了证实其产品彻底符合OpenFlow标准规范的机会,该测试涵盖二层和三层交换功能的10个方面,共有200来个测试项。DCN公司凭借近几年在OpenFlow研发的技术积累,其数据中心交换机CS650020144月顺利经过ONF的规范测试,成为国内首家经过OpenFlow1.0一致性认证的设备厂商。从此DCN将持续研发创新,积极配合用户实践SDN,引领网络设备市场的新变革。

本文来源于SDNLAB,可点击此阅读原文。若是你也有好的创做,你能够给咱们投稿,投稿地址请点击

相关文章
相关标签/搜索