有哪些替代SDN控制器到POX可用?

时间:2016-01-05 22:58:41

标签: mininet openflow sdn

我想获得有关可用的最佳开源SDN控制器的建议。我想实现并测试我在研究中的一些想法,所以我需要使用Mininet之类的模拟。事实上,我熟悉mininet并且能够处理它。但是,Mininet使用的POX控制器有点繁琐且用户不太友好,因此在管理网络拓扑和修改流程时,由于您需要从头开始硬编码所有内容,因此它成为一项艰巨的任务(我是初学者)在Python中也是如此)。是否有一个用户友好的SDN控制器,我可以使用而不是POX?我已经尝试了FloodlightOpendaylight但是还没有准备就绪并且涉及很多错误。

谢谢。

4 个答案:

答案 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的任何控制器。

例如,

  1. 使用Floodlight配置Mininet - http://kkpradeeban.blogspot.com/2015/09/configuring-mininet-with-floodlight.html

  2. 使用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

开始

功能

  • VLAN
  • IPv4和IPv6支持
  • 静态和BGP路由
  • 基于端口和VLAN的灵活访问控制列表
  • 端口镜像
  • Openflow交换机的供应商中性堆叠
  • 基于策略的转发,以将处理卸载到外部系统(例如,通过hostapd进行的802.1x)
  • 用于NFV的数据平面-卸载功能,例如DHCP,NTP,防火墙和IDS
  • 基于Grafana的监控仪表板
  • 用于监视和检测FAUCET Influxdb对时间序列的支持的Prometheus集成
  • OpenFlow端口统计信息综合测试套件