How to Install ONOS


Open Network Operating System (ONOS) is an open source network operating system for software-defined networks (SDN). Intended to run on white box switches, ONOS is targeted at mission critical networks, including service providers. It provides benefits including:

  • Virtually unlimited control plane scalability
  • High performance, suitable for large network operators
  • Mission-critical level of resiliency
  • Support for legacy devices
  • Next-generation device support and control for devices that support OpenFlow and P4

 

ONOS is intended to help service providers migrate their existing networks to white box switches, thus lowering CapEx and OpEx. It was developed in conjunction with service providers including AT&T and NTT Communications.

This document describes how to install ONOS.


INSTALLING ONOS :-

1) INSTALL GIT CORE

           $ sudo apt-get install git-core

2) ONOS REQUIREMENTS 

    System requirements

    • 2GB or more RAM (I personally recommend at least 4GB)
    • 2 or more processors
    • Ubuntu 14.04 LTS or 16.04 LTS (Checked with both distros)

3) INSTALL MAVEN AND KARAF

     Software requirements

        i) Maven

                 Install Maven 3.3.9 on your Applications directory

                 $ cd ~

                 $ mkdir Applications

                 $ wget http://archive.apache.org/dist/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz

                 $ tar -zxvf apache-maven-3.3.9-bin.tar.gz -C ../Applications/

 

   NOTE: Although ONOS has been migrated to Buck, maven was used in earlier releases.

        ii) Karaf

                Install Karaf 3.0.5 on your Applications directory

                $ cd ~

                $ cd Applications

                $ wget http://archive.apache.org/dist/karaf/3.0.5/apache-karaf-3.0.5.tar.gz

                $ tar -zxvf apache-karaf-3.0.5.tar.gz -C ../Applications/

 

4) INSTALL JAVA 8 and set JAVA_HOME

       i)  Java 8

                $ sudo apt-get install software-properties-common -y

                $ sudo add-apt-repository ppa:webupd8team/java -y

                $ sudo apt-get update

                $ sudo apt-get install oracle-java8-installer oracle-java8-set-default -y

   

       ii) SET YOUR JAVA_HOME 

                $ export JAVA_HOME=/usr/lib/jvm/java-8-oracle

    

       iii) VERIFY IT WITH FOLLOWING COMMAND 

                $ env | grep JAVA_HOME

                   JAVA_HOME=/usr/lib/jvm/java-8-oracle

5) DOWNLOAD THE LATEST ONOS

              $ git clone https://gerrit.onosproject.org/onos

              $ cd onos

              $ git checkout master

 

6) ENVIRONMENTAL VARIABLES

 The ONOS source comes with a sample bash_profile that can set these variables for you.  

      i) Edit ~/.bashrc 

                $ nano ~/.bashrc

       ii) Add the following line at the end

                .  ~/onos/tools/dev/bash_profile

       iii) Reload .bashrc or log out and log in again to apply the changes

                 . ~/.bashrc

        iv)  Once you run the above command, you will see in the output of the env command that several new variables, such as ONOS_ROOT, MAVEN, and KARAF_ROOT, have been set.

                  $ env | grep ONOS_ROOT

                       ONOS_ROOT=/Users/nirmalkaria/onos

                  $ env | grep MAVEN

                        MAVEN=/Users/nirmalkaria/Applications/apache-maven-3.3.9

                  $ env | grep KARAF_ROOT

                        KARAF_ROOT=/Users/nirmalkaria/Applications/apache-karaf-3.0.8

7) BUILD AND DEPLOY ONOS

         i) Edit  ~/Applications/apache-karaf-3.0.5/etc/org.apache.karaf.features.cfg file by appending the following line to featuresRepositories:

                      $ nano ~/Applications/apache-karaf-3.0.5/etc/org.apache.karaf.features.cfg

        ii) Locate the featuresRepositories and append this line (will need a comma before appending the text to separate from the previous value)

    mvn:org.onosproject/onos-features/1.10.0-SNAPSHOT/xml/features

8) BUILD ONOS WITH MAVEN

                      $  cd  ~/onos

                      $ mvn clean install or use the alias ‘mci’

                     

 9) Selecting IP address

          Export ONOS4_IP or ONOS_NIC environment variables with the IP address prefix to configure ONOS clustering component. This IP address is the ip address of the controller.

                       $ export ONOS_IP=10.1.9.255  

                       $ export ONOS_NIC=10.1.9.*                   

10) Selecting ONOS apps to activate

To configure ONOS with a set of applications that should be automatically activated on startup, use the ONOS_APPS environment variable as follows:

                      $ export ONOS_APPS=drivers,openflow,proxyarp,mobility,fwd

11) Starting ONOS

$ ok clean

Creating local cluster configs for IP 10.1.9.247...

Setting up hazelcast.xml for subnet 10.1.9.*...

Staging builtin apps...

Customizing apps to be auto-activated: drivers,openflow,proxyarp,mobility,fwd...

Welcome to Open Network Operating System (ONOS)!

     ____  _  ______  ____

    / __ \/ |/ / __ \/ __/

   / /_/ /    / /_/ /\ \

   \____/_/|_/\____/___/

 

Hit '<tab>' for a list of available commands

and '[cmd] --help' for help on a specific command.

Hit '<ctrl-d>' or type 'system:shutdown' or 'logout' to shutdown ONOS.

onos>

 

At this point, typing help onos at the prompt should still bring up a list of available commands. Pressing Ctrl-D or logout will exit the CLI.


METHOD 2 

BUILDING ONOS USING BUCK 

1) INSTALL JAVA 8 and set JAVA_HOME

    i)  Java 8

              $ sudo apt-get install software-properties-common -y

              $ sudo add-apt-repository ppa:webupd8team/java -y

              $ sudo apt-get update

              $ sudo apt-get install oracle-java8-installer oracle-java8-set-default -y

   ii) SET YOUR JAVA_HOME 

              $ export JAVA_HOME=/usr/lib/jvm/java-8-oracle

   iii) Verify it with the following command

              $ env | grep JAVA_HOME

                     JAVA_HOME=/usr/lib/jvm/java-8-oracle

2) Download latest ONOS

              $ git clone https://gerrit.onosproject.org/onos

              $ cd onos

              $ git checkout master

3) Development Environment Setup

The ONOS_ROOT environment variable is exported in the shell profile (.bash_aliases, .profile, etc.) 

             $ export ONOS_ROOT=~/onos

             $ source $ONOS_ROOT/tools/dev/bash_profile

4) Build with Buck

             $ sudo apt-get install zip unzip 

             $ cd $ONOS_ROOT

             $ tools/build/onos-buck build onos --show-output

 

    ii)  To execute ONOS unit tests

            $ tools/build/onos-buck test

 

 

 

    iii) To import the project into IntelliJ

             $ tools/build/onos-buck project 

     

 

5) Run ONOS

           $ cd $ONOS_ROOT

           $ tools/build/onos-buck run onos-local -- clean debug

           

     i) To attach to the ONOS CLI console, run:

         $ tools/test/bin/onos localhost

 

    ii) To open your default browser on the ONOS GUI page, simply type:

             $ tools/test/bin/onos-gui localhost or alternatively visit http://localhost:8181/onos/ui 

 

Copyright © 2024 Pica8 Inc. All Rights Reserved.