我想获得有关可用的最佳开源SDN控制器的建议。我想实现并测试我在研究中的一些想法,所以我需要使用Mininet
之类的模拟。事实上,我熟悉mininet并且能够处理它。但是,Mininet使用的POX控制器有点繁琐且用户不太友好,因此在管理网络拓扑和修改流程时,由于您需要从头开始硬编码所有内容,因此它成为一项艰巨的任务(我是初学者)在Python中也是如此)。是否有一个用户友好的SDN控制器,我可以使用而不是POX?我已经尝试了Floodlight
和Opendaylight
但是还没有准备就绪并且涉及很多错误。
谢谢。
答案 0 :(得分:11)
<强> Nox 强>
一切都始于NOX。虽然有些人可能会争辩,但NOX是第一个吸引了大量研究人员的OpenFlow控制器,并获得了广泛的认可。大多数主要的软件定义网络(SDN)和OpenFlow论文和应用程序都是在NOX之上实现的。甚至谷歌也使用NOX构建(原型?)自己的分布式OpenFlow控制器,称为ONIX。话虽如此,所有这些大惊小怪都留在了2010年。从那时起,NOX邮件列表几乎被放弃了,我所知道的代码库没有引入任何重大变化。
<强> Pox 强>
POX称自己为NOX的弟弟。 (它们由同一团队/组织管理/维护。)我个人认为,POX或多或少的动机是为了创建一个开发人员友好的OpenFlow控制器继承NOX。几乎所有OpenFlow新手都被定向到POX或Floodlight。因此,它有一个非常活跃的邮件列表也就不足为奇了。 POX在其wiki上提供有限的Web API(通过JSON-RPC)和中等大小的手册集合。它是用Python编写的,为Pythonistas提供了一个不错的Python API。由于Python是一种解释型语言,POX确实减少了开发和部署周期所花费的时间,特别是与基于C ++的NOX相比。此外,除了支持NOX GUI之外,POX还提供基于Web的GUI。
<强> Beacon 强>
总而言之,Beacon提供了一个紧凑而富有表现力的代码库,并且运行完美。话虽这么说,Eclipse和OSGi的依赖性真的让我痛苦,只支持星形拓扑(即没有循环的拓扑)是非常有限的。如果您准备尝试Beacon,我建议您改为评估Floodlight。
<强> Floodlight 强>
泛光灯毫无疑问是F / OSS OpenFlow软件中最活跃,最敏感的社区。大多数在BigSwitch Networks工作的Floodlight开发人员直接参与邮件列表。您可以发现自己正在与特定模块的实际开发人员讨论问题。我既没有目睹过任何未解决的问题,也没有目睹过未解决的问题。它确实是一个支持性和活跃的社区。 Floodlight通过REST API公开了几乎所有功能,并且存在许多用于常见任务的便利实用程序,例如静态路由和端到端路由(电路)推送。 Floodlight有一个基于Web的UI(由Wes Felter提供)和一个名为Avior的基于Java的GUI,由Jason Parraga提供。其中一种,Floodlight也可以作为OpenStack的网络后端使用Quantum插件运行。最后,它是生态系统中记录最多的控制器项目。
<强> Ryu 强>
Ryu是一个基于组件的软件定义网络框架。 Ryu为软件组件提供定义良好的API,使开发人员可以轻松创建新的网络管理和控制应用程序。 Ryu支持各种用于管理网络设备的协议,例如OpenFlow,Netconf,OF-config等。关于OpenFlow,Ryu支持完全支持1.0,1.2,1.3,1.4,1.5和Nicira Extensions。所有代码都可以在Apache 2.0许可下免费获得。 **
<强> ONOS 强>
ONOS(开放网络操作系统)项目是由Linux基金会托管的开源社区。该项目的目标是为通信服务提供商创建一个软件定义网络(SDN)操作系统,旨在实现可扩展性,高性能和高可用性。
<强> Opendaylight 强>
OpenDaylight项目是由Linux基金会托管的协作开源项目。该项目的目标是加速软件定义网络(SDN)的采用,并为网络功能虚拟化(NFV)奠定坚实的基础。该软件是用Java编写的。
答案 1 :(得分:3)
首先,Floodlight和OpenDaylight都已投入生产。虽然这篇文章是几个月前发布的,但到那时OpenDaylight正在许多组织中投入生产。
假设由于某些其他原因您更喜欢OpenDaylight和Floodlight以外的控制器,您可以尝试使用ONOS或Kandoo / beehive分布式控制器https://github.com/kandoo/beehive-netctrl
请注意,Mininet使用POX的声明具有误导性。您可以使用Mininet的任何控制器。
例如,
使用Floodlight配置Mininet - http://kkpradeeban.blogspot.com/2015/09/configuring-mininet-with-floodlight.html
使用OpenDaylight配置Mininet - http://kkpradeeban.blogspot.com/2014/10/configuring-opendaylight-with-mininet.html
答案 2 :(得分:2)
我认为您可以尝试使用ryu。它基于python,易于使用。
有一种安装ryu控制器的简单方法,请尝试sdnds-tw/ryuInstallHelper
答案 3 :(得分:0)
除了已列出的内容。
FAUCET 是基于RYU的紧凑型开源OpenFlow控制器。易于使用,因为所有内容都由单个文件 faucet.yaml 文件管理。非常适合试用SDN,也用于生产中。
您可以从此tutorial
开始功能