Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios
-
Upload
felipe-alencar -
Category
Internet
-
view
298 -
download
0
description
Transcript of Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios
Felipe A. LopesMestrando do Cin/UFPE e colaborador no projeto OpenDaylightfelipealencar.net
Software-Defined Networking (SDN)Conceitos Básicos, Programação e Desafios
Agenda
SDN?
DESAFIOS
MODEL-DRIVEN
NETWORKING
A Nova Rede
Redes Configuráveis
Aplicações para Redes
Interfaces de Rede
Redes Gerenciadas
Conecta Nós
Redes Orquestradas
Aplicações de Redes
Interfaces Programáticas
Redes Auto-Gerenciáveis
Conecta Pessoas (ou coisas)
Agenda
SDN?
DESAFIOS
MODEL-DRIVEN
NETWORKING
SDN: Uma Definição em Evolução
SDN: Arquitetura
Arquitetura de Rede Tradicional
Arquitetura de SDN
O que permite a comunicação entre os controladores e o data plane?
SDN: Arquitetura
Importante: Openflow não é igual à SDN.
SoftwareDefined
Networking
Openflow
SDN: OpenFlow
OpenFlow é um protocolo SDN de comunicação da camada 2 que fornece acesso ao plano de dados de um switch/router na rede.
Como isso funciona?
SDN: Como funciona o OpenFlow
Data Data Data
SDN: Como funciona o OpenFlow
Data Data Data
Compara camposde cabeçalho
SDN: Como funciona o OpenFlow
Data Data Data
Caso não encontre,o switch se comunicacom o controlador
SDN: Como funciona o OpenFlow
Data Data Data
SDN: FlowTable em mais detalhes
FLOW TABLE
HEADER FIELDS COUNTERS ACTIONS
... ... ...
Pra que serve tudo isso?
Onde está o S de SDN?
SDN: Visão Geral
SDN: Programação
- Controladores SDN são softwares semelhantes à SOs tradicionais;
- Escritos em linguagem de propósito geral (GPL);
- Suportam as aplicações de rede (e.g., firewall, QoS)
SDN: Programação
Não existe, ainda, um processo padrão para o desenvolvimento de aplicações de rede em SDN.
SDN: Programação
“SDN make it possible to implement exciting new network services, SDN does not make it easy.” – Nate Foster
Agenda
SDN?
DESAFIOS
MODEL-DRIVEN
NETWORKING
SDN: Desafios
EscalabilidadeSegurançaPerformanceGerenciamentoDesenvolvimento de Aplicações[...]
SDN: Desafios
EscalabilidadeSegurançaPerformanceGerenciamentoDesenvolvimento de Aplicações[...]
SDN: Desenvolvimento de Aplicações
Soluções Atuais:
REST APISDN Programming Languages
SDN: Desenvolvimento de Aplicações
REST API:Controladores fornecem uma API para o desenvolvedor criar suas aplicações SDN utilizando GPL. Mas é difícil lidar diretamente com as diversas regras possíveis numa rede.
SDN: Desenvolvimento de Aplicações
SDN Programming Languages:FatTire, FML e Procera são exemplos de Domain-Specific Languages (DSL) para SDN.
SDN: Desenvolvimento de Aplicações
SDN Programming Languages:Tentam facilitar o desenvolvimento de aplicações SDN, diminuindo a complexidade, lidando com políticas conflitantes e evitando aplicações que comprometam a rede.
SDN: Desenvolvimento de Aplicações
SDN Programming Languages:Tentam facilitar o desenvolvimento de aplicações SDN, diminuindo a complexidade, lidando com políticas conflitantes e evitando aplicações que comprometam a rede.
SDN: Desenvolvimento de Aplicações
SDN Programming Languages:
Select(packets) * GroupBy([srcmac]) *SplitWhen([inport]) *Limit(1)
Exemplo de sintaxe em Frenetic
Linguagens e APIs tornam aplicações dependentes de controladores
Agenda
SDN?
DESAFIOS
MODEL-DRIVEN
NETWORKING
Model-Driven Networking
Conceito proposto em projeto de pesquisa do Cin/UFPE.
Model-Driven Networking
Associação entre o paradigma de desenvolvimento de software Model-Driven Development (MDD) e SDN.
Model-Driven Networking
Model-Driven Development (MDD)
Model-Driven Networking
Aproveitamento de todo potencial de abstração possibilitado em SDN.
Model-Driven Networking
Syntaxe Concreta Syntaxe Abstrata
Model-Driven Networking
Nova abordagem para o desenvolvimento de aplicações SDN.
Model-Driven Networking
[%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" […]
Resumo
SDN?
Nova arquitetura de rede
Redes Configuráveis
Aplicações para Redes
Interfaces de Rede
Redes Gerenciadas
Conecta Nós
Redes Orquestradas
Aplicações de Redes
Interfaces Programáticas
Redes Auto-Gerenciáveis
Conecta Pessoas (ou coisas)
SDN?
Permite a Programação
da rede
SDN
x
OpenFlow
Associação entre MDD
e SDN
Obrigado.