SDN控制器
SDN控制器
SDN控制器是软件定义网络(SDN)中的应用程序,负责流量控制以确保智能网络。SDN控制器是基于如OpenFlow等协议的,允许服务器告诉交换机向哪里发送数据包。
事实上,SDN控制器是作为网络的一种操作系统(OS)。控制器不控制网络硬件而是作为软件运行,这样有利于网络自动化管理。基于软件的网络控制使得集成业务申请和网络更容易。
IBM的可编程网络控制器运行在Linux上。IBM的SDN控制器管理和配置OpenFlow 1.0网络,通过在网络控制器的顶部提供一个虚拟层。IBM的控制器允许第三方软件开发人员编写自己的应用程序。
一些供应商提出了专有的SDN控制器。所以,一个供应商的控制器不会总运行在另一个供应商的控制器上。其它网络供应商包括惠普(HP)、思科威睿、和瞻博网络,正在积极参与到SDN中。
开源控制器
ONOS和ODL项目在SDN控制器方面很可能会共享成果,这样几乎所有事情都可以在Linux基金会上实现了。
两个开源组织创建了独立的SDN控制器,现在已经是Linux基金会的一部分,增加了跨项目合作的进程。
日前,Open Networking Lab (ON.Lab)将ONOS项目(Open Networking Operating System)放在了基金会中。ONOS开发者正在创建一个电信级的开源SDN控制器。
ON.Lab组织加入Linux基金会是为了从其庞大的开发者社区中获得帮助。ONOS项目的执行董事Guru Parulkar表示:“随着SDN和NFV(网络功能虚拟化)的崛起,服务提供商和开发者社区在人才储备方面出现严重不足。”
Linux基金会还有ODL(OpenDaylight)项目,它是由供应商倾力打造的控制器架构。贡献者包括思科、Juniper网络公司、上海博科资讯股份有限公司通讯系统公司以及Arista网络公司。
其他控制器
1.NOX和POX
NOX 是斯坦福大学在2008 年提出的第一款OpenFlow 控制器,它的早期版本(NOX-Classic)由C++Python 两种语言实现,只能支持单线程操作。控制器提供相应的编程接口,开发人员可以使用C++或者Python 语言在这些接口上实现自己的应用。这个版本已经开源了包括hub、switch、topology 和route在内的多种应用。
NOX 的新版本(0.9.2~core~beta,2012-5-11 发布)完全由C++实现,支持OpenFlow1.0 协议,并且提供了多线程的支持。由于C++的灵活性、高效性,并且新版本增加了多线程的支持,其性能有了很大的提升,但美中不足的是,新版NOX只提供了基本框架。由于它在代码结构和实现语言上有了一定的调整,原来版本中的相关应用在新版本中无法直接移植。最新版本的NOX只有switch 一个应用,实现了learning switch的功能。
NOX团队从其旧版本中分离出Python 语言实现的内容之后,又实现了一款完全使用Python语言的控制器POX。尽管POX现在开源出来的代码所实现的应用也仅限learning switch,但由于Python 简洁、易读,以及扩展性好等优点,POX得以快速发展,并且得到了广泛的应用。由于Python 是一种解释性语言,它在性能上较C++和Java 会有一些劣势。本文对于POX 的测试,均采用PyPy解释器。
2.Beacon
Beacon 同样起源于斯坦福大学,在2010 年由Erickson 等人设计开发。Beacon 是一款基于Java 语言的开源控制器,截至本文撰写时的最新版本是V1.0.2 版。Beacon 以其高效性和稳定性得以在多个科研项目和实验环境中被应用。另外,Beacon 还具有很好的跨平台特性,并且支持多线程,可以通过Web 的UI 进行访问控制。Beacon 采用Java 的Spring和Equinox 编程模型,可以提供OSGi 用户界面,使用者可以通过用户界面动态地进行模块的添加和删除,在使用和部署上很方便。
3.Big Network Controller \u0026 Floodlight
2012年成立的SDN初创公司Big Switch Networks先后推出了几款控制器。首先是其商用版的Big NetworkController,它可以支持多达1 000 个网络设备,每秒连接最多250 000台主机。同年2月,Big Switch发布了其开源控制器Floodlight,该控制器与Big Network Controller使用相同的core engine,作为其开源版本推向市场,到2012年年底,其下载量就已经超过1万。
Floodlight采用Java语言实现,在Apache开源标准许可下可免费使用。另外,Big Network Controller 和Floodlight 的API(application programming interface)完全兼容,因此基于Floodlight 编写的应用程序可以直接应用于商业版本的控制器。也正是基于这种兼容性,Floodlight 开源社区可以向用户提供强大的技术支持。Floodlight 最新版本(V0.90)于2012 年10 月发布,支持多线程和Web UI。同时,Floodlight 也可以很好地应用于OpenStack
4.Maestro
Maestro是莱斯大学2011年的一篇学位论文,提出并用Java 实现了一款基于LGPL V2.1 开源协议标准的多线程控制器,主要应用于科研领域。它同样有着很好的平台适应性,可以有效地在多种操作系统和体系结构的机器上运行。到目前为止,maestro
新开源版本为2011 年5 月发布的V0.2.1,其实现的应用主要包括learning switch、discovery、location management、route 等。而对于命令行模式,只是实现了一些简单的display 操作。相对其他控制器来说,Maestro版本的更新速度比较慢。
5.Ryu
Ryu是由日本NTT公司负责设计研发的一款开源SDN 控制器。同POX 一样,Ryu 也是完全由Python 语言实现,使用者可以用Python 语言在其上实现自己的应用。Ryu 目前支持OpenFlow V1.0、V1.2 和V1.3,同时支持在OpenStack上的部署应用。Ryu采用apache License开源协议标准,最新版本实现了simple_switch、rest_topology等应用。
6.Helios和SNAC
上述介绍的控制器主要都是开源的,而Helios 和SNAC是闭源的SDN控制器。Helios 是由日本电气公司开发的基于c语言的可扩展控制器,它主要应用于科研环境,并且提供了一个可编程的界面来进行实验。SNAC是Nicira Networks 基于NOX开发的一款企业级控制器,它提供了灵活的策略定义语言,通过策略管理器管理网络,有着友好的用户界面。
控制器测试
随着SDN产业的不断成熟,南向接口OpenFlow协议的日趋完善,SDN控制器作为未来网络架构的核心组件,其性能瓶颈已成为制约SDN发展的一个重要因素。如何形成统一的SDN控制器性能测试规范并施以有效的测试手段,早已成为了业界普遍关心的问题。天地互连-全球SDN测试认证中心发布的《SDN控制器性能测试白皮书》从SDN控制器性能测试平台的搭建、性能测试方法与测试结果分析和前瞻性的性能测试研究等方面,向业界展示了规范化的SDN控制器性能测试流程,为网络供应商选择高性能SDN控制器设备提供了依据。
目录
概述
开源控制器
其他控制器
控制器测试
参考资料