O conceito de Redes Definidas por Software (SDN) é um assunto muito estudado e com
diversos tipos de abordagens que na maioria das vezes exige do
pesquisador ou desenvolvedor um esforço relativamente grande para montar um ambiente que
propicie um bom desempenho no aprendizado da tecnologia, desenvolvimento dos recursos da rede,
na configuração de regras de comunicação e análise de resultados.
Este artigo tem como objetivo apresentar uma ferramenta de código aberto capaz de ajudar
no estudo e gerenciamento de redes definidas por software. O foco principal é abstrair o controlador
da rede com uma aplicação que oferece uma interface de linha de comando. A comunicação com o
controlador é realizada através de requisições web usando arquitetura Rest que é comum na maioria
dos controladores SDN.
O desenvolvimento dessa aplicação irá reduzir as dificuldades no gerenciamento de controladores SDN, pois atualmente estão disponíveis vários controladores com características muito distintas umas das outras, tanto em termos de usabilidade, linguagem de desenvolvimento e interface de gerenciamento. Esta aplicação também pretende facilitar o desenvolvimento e a customização de seus comandos por usar MVC (Model View Controller) como padrão de projeto.
A ferramenta proposta é chamada de SdnCommand, foi desenvolvida usando a linguagem de programação Python, com uso de algumas bibliotecas com Click (http://click.pocoo.org/5/), Requests (http://docs.python-requests.org/en/master/) e o Sqlite3 (https://docs.python.org/2/library/sqlite3.html),
O SdnCommand tem como funcionalidades a comunicação com o controlador da rede usando. Depois de configurado com o endereço IP do controlador e a porta usada por ele para comunicação via Rest API, é possível ter acesso às informações da rede, como identificação de dispositivos, listar e instalar fluxos nos switches que compões a rede, gerenciar Listas de controles de acesso, entre outros recursos disponíveis pelo controlador.
A versão atual esta configurada para usar o controlador FloodLight (http://www.projectfloodlight.org/floodlight/), ao longo do desenvolvimento o código será adaptado para permitir a comunicação com outros controladores, como o OpenDayLight e o Ryu Controller.