iii sbti - sessão 4 – abordagem dirigida a modelos para o gerenciamento de redes definidas por...
DESCRIPTION
As Redes Definidas por Software (SDN) vêm obtendo grande atenção por parte da comunidade acadêmica e também da indústria, devido a diversos aspectos. Apesar disso, o gerenciamento e o desenvolvimento de aplicações voltadas para este novo campo em redes de computadores ainda são complexos, carentes de metodologias e ferramentas que permitam utilizar todo o nível de abstração possibilitado pelas SDNs. Com foco neste problema, o presente trabalho propõe uma Domain-Specific Modelling Language (DSML), aplicada à abordagem de SDN, aumentando o nível de abstração para o gerenciamento destas redes.TRANSCRIPT
Felipe Lopes, Stenio Fernandes{fal3, sflf}@cin.ufpe.br
Sessão 4 – Abordagem Dirigida a Modelos para o Gerenciamento de Redes Definidas por Software
Agenda
Maceió, Brasil15-17 de outubro, 2014
Introdução
Por que SDN é importante?
O que é exatamente?
SDN
Gerenciamento SDN
MDD
Abordagem
MDD-SDN
Sintaxes
Simulação
Geração e teste de código
Considerações Finais
Agenda
Maceió, Brasil15-17 de outubro, 2014
Introdução
Por que SDN é importante?
O que é exatamente?
SDN
Gerenciamento SDN
MDD
Abordagem
MDD-SDN
Sintaxes
Simulação
Geração e teste de código
Considerações Finais
Introdução
A Internet se tornou um sistema altamente complexo para gerenciar.– Não muito flexível para implantar novos serviços.
Internet Ossification.– Oportunidade para novas técnicas:
Network Virtualization (NV); Software-Defined Networking (SDN); Network Functions Virtualization (NFV).
Maceió, Brasil15-17 de outubro, 2014
Introdução
SDN e sua importância:– Eliminação da integração vertical entre o plano de
controle da rede e seu plano de dados;– Surgimento de controladores de rede;– Flexibilidade na rede;– Controladores são softwares, e é possível modelar
software.
Maceió, Brasil15-17 de outubro, 2014
Introdução
Motivação:– Se o controlador é software, o desenvolvimento de
software é propenso à erros;– O comportamento da rede é definido por políticas em
forma de algoritmos executados no controlador;– Controladores ≈ Sistemas Operacionais tradicionais.
Políticas inconsistentes e o comportamento errôneo da rede.
Maceió, Brasil15-17 de outubro, 2014
Agenda
Maceió, Brasil15-17 de outubro, 2014
Introdução
Por que SDN é importante?
O que é exatamente?
SDN
Gerenciamento SDN
MDD
Abordagem
MDD-SDN
Sintaxes
Simulação
Geração e teste de código
Considerações Finais
Agenda
Maceió, Brasil15-17 de outubro, 2014
Introdução
Por que SDN é importante?
O que é exatamente?
SDN
Gerenciamento SDN
MDD
Abordagem
MDD-SDN
Sintaxes
Simulação
Geração e teste de código
Considerações Finais
O que é... SDN?
“É uma arquitetura emergente que é dinâmica, gerenciável, custo-efetiva e adaptável. Esta arquitetura separa o controle da rede e funções de encaminhamento, permitindo que a rede seja diretamente programável e a infraestrutura subjacente seja abstraída para aplicações e serviços de rede.”
Open Networking Foundation (ONF)
Maceió, Brasil15-17 de outubro, 2014
O que é... SDN?
“É uma arquitetura emergente que é dinâmica, gerenciável, custo-efetiva e adaptável. Esta arquitetura separa o controle da rede e funções de encaminhamento, permitindo que a rede seja diretamente programável e a infraestrutura subjacente seja abstraída para aplicações e serviços de rede.”
Open Networking Foundation (ONF)
Maceió, Brasil15-17 de outubro, 2014
O que é... SDN?
Maceió, Brasil15-17 de outubro, 2014
Arquitetura tradicional. Arquitetura SDN.
O que é... SDN?
Para tornar os conceitos SDN mais claros, destacam-se algumas funcionalidades:– Plano de controle e dados são separados;– A rede possui um plano de controle programável;– O controle lógico é movido para uma unidade externa
aos switches;– Decisões de encaminhamento são baseadas em fluxo,
ao invés das baseadas em cabeçalhos/destinos;– Plano de controle logicamente centralizado:
Pode ser fisicamente distribuído.
Maceió, Brasil15-17 de outubro, 2014
O que é... SDN?
Para tornar os conceitos SDN mais claros, destacam-se algumas funcionalidades:– Plano de controle e dados são separados;– A rede possui um plano de controle programável;– O controle lógico é movido para uma unidade externa
aos switches;– Decisões de encaminhamento são baseadas em fluxo,
ao invés das baseadas em cabeçalhos/destinos;– Plano de controle logicamente centralizado:
Pode ser fisicamente distribuído.
Maceió, Brasil15-17 de outubro, 2014
O que é... SDN?
Maceió, Brasil15-17 de outubro, 2014
Visão geral da arquitetura SDN.
O que é... SDN?
Maceió, Brasil15-17 de outubro, 2014
Controladores SDN e o protocolo OpenFlow.
O que é... Gerenciamento SDN?
Definição de políticas para o comportamento correto da rede:– Eventos de rede (ex.: aumento de tráfego, falhas de
comunicação, etc.).
Maceió, Brasil15-17 de outubro, 2014
O que é... Gerenciamento SDN?
Maceió, Brasil15-17 de outubro, 2014
• Autenticação• Identidade do
dispositivo
• Porta de entrada/saída
• Destino
• Quantidade utilizada
• Taxa de tráfego
• Horários de pico• Período de
férias
Tempo Uso de Dados
StatusFluxo
Domínio definido por Kim e Feamster (2013).
O que é... Gerenciamento SDN?
Utilização de Domain-Specific Languages (DSLs) para implementar políticas de gerenciamento.
Maceió, Brasil15-17 de outubro, 2014
Arquitetura SDN e o uso de DSLs.
O que é... Gerenciamento SDN?
Maceió, Brasil15-17 de outubro, 2014
Select(packets) * GroupBy([srcmac]) *SplitWhen([inport]) *Limit(1)
Exemplo de sintaxe na linguagem Frenetic.
O que é... Model-Driven Development (MDD)?
“O paradigma MDD foca na automação de várias tarefas complexas, tais como: suporte para persistência de sistemas, interoperabilidade e distribuição, tendo como objetivo subjacente a redução da complexidade no desenvolvimento de aplicações ou gerenciamento de ambientes computacionais.”
Atkinson e Kuhne (2003)
Maceió, Brasil15-17 de outubro, 2014
O que é... Model-Driven Development (MDD)?
“O paradigma MDD foca na automação de várias tarefas complexas, tais como: suporte para persistência de sistemas, interoperabilidade e distribuição, tendo como objetivo subjacente a redução da complexidade no desenvolvimento de aplicações ou gerenciamento de ambientes computacionais.”
Atkinson e Kuhne (2003)
Maceió, Brasil15-17 de outubro, 2014
O que é... Model-Driven Development (MDD)?
“O paradigma MDD foca na automação de várias tarefas complexas, tais como: suporte para persistência de sistemas, interoperabilidade e distribuição, tendo como objetivo subjacente a redução da complexidade no desenvolvimento de aplicações ou gerenciamento de ambientes computacionais.”
Atkinson e Kuhne (2003)
Maceió, Brasil15-17 de outubro, 2014
Modelos Executáveis
O que é... Model-Driven Development (MDD)?
Uma das formas de seguir MDD é através de Domain-Specific Modeling Languages (DSMLs):– Uma DSML é uma 5-tupla:
L = < C, A, S, MS, MC >– Sintaxe Concreta (C): notação específica para expressar modelos;– Sintaxe Abstrata (A): conceitos, relacionamentos, restrições de
integridade;– Semântica do Domínio (S): formalismo matemático para descrever
o significado dos modelos;– Mapeamento Semântico (MS): atribui conceitos ao domínio
semântico;– Mapeamento Sintático (MC): atribui construções gráficas aos
elementos abstratos.
Maceió, Brasil15-17 de outubro, 2014
O que é... Model-Driven Development (MDD)?
DSML►Geração de ferramentas CASE (Computer-Aided Software Engineering).
Maceió, Brasil15-17 de outubro, 2014
O que é... Model-Driven Development (MDD)?
Maceió, Brasil15-17 de outubro, 2014
Visão geral MDD.
O que é... Model-Driven Development (MDD)?
Maceió, Brasil15-17 de outubro, 2014
Visão geral MDD.
Agenda
Maceió, Brasil15-17 de outubro, 2014
Introdução
Por que SDN é importante?
O que é exatamente?
SDN
Gerenciamento SDN
MDD
Abordagem
MDD-SDN
Sintaxes
Simulação
Geração e teste de código
Considerações Finais
Agenda
Maceió, Brasil15-17 de outubro, 2014
Introdução
Por que SDN é importante?
O que é exatamente?
SDN
Gerenciamento SDN
MDD
Abordagem
MDD-SDN
Sintaxes
Simulação
Geração e teste de código
Considerações Finais
Abordagem MDD-SDN
Aproveitamento de todo potencial de abstração possibilitado pelas SDNs:– Definição do escopo de domínio
no gerenciamento SDNs;– Criação de uma DSML:
Domínio; Sintaxe abstrata (meta-modelo); Sintaxe concreta; Mapeamentos; Geração de código.
Maceió, Brasil15-17 de outubro, 2014
• Autenticação• Identidade do
dispositivo
• Porta de entrada/saída
• Destino
• Quantidade utilizada
• Taxa de tráfego
• Horários de pico
• Período de férias
Tempo Uso de Dados
StatusFluxo
Abordagem MDD-SDN
Utilização de frameworks para implementar a DSML proposta:– Para a modelagem:
Graphical Modeling Framework (GMF), do projeto Eclipse. Composto por Eclipse Modeling Framework e Graphical Editing Framework (EMF).
– Para geração de código: Eclipse Generation Language (EGL).
Open-source, abrangência e compatibilidade maior em comparação com MetaEdit+ e AToM³.Maceió, Brasil15-17 de outubro, 2014
Abordagem MDD-SDN
Aproveitamento de todo potencial de abstração possibilitado pelas SDNs:– Definição do escopo de domínio
no gerenciamento SDNs;– Criação de uma DSML.
• Autenticação• Identidade do
dispositivo
• Porta de entrada/saída
• Destino
• Quantidade utilizada
• Taxa de tráfego
• Horários de pico
• Período de férias
Tempo Uso de Dados
StatusFluxo
Meta-modelo criado para nossa abordagem (arquivo .ecore, EMF).
Abordagem MDD-SDN
Sintaxe concreta definida para a abordagem MDD-SDN (GMF Editor).
Abordagem MDD-SDN
Exemplo de mapeamento entre sintaxe concreta e abstrata.Maceió, Brasil15-17 de outubro, 2014
Abordagem MDD-SDN
Trecho de um dos templates EGL, definidos para geração de código.DSL subjacente: Pyretic/Python. Controlador: POX.
Maceió, Brasil15-17 de outubro, 2014
[%for (policy in Policy) {%] [%if (policy.concession == 'Deny') {%] try: nb = [%=policy.condition%] (str1,str2,str3) = nb.split(',') (access,period) = ((str1),
(str2+str3)) ip1 = [%policy.source.ip%] ip2 = [%policy.target.ip%] action = ((access)) if(time.strftime("%H:%M:%S") in period) self.AddRule(ip1,ip2,action) except: print "Invalid Format" […]
Agenda
Maceió, Brasil15-17 de outubro, 2014
Introdução
Por que SDN é importante?
O que é exatamente?
SDN
Gerenciamento SDN
MDD
Abordagem
MDD-SDN
Sintaxes
Simulação
Geração e teste de código
Considerações Finais
Agenda
Maceió, Brasil15-17 de outubro, 2014
Introdução
Por que SDN é importante?
O que é exatamente?
SDN
Gerenciamento SDN
MDD
Abordagem
MDD-SDN
Sintaxes
Simulação
Geração e teste de código
Considerações Finais
Simulação
Utilização do simulador Mininet com o controlador POX.
Simulação
Duas políticas:– Controle de acesso
nos períodos especi-
ficados.– Execução do código
gerado no controlador
POX.
Simulação
Execução do teste:– Verificação da aplicação das políticas utilizando
comando pingall.
Agenda
Maceió, Brasil15-17 de outubro, 2014
Introdução
Por que SDN é importante?
O que é exatamente?
SDN
Gerenciamento SDN
MDD
Abordagem
MDD-SDN
Sintaxes
Simulação
Geração e teste de código
Considerações Finais
Agenda
Maceió, Brasil15-17 de outubro, 2014
Introdução
Por que SDN é importante?
O que é exatamente?
SDN
Gerenciamento SDN
MDD
Abordagem
MDD-SDN
Sintaxes
Simulação
Geração e teste de código
Considerações Finais
Considerações Finais
Comparação com outros trabalhos:Principais Funcionalidades
para Modelagem SDNMiniedit VND CIM-SDN MDD-SDN
Modelar topologia SIM SIM SIM SIM
Modelar comportamento e regras NÃO NÃO NÃO SIM
Modelar aplicações NÃO NÃO NÃO SIM
Suporte para múltiplos controladores SIM SIM SIM SIM
Suporte para DSLs NÃO NÃO NÃO SIM
Geração de código executável SIM SIM SIM SIM
Validação NÃO NÃO SIM SIM
Elementos gráficos descritivos SIM SIM NÃO SIM
Maceió, Brasil15-17 de outubro, 2014
Considerações Finais
Propomos o conceito de MDD-SDN para gerenciar e desenvolver aplicações de redes:– DSML;– Ferramenta CASE.
A simulação é uma prova de conceito. Os benefícios da proposta são vários:
– Permitir a modelagem de SDN;– Suportar DSLs criadas para SDN;– Gerar código executável;– Suportar qualquer fornecedor de controlador;– Descrever graficamente os elementos de uma arquitetura SDN;– Validar tal arquitetura.
Maceió, Brasil15-17 de outubro, 2014
Considerações Finais
Durante o desenvolvimento deste trabalho, originou-se o conceito de Model-Driven Networking (MDN).
Direções para trabalhos futuros incluem:– Definição formal do domínio para gerenciamento e
desenvolvimento de SDN e suas aplicações;– Permitir transformações entre modelos:
Inclusive code-to-model.
Maceió, Brasil15-17 de outubro, 2014
Felipe Lopes, Stenio Fernandes{fal3, sflf}@cin.ufpe.br
Sessão 4 – Abordagem Dirigida a Modelos para o Gerenciamento de Redes Definidas por Software