Redes definidas por Software com Mininet e POX - Criando meu primeiro Controlador

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.

[ Hits: 1.911 ]

Por: cristofe coelho lopes da rocha em 01/01/2024


Entendendo o quebra-cabeças



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.

    Próxima página

Páginas do artigo
   1. Entendendo o quebra-cabeças
   2. Estruturando a rede com Mininet
   3. Colocando o POX em ação
   4. Considerações e Agradecimentos
Outros artigos deste autor

Esgotando os recursos

Um dia depois da inundação

Festa com SQL injection

Melhorando o nível de segurança com chflags

Fingerprint: Conhecimento TCP

Leitura recomendada

Breve Estudo Sobre Ransomwares e Análise Estática/Dinâmica do WannaCry

Python + ADB

PEP 8 - Guia de estilo para código Python

Port Scanner com Python

Python Flask Básico

  
Comentários
[1] Comentário enviado por maurixnovatrento em 14/01/2024 - 13:07h


Ótimo artigo.

___________________________________________________________
https://www.youtube.com/@LinuxDicasPro
https://github.com/mxnt10


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts