RUNOS Installation Guide

Minimal System Requirements

  • RAM: 2Gb
  • HDD: 8Gb
  • Operating System: Ubuntu 18.04 and higher
  • Browser: Google Chrome

RUNOS Installation from Source

Install Dependencies

  1. Install curl and Nix package manager:

    sudo apt-get install curl
    curl https://nixos.org/nix/install | sh
    
  2. Install Redis in-memory data store:

    sudo apt install redis-server
    
  3. Install nginx server:

    sudo apt install nginx
    

Build RUNOS from Source

  1. Getting sources:

    git clone https://github.com/ARCCN/runos.git
    
  2. Run nix-shell inside runos directory to build dependencies:

    cd runos
    nix-shell
    
  3. Create build directory, run cmake and make:

    mkdir build
    cd build
    cmake ..
    make
    cd ..
    

Install Application from Source

  1. Go to the apps folder:

    cd /runos/src/apps
    
  2. Getting application sources:

    git clone http://<application repository path>/app.git
    
  3. If it is necessary, edit application’s configuration file (settings.json) inside application directory.

  4. Run nix-shell inside runos directory:

    cd ../..
    nix-shell
    
  5. Rebuild RUNOS with application inside build directory:

    cd build
    cmake ..
    make
    cd ..
    

Start RUNOS

  • Start RUNOS with default RUNOS settings file (runos-settings.json):

    ./build/runos
    
  • Start RUNOS with your settings file (your_runos_settings.json):

    ./build/runos -c /path_to_file/your_runos_settings.json
    

RUNOS Web UI Configuring

  1. Configure nginx server (edit nginx.conf) using vim editor:

    sudo vim /etc/nginx/nginx.conf
    
  2. Add the following text about server into http section of nginx.conf file (you need add your absolute path to the runos build directory):

    http {
            server {
                    listen 8080;
                    root <...absolute/path/to/runos/build/directory...>/web;
                    location ~*\.(html|css|js)$ {}
                    location /images {}
                    location / {
                            proxy_pass http://localhost:8000;
                    }
            }
    }
    
  3. Restart nginx server:

    sudo service nginx restart
    
  4. Start RUNOS Web UI in your browser:

    http://$CONTROLLER_IP:8080/topology.html
    

Installation with Virtual Machine Image

  1. Download RUNOS Virual Machine.
  2. Download and install last version of Virtual Box.
  3. Start Virtual Box and then export RUNOS-2.0-VM: “File -> Export Configuration”.
  4. Add and configure NAT Network of Virtual Box: File - > Preferences -> Network -> Create NAT Network
_images/nat.png
  1. Add and configure Virtual Host Adapter of Virtual Box: File -> Host Network Manager. And then configure and start DHCP server.
_images/virtual-adapter.png
  1. Start RUNOS virtual machine.

RUNOS is located in the folder: /home/runos/runos.


Installation with Docker

You can run command:

docker pull runos/runos-2.0

Test RUNOS Using Mininet

  1. Install Mininet network emulator:

    git clone git://github.com/mininet/mininet
    cd mininet
    sudo ./util/install.sh -nfv
    cd ..
    
  2. Start RUNOS controller:

    cd runos
    nix-shell
    ./build/runos
    
  3. Start a simple network topology in Mininet (4 switches and 4 hosts):

    sudo mn --topo linear,4 --switch ovsk,protocols=OpenFlow13 --controller remote,ip=127.0.0.1,port=6653
    
  4. Start RUNOS Web UI, open the following link in your browser: