T2_2025, Deakin University, VIC
Activity: Task 5.1P, Pass Task
In this task we will Install and connect Open Network Operating System (ONOS) Controller
with mininet.
Background
In Software-defined networking (SDN), an SDN controller is the application that acts as a
strategic control point in a software-defined network. Essentially, it is the “brains” of the
network.
SDN is the separation of a network’s control functions from its forwarding functions. SDN
architecture relies on controllers to allow network administrators to manage the network. An
SDN controller manages flow control to the switches/routers “below” (via southbound APIs)
and the applications and business logic “above” (via northbound APIs) to deploy intelligent
networks. They consolidate and mediate between different controller domains using common
application interfaces.
Two of the most well-known protocols used by SDN controllers to communicate with the
switches/routers are OpenFlow and open virtual switch database (OVSDB). Other controller
protocols are being currently developed, many of them open-standard and collaborative. For
example, the Internet Engineering Task Force (IETF) working group — the Interface to the
Routing System (i2rs) — developed an SDN standard that enables a controller to leverage
proven, traditional protocols, such as OSPF, MPLS, BGP, and IS-IS, across a variety of SDN
platforms.
The type of protocols supported can influence the overall architecture of the network — for
example, while OpenFlow attempts to completely centralize packet-forwarding decisions, i2rs
splits the decision making by leveraging traditional routing protocols to execute distributed
routing and allowing applications to modify routing decisions.
SDN Controller Platforms
An SDN controller platform typically contains a collection of “pluggable” modules that can
perform different network tasks. Some of the basic tasks including inventorying what devices
are within the network and the capabilities of each, gathering network statistics, and other
monitoring functions, etc. Extensions can be inserted that enhance the functionality and
, support more advanced capabilities, such as running algorithms to perform analytics and
orchestrating new rules throughout the network.
A controller platform can be from a different company than the application is from, allowing
for interoperability and flexibility. Cisco, for example, offers a controller platform built by
OpenDaylight. This open-source controller is interoperable with several different proprietary
applications.
Source: https://ipcisco.com/lesson/sdn-architecture-components/
A Little History
The first SDN controller was NOX, which was initially developed by Nicira Networks, alongside
OpenFlow. In 2008, Nicira Networks (acquired by VMware) donated NOX to the SDN
community, making it open source. It has since become the basis for many SDN controller
solutions. Nicira then went on to co-develop ONIX with NTT and Google; ONIX is the base for
the Nicira/VMware controller. While ONIX was originally supposed to be opened up, the
parties later decided not to make it open source.
There are, however, a variety of open-source controllers currently available. The earliest ones
include POX and Beacon. Started in early 2010, Beacon is a Java-based OpenFlow controller
licensed under a combination of the GPL v2 license and the Stanford University FOSS License
Exception v1.0. Other controllers of note include Trema (Ruby-based from NEC), as well as Ryu
(supported by NTT).
Subsequently, vendors such as Cisco, HP, IBM, VMWare, Lumina Networks, and Juniper have
jumped into the controller market with their own offerings. OpenDaylight is another major
player in the SDN controller game, as it’s the largest open-source SDN controller and SDN
controller platform currently offered on the market [1, 2,3].