What alternatives SDN controllers to POX are available?
Asked Answered
R

4

5

I would like to get your advice about the best open-source SDN controller available. I want to implement and test some ideas I have in my research so I need to use a simulation such as Mininet. In fact, I am familiar with mininet and able to deal with it. However, Mininet uses POX controller which a bit tedious and not that much user friendly so when it comes to manage the network topology and modify the flows, it becomes a hard task since you need to hard code everything from the scratch ( I am a beginner in Python as well). Is there a user-friendly SDN controller that I can use instead POX? I've tried Floodlight and Opendaylight but there are not really ready and involves many bugs.

Thank you.

Rebuttal answered 5/1, 2016 at 22:58 Comment(0)
T
11

Nox

It all began with NOX. While some might argue, NOX is the very first OpenFlow controller that attracted a whole lot of researchers around itself and achieved to have a wide acceptance. A majority of the primary Software-Defined Networking (SDN) and OpenFlow papers and applications are implemented on top of NOX. Even Google used NOX to build (prototype?) its own distributed OpenFlow controller, called ONIX. That being said, all that fuss was left in 2010. From then on the NOX mailing-lists are almost abandoned and no major changes that I know of is introduced to the code base.

Pox

POX calls itself as the younger sibling of NOX. (They are both managed/maintained by the same team/organization.) My personal belief is that POX is more or less motivated by the purpose of creating a developer-friendly OpenFlow controller successor to the NOX. Almost all OpenFlow newcomers are directed to either POX or Floodlight. Hence, it is no surprise that it has a pretty active mailing list. POX provides a limited web API (via JSON-RPC) and a moderate sized collection of manuals on its wiki. It is written in Python and provides a decent Python API for the Pythonistas out there. Due to Python being an interpreted language, POX really cuts down the time spent in develop-and-deploy cycle, particularly compared to C++ based NOX. Further, in addition to supporting the NOX GUI, POX also provides a web-based GUI.

Beacon

To sum up, Beacon provides a compact and expressive code base and works flawlessly. That being said, Eclipse and OSGi dependency really kills me and supporting only star topologies (that is, topologies without loops) is very constraining. If you are about to give Beacon a try, I would recommend you to evaluate Floodlight instead.

Floodlight

Floodlight has unquestionably the most active and responsive community among the F/OSS OpenFlow softwares. A majority of the Floodlight developers working in BigSwitch Networks directly participate in the mailing-lists. You can find yourself discussing an issue with the actual developer(s) of a particular module. I have never witnessed neither an unanswered question, nor an unresolved problem. It was truly a supportive and active community. Floodlight exposes almost all of its functionality through a REST API and there exists many handy utilities for common tasks such as static routes and end-to-end route (circuit) pushes. Floodlight has a web-based UI (contributed by Wes Felter) and a Java-based GUI, called Avior, contributed by Jason Parraga. One of its kind, Floodlight can also be run as network backend for OpenStack using a Quantum plug-in. Finally, it is the most documented controller project out there in the ecosystem.

Ryu

Ryu is a component-based software defined networking framework. Ryu provides software components with well defined API that make it easy for developers to create new network management and control applications. Ryu supports various protocols for managing network devices, such as OpenFlow, Netconf, OF-config, etc. About OpenFlow, Ryu supports fully 1.0, 1.2, 1.3, 1.4, 1.5 and Nicira Extensions. All of the code is freely available under the Apache 2.0 license. **

ONOS

The ONOS (Open Network Operating System) project is an open source community hosted by The Linux Foundation. The goal of the project is to create a software-defined networking (SDN) operating system for communications service providers that is designed for scalability, high performance and high availability.

Opendaylight

The OpenDaylight Project is a collaborative open source project hosted by The Linux Foundation. The goal of the project is to accelerate the adoption of software-defined networking (SDN) and create a solid foundation for Network Functions Virtualization (NFV). The software is written in Java.

Trichinosis answered 17/3, 2016 at 22:27 Comment(0)
D
3

First, both Floodlight and OpenDaylight are production-ready. Though this post was from a few months ago, OpenDaylight was running in production in many organizations by then.

Assuming for some other reason you prefer controllers other than OpenDaylight and Floodlight, you may give a try to ONOS or Kandoo/beehive distributed controller https://github.com/kandoo/beehive-netctrl

Please note that your claim Mininet uses POX is misleading. You may use any controller with Mininet.

For example,

  1. Configuring Mininet with Floodlight - http://kkpradeeban.blogspot.com/2015/09/configuring-mininet-with-floodlight.html

  2. Configuring Mininet with OpenDaylight - http://kkpradeeban.blogspot.com/2014/10/configuring-opendaylight-with-mininet.html

Dartboard answered 30/9, 2016 at 20:40 Comment(0)
N
2

I think you can try to use ryu. It's based on python and easy to use.

There's a simple way to install ryu controller, try sdnds-tw/ryuInstallHelper

Nitramine answered 29/1, 2016 at 16:48 Comment(0)
S
0

In addition to what has been listed.

FAUCET is a compact open-source OpenFlow controller based on RYU. Easy to use as everything is managed by a single file faucet.yaml file. Very suitable for experimenting with SDN it is also used in production.

You can start with this tutorial

Features

  • VLANs
  • IPv4 and IPv6 support
  • Static and BGP routing
  • Flexible port and VLAN based Access Control Lists
  • Port mirroring
  • Vendor neutral stacking of Openflow switches
  • Policy based forwarding to offload processing to external systems (Eg 802.1x via hostapd)
  • Dataplane for NFV - Offload functions such as DHCP, NTP, Firewall, and IDS
  • Grafana based dashboards for monitoring
  • Prometheus integration for monitoring and instrumentation of FAUCET Influxdb support for time-series
  • OpenFlow port statistics Comprehensive test suite
Speciation answered 14/11, 2019 at 8:16 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.