Open source controllers are becoming more prominent in the SDN space and offer accessible ways to test SDN infrastructure and applications, including network virtualization and network functions virtualization.
Yet since SDN is so new, analysts say many users are wary of open source software-based networking. In fact, many mainstream enterprise clients are leaning toward commercial SDN offerings that they perceive to be simpler to understand and manage.
"[SDN] also represents a radically different way of doing things -- dynamic, automated, abstracted and policy-based, versus manual, CLI-based," said Andrew Lerner, research director at Gartner. "The cumulation of these factors is essentially a double paradigm shift: open source networking and software-defined networking, which equates to limited mainstream interest and adoption in open source SDN controllers."
Yet companies with super-sized networks that handle huge amounts of data and high- performance applications need programmability and automation today. As a result, service providers, cloud providers, telcos, financial services firms and academic institutions are already embracing the technology. Their network architectures and business models will trickle down into the enterprise. So enterprise engineers are pressed to learn about open source SDN controllers now.
We've rounded up five open source SDN controllers to get to know.
1. OpenDaylight open-source SDN controller. OpenDaylight announced the release of its open-source SDN controller platform, Hydrogen, in February 2014. The base edition of Hydrogen includes a modular, multi-protocol SDN controller that's based on OSGi, as well as an OpenFlow plug-in, an OpenFlow protocol library, the Open vSwitch Database Management Protocol and YANG tools. With the introduction of an open source SDN controller, OpenDaylight states that it can provide centralized control for any SDN architecture regardless of vendor. The OpenDaylight controller Wiki page includes directions on how to install the OpenDaylight controller, as well as a programmer guide, FAQs and information regarding the Hydrogen and Helium release.
2. OpenContrail SDN controller. OpenContrail offers an SDN controller as part of its Apache 2.0-licensed project that's used to enable network virtualization. Although considered open, OpenContrail stemmed from Juniper Networks. The controller works along with virtual routers that live on hypervisor hosts, an analytics engine and published northbound APIs. OpenContrail can also act as a network platform for cloud infrastructure. According to the Project, key aspects of its system are network virtualization, network programmability and automation, and big data for infrastructure. The OpenContrail source code is hosted across multiple software repositories, with the core functionality of the system found in the contrail-controller repository. Additional source code instructions are available as well.
3. Floodlight open SDN controller. The Floodlight open SDN controller is a Java-based OpenFlow controller that is also enterprise-class and Apache-licensed. It is part of a collection of open source projects done by Big Switch. The controller supports a range of virtual and physical OpenFlow switches and it can handle mixed OpenFlow and non-OpenFlow networks. The Controller includes support for the OpenStack cloud orchestration platform as well. Floodlight has already been used in a number of applications, including the OpenStack Quantum Plug-in and the Floodlight Virtual Switch. The controller is available for download on the project website.
4. Ryu OpenFlow controller. Ryu is an SDN framework that offers software components used in SDN applications. It allows developers to create new network management and control applications. Ryu supports various protocols for managing network devices, including OpenFlow, Netconf and OF-config. Documentation is available to learn more about the Ryu network operating system and it is available for download on the project site.
5. FlowVisor OpenFlow controller. FlowVisor is a special-purpose OpenFlow controller that acts as a go-between for OpenFlow switches and multiple OpenFlow controllers. The controller enables network virtualization by dividing a physical network into multiple logical networks. The controller ensures that each other controller touches only the switches and resources assigned to it. It also partitions bandwidth and flow table resources on each switch and assigns partitions to individual controllers. The FlowVisor controller is available for download with directions on its GitHub site.