segunda-feira, 13 de janeiro de 2014

Escolha da Infraestrutura para o Projeto

Objetivo agora é estudar como SDN é implementada dentro do Datacenter e estudar características como se comporta com aplicações reais implementada. Para isso apos estudar o openVswitch e aprender como usá-lo foi possivel combinar controlador, virtualbox e maquinas virtuais para projetar um datacenter baseado em SDN.

Para tal projeto foi inicialmente pensada uma estrutura em arvore para os switches usando o mininet, consegui por meio de um programa de firewall criar algumas especie de "VLANs"  isolando as máquinas, no entanto para realizar alguns testes de inclusão e exclusão de maquinas virtuais e observar o comportamento do controlador não foi possível pois não conseguia acessar as máquinas por conta do Mininet.

A solução agora é montar a estrutura usando máquinas ao inves do mininet.

A seguir apresento a topologia simulada no mininet e a tabela com o plano de testes que seria executado variando sobre tal configuração




Controlador POX

Controlador POX


Logotipo do POX - Retirado do Site Noxrero
As SDN é o paradigma que muda a forma de pensar as redes e o controlador o seu elemento principal é a peça fundamental dessa nova arquitetura. A separação do plano de controle do plano de dados permite agora vários grupos poderem desenvolver toda a inteligência da rede pois a mesma será armazenada num servidor que através do controlador rodará as instruções escritas que serão encaminhadas ao plano de dados através do protocolo OpenFlow sendo assim os fluxos são instalados.
Existem vários controladores em produção eles são o Floodlight e RYU que usam a linguagem java, o TREMA que usa ruby além ainda do objeto desse post que é o POX escrito em python é o mais difundido por conta dos pesquisadores originais manterem suas atualizações.
Para rodar o POX é somente instalar segundo os procedimento do site http://www.noxrepo.org/pox ele criará um diretório depois de descompactado no local denominado POX.
O controlador POX possui vários programas já construídos dentro do diretório forwarding para serem usado como controlador dos switches Openflow das redes SDN, como exemplo tem-se os programas forwarding.l2_learning.py, forwarding.l3_learning.py, forwarding.hub.py sendo o primeiro configura o controlador para operar como switch de layer2, o segundo um switch de layer 3 e o ultimo como um HUB.
Com as SDN uma nova forma de pensar as redes está surgindo que ira com certeza romper com muitos paradigmas que existem em redes, tornando mais aberta para mais pessoas ou empresas possam criar suas próprias soluções.


SDN - Meu projeto depois da ANSP

Participei do WORKSHOP na ANSP em Novembro de 2013 na Faculdade de Medicina da USP, varios pesquisadores mostraram os avanços nos estudos sobre SDN e participei de um treinamento sobre o Protocolo Openflow ministrado pelo Prof. Dr Cesar Marcondes. Após esse treinamento e uma entrevista com meu co-orientador Prof Carlos que o projeto tomou um rumo e os caminhos da pesquisa foram abertos, durante o treinamento entendi que o foco das SDN está no controlador e que a rede agora passar ser uma abstração, para interligar os equipamento passaremos a ter que entender como cada equipamento fuinciona e através de instruções de linguagem de máquina ensinar o como aconteceram os fluxos no plano de dados, durante o treinamento ainda tive contado com a linguagem Pyretic que é tipo um framework que auxilia na programação do controlador, por meio de um dos alunos do Prof. Cesar acabei conhecendo essa linguagem e obtive os exemplos construídos por ele.
 Agora a minha dificuldade está em entender a programação em python, ainda mais entender a lógica de programação envolvida, sinto que agora tenho de estudar muito mais, mas já temos uma luz no final do túnel.

sábado, 13 de julho de 2013

Open vSwitch baseado em SDN no VirtualBox

Rede Ethernet baseado em SDN

Essa postagem pretende explicar sobre como criar uma rede Ethernet baseado em SDN.

Para esse experimento serão necessários:

VirtualBox Instalado em uma máquina com pelo menos 6 GB de Memória a máquina precisa estar instalado com 64bits.


quinta-feira, 14 de fevereiro de 2013

Procedimentos para instalação do Openvswitch

OpenVswitch no Ubuntu

Por Robson Lopes em 14 de Fevereiro


Fonte:openvswitch.org
Objetivo do OpenVSwitch é criar um switch virtual usando um PC e as placas de rede do computador, escrevo esse tutorial para ajudar os próximos usuários instalar esse sistema.

Usando o UBUNTU versão 12.04 server, a maior das aplicações em SDN são testadas em nesta distribuição, consegui fazer algumas coisas rodarem no DEBIAN mas tem muito trabalho em configuração, esse tutorial foi elaborado com base nas informações retiradas o site openvswitch e no vídeo

Inicialmente para não ter problemas por falta de biblioteca ou pacotes faltantes na instalação atualize o repositório com os endereços americanos

$sudo nano /etc/apr/sources.list

deb http://archive.ubuntu.com/ubuntu precise main   
deb-src http://archive.ubuntu.com/ubuntu precise main
deb http://archive.ubuntu.com/ubuntu precise universe
deb-src http://archive.ubuntu.com/ubuntu precise universe
deb http://archive.ubuntu.com/ubuntu precise multiverse
deb-src http://archive.ubuntu.com/ubuntu precise multiverse

por fim atualize o repositorio

$sudo apt-get update

 A seguir começar com a instalação dos pacotes do openvswitch

$sudo apt-get install openvswitch-datapath-source

Comentário
Módulo que deve ser incorportado ao Kernel do sistema para funcionamento do openvswitch

Execute

 $sudo module-assistant prepare
 $sudo module-assistant auto-install openvswitch-datapath

Comentários
A execução é um pouco demorada, nas executei essa mesma instalação em uma maquina real para verificar se os tempos de instalação serão os mesmos;
Pelo vídeo vai perceber que o instalador usa a segunda instrução direto, como estava faltando bibliotecas sempre dava erro na execução e durante a mensagem de erro, era recomentado a primeira instrução que instala as bibliotecas faltantes mas depois que inclui as linhas ja citadas acima no repositório sendo assim pode se tentar instalar usando a segunda instrução direto, ja que as linhas foram colocadas no repositório
module-assistant é uma ferramenta que cria os pacotes .deb para permitir sua inserção ao kernel do sistema.

Continuando a instalação

$sudo apt-get install openvswitch-brcompat openvswitch-controller openvswitch-common

Comentário:
Os pacotes com as instruções e os componentes para configuração e gerenciamento do openvswitch

Fazendo configuração para que uma bridge seja instalada esteja disponivel para uso do sistema através do arquivo de configuração do openvswitch

$sudo nano /etc/default/openvswitch-switch

Descomentar a linha
#brcompact=no

e alterar a palavra no por yes  ficando assim:
brcompact=yes 

reiniciar o serviço
$sudo /etd/init.d/openvswitch-switch restart

Openvswitch foi instalado com sucesso e você pode verficar usando
$sudo ps aux

Considerações finais
O sistema está instalado para fazer os teste é bom ter duas maquinas instaladas, para que seja possível realizar testes de criação de portas vlan entre outras funções.








quarta-feira, 13 de fevereiro de 2013

Novo paradigma em Redes de Computadores

Redes Baseadas em Software

por Robson Lopes em 13 de Fevereiro de 2013


Introdução

Esse novo paradigma consistem em separar o plano de controle do plano de dados, atualmente quando se deseja configurar uma rede precisamos lidar com diversos equipamentos e com sistemas operacionais diferente em cada um deles o que torna o trabalho bastante complexo, e se tivessemos um servidor que controlasse que fizesse o trabalho de cada equipamento da rede controlando e gerenciando a passagem dos pacotes na rede. A SDN surge inicialmente para fazer esse papel permitir que redes seja configuradas através de softwares. como um grafo, onde os equipamentos sejam são os pontos e as ligações são fluxos de dados que podem ser gerenciáveis. Essa ideia surge com McKeown em 2008.
Esse paradigma precisa de um componente para ordenar e definir o caminho dos fluxos, essa estrutura é denominada de controlador que tem a função de criar, apagar e reconduzir os fluxos entre os hosts instalados no equipamento. Atualmente existem vários controladores, irei apresentar aqui os mais aplicados nas SDN são:
  • NOX e POX criados sobre usando a linguagem C++ e Python respectivamente, é um dos mais aplicados pela facilidade e sua escalabilidade
  • Maestro e Beacon criados usando JAVA ainda em desenvolvimento o segundo com uma maior equipe em desenvolvimento e suporte.
  • Trema desenvolvido em ruby, ainda pouco difundido entre os controladores.
Para completar essa introdução falta conceituar a regras de comunicação entre os equipamentos e os controladores esse é denominado protocolo openflow, protocolo livre que domina essa tecnologia nesse novo conceito. Essa é uma pequena introdução sobre o tema que faz parte de meu projeto de pesquisa aqui nesse blog pretendo depositar minhas descobertas e compartilhar com as pessoas o conhecimento e de receber ideias que ajudem a criação de novos trabalhos em SDN.