SDN控制器
应用程序
SDN控制器是软件定义网络(SDN)中的应用程序,负责流量控制以确保智能网络。SDN控制器是基于如OpenFlow等协议的,允许服务器告诉交换机向哪里发送数据包。
开源控制器
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 & 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[9]是莱斯大学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 是由NEC公司开发的基于C语言的可扩展控制器,它主要应用于科研环境,并且提供了一个可编程的界面来进行实验。SNAC是Nicira Networks 基于NOX开发的一款企业级控制器,它提供了灵活的策略定义语言,通过策略管理器管理网络,有着友好的用户界面。
控制器测试
随着SDN产业的不断成熟,南向接口OpenFlow协议的日趋完善,SDN控制器作为未来网络架构的核心组件,其性能瓶颈已成为制约SDN发展的一个重要因素。如何形成统一的SDN控制器性能测试规范并施以有效的测试手段,早已成为了业界普遍关心的问题。天地互连-全球SDN测试认证中心发布的《SDN控制器性能测试白皮书》从SDN控制器性能测试平台的搭建、性能测试方法与测试结果分析和前瞻性的性能测试研究等方面,向业界展示了规范化的SDN控制器性能测试流程,为网络供应商选择高性能SDN控制器设备提供了依据。
最新修订时间:2023-08-17 13:00
目录
概述
开源控制器
参考资料