ONOS - Open Network Operating System

Introdução

Open Network Operating System, ou simplesmente ONOS, é um projeto open source de rede definida por software (SDN, do inglês software-defined networking). Faz parte da Linux Foundation e tem como objetivo melhorar a disponibilidade, desempenho e escalabilidade. Neste trabalho, será explicado o que é SDN, ONOS e a relação entre eles. Além disso, será descrito casos de uso com ONOS, e sua contribuição de forma prática para diversos desenvolvimentos.

O que é SDN e Openflow

SDN permite a programação de elementos de rede, tais como roteadores, comutadores, etc. Se fundamenta na separação dos planos de Controle e de Dados, tornando a rede programável e flexível. Ela é formada por três camadas principais: camada de aplicação, camada de controle e camada de infraestrutura.

A camada de aplicação utiliza uma API para especificar o comportamento da rede. A camada de controle é responsável por traduzir requisitos da camada de aplicação para a camada de infraestrutura, e oferece uma visão abstrata da rede às aplicações. A camada de infraestrutura é composta pelos elementos da rede, e dispositivos que realizam a transmissão de dados.

Existe um protocolo padronizado que permite a comunicação entre a camada de controle (plano de controle) e a camada de infraestrutura (plano de dados). Portanto, as duas camadas são capazes de interpretar este protocolo. Este protocolo, proposto pela Universidade de Stanford, é o OpenFlow, responsável pela comunicação entre as camadas. Um switch OpenFlow é responsável por encaminhar fluxo de pacotes para determinada porta, encapsular fluxo de pacotes e enviar ao Controlador e descartar fluxo de pacotes (e se nenhuma ação for especificada, o pacote é descartado).

O que é ONOS

O nome ONOS significa Open Network Operating System. É um controlador SDN, composto de código aberto, que permite usabilidade em larga escala, com alto desempenho. Este sistema proporciona abstrações de alto nível, podendo aprender sobre a rede e controlar o fluxo sobre ela. Assim, é possível descrever como se quer utilizar a rede, e não como isso deve ser feito, resolvendo situações que seriam de conflito para o desenvolvimento de uma aplicação. O ONOS atua sobre uma rede definida por SDN (software-defined network), gerenciando seus componentes. Seus casos de uso geralmente envolvem serviços personalizados de roteamento, gerenciamento ou monitoramento de comunicação para redes definidas por software, possibilitando customização do roteamento.

O kernel ONOS e os serviços principais, assim como os aplicativos ONOS, são descritos em Java como pacotes configuráveis, que são carregados em contêiner OSGi. O sistema pode suportar falhas de nós individuais sem causar interrupções em sua capacidade de operação.

Arquitetura

Foi desenvolvido pela equipe On.Lab, uma organização sem fins lucrativos especializada em tecnologias SDN e OpenFlow. Hoje, faz parte da Linux Foundation como projeto colaborativo. O sistema é dividido entre as seguintes camadas:

Cada serviço é composto de vários subsistemas. Um serviço é formado por uma fatia vertical, composta por cada camada da arquitetura, agrupada de acordo com o serviço desejado. Um subsistema é uma coleção de componentes que, juntos, compõem um determinado serviço.