网络通信 频道

SDN控制平面发展历史及趋势

   【IT168 资讯】SDN的特点之一就是控制平面与数据平面分离,其主张通过集中式的控制器平台实现网络的控制。在SDN架构中,控制平面是逻辑集中的,通过某种协议将控制信息下发至底层的数据平面去执行。所以,控制平台被称为SDN的大脑,指挥整个数据网络的运行。

  得益于集中控制的优势,控制平面的存在能使得网络的部署和配置更加智能和简化。支持编程的SDN控制平面使得网络更加智能,更加灵活和易于拓展。控制器通过SDN的南向协议的API可以对数据层面的网元设备下发指令,完成控制平面与数据平面的控制传输。2008年,SDN和OpenFlow一起诞生于斯坦福大学。目前,在SDN领域中,OpenFlow协议是最流行的南向协议之一。

  SDN出现初期,控制平面的表现形式更多的是以单实例的控制器出现,实现SDN的协议也是以OpenFlow为主。所以在SDN发展初期,SDN控制器更多指的是OpenFlow控制器。SDN出现之后,ONF[1]成立。ONF(Open Network Foundation),中文名为“开放网络基金会” ,是致力于推进SDN标准化的一个用户驱动的组织。在ONF的白皮书中,提出了SDN的架构标准,SDN架构1.0版本和1.1版本分别如图1和图2所示。

SDN控制平面发展历史及趋势
▲图1:SDN网络架构1.0版本

SDN控制平面发展历史及趋势
▲图2:SDN网络架构1.1版本

  第一款SDN控制器是NOX,目前NOX的社区状态已经不再活跃。在早期的SDN论文中,NOX作为唯一的控制器,发挥了重要的作用。NOX给后来的控制器开发提供了很好的范例,高层级的编程架构。然而,由于其使用C语言编写,给开发SDN应用带来了许多困难,逐渐在控制器竞争中失去优势。在NOX出现不久之后,其兄弟版本POX面世。POX采用Python语言开发。其内部机制和NOX一样。在SDN发展初期,POX也扮演了相当重要的角色,许多SDN学习者都接触过POX。POX因其简单,易入门而得到广泛的关注和使用,成为SDN入门,学习SDN控制器的很好选择。然而,随着技术的发展,更多优秀的控制器,如采用Python语言开发的控制器代表Ryu,采用Java语言开发的控制器代表FloodLight等纷纷涌现。后者均具有更加成熟的架构,更加优秀的性能,相比之下,POX不具有优势,慢慢在控制器的竞争中处于下风。目前POX的开源社区还是活跃状态,由Murphy McCauley继续运营社区。

  2012年和2013年,Ryu和FloodLight诞生。Ryu使用Python语言开发,FloodLight采用Java语言开发。由于其易用性,性能,架构等均比早先时期的POX/NOX优秀,很快得到了SDN研究者的青睐。

  Ryu是日本NTT公司开发的模块化的控制器。Ryu因其架构清晰、支持OpenFlow全部版本、有社区的Plug-in集成到OpenStack、性能良好和文档齐全等优点获得了许多SDN研究者的关注。同样,在Beacon上改进而来的FloodLight,以其企业级别的优秀性能,开发效率更高的Java语言,模块化的设计等优点得到了偏好Java语言的SDN研究者的青睐。此时的SDN控制器侧重于提升单例性能,支持的南向协议也是以OpenFlow为主。笔者认为可以称之为OpenFlow式SDN的控制器发展中期,然而这个时期非常短。

  SDN经过几年的发展,成为趋势的势头逐渐浮出水面。SDN控制器的发展也因一个重要的SDN“控制器”而展开新的篇章。2013年,由Linux Foundation和多家网络巨头如Cisco、Juniper和Broadcom等公司一起创立的开源项目OpenDaylight。其赞助商、发起者多为设备厂商而非运营商等消费者,其目的在于推出一个通用的SDN控制平台。OpenDaylight不仅仅是一个SDN控制器,它更是一个庞大的开源项目,其中包含许多子项目,而Controller只是其中的一个子项目。OpenDaylight支持多种南向协议,包括OpenFlow(支持1.0和1.3版本)、Netconf和OVSDB等,是一个广义的SDN控制平台,而不是OpenFlow系的狭义SDN控制器。

  OpenDaylight的诞生意味着SDN进入一个崭新的时期,此时SDN的概念发生了改变。SDN控制器应支持多南向协议,而不仅仅局限于OpenFlow。这给业界带来了很多想象空间,会被巨头引导走向不够开放的另一端吗?SDN控制器应该支持分布式集群,即单实例的控制器变成了分布式的控制平台。分布式的控制平台不仅可以管理更大的网络,性能更好,还可以相互容灾备份,提升系统的可靠性。在分布式系统盛行的今天,SDN控制器虽逻辑集中但也需要架构上分布。

  OpenDaylight的社区的会员很多,早期的会员多为设备商。各个厂商均竭尽所能得把自己的思想,产品放到OpenDaylight项目中,如Ciscod的OpFlex。虽然多家参与社区的维护和OpenDaylight的开发,但是Cisco还是占据主导,大多数项目还是Cisco在主导开发。在角力的过程中,有的企业就会有其他的打算,如Big Switch Networks退出OpenDaylight, Juniper将经历转向了自己的Open Contrial。 OpenContrial是Juniper的商业控制器Contrial的开源版本,其使用C++语言编写,支持OpenFlow协议和Netconf等南向协议。另一方面,也有跟进的企业,增加了对OpenDaylight的投入,如HP将自己升级到了铂金会员。Huawei则兵分多路,一部分人开发OpenDaylight,另一部分人则参与了新生代的控制平台ONOS的开发,还有其他很大一部分人在进行华为敏捷智能网络控制器SNC的开发。虽然OpenDaylight社区势力众多,各自的想法也不一样,但是这并不影响OpenDaylight的性能和在SDN研究者心目中的地位,OpenDaylight依然凭借自己社区强大的技术,在SDN控制器的竞争中成为最具有影响力的控制器之一。许多企业在自己的产品中或者网络中使用到了OpenDaylight, 比如Brocade一直推基于OpenDaylight的商业控制器vaytta。腾讯也在最新的技术分享中提到使用了OpenDaylight管理自己的数据中心网络。

0
相关文章