An OpenFlow Controller is a type of SDN Controller that uses the OpenFlow Protocol. An SDN Controller is the strategic point in software-defined network (SDN). An OpenFlow Controller uses the OpenFlow protocol to connect and configure the network devices (routers, switches, etc.) to determine the best path for application traffic. There are also other SDN protocols that a Controller can use such as OpFlex, Yang, and NetConf, to name a few.
SDN Controllers can simplify network management, handling all communications between applications and devices to effectively manage and modify network flows to meet changing needs. When the network control plane is implemented in software, rather than firmware, administrators can manage network traffic more dynamically and at a more granular level. An SDN Controller relays information to the switches/routers (via southbound APIs) and the applications and business logic (via northbound APIs).
In particular, OpenFlow Controllers create a central control point to oversee a variety of OpenFlow-enabled network components. The OpenFlow protocol is designed to increase flexibility by eliminating proprietary protocols from hardware vendors.
Reprinted with permission from ONF
For detailed SDN Controller Vendor and Open Source SDN Controller comparisons, checkout the 2017 Future of Network Virtualization and SDN Controllers Report also available as PDF Download
SDN and OpenFlow Use Cases
When choosing an SDN Controller, IT organizations should evaluate the OpenFlow functionality supported by the Controller, as well as the vendor roadmap. IT organizations should understand existing functionality and ensure newer versions of OpenFlow and optional features are supported (for example, IPv6 support is not part of the OpenFlow v1.0 Standard, however, it is part of the v1.3 Standard).
A sampling of OpenFlow Controllers include:
- NOX: NOX is a Network Operating System that provides control and visibility into a network of OpenFlow switches. It supports concurrent applications written in Python and C++, and it includes a number of sample controller applications.
- Beacon: Beacon is an extensible Java-based OpenFlow Controller. It was built on an OSGI framework, allowing OpenFlow applications to be built on the platform to be started/stopped/refreshed/installed at run-time, without disconnecting switches.
- Trema: Originally named Helios, Trema is an extensible OpenFlow Controller built by NEC in the programming lanuages of Ruby and C, targeting researchers. It also provides a programmatic shell for performing integrated experiments.
- NEC ProgrammableFlow: Trema is the foundation for the Programmable Flow from NEC. ProgrammableFlow automates and simplifies network administration for better business agility, and provides a network-wide programmable interface to unify deployment and management of network services with the rest of IT infrastructure. Programmable Flow was the first to be certified by the Open Networking Foundation.
- Lumina SDN Controller: In December 2017, Lumina released the Lumina SDN Controller 7.1.0, which supports OpenDaylight Nitrogen (the seventh OpenDaylight platform). It also has support for OpenDayLight’s Karaf 4, which allows users to choose the controller’s protocols and services.
- BigSwitch: Its Big Cloud Fabric controller creates a virtual private cloud based on SDN controller abstractions and open networking hardware switches.
OpenFlow is currently being driven by the Open Networking Foundation (ONF).