Anais do 4º Workshop de Sistemas Distribuídos Autonômicos - WoSiDA 2014
Revisitando uma Infraestrutura Autonômica: Uma
Perspectiva Baseada em uma Rede Definida por Software
Marcelo Santos1, Patricia Endo1, Moisés Bezerra1, Glauco Gonçalves1, Djamel
Sadok1, Stênio Fernandes1
1
Grupo de Pesquisa em Redes de Computadores e Telecomunicações (GPRT)
Universidade Federal de Pernambuco (UFPE)
Recife – PE - Brasil
{marcelo, patricia, moises, glauco, jamel, stenio}@gprt.ufpe.br
Abstract. Autonomic Networks and Software Defined Networks (SDN) have a
great potential to work together, due to the management power provided by
SDN protocols and technologies. This paper has as contribution an autonomic
infrastructure proposal based on SDN. The SDN and autonomic network
solution is done in a practical way through the use of a FloodLight controller,
creating a flexible infrastructure to several scenarios. Taking into
consideration the proposed infrastructure, different strategies can be
implemented and analyzed in real physical networks, by using well-defined
protocols and the power of flow handling provide by a SDN.
Resumo. Redes autonômicas e redes definidas por software (SDN) possuem
um grande potencial para trabalhar de forma conjunta, dado o poder de
gerenciamento fornecido pelos protocolos e tecnologias utilizadas em SDN.
Este artigo tem como contribuição uma proposta de infraestrutura
autonômica, baseada em SDN. A junção de SDN e redes autonômicas é
alcançada de forma prática através da utilização do controlador FloodLight,
criando um ambiente flexível para diversos cenários. Considerando a
infraestrutura proposta, diferentes estratégias podem ser facilmente
implementadas e avaliadas em redes físicas reais, utilizando-se de protocolos
bem definidos e do poder de manipulação dos fluxos fornecida por uma SDN.
1. Introdução
Enquanto a arquitetura da Internet é um sucesso consolidado para seus usuários finais,
especialmente em relação a diversidade de aplicações e serviços disponíveis atualmente;
para a indústria e operadoras de rede, ela se tornou um sistema complexo, caro e pouco
flexível. Software Defined Networking (SDN) é um novo paradigma que promete
fornecer a capacidade de amplo controle sobre fluxos de tráfego da rede, com o objetivo
principal de simplificá-la e de torná-la mais barata e flexível. Este controle é alcançado
através da separação dos planos de controle e de encaminhamento. Desta forma, o
tráfego pode ser explicitamente roteado e inspecionado por elementos de rede de
controle com segurança e com políticas de gerenciamento eficientes.
As redes autonômicas têm se tornado um importante campo de pesquisa para a
Internet do Futuro, utilizando-se de propriedades como auto-cura, auto-configuração,
auto-proteção, auto-otimização e auto-organização [IBM 2005], visando diminuir a
complexidade do controle da rede e consequentemente facilitar seu gerenciamento. Em
35
Anais do 4º Workshop de Sistemas Distribuídos Autonômicos - WoSiDA 2014
outras palavras, a principal característica das redes autonômicas é a minimização do
grau de interferência humana, deixando que o próprio elemento autônomo tome a
decisão a partir de uma base de conhecimento.
Embora a ideia principal por trás de uma SDN seja a centralização do plano de
controle, é possível utilizar a interface de gerenciamento oferecida e aplicá-la em uma
estrutura de rede autonômica. SDN oferece um conjunto de protocolos e tecnologias
bem definidas que permite que aplicações autonômicas sejam executadas sobre uma
rede de forma prática e fácil, saindo de um campo abstrato e aproximando de um
cenário cada vez mais real de redes.
Esse artigo tem como objetivo principal discutir os desafios de construir uma
infraestrutura autonômica baseada em SDN utilizando o controlador Floodlight1 e o
switch virtual OpenVSwitch2, ambos compatíveis com o protocolo OpenFlow3. A
infraestrutura proposta neste artigo possibilita testes de soluções autonômicas já
conhecidas, além de levantar discussões de como empregar novas heurísticas
autonômicas através deste novo cenário, explorando também suas limitações. O restante
do artigo está estruturado da seguinte forma: a Seção 2 apresenta uma breve introdução
sobre SDN; a Seção 3 descreve a infraestrutura composta por SDN e redes autonômicas;
e por fim, as conclusões e trabalhos futuros são delineados na Seção 4.
2. Software Defined Networking (SDN)
Software Defined Networks tem atraído significante atenção tanto da academia quanto
da indústria. Fabricantes e provedores de serviços formaram a Open Networking
Foundation (ONF) [Open Networking Foundation 2014], enquanto a academia tem
trabalhado em grupos de pesquisa pelo IETF e IRTF buscando definir padrões e novos
desafios em SDN [SDNRG 2014].
Uma análise da arquitetura atual dos switches permite observar que se trata de
um modelo formado basicamente por duas camadas bem distintas: o software de
controle (control plane) e o hardware dedicado ao encaminhamento de pacotes (data
plane). SDN tem como base a dissociação dos planos de controle e de dados, visando
tornar os switches mais baratos, rápidos e flexíveis. Em vez de diversas políticas de
gerenciamento e execução de protocolos em uma convolução de dispositivos
distribuídos, os elementos da rede (switches e roteadores) são simplificados para
cumprir bem unicamente a tarefa de encaminhar os pacotes de acordo com uma tabela
de repasse, enquanto os controladores da rede tomam a decisão de como criar esta
tabela em cada dispositivo da rede [Mendonça 2014].
O protocolo OpenFlow tem sido utilizado como padrão para permitir a
comunicação entre switches e controlador. Cada switch possui uma tabela de fluxos
utilizada para o repasse de pacotes. Cada entradas da tabela é chamada de fluxo e
determina como um fluxo de pacotes será processado e encaminhado. Um fluxo na
tabela é formado pelos seguintes conjuntos de campos: (1) campos de identificação; (2)
contadores, usados para coletar estatísticas de um fluxo; e (3) um conjunto de
instruções, ou ações, a ser aplicado sobre uma correspondência [Mendonça 2014].
1
http://www.projectfloodlight.org/floodlight
http://openvswitch.org
3
https://www.opennetworking.org/sdn-resources/onf-specifications/openflow
2
36
Anais do 4º Workshop de Sistemas Distribuídos Autonômicos - WoSiDA 2014
3. Uma infraestrutura autonômica baseada em SDN
Em [IBM 2005], os autores definem que a Computação Autonômica é um ambiente
computacional com habilidade de se gerenciar e se adaptar dinamicamente à mudanças de
acordo com políticas e objetivos pré-estabelecidos. Os ambientes auto-gerenciáveis são
capazes de, autonomicamente, executar suas atividades baseados no estado observado, sem
requerer alguma entidade central e controladora. Essas tarefas são realizadas em um ciclo
de controle, por vezes denominado MAPE-K (Monitor, Analyse, Plan, Execute, and
Knowledge). Baseado no ciclo MAPE-K, propõe-se uma infraestrutura autonômica
fundamentada em SDN que, diferentemente das SDNs padrão, procura distribuir a tarefa de
controle entre os elementos da rede (Figura 1a). A ideia é manter o plano de controle e o
plano de encaminhamento juntos no switch, mas com um controlador SDN distribuído em
cada switch (Figura 1b). Quando comparado com soluções autonômicas que executam
apenas em nível de aplicação, temos como diferencial o controle sobre todos os pacotes,
além de protocolos e ferramentas para desenvolver aplicações autonômicas em cada switch,
buscando um comportamento emergente baseado em aplicações executadas por cada switch.
(a)
(b)
Figura 1. Utilizando SDN de forma autonômica
Na infraestrutura proposta cada switch possui a organização mostrada na Figura
2. Utiliza-se o controlador FloodLight (ou pode-se utilizar outros controladores como o
POX5, por exemplo) juntamente com o switch virtual OpenVSwitch (tutorial de
instalação em [OVS e Floodlight 2012]). A aplicação autonômica inserida é
independente da linguagem do controlador por se comunicar com ele através de uma
interface RESTfull. Toda a parte de monitoramento de fluxos é realizada pelo próprio
switch e fornecida através de uma API REST bem definida6.
Figura 2. Nó da rede autonômica baseado em tecnologias SDN
A manipulação da tabela de fluxos pode ser realizada através da mesma API
REST oferecida pelo Floodlight. As etapas de Analyse, Plan, Execute, e Knowledge
oriundas do MAPE-K são implementadas pela aplicação autonômica seguindo qualquer
5
6
http://www.noxrepo.org/pox/about-pox/
http://www.openflowhub.org/display/floodlightcontroller/Floodlight+REST+API
37
Anais do 4º Workshop de Sistemas Distribuídos Autonômicos - WoSiDA 2014
heurística autonômica desejável. É importante notar que devido a utilização do protocolo
OpenFLow tem-se informações sobre o fluxo desde a camada de enlace (endereço MAC
origem e destino) até a camada de aplicação (protocolo TCP, UDP e respectivas portas
utilizadas). É possível criar regras autonômicas para bloqueio de fluxos, multicasting,
balanceamento de carga ou reengenharia de tráfego. A capacidade de gerenciamento é
ampla em nível de rede, sendo possível manipular campos dos cabeçalhos de pacotes que
passam pelos switches com regras simples. É possível ainda definir novos protocolos para
troca de mensagens entre switches (vislumbrando monitorar o comportamento de seus
vizinhos e obter informações que o ajudem na tomada de decisão), dado que a aplicação em
cada switch é totalmente programável.
A infraestrutura descrita está ligada diretamente às primitivas fornecidas pelo
protocolo OpenFlow, por este motivo, este aspecto atua como uma limitação aos tipos de
cenários autonômicos que podem ser implementados nesta infraestrutura devido à
inexistência de comunicação direta com serviços disponíveis na rede. No entanto, como
alternativa, é possível criar extensões na camada da aplicação autonômica (Figura 2) para
atender a requisitos específicos. Para este fim, o trabalho de Wendong et al. (2012) pode
servir como ponto de partida para aplicação e extensão da abordagem apresentada.
4. Considerações finais
Este trabalho apresentou uma infraestrutura autonômica de rede baseada em recursos de
uma SDN. A partir desta infraestrutura é possível delinear discussões sobre como
desenvolver aplicações autonômicas fazendo uso de uma interface de manipulação de
fluxos capaz de abranger aspectos da camada de enlace até a camada de aplicação da
rede.
Um ponto importante a ser discutido é a realização de testes e a implantação de
aplicações autonômicas em cada switch. Como o esperado é um comportamento
emergente da rede, há a dificuldade de testes em larga escala em um cenário real devido
ao fato da implantação de cada aplicação ser realizada manualmente em cada switch.
Dessa forma, realizar constantes atualizações nesse cenário pode-se tornar custoso. Em
trabalhos futuros pretende-se adaptar diversas estratégias autonômicas na infraestrutura
apresentada, avaliando sua flexibilidade e suas limitações.
Referências
IBM (2006), “An architectural blueprint for autonomic computing”. IBM White Paper.
Mendonça, M. et al. (2014) “A Survey of Software-Defined Networking: Past, Present,
and Future of Programmable Networks”, in submission. Disponível em:
http://hal.inria.fr/docs/00/93/29/82/PDF/hal_final.pdf. Acesso em Março de 2014.
Open
Networking
Foundation
(ONF)
(2014).
https://www.opennetworking.org/. Acesso em Março de 2014.
Disponível
em:
OVS e Floodlight (2012). Disponível em: http://networkstatic.net/how-to-build-an-sdnlab-without-needing-openflow-hardware. Acesso em Março de 2014.
Software Defined Networking Research Group (SDNRG) (2014). Disponível em:
http://trac.tools.ietf.org/group/irtf/trac/wiki/sdnrg. Acesso em Março de 2014.
Wendong, W., Yannan, H. U., Que, X., & Xiangyang, G. (2012). “Autonomicity design
in OpenFlow based Software Defined Networking”. In IEEE Globecom, pp. 818-823.
38
Download

Revisitando uma Infraestrutura Autonômica: Uma Perspectiva