# Instalação do ONOS & Emulador Mininet ### Versão do ONOS: Velociraptor 2.5.0 (LTS) ### Versão do emulador Mininet: 2.2.2 :::info Esta é uma breve demonstração de testes que pode ser utilizado em produção em um hardware físico, utilizando as últimas versões do ONOS e do emulador Mininet. IP do Controllador ONOS: **192.168.1.160** ::: :::warning Pré-requisitos: :grey_exclamation: Xubuntu ou Ubuntu (18.04LTS) :grey_exclamation: Memória RAM >= 4GB ::: ### OS: Linux Xubuntu & Ubuntu (18.04LTS) ### Hardware utilizado: :::warning Processor: Intel (R) Celeron (R) CPU N3050 @ 1.60GHz Architecture: amd64 - Memory: 4GB - HD SSD: 120GB ::: ### Objetivo: Preparar um ambiente de testes e produção utilizando o controlador SDN ONOS em um ambiente de hardware físico. ![](https://i.imgur.com/pXLu1TZ.jpg) <br> ![](https://i.imgur.com/P6Ill5Z.jpg) <br> ![](https://i.imgur.com/bApMU0Q.png) <br> O **ONOS (Open Network Operating System)** é um projeto open source, especifico para redes definidas por software, o ONOS faz parte da Linux Foundation e ONF (Open Networking Foundation). O ONOS foi projetado para atender às necessidades das operadoras de telecom que desejam construir soluções de nível avançado para grandes redes, fazendo grande economia em hardware proprietário, podendo utilizar whitebox ou outros tipos de hardware, oferecendo a flexibilidade para criar e implantar novos serviços de rede totalmente dinâmicos e com interfaces programavéis e simplificadas. O ONOS suporta configurações e gestão em tempo real de uma pequena ou grnade rede, eliminando a necessidade de executar protocolos de controle de roteamento e comutação dentro da malha da rede. Ao mover a inteligência para o controlador ONOS, a inovação é ativada e os usuários, profissionais, estudantes, pesquisadores e afins, podem criar facilmente novos aplicativos de rede sem a necessidade de alterar os sistemas de plano de dados. <br> ### Alguns recursos do controllador ONOS: **Plataforma e Conjunto de aplicativos:** que atuam como um controlador SDN extensível, modular e distribuído. **Gerenciamento simplificado:** em aspectos de configuração e implantação de novo software, hardware e serviços. **Uma arquitetura de escalabilidade:** fornecendo a resiliência e escalabilidade necessárias para atender aos rigores dos ambientes de portadores de produção, entre outros inúmeros recursos voltados para SDN. <br> ### O que é o Mininet? Trata-se de um emulador de rede, mais precisamente falando, um sistema de orquestração de emulação de rede. O software possui uma grande coleção de hosts finais, switches, roteadores e links em um único kernel Linux. O emulador utiliza uma "leve" virtualização para fazer um único sistema parecer uma rede completa, sendo executando no mesmo kernel. Os programas que você executa podem enviar pacotes através do que parece ser uma interface Ethernet real, com uma determinada velocidade de link e atraso. <br> ### Observação Caso já tenha o JAVA, 8 ou 9 (SDK), instalado, siga os procedimentos a seguir, reinicie a máquina e continue o tutorial: ``sudo rm -rf /usr/lib/jvm/*`` ``sudo updatedb`` ``sudo apt-get remove --purge oracle-java8-installer`` ``sudo apt-get remove --purge oracle-java9-installer`` ``sudo apt-get remove --purge icedtea-* openjdk-*`` ``sudo dpkg --list | grep -i jdk`` <br> ### Instalação de softwares especificos para o controllador ONOS sudo apt update && sudo apt install git vim curl default-jre -y sudo apt install openjdk-8-jre-headless -y <br> ### Verificando a versão do JAVA java --version ### Retorno do comando: openjdk version "11.0.11" 2021-04-20 OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.18.04) OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.18.04, mixed mode, sharing) ### Download e execução do ONOS 2.5.0 (LTS) "Velociraptor" ``` sudo apt update && apt upgrade -y wget https://repo1.maven.org/maven2/org/onosproject/onos-releases/2.5.0/onos-2.5.0.tar.gz -c /opt cd /opt && tar zxf onos-2.5.0.tar.gz cd onos-2.5.0/bin export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64 ``` ### Dependendo do seu hardware, a execução do ONOS levará alguns minutos: `./onos-service` ### Retorno do comando anterior na ilustração a seguir: ![](https://i.imgur.com/KAIbNoE.png) <br> :::warning Não feche essa janela, utilize outra janela do terminal ou outra sessão SSH para seguir com a instalação do Mininet, para seguir com o procedimento. ::: <br> ### Instalação do Mininet git clone https://github.com/mininet/mininet && sudo apt install mininet -y ### Em outra sessão SSH ou nova janela de terminal, execute os comandos: ``sudo mn --controller remote,ip=192.168.1.160 --topo=linear,4`` ``mininet> pingall`` <br> ### Retorno dos comandos anteriores na ilustração a seguir: ![](https://i.imgur.com/ABlqYVk.png) ### Acesse a GUI do ONOS pelo seu navegador web: `http://192.168.1.160:8181/onos/ui/index.html` `Usuário: onos` `Senha: rocks` ### Retorno dos comandos anteriores nas ilustrações a seguir: ![](https://i.imgur.com/DPs61o0.png) ![](https://i.imgur.com/jldm1mh.png) <br> ![](https://i.imgur.com/2Kysc09.png) ### Alguns comandos do ONOS utilizados neste procedimento. `a` `h` `l` `z` --- ### Fontes: https://wiki.onosproject.org/display/ONOS/ONOS http://pakiti.com/sdn-101-using-mininet-and-sdn-controllers/ https://github.com/mininet/mininet/wiki/Introduction-to-Mininet ### Autor: Fernando Henrique Santorsula E-mail: f208918@dac.unicamp.br ### Coautor: Alan Teixeira da Silva E-mail: a265560@dac.unicamp.br FEEC/UNICAMP - Campinas/SP/BR https://www.fee.unicamp.br