The OpenDaylight SDN controller
Bright Future
Several well-known companies are collaborating on the foundations of future SDN products under the umbrella of the OpenDaylight open source project.
The OpenDaylight project [1], founded in April 2013, is a "community-led, open, industry-supported framework for accelerating adoption, fostering new innovation, reducing risk, and creating a more transparent approach to Software-Defined Networking" (SDN). OpenDaylight operates under the auspices of the Linux Foundation and has the support of major players in the networking industry: Brocade, Cisco, Juniper, and Citrix are in the front row, along with Red Hat, IBM, and Microsoft. The project aims to create a foundation on which the members will then build their SDN products. The code is mainly written in Java and Python and is licensed under the Eclipse Public License (EPL) 1.0.
The first tangible result of the collaboration is the Hydrogen release from February 2014. Hydrogen is actually a complete SDN software distribution, because OpenDaylight consists of numerous subprojects that develop individual components. Synchronized semi-annual releases are planned to ensure consistency.
At the core of OpenDaylight is the SDN controller. Its components share a Java Runtime and communicate with each other via function calls. Below this control layer is the southbound interface (as shown in Figure 1), where everything that is more tangible than the control plane resides.
Plugins for several protocols that are used to control the data plane with their network devices dock onto the Service Abstraction Layer (SAL), the controller's and the plugin manager's lowest abstraction layer. This multiprotocol support is an important goal of the project and explains why you will also find other plugins for OpenFlow (versions 1.0 and 1.3), the Netconf standard, and the OVSDB management protocol for Open vSwitch here – after all, the network equipment can also be virtualized.
In the opposite direction lies the northbound interface, which forms the connection to more abstract things: network applications and management and orchestration software. It includes the OpenStack component Neutron, which establishes network connections for the guests of cloud computing frameworks. The controller uses a REST API to communicate with this type of software.
Practical
If you are interested in getting started with OpenDaylight, your best approach is to deploy the software in a simulated network, and the free Mininet software is perfect for this purpose (see the Mininet story in this issue). Conveniently, the project offers Linux virtual appliances with Mininet preinstalled [2]. They can operate with different virtualization technologies; the developers recommend VirtualBox. Recent versions have occasionally shown problems with the OVF files provided, so it is advisable to create an Ubuntu VM manually with 1GB of RAM and assign the downloaded VMDK image to it.
While the virtual machine is booting, the administrator can install the OpenDaylight controller. The prerequisite for doing so is Java 7. You can download RPM packages and ZIP files [3] from the website; the basic edition is fine. Linux virtual appliances and docker containers are also available. In a distribution-neutral installation from the ZIP file, you need to run the startup script from the directory created by unpacking with:
./run.sh
With OpenDaylight running and a Mininet VM ready for action, you can try out a simple forwarding example from the project wiki [4]. On the virtual machine console, the user mininet logs in with mininet as the password. Then, run the following command to create a simple network with a tree-like arrangement of switches at three levels:
sudo mn --controller=remote,ip=<IPaddress> --topo tree,3
Replace the <IPaddress>
wildcard with the externally accessible address of the host on which OpenDaylight is running. The URL for the SDN controller's web interface is http://<IPaddress>:8080; the username and password are both admin.
The graphical representation in the browser (Figure 2) shows the seven emulated switches that look a little messed up. You can simply drag and drop to arrange them more clearly. Under the network diagram, you'll find the blue button Add Gateway IP Address, which you can then populate with an IP address and subnet mask, such as 10.0.0.254/8.
At the Mininet VM console, you can now ping one virtual host from another, for example, using h1 ping h7
. Then, switch back to the web interface and go to the Troubleshoot tab. Under Existing Nodes, you can select a node and then view Flows or Ports for detailed information about its connections.
These examples by no means exhaust OpenDaylight's capabilities. The software can be clustered, and it also supports remote access via the Java Management Extensions (JMX). The Service Provider Edition of the software also adds plugins for the BGP, PCEP, and SNMP4SDN protocols. Also available is a Virtualization Edition with a Virtual Tenant Manager (VTN), which ties in with the Neutron network component in OpenStack.
Future
If you are not part of the developer community of participating companies [5], you will probably find it difficult to come to grips with OpenDaylight. The documentation on the wiki is very fragmentary and often out of date. It remains to be seen whether this situation will improve or whether customers will be forced to rely on polished products by the manufacturers involved.
Infos
- OpenDaylight: http://www.opendaylight.org
- Mininet VMs: http://mininet.org/download/
- OpenDaylight downloads: http://www.opendaylight.org/software/downloads
- Installation and getting started: https://wiki.opendaylight.org/view/OpenDaylight_Controller:Installation
- OpenDaylight Summit: http://events.linuxfoundation.org/events/opendaylight-summit
Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.
News
-
Gnome OS Transitioning Toward a General-Purpose Distro
If you're looking for the perfectly vanilla take on the Gnome desktop, Gnome OS might be for you.
-
Fedora 41 Released with New Features
If you're a Fedora fan or just looking for a Linux distribution to help you migrate from Windows, Fedora 41 might be just the ticket.
-
AlmaLinux OS Kitten 10 Gives Power Users a Sneak Preview
If you're looking to kick the tires of AlmaLinux's upstream version, the developers have a purrfect solution.
-
Gnome 47.1 Released with a Few Fixes
The latest release of the Gnome desktop is all about fixing a few nagging issues and not about bringing new features into the mix.
-
System76 Unveils an Ampere-Powered Thelio Desktop
If you're looking for a new desktop system for developing autonomous driving and software-defined vehicle solutions. System76 has you covered.
-
VirtualBox 7.1.4 Includes Initial Support for Linux kernel 6.12
The latest version of VirtualBox has arrived and it not only adds initial support for kernel 6.12 but another feature that will make using the virtual machine tool much easier.
-
New Slimbook EVO with Raw AMD Ryzen Power
If you're looking for serious power in a 14" ultrabook that is powered by Linux, Slimbook has just the thing for you.
-
The Gnome Foundation Struggling to Stay Afloat
The foundation behind the Gnome desktop environment is having to go through some serious belt-tightening due to continued financial problems.
-
Thousands of Linux Servers Infected with Stealth Malware Since 2021
Perfctl is capable of remaining undetected, which makes it dangerous and hard to mitigate.
-
Halcyon Creates Anti-Ransomware Protection for Linux
As more Linux systems are targeted by ransomware, Halcyon is stepping up its protection.