Este documento apresenta uma abordagem de desenvolvimento dirigida a modelos (MDD) para o gerenciamento de redes definidas por software (SDN). A abordagem propõe a criação de uma linguagem específica de domínio (DSML) para modelar políticas de gerenciamento SDN e gerar código para controladores de rede. Os modelos são simulados usando o simulador Mininet e o controlador POX para validar o comportamento definido pelas políticas.
III SBTI - Sessão 4 – Abordagem Dirigida a Modelos para o Gerenciamento de Redes Definidas por Software
1. Sessão 4 – Abordagem Dirigida a Modelos para o
Gerenciamento de Redes Definidas por Software
Felipe Lopes, Stenio Fernandes
{fal3, sflf}@cin.ufpe.br
2. Agenda
Introdução
Por que SDN é
importante?
O que é
exatamente?
SDN
Gerenciamento
SDN
MDD
Maceió, Brasil
15-17 de outubro, 2014
Abordagem
MDD-SDN
Sintaxes
Simulação
Geração e teste
de código
Considerações
Finais
3. Agenda
Introdução
Por que SDN é
importante?
O que é
exatamente?
SDN
Gerenciamento
SDN
MDD
Maceió, Brasil
15-17 de outubro, 2014
Abordagem
MDD-SDN
Sintaxes
Simulação
Geração e teste
de código
Considerações
Finais
4. 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ó, Brasil
15-17 de outubro, 2014
5. 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ó, Brasil
15-17 de outubro, 2014
6. 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ó, Brasil
15-17 de outubro, 2014
7. Agenda
Introdução
Por que SDN é
importante?
O que é
exatamente?
SDN
Gerenciamento
SDN
MDD
Maceió, Brasil
15-17 de outubro, 2014
Abordagem
MDD-SDN
Sintaxes
Simulação
Geração e teste
de código
Considerações
Finais
8. Agenda
Introdução
Por que SDN é
importante?
O que é
exatamente?
SDN
Gerenciamento
SDN
MDD
Maceió, Brasil
15-17 de outubro, 2014
Abordagem
MDD-SDN
Sintaxes
Simulação
Geração e teste
de código
Considerações
Finais
9. 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ó, Brasil
15-17 de outubro, 2014
10. 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ó, Brasil
15-17 de outubro, 2014
11. O que é... SDN?
Arquitetura tradicional. Arquitetura SDN.
Maceió, Brasil
15-17 de outubro, 2014
12. 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ó, Brasil
15-17 de outubro, 2014
13. 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ó, Brasil
15-17 de outubro, 2014
14. O que é... SDN?
Visão geral da arquitetura SDN.
Maceió, Brasil
15-17 de outubro, 2014
15. O que é... SDN?
Controladores SDN e o protocolo OpenFlow.
Maceió, Brasil
15-17 de outubro, 2014
16. 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ó, Brasil
15-17 de outubro, 2014
17. O que é... Gerenciamento SDN?
Maceió, Brasil
15-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
Fluxo Status
Domínio definido por Kim e Feamster (2013).
18. O que é... Gerenciamento SDN?
Utilização de Domain-Specific Languages (DSLs)
para implementar políticas de gerenciamento.
Arquitetura SDN e o uso de DSLs.
Maceió, Brasil
15-17 de outubro, 2014
19. O que é... Gerenciamento SDN?
Select(packets) *
GroupBy([srcmac]) *
SplitWhen([inport]) *
Limit(1)
Exemplo de sintaxe na linguagem Frenetic.
Maceió, Brasil
15-17 de outubro, 2014
20. 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ó, Brasil
15-17 de outubro, 2014
21. 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ó, Brasil
15-17 de outubro, 2014
22. 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ó, Brasil
15-17 de outubro, 2014
Modelos Executáveis
23. 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ó, Brasil
15-17 de outubro, 2014
24. O que é... Model-Driven Development (MDD)?
DSML►Geração de ferramentas CASE (Computer-
Aided Software Engineering).
Maceió, Brasil
15-17 de outubro, 2014
25. O que é... Model-Driven Development (MDD)?
Maceió, Brasil
15-17 de outubro, 2014
Visão geral MDD.
26. O que é... Model-Driven Development (MDD)?
Maceió, Brasil
15-17 de outubro, 2014
Visão geral MDD.
27. Agenda
Introdução
Por que SDN é
importante?
O que é
exatamente?
SDN
Gerenciamento
SDN
MDD
Maceió, Brasil
15-17 de outubro, 2014
Abordagem
MDD-SDN
Sintaxes
Simulação
Geração e teste
de código
Considerações
Finais
28. Agenda
Introdução
Por que SDN é
importante?
O que é
exatamente?
SDN
Gerenciamento
SDN
MDD
Maceió, Brasil
15-17 de outubro, 2014
Abordagem
MDD-SDN
Sintaxes
Simulação
Geração e teste
de código
Considerações
Finais
29. 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ó, Brasil
15-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
Fluxo Status
30. 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ó, Brasil
15-17 de outubro, 2014
31. 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
Fluxo Status
Meta-modelo criado para nossa abordagem (arquivo .ecore, EMF).
33. Abordagem MDD-SDN
Exemplo de mapeamento entre sintaxe concreta e abstrata.
Maceió, Brasil
15-17 de outubro, 2014
34. Abordagem MDD-SDN
[%for (policy in Policy) {%]
[%if (policy.concession == 'Deny') {%]
try:
nb = [%=policy.condition%]
Trecho de um dos templates EGL, definidos para geração de código.
DSL subjacente: Pyretic/Python. Controlador: POX.
Maceió, Brasil
15-17 de outubro, 2014
(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"
[…]
35. Agenda
Introdução
Por que SDN é
importante?
O que é
exatamente?
SDN
Gerenciamento
SDN
MDD
Maceió, Brasil
15-17 de outubro, 2014
Abordagem
MDD-SDN
Sintaxes
Simulação
Geração e teste
de código
Considerações
Finais
36. Agenda
Introdução
Por que SDN é
importante?
O que é
exatamente?
SDN
Gerenciamento
SDN
MDD
Maceió, Brasil
15-17 de outubro, 2014
Abordagem
MDD-SDN
Sintaxes
Simulação
Geração e teste
de código
Considerações
Finais
38. Simulação
Duas políticas:
– Controle de acesso
nos períodos especi-ficados.
– Execução do código
gerado no controlador
POX.
39. Simulação
Execução do teste:
– Verificação da aplicação das políticas utilizando
comando pingall.
40. Agenda
Introdução
Por que SDN é
importante?
O que é
exatamente?
SDN
Gerenciamento
SDN
MDD
Maceió, Brasil
15-17 de outubro, 2014
Abordagem
MDD-SDN
Sintaxes
Simulação
Geração e teste
de código
Considerações
Finais
41. Agenda
Introdução
Por que SDN é
importante?
O que é
exatamente?
SDN
Gerenciamento
SDN
MDD
Maceió, Brasil
15-17 de outubro, 2014
Abordagem
MDD-SDN
Sintaxes
Simulação
Geração e teste
de código
Considerações
Finais
42. Considerações Finais
Comparação com outros trabalhos:
Principais Funcionalidades
para Modelagem SDN
Miniedit 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
SIM SIM SIM SIM
controladores
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ó, Brasil
15-17 de outubro, 2014
43. 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ó, Brasil
15-17 de outubro, 2014
44. 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ó, Brasil
15-17 de outubro, 2014
45. Sessão 4 – Abordagem Dirigida a Modelos para o
Gerenciamento de Redes Definidas por Software
Felipe Lopes, Stenio Fernandes
{fal3, sflf}@cin.ufpe.br