Controlador OpenDaylight




Autores - Gustavo Pires Machado - 6º Período de Engenharia de Computação e Informação
                Matheus Torres - 6º Período de Engenharia de Computação e Informação

Disciplina - Redes de Computadores 2 - EEL 879

Departamentos - Link para o GTA UFRJ          

"Este trabalho foi totalmente produzido pelos autores que declaram não terem violado os direitos autorais de terceiros, sejam eles pessoas físicas ou jurídicas. Havendo textos, tabelas e figuras transcritos de obras de terceiros com direitos autorais protegidos ou de domínio público tal como idéias e conceitos de terceiros, mesmo que sejam encontrados na Internet, os mesmos estão com os devidos créditos aos autores originais e estão incluídas apenas com o intuito de deixar o trabalho autocontido. O(s) autor(es) tem(êm) ciência dos Artigos 297 a 299 do Código Penal Brasileiro e também que o uso do artifício de copiar/colar texto de outras fontes e outras formas de plágio é um ato ilícito, condenável e passível de punição severa. No contexto da Universidade a punição não precisa se restringir à reprovação na disciplina e pode gerar um processo disciplinar que pode levar o(s) aluno(s) à suspensão;"


1. Introdução

A segunda década do século XXI está sendo marcada pelos avanços tecnológicos nas mais diversas esferas. No campo da computação, mais especificamente quando tratamos de redes de computadores, tais desenvolvimentos têm tornado as arquiteturas de rede obsoletas. As tecnologias ‘sem fio’ estão em ascensão no mundo, visto a grande leva de benefícios que trazem para os indivíduos e diversos negócios. A tendência é que todos os processos sejam automatizados e não dependam de conexões via cabo. Em detrimento disso, é necessário implementar uma arquitetura de redes mais eficiente, simples e com maior largura de banda.

Diante disso, foi criado o SDN, Rede Definida por Software (do inglês Software Defined Networking). Tal abordagem na criação de arquitetura de redes enfoca em separar o paradigma de dados e de controle de uma rede, tornando possível alterar a estrutura e serviços da rede por meio de um controlador centralizado. [1] Diversos controladores foram criados ao longo do tempo, tendo sua maioria se baseado em protocolos OpenFlow. OpenDaylight (ODL) é um controlador SDN modular cuja finalidade é uma maior customização e automação de arquiteturas de redes, oferecendo assim uma maior integração e programabilidade. Dentre seus objetivos, ressaltamos uma maior adoção do SDN e o suporte a NFV, Virtualização de Funções de Rede (do inglês Network Functions Virtualization). [12]

Criado em Abril de 2013, o ODL foi idealizado um projeto de código aberto colaborativo pela fundação Linux (do inglês The Linux Foundation). Tal projeto possui o suporte de empresas renomadas como IBM, Cisco, Juniper, VMWare, etc. Esse controlador tem sido implementado em diversas plataformas nas mais variadas camadas do âmbito social. Exemplificando temos o ODL sendo parte do cerne de “frameworks” de código aberto. [12]

Em sua concepção, o ODL foi elaborado como uma plataforma que concede o máximo de flexibilidade para usuários moldarem, de forma integrada, o melhor controlador SDN para as suas necessidades. Esse projeto é modular, em consequência disso qualquer usuário no ecossistema pode contribuir para a evolução do mesmo criando novas ferramentas e utilizando ferramentas dos outros. O OpenDaylight é implementado em Java, logo pode ser utilizado em qualquer máquina que possui um sistema operacional que o interprete.[1] [9]


2. História do OpenDayLight

A primeira versão foi a Hydrogen, que foi lançada em fevereiro de 2014 e tinha um controlador de código aberto, juntamente com alguns plugins e ferramentas de virtualização.

OpenDaylight Hydrogen release
Figura 2.1 - Release Hydrogen - Retirado de - [12]

Já a segunda versão, Helium, lançada em novembro de 2014 [12], tornava o OpenDaylight um gerenciador de redes dirigido pelo modelo (do inglês Model-Driven Network Management).

OpenDaylight Helium release
Figura 2.2 - Release Helium - Retirado de - [12]


A terceira versão, chamada Lithium, foi lançada em 29 de Junho de 2015 [12] e introduziu as tecnologias de clustering, aumentando a escalabilidade do controlador, e plugins com suporte a novos protocolos de rede.

OpenDaylight Lithium release
Figura 2.3 - Release Lithium - Retirado de - [12]


Houveram diversas novas versões, e a versão mais recente é a Fluorine, lançada em 30 de agosto de 2018 [12], com as principais mudanças sendo a mudança do projeto para um sistema de versões gerenciadas, com empacotamento mais simples para acelerar o desenvolvimento de soluções utilizando o OpenDaylight.

OpenDaylight Fluorine release
Figura 2.4 - Release Fluorine - Retirado de - [12]


3. Arquitetura


O ODL pode ser dividido em três camadas. A camada do topo que consiste de aplicações de rede e serviços. Posteriormente, se encontra a camada de controle onde as abstrações do SDN podem ser encontradas. Finalizando, temos a camada camada de interfaces “southbound” e plugins de protocolos de rede.

OpenDaylight

Figura 3.1 - Arquitetura OpenDayLight - Retirado de - OpenDaylight Introduction and Overview


3.1 Camada de controle


Essa camada é a camada central da arquitetura do OpenDayLight, viabilizando a abstração de SDN. Tal camada compreende BNSFs, serviços básicos de rede (do inglês Base Network Service Functions), plataforma de aplicações de rede (do inglês the Platform Network Service Functions) e SAL, camada de abstração para programação do plano de dados (do inglês Service Abstraction Layer). Em adição a isso, tal camada exterioriza diversas APIs “Northbound”, APIs que possuem como função servir de meio de comunicação entre controladores SDN, elementos e aplicações presentes na rede, possibilitando o gerenciamento sobre a rede como um todo.

Os serviços básicos de rede são responsáveis por implementar topologias, coletar informações, gerar estatísticas e orquestrar regras perante a rede. Dentre os BNSFs inclusos no ODL estão compreendidos monitoramento de topologia, monitoramento de estatísticas, monitoramento de switches, monitoramento de inventário e localizador de host.[1][9] A plataforma de aplicações de rede abrange diversos serviços com finalidades específicas para melhorar a funcionalidade do SDN. Dentre eles, possuímos autenticação, autorização, gerenciador de VTN, políticas baseadas em grupo, serviço de afinidade de metadados, redirecionamento de tráfego, etc.[9] A camada de abstração para programação do plano de dados, SAL, é o coração do OpenDayLight. Essa camada apresenta um gerenciador de plugins que permitem a comunicação com diversos protocolos de rede. Em conjunção, a SAL disponibiliza diversos serviços para outros módulos e aplicações da rede, funcionando como uma ponte entre o produtor e o consumidor de um serviço. A arquitetura dessa camada evoluiu conforme o ODL evoluiu por inteiro; em busca de uma maior escalabilidade e eficiência, uma arquitetura baseada em modelo foi concebida (Model-Driven SAL, MD-SAL). Esta arquitetura possibilita múltiplos controladores se emparelharem em um cluster onde cada controlador gerencia uma rede de serviços. O OpenDaylight permite a conexão entre diversos controladores que possibilitam load balancing da forma Master/Slave. [2][3]

Para melhor compreender o MD-SAL, alguns conceitos precisam ser introduzidos. O RPC se caracteriza por uma conexão requisitada por um consumidor com um produtor, sendo esse remoto ou local. Uma notificação é configurada quando um consumidor possui a intenção de receber dados de um determinado produtor. O “Data Store” árvore conceitual de dados, descrita por módulos YANG. Cada serviço em OpenDaylight modela seus dados por meio de um módulo YANG, linguagem utilizada especificamente para a modelagem de dados das estruturas de dados presentes nas aplicações e serviços de rede. Um caminho representa uma folha ou sub-folha presentes na árvore conceitual de dados. Finalizando, o “Mount” é uma instância própria do MD-SAL, sendo capaz de ter uma série de RPCs, notificações e modelos YANG únicos.[2][3]

Seu funcionamento ocorre de modo que as rotas entre consumidores e produtores são traçadas por RPCs. Em seguida, um sistema de notificações é implementado. Posteriormente, consumidores consomem dados de um Data Store e são provocados mudanças no dados do produtor. Finalizando, é concebido o gerenciador de “Mounts”, tal possibilita a reutilização de modelos e contextos dentro de uma rede sem a necessidade de redefinir todos os modelos de um controlador.[3]

A programabilidade do controlador OpenDaylight e sua arquitetura baseada em modelo (MD-SAL) permitem a criação de cadeias de transformação modelo-a-modelo. Numa situação onde existe um usuário querendo uma aplicação que utilize uma API genérica de Flow Service e dois vendedores com dispositivos que tenham um suporte diferente à criação de fluxo (um sendo OpenFlow e o outro Access List Programming), graças às características do OpenDaylight é possível que cada vendedor crie seu plugin (independente do outro vendedor) que adapte o modelo de programação do seu dispositivo ao modelo genérico de Flow Service. A solução final pode ser integrada pelo usuário.

Figura 3.1.1 - Retirado de - [4]

3.2 Camada de interface "southbound"

Protocolos “Southbound” são encarregados de proporcionar uma comunicação segura e eficiente entre o controlador e todos os elementos presentes na rede, gerenciar tais elementos, e uma integração com outras tecnologias. [9] O OpenDayLight possui suporte a tais protocolos por meio de diversos plugins. Tais plugins serão abordados abaixo:

OpenFlow Plugin

Contextualizando, o protocolo OpenFlow fornece uma interface de controle de conectividade e fluxo dentro de uma SDN oferecendo uma programação simplificada da mesma. Tal plugin implementa as especificações do protocolo OF conforme o seu desenvolvimento. O ODL possui suporte as versões 1.0,1.3 e tabelas que possuem acordos entre o controlador e o switch OF de funcionalidades de versões 1.1+.[9]

BGP-LS/PCEP Plugins

Estabelecem o Border Gateway Protocol (BGP) e o Path Computation Element Protocol (PCEP). Tal plugin implementa um BGP listener oferecendo suporte ao IPv4 e IPv6. O plugin BGP-LS é utilizado no monitoramento de topologias, enquanto o plugin PCEP é empregado com a finalidade de criar caminhos entre a rede inteira. [3][9] Fazendo uso do BGP-LS, o OpenDaylight extrai informações da topologia da rede e guarda no MD-SAL datastore, onde tais informações ficam disponíveis para serem usadas por plugins internos ou por clients externos.

NETCONF Plugin

Network Configuration Protocol (NETCONF) é um protocolo de gerenciamento de rede desenvolvido pela IETF que organiza as configurações em datastores. Utiliza a linguagem XML para codificar os dados de configuração e as mensagens de protocolo, assim como suporta chamadas de procedimento remoto (RPCs). Já o NETCONF Plugin é um plugin criado para o OpenDaylight com o objetivo de permitir ao ODL configurar os elementos de rede que têm suporte ao NETCONF.

3.3 Camada de aplicações de rede

Essa é a camada superior da arquitetura do OpenDaylight, onde encontramos serviços e aplicações que controlam e monitoram o controlador e as diversas características da rede como um todo, criando regras novas para a rede, utilizando algoritmos de análise e controlando o tráfego, assim como soluções que utilizam serviços de virtualização.[9] As aplicações dessa camada utilizam API’s disponibilizadas pela camada do controlador do ODL. Dentre as diversas aplicações, encontram-se as de proteção da rede, como a proteção DDoS, as de coleta e transporte de informações entre as camadas, como a SDNi Wrapper, e as que buscam facilitar a interação do usuário com o controlador, como a DLUX (interface gráfica para o usuário).

4. Ecossistema

Como mencionado na introdução, o OpenDayLight é um projeto de código aberto colaborativo pela fundação Linux. Esse aspecto no ODL gerou uma particularidade acerca desse controlador: constante evolução em virtude de atingir uma maior eficiência e programabilidade. Em contrapartida, esse controlador possui um nível de complexidade alto e demanda algum tempo para aprender a desenvolver aplicações no mesmo. [5]

Atualmente, existem diversos planos para o futuro do OpenDayLight. A maioria dos planos estão focados em infraestrutura com o intuito de oferecer maior escalabilidade e clusterização. Um deles, por exemplo, é a de utilização de outras linguagens de programação, como o Python.

4.1 Load Balancing

Visando aumentar a escalabilidade das SDN, o OpenDaylight foi criado utilizando o Model-Driven SAL baseado em clusterização e datastore distribuídos. Os dados localizados nesses datastore são divididos em fragmentos que podem ser replicados aos outros membros do cluster, possuindo o mesmo valor por questões de consistência. No tratamento de seu datastore, o ODL optou pela utilização do algoritmo de consenso Raft [11][5], que garante uma consistência maior ainda por meio da eleição de um líder dentre os fragmentos de dados distribuídos pelos membros do cluster. Porém, somente o líder pode atualizar os dados e passar adiante aos outros membros; logo, todas as requisições são feitas a ele, causando um elevado uso de CPU e aumentando a latência. Além disso, baseado nos dados científicos coletados no artigo “Load balancing on distributed datastore in opendaylight SDN controller cluster” Taehong Kim, Seong-Gon Choi, Jungho Myung, Chang-Gyu Lim, o primeiro membro do cluster a ser iniciado tem grandes probabilidades de ser o líder. [11]

4.2 Clusterização

A escalabilidade do ODL é garantida principalmente por meio da sua clusterização MD-SAL.[5] No caso do ODL, ele permite a utilização de diversas instâncias agindo como um único controlador lógico, com cada uma dessas instâncias comunicando-se com as outras de forma a compartilhar informações e prevenir pontos únicos de falha. A forma de detecção das falhas nos controladores é feita por meio da troca de mensagens chamadas de “heartbeats” de tempos em tempos que indicam o estado do controlador. A clusterização funciona em conjunto com o load-balancing; quando ocorre a detecção na falha do controlador que possui o fragmento de dado líder, o acesso aos dados à partição onde está o líder é proibida até que um novo líder seja eleito, caso ultrapasse um limite de timeout pré-estabelecido, por meio do algoritmo Raft.[2]

5. Conclusão

A influência na criação de arquiteturas de rede por meio da abordagem de Rede Definida por Software, SDN, vem se consolidando nos tempos atuais e deve moldar a próxima geração de arquiteturas de redes. Tal tendência se confirma pelo crescimento exponencial do número de redes planejadas por meio dessa abordagem. Nesse sentido, o OpenDayLight se destaca por ser um controlador SDN modular que disponibiliza uma maior programabilidade, integração e eficiência ao criar novas arquiteturas de rede.

A perspectiva é de que a aderência desse controlador seja cada vez maior, visto que ele se encontra em constante evolução. A comunidade é ativa e constantemente está trabalhando para melhorar esse o ODL. Independentemente de ainda existirem diversos desafios a serem enfrentados, o OpenDayLight possui um futuro cada vez mais brilhante.

Perguntas


1. O que é o OpenDaylight?

2. Quais são as 3 camadas da arquitetura do OpenDaylight?

3. Por que o Service Abstraction Layer é considerado o coração do OpenDaylight?

4. Qual o problema do Load-Balancing no ODL?

5. Como a clusterização e o load-balancing se relacionam no ODL?

Respostas


1. OpenDaylight (ODL) é um controlador SDN modular cuja finalidade é uma maior customização e automação de arquiteturas de redes.


2. Controle, interfaces “southbound” e plugins de protocolos de rede e aplicações de rede e serviços


3. A camada de abstração para programação do plano de dados, SAL, é o coração do ODL, pois disponibiliza diversos serviços para outros módulos e aplicações da rede, funcionando como uma ponte entre o produtor e o consumidor de um serviço.


4. Somente o líder pode atualizar os dados e passar adiante aos outros membros; logo, todas as requisições são feitas a ele, causando um elevado uso de CPU e aumentando a latência

5. Quando ocorre a detecção na falha do controlador que possui o fragmento de dado líder, o acesso aos dados à partição onde está o líder é proibida até que um novo líder seja eleito, caso ultrapasse um limite de timeout pré-estabelecido, por meio do algoritmo Raft.

Bibliografia

Artigos

[1].Título: “Performance Evaluation of OpenDaylight SDN Controller”
Autores: Zuhran Khan Khattak, Muhammad Awais and Adnan Iqbal
Publicado em : 2014 20th IEEE International Conference on Parallel and Distributed Systems (ICPADS)
Data de publicação: 16-19 Dec. 2014

[2] Título: “On performance of OpenDaylight clustering”
Autores: Dongeun Suh, Seokwon Jang, Sol Han, Sangheon Pack, Taehong Kim e Jiyoung Kwak
Publicado em: 2016 IEEE NetSoft Conference and Workshops (NetSoft)
Data de publicação: 04 July 2016

[3] Título: “OpenDaylight: Towards a Model-Driven SDN Controller architecture”
Autores: Jan Medved, Robert Varga, Anton Tkacik e Ken Gray
Publicado em: Proceeding of IEEE International Symposium on a World of Wireless, Mobile and Multimedia Networks 2014
Data de publicação: 19 June 2014

[4] Título: “OpenDaylight controller — Enhancements for a smoother software defined network”
Autores: Shameemraj M Nadaf, Arun Kumar A V, Hemant Kumar Rath e Anantha Simha
Publicado em: 2017 IEEE International Conference on Advanced Networks and Telecommunications Systems (ANTS)
Data de publicação: 17-20 Dec. 2017

[5] Título: “A comparison between several Software Defined Networking controllers”
Autores: Alexandru L. Stancu, Simona Halunga, Alexandru Vulpe, George Suciu, Octavian Fratu e Eduard C. Popovici
Publicado em: 2015 12th International Conference on Telecommunication in Modern Satellite, Cable and Broadcasting Services (TELSIKS)
Data de publicação: 17 December 2015

[6] Titulo: “Open Daylight as a Controller for Software Defined Networking”
Autores: Sumit Badotra, Japinder Singh
Publicado em: May-June 2017, Volume 8, No. 5, May-June 2017 International Journal of Advanced Research in Computer Science

[7] Título: “The OpenDaylight Source Project”
Autor: Sergio Najib Arroutbi Braojos
Publicado em: Universidade Rey Juan Carlos, Master Universitario en Software Libre

[8] Título: “OpenDaylight SDN controller platform”
Autor: Bernat Ribes Garcia
Publicado em: Universitat Politècnica de Catalunya, outubro 2015

[9] Título: “Facilitation of the OpenDaylight Architecture”
Autor: Ahmad Hemid
Publicado em: Bonn-Rhein-Sieg University of Applied Sciences - Bonn, Germany

[10] Título: “A Study On SDN Controllers”
Autores: Siddharth Valluvan, T.Manoranjitham, V.Nagarajan
Publicado em: International Journal of Pharmacy & Technology
Data de publicação: 29 de Novembro de 2016

[11] Título: “Load balancing on distributed datastore in opendaylight SDN controller cluster”
Autores: Taehong Kim, Seong-Gon Choi, Jungho Myung, Chang-Gyu Lim
Publicado em: 2017 IEEE Conference on Network Softwarization(NetSoft)
Data de publicação: 3-7 de Julho de 2017

Sites

[12] URL: OpenDayLight
Acessado em: 29/08/2018

Template HTML retirado do site Start Bootstrap


Voltar ao topo