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
-
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.
-
Valve and Arch Linux Announce Collaboration
Valve and Arch have come together for two projects that will have a serious impact on the Linux distribution.
-
Hacker Successfully Runs Linux on a CPU from the Early ‘70s
From the office of "Look what I can do," Dmitry Grinberg was able to get Linux running on a processor that was created in 1971.
-
OSI and LPI Form Strategic Alliance
With a goal of strengthening Linux and open source communities, this new alliance aims to nurture the growth of more highly skilled professionals.
-
Fedora 41 Beta Available with Some Interesting Additions
If you're a Fedora fan, you'll be excited to hear the beta version of the latest release is now available for testing and includes plenty of updates.
-
AlmaLinux Unveils New Hardware Certification Process
The AlmaLinux Hardware Certification Program run by the Certification Special Interest Group (SIG) aims to ensure seamless compatibility between AlmaLinux and a wide range of hardware configurations.
-
Wind River Introduces eLxr Pro Linux Solution
eLxr Pro offers an end-to-end Linux solution backed by expert commercial support.
-
Juno Tab 3 Launches with Ubuntu 24.04
Anyone looking for a full-blown Linux tablet need look no further. Juno has released the Tab 3.