We begin our Open Source Software Defined Networking (SDN) Controller comparison with the Open Network Operating System (ONOS). ONOS is designed to be distributed, stable and scalable with a focus on Service Provider networks.
The Open Network Operation System is the only SDN controller platform that supports the transition from legacy “brown field” networks to SDN “green field” networks. This enables exciting new capabilities, and disruptive deployment and operational cost points for network operators.
ONOS is designed as a three-tier architecture as follows:
- Tier 1 comprises of modules related to protocols which communicate with the network devices (Southbound in the figure)
- Tier 2 composes of the core of ONOS and provides network state without relying on any particular protocol
- Tier 3 comprises of applications, ONOS apps, which use network state information presented by Tier 2
Modularity and Extensibility
ONOS has built-in mechanisms for connecting/disconnecting components while the controller is running. This allows a very flexible approach to adding functionality to the controller.
ONOS is designed specifically to horizontally scale for performance and geo-redundancy across small regions.
- The cluster configuration is simple, with new controllers being able to join and leave dynamically, giving flexibility over time.
- The Atomix distributed datastore, which prioritises data consistency, should reduce the outages caused by cluster partitioning as all hosts are guaranteed to have the correct data.
- As a cluster grows however, communication and coordination activities rapidly increase, limiting performance gains per additional cluster member.
- ONOS includes native BGP routing capabilities to coordinate traffic flows between the SDN islands.
- There are several documented instances of ONOS (e.g. ICONA, SDN-IP) being used successfully in a geo-redundant architecture for controlling large scale SD-WANs.
- Southbound: It supports an extensive list of Southbound interfaces including OpenFlow, P4, NETCONF, TL1, SNMP, BGP, RESTCONF and PCEP.
- Northbound: ONOS offers the largest set of northbound interfaces with gRPC and RESTful APIs.
- GUI: The ONOS GUI is a single-page web-application, providing a visual interface to the Open Network Operation System controller (or cluster of controllers).
- Intent-based framework: ONOS has the implementation of the inbuilt Intent based framework. By abstracting a network service into a set of criteria a flow should meet, the generation of the underlying OpenFlow (or P4) configuration is handled internally, with the client system specifying only what the functional outcome should be.
Telemetry feeds are available through pluggable modules that come with the software, with Influx DB and Grafana plug-ins included in the latest release.
Resilience and Fault Tolerance
ONOS has a very simple administration mechanism for clusters with native commands for adding and removing members.
The Open Network Operation System provides fault tolerance in the system with an odd number of SDN controllers. In the event of Master node failure, a new leader would be selected to take the control of the network.
ONOS is written in Java.
The Open Network Operation System is supported under the Linux Foundation Networking umbrella and boasts a large developer and user community.