Você está na página 1de 16

CENTRO UNIVERSITÁRIO UNISEP – CEUUN

CAMPUS DE FRANCISCO BELTRÃO


CURSO DE ENGENHARIA ELÉTRICA

HIAGO ALVES TEIXEIRA

SIMULAÇÃO DE REDES DEFINIDAS POR SOFTWARE COM CONTROLADOR


RYU E EMULADOR MININET

FRANCISCO BELTRÃO
2020
HIAGO ALVES TEIXEIRA

SIMULAÇÃO DE REDES DEFINIDAS POR SOFTWARE COM CONTROLADOR


RYU E EMULADOR MININET

Pré-projeto de trabalho de conclusão de


curso de Engenharia Elétrica da União de
Ensino do Sudoeste do Paraná, como
parte da avaliação da disciplina de TCC I.

Orientador: Prof. Me. Maycon Aurélio


Maran

FRANCISCO BELTRÃO
2020
RESUMO

O presente trabalho discorre sobre as dificuldades enfrentadas no


gerenciamento e implementações de redes de dados tradicionais, onde o mesmo
apresenta como a implementação de redes SDN possibilita uma maior flexibilidade na
estrutura e simplificação do processo de desenvolvimento de novas aplicações. Ao
decorrer deste trabalho é apresentado uma prévia sobre o conceito das redes SDN,
cujo princípio básico é a separação entre o plano de controle, responsável por
gerenciar e executar as políticas de encaminhamento de dados, e o plano de dados,
responsável pelo encaminhamento dos dados através da rede. O protocolo mais
utilizado para a configuração das redes SDN é o Openflow, e um elemento da rede
denominado Controlador (Controller) tem a função de executar comandos Openflow
para configurar os dispositivos de encaminhamento. Com às dificuldades enfrentadas
ao desenvolver de novas aplicações em redes físicas, é de grande interesse a
realização das simulações de redes SDN. A ferramenta que possui um grande
destaque na área de simulações de rede SDN é o emulador MININET, que é utilizado
para fazer a virtualização de redes físicas. Para o papel do elemento Controlador da
rede, existem diversos disponíveis, para este trabalho optou-se por utilizar o
Controlador Ryu, por ser fácil de utilizar e modificar, provê várias funcionalidades e
suporta várias versões do protocolo Openflow. Fazendo a utilização do emulador
MININET e do Controlador Ryu, serão realizadas simulações de redes SDN, e
aplicadas técnicas de controle da rede, focando em implementações no controlador.

Palavras-chave: SDN. Mininet. Ryu. OpenFlow.


SUMÁRIO

1 INTRODUÇÃO 14
1.1 Objetivos 15
1.1.1 Objetivo geral 15
1.1.2 Objetivos específicos 15
1.2 Justificativa 15
2 FUNDAMENTAÇÃO TEÓRICA 17
2.1 Controlador Ryu 18
2.1.1 Emulador de redes Mininet 19
3 MATERIAL E MÉTODOS 21
4 CRONOGRAMA E EAP 22
5 CONSIDERAÇÕES FINAIS 24
REFERÊNCIAS 25
14

1 INTRODUÇÃO

A internet nos dias atuais, vem sendo cada vez mais utilizada pela população
em geral, segundo os dados do site Agência Brasil, três em cada quatro brasileiros
acessam a internet. Há 10 anos, cerca de 41% da população fazia o uso da internet.
Deste então, o crescimento se deu em média de 3,3% ao ano.
Para atender ao crescente volume de dados trafegados, as redes de
computadores requerem constante atualizações e monitoramento das operações.
Com isso apresenta diversos problemas, assim como custos no gerenciamento,
controlar a ocorrência de congestionamentos e ajustes de desempenho para oferecer
uma qualidade adequada à demanda necessária. As Redes Definidas por Software
(Software Defined Networking - SDN), vem sendo utilizadas como uma alternativa de
redes programáveis, a mesma consiste no desacoplamento do plano de dados e
controle da rede, onde um controlador programável é responsável por gerenciar
regras para o encaminhamento dos dados para diversos dispositivos (ANDRIOLI;
RIGHI; AUBIN, 2017).
O domínio das ferramentas e o conhecimento da área de atuação são de
grande importância para o desempenho do trabalho em redes de telecomunicações.
Porém torna-se desafiador tendo em vista que os protocolos de comunicações e
gerenciamento dos dispositivos passam por mudanças constantemente. Os
protocolos essenciais para o funcionamento das redes na maioria das vezes são
padronizados e de domínio público, apesar disto suas implementações são realizadas
em grande parte em equipamentos com software proprietário, com isto, os
gerenciadores de redes tornam-se dependentes de usar equipamentos que são
chamados de verdadeiras “caixas pretas”, os mesmos possibilitam pouca flexibilidade
na configuração do fluxo de designação de pacotes (KREUTZ et al., 2015).
Para os administradores de uma rede, o gerenciamento e ajuste fino de
desempenho da mesma tornam-se muito desafiadores em um cenário tradicional, não
estando livre também de ocorrer uma má interpretação humana no que diz respeito
aos eventos da rede. Sendo assim, a popularização do protocolo OpenFlow renascem
dos planos vindos das Redes Definidas por Software, deixando de lado os rigores
presentes nas redes tradicionais (NUNES et al., 2014).
15

1.1 Objetivos

A seguir, serão apresentados os devidos objetivos deste trabalho, sendo eles


separados entre objetivos gerais e objetivos específicos.

1.1.1 Objetivo geral

Codificar topologias com emulador Mininet e aplicar técnicas de controle da


rede, focando em implementações no controlador, utilizando controlador Ryu e
emulador Mininet como ambiente de simulação.

1.1.2 Objetivos específicos

Partindo do objetivo geral faz-se necessário realizar os seguintes objetivos


específicos:
• Adquirir conhecimento na linguagem de programação Phyton para ser possível
entender e modificar aplicações tanto no Controlador Ryu como no emulador
Mininet;
• Partindo de aplicações existentes, desenvolver aplicações de rede utilizando a
API do Controlador Ryu;
• Validar aplicações desenvolvidas empregando topologias de validação padrões
utilizadas em outros trabalhos da área.

1.2 Justificativa

Nos dias atuais a virtualização é uma técnica muito utilizada, várias empresas
fazem o uso deste recurso para poderem compartilhar os recursos das máquinas
físicas em diferentes servidores. O conceito de Redes Definidas por Software
(Software Defined Networking - SDN) surge nesse cenário para facilitar o
gerenciamento e implementações de redes de comunicação, desacoplando o software
do hardware utilizado na infraestrutura dessas redes.
Em um cenário com SDN é possível que elementos como switches, roteadores
16

e entre outros, sejam administrados através de software realizados para tal atividade
que se deseja. Deste modo, é possível uma maior flexibilidade na administração
destes elementos de rede, tendo em vista que em SDN existe a programabilidade da
rede.
Com o avanço das tecnologias no setor da telecomunicação e entre outras
diversas áreas, quando se é apresentado uma inovação consequentemente geram-
se dúvidas, quanto ao uso e aplicação conforme a necessidade, e por isso é de
extrema importância fazer-se o uso de testes e simulações. O protocolo OpenFlow
veio como uma solução que permite a manipulação e o acesso direto ao plano de
encaminhamento de pacotes nos dispositivos de rede, como switches e roteadores,
tanto virtuais como físicos, ou seja, permite aos servidores fazer a comunicação aos
comutadores para aonde deve ser enviado os pacotes.
Um elemento importante na arquitetura SDN é o Controlador (Controller). Este
elemento funciona como um sistema operacional para a rede, o mesmo facilita o
gerenciamento automatizado da rede, propiciando a integração e administração de
aplicativos ao ser retirado o plano de controle do hardware da rede e executando como
software. Os controladores podem fazer a comunicação com os elementos de
comutação que constituem a rede, os mesmos conseguem ter uma visão da rede
como um todo, e oferecem uma interface de programação para o desenvolvedor. Nos
dias atuais existem vários controladores que possibilitam ao desenvolvedor realizar a
programação desejada, como exemplo tem-se: NOX; FML; POX; Open DayLight e o
que será utilizado neste trabalho Ryu.
Assim sendo, o presente trabalho busca realizar simulações e apresentar a
utilização de uma tecnologia (SDN), onde a mesma permite gerenciar as
configurações do controle da rede de uma forma mais simples e flexível.
17

2 FUNDAMENTAÇÃO TEÓRICA

Nos dias atuais, as simulações possuem um papel decisivo nos projetos, para
análise e implementação de sistemas de comunicação, principalmente quando estes
sistemas são caros e complexos. Para a realização destas simulações de redes,
busca-se softwares que nos possibilitam maiores recursos, atualmente existem
diversos simuladores de rede disponíveis, porém devemos analisar os simuladores
que oferecem suporte ao protocolo OpenFlow. Em uma breve pesquisa encontramos
alguns softwares que nos fornecem os recursos necessários, sendo eles:
• Network Simulator 3: é um simulador de rede de eventos discretos para
sistemas de Internet, direcionado principalmente para pesquisa e uso
educacional. O ns-3 é um software livre, licenciado sob a licença GNU GPLv2
e está publicamente disponível para pesquisa, desenvolvimento e uso.
• EstiNet: tem as características de um simulador e de um emulador ao mesmo
tempo. Ele combina as vantagens das abordagens de simulação e emulação
sem suas respectivas deficiências. EstiNet usa programas reais do controlador
OpenFlow.
• Mininet: é possível interagir facilmente com sua rede usando o Mininet CLI (e
API ), personalizar, ou implementa em hardware real, o Mininet é útil para
desenvolvimento , ensino e pesquisa . Também é uma ótima maneira de
desenvolver e experimentar sistemas OpenFlow e Redes Definidas por
Software. Este é o emulador que será utilizado neste trabalho.
Um elemento importante na arquitetura SDN é o Controlador, este elemento
funciona como um sistema operacional para a rede. Como já citado anteriormente,
nos dias atuais existem vários controladores que possibilitam ao desenvolvedor
realizar a programação desejada, alguns exemplos de controladores disponíveis são:
• NOX: desenvolvido inicialmente por Nicira Networks, foi o primeiro controlador
SDN, servindo como base para as próximas soluções de controladores. Nox é
dividido em diferentes linhas de desenvolvimento, como NOX clássico que é
versão disponível sob licença pública geral, e suporta as linguagens C++ e
Python, e o POX que fornece suporte para Python e permitir desenvolvimentos
mais rápidos.
• Open DayLight: é capaz de ser implementado em diversos ambientes de rede
18

de produção, este controlador é com base em java.


• FML: a linguagem é simples e pode ser usada para expressar muitas
configurações comuns usadas em redes atualmente. O sistema resultante
permite a especificação de alto nível de várias tarefas de gerenciamento de
forma resumida e estruturada. É um controlador com linguagem baseada em
DATALOG.
• RYU: faz o uso de uma Interface de Programação de Aplicativos (Application
Program Interface – API) bem definida, este controlador é com base em Python.
Será o controlador utilizado neste trabalho.
A seguir será apresentado imagens e uma breve explicação do emulador e do
controlador a ser utilizado no presente trabalho.

2.1 Controlador Ryu

O Controlador Ryu é responsável por gerenciar o plano de controle, executando


as configurações no plano de dados através do protocolo Openflow, a Figura 1
apresenta uma visão da arquitetura do controlador Ryu, sendo apresentado a camada
de aplicação SDN onde é realizado a criação e o gerenciamento de rede. Na camada
abaixo, ou seja, camada de controle está localizado o controlador Ryu, sendo ele uma
plataforma de software capaz de oferecer funções simples e também funções
avançadas e oculta o processamento complexo. Em seguida temos a camada de
dados, tendo nela presente todos os equipamentos físicos da rede, como switches,
roteadores e dentre outros, habilitados com o protocolo OpenFlow. A comunicação
entre estas camadas ocorrem por meio de uma API. (KUBO et al., 2014).
19

Figura 1 - Arquitetura controlador Ryu

Fonte: Adaptado de Kubo et al. (2014).

2.1.1 Emulador de redes Mininet

O emulador Mininet faz a utilização Openflow Software-switches


(Implementações em Software de um switch Openflow), cada um virtualizado em um
Container Linux. Permite reproduzir um ambiente semelhante a uma rede física, onde
os componentes são separados totalmente. É possível definir uma rede através de
scripts Python, ou também do comando sudo mn. Na Figura 2 está sendo
exemplificado a interação do usuário com o ambiente Mininet, o usuário faz a
utilização de uma rede virtual realista. Nesta imagem possui uma rede onde contém
um switch e três hosts.
20

Figura 2 - Cenário Mininet

Fonte: Torres & Martins (2014).


21

3 MATERIAL E MÉTODOS

Partindo da ideia de que para realizar o gerenciamento e ajuste fino de


desempenho de uma rede é um tanto quando desafiador, e também levando em
consideração que pode estar propenso a erros por conta da má interpretação humana,
surge a necessidade de fazer a utilização de outros meios. Neste contexto, as ideias
vindas da programabilidade de Redes Definidas por Software (SDN), vem para tentar
minimizar ou eliminar a rigidez presente nas redes tradicionais, a mesma permite com
que o comportamento da rede seja mais flexível, assim como o gerenciamento e
adaptação adequada conforme às necessidades de cada contexto.
Ao fazer a utilização de Redes Definidas por Software, é necessário um
controlador SDN, sendo ele responsável por gerenciar o plano de controle,
executando as configurações no plano de dados através do protocolo Openflow. Para
o desenvolvimento deste trabalho será utilizado o controlador Ryu, o mesmo faz o uso
de uma Interface de Programação de Aplicativos (Application Program Interface – API)
bem definida, fazendo com que facilite a criação de novas aplicações aos operadores
de rede.
O presente trabalho vem propor a realização de um ambiente de simulação
com controlador Ryu e emulador Mininet. O cenário consiste em realizar execuções
em ambiente Ubuntu 19, assim que o mesmo for executado será trabalhado em
aplicações no Controlador Ryu escrito em linguagem de programação Phyton.
Como comentado anteriormente, será feito a utilização do emulador de redes
Mininet. Sendo um dos principais emuladores de redes SDN, foi o primeiro simulador
de redes SDN, e teve o desenvolvimento de extensões para aplicações específicas.
Possibilita a customização de topologias utilizando a linguagem de programação
Python, como é a mesma linguagem utilizada pelo Controlador Ryu, por meio de uma
única linguagem de programação é possível realizar as configurações tanto dos
elementos da rede como do Controlador.
22

4 CRONOGRAMA E EAP

A seguir é apresentado a EAP (Estrutura analítica do projeto).

Figura 3 - EAP

Contemplando todas as etapas do TCC e o tempo de execução, na Figura 4 é


apresentado o cronograma.
23

Figura 4 - Cronograma

Atividades Início Término

Escolha do Tema 25/07/2020 27/07/2020


Orientação 25/07/2020 27/07/2020
Aceite do tema 25/07/2020 27/07/2020
Resumo 31/08/2020 31/08/2020
Proposta 12/08/2020 13/09/2020
Introdução 03/09/2020 05/09/2020
Justificativa 14/08/2020 15/08/2020
Objetivos 15/08/2020 15/08/2020
Proposta de Pesquisa 15/09/2020 15/09/2020
Considerações Finais 16/09/2020 16/09/2020
Entrega do TCC I final 20/09/2020 20/09/2020
Elaboração da apresentação em PP 21/09/2020 21/09/2020
Apresentação à Banca Examinadora 26/09/2020 26/09/2020
Correção Indicadas pela Banca Examinadora 05/12/2020 06/12/2020
Instalação do Software 21/10/2020 21/10/2020
Iniciar Simulações 05/01/2021 05/02/2021
Revisar: Fundamentação teórica 11/02/2021 12/02/2021
Revisar: Materiais e Métodos 14/02/2021 15/02/2021
Discussão dos Resultados 27/02/2021 02/03/2021
Elaboração das Considerações Finais 06/03/2021 08/03/2021
Redação final do TCC II 03/04/2021 15/04/2021
Encaminhamento à correção linguística 04/05/2021 04/05/2021
Entrega do TCC II 01/06/2021 01/06/2021
Apresentação à Banca Examinadora 05/06/2021 05/06/2021
Correção Indicadas pela Banca Examinadora 06/06/2021 10/06/2021
Entrega Final do TCC II Encadernado 17/06/2021 17/06/2021
24

5 CONSIDERAÇÕES FINAIS

Com o aumento do uso da internet, as redes de computadores requerem


constantes atualizações e monitoramento de operações para atender ao crescente
volume de dados trafegados, e com isso ocorre diversos problemas como aumento
nos custos no gerenciamento, no controle de congestionamentos e nos ajustes para
um melhor desempenho e para oferecer uma qualidade adequada a demanda
necessária. Sendo assim, as Redes Definidas por Software são utilizadas como uma
alternativa de redes programáveis, consistindo na desagregação do plano de dados e
controle da rede, é possível que elementos como switches, roteadores e entre outros,
sejam administrados através de software realizados para tal atividade que se deseja.
O desenvolvimento deste trabalho, busca apresentar através de cenários de
simulação a implementação de redes SDN, que possibilita gerenciar as configurações
do controle da rede de uma forma mais simples e flexível. Irão ser feitos o uso do
controlador Ryu e o emulador de redes Mininet, e então realizadas simulações e
desenvolvidas aplicações nas simulações.
25

REFERÊNCIAS

ANDRIOLI, L.; RIGHI, R. D. R.; AUBIN, M. R. Analisando métodos e oportunidades


em redes definidas por software (SDN) para otimizações de tráfego de dados. Revista
Brasileira de Computação Aplicada, v. 9, n. 4, p. 2, 2017.

KREUTZ, D. et al. Software-defined networking: A comprehensive survey.


Proceedings of the IEEE, v. 103, n. 1, p. 14–76, 2015.

KUBO, R. ET AL. Ryu SDN framework-open-source SDN platform software. NTT


Technical Review, v. 12, n. 8, 2014.

NUNES, B. A. A. et al. A survey of software-defined networking: Past, present, and


future of programmable networks. IEEE Communications Surveys and Tutorials, v.
16, n. 3, p. 1617–1634, 2014.

TORRES, E.; MARTINS, J. S. B. Interface Web para a Ferramenta Mininet como


Suporte para a Experimentação com o OpenFlow. Cadernos Técnicos de
Computação e Energia, v. 1, n. December, p. 19–22, 2014.

Guedes, D., Vieira, L. F. M., Vieira, M., Rodrigues, H., & Nunes, R. V. Redes Definidas
por Software: uma abordagem sistêmica para o desenvolvimento de pesquisas em
Redes de Computadores. Minicursos do Simpósio Brasileiro de Redes de
Computadores-SBRC, v. 30, n. 4, p. 160-210, 2012.

VALENCIA, B. et al. Mininet: una herramienta versátil para emulación y prototipado de


Redes Definidas por Software. Entre ciencia e ingenieria, v. 9, n. 17, p. 62-70, 2015.

Você também pode gostar