Nos últimos anos, as
Redes Definidas por Software (Do Inglês Software Defined Networking - SDN) ganharam força com o objetivo de trazer escalabilidade e programabilidade para a arquitetura de rede e, assim, simplificar o gerenciamento de rede, possibilitando a inovação em comunicação. SDN é uma proposta de rede emergente introduzida com o objetivo de superar a limitação das infraestruturas de rede tradicionais.
O objetivo é separar os planos de dados e controle flexibilizando a lógica de controle dos
switches e
roteadores, assim os switches de rede se tornam simples dispositivos de encaminhamento e a lógica de controle movida para um controlador externo logicamente centralizado (XIA et. al, 2014 | CHAIB et. al, 2021 | JAFARIAN et. al, 2021 | RAMADONA et. al, 2015).
No modelo de estado de rede os aplicativos (Fig.1 - application layer) são capazes de fornecer serviços sem conhecimento do hardware subjacente ou topologia (Fig.1 - infrastructure layer) por meio de protocolos de encaminhamento de dados (Fig.1 - control layer), tais como como OpenFlow. O protocolo de controle de fluxo OpenFlow descreve duas abordagens de gerenciamento diferentes para preencher tabelas de fluxo: proativa e reativa.
O modo reativo é aplicado quando os pacotes recebidos não correspondem a nenhuma entrada de fluxo. Os pacotes são enviados ao controlador, que instala as regras de volta no switch. A abordagem reativa é um modelo mais poderoso porque o controlador pode implementar algum tipo de lógica que não pode ser representada em tabelas de fluxo. Em contraste, o modo proativo proporciona melhor desempenho porque evita a latência extra no primeiro pacote do fluxo (RAMADONA et. al, 2015).
A proposta deste estudo é servir como guia básico para iniciantes com redes SDN. O propósito não é esgotar o assunto, e sim traçar um passo a passo na arte de redes de computadores e de sensores utilizando controladores.
Para desenvolvimento deste estudo foi considerado que o leitor tem conhecimento básico em protocolos de rede e sistemas operacionais. Caso não tenha, sugiro baixar o GNU/Linux Debian ou Slackware ou mesmo o
FreeBSD e exercitar um pouco o uso de sistemas operacionais em command line (linha de comando). Além disso, pesquisar sobre protocolo de rede como TCP/IP e de encaminhamento de fluxo de pacotes como o OpenFlow (
OpenFlow Especification vv1.3.0).
O cenário foi elaborado com uso do sistema operacional Ubuntu, o emulador de redes
Mininet (
https://mininet.org/) e o controlador de fluxo de pacotes
POX (
https://noxrepo.github.io/pox-doc/html/#installing-pox). A rede criada possui 4 hosts, 1 open vswitch e 1 controlador SDN. Para efeito de manipulação da tabela de fluxo foram considerados o repasse de todos os hosts nas portas 22 e 80, servidor ssh e http respectivamente.