The OpenDaylight SDN controller
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 , 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.
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 . 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  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:
With OpenDaylight running and a Mininet VM ready for action, you can try out a simple forwarding example from the project wiki . 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
<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.
If you are not part of the developer community of participating companies , 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.
- 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
A major setback for the Linux desktop.
Improved support for GPU in virtualization.
News site for the openSUSE community falls victim to a Wordpress exploit.
The source code is available online.
One out of three virtual machines on Microsoft Azure Cloud run Linux.
The form factor of the board makes it a drop-in replacement for Raspberry Pi.
Makes it easier for customers to move workloads into container-centric applications.
SUSE’s answer to container-centric operating systems.
Linux 4.9 is the biggest release in terms of number of commits.
The latest version of the official RHEL clone is here.