SlideShare uma empresa Scribd logo
1 de 48
Software-Defined Networking (SDN) 
Conceitos Básicos, Programação e Desafios 
Felipe A. Lopes 
Mestrando do Cin/UFPE e colaborador no projeto OpenDaylight 
felipealencar.net 
fal3@cin.ufpe.br
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. 
Openflow 
Software 
Defined 
Networking
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 
Compara campos 
de cabeçalho 
Data Data Data
SDN: Como funciona o OpenFlow 
Caso não encontre, 
o switch se comunica 
com o controlador 
Data Data Data
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 
Escalabilidade 
Segurança 
Performance 
Gerenciamento 
Desenvolvimento de 
Aplicações 
[...]
SDN: Desafios 
Escalabilidade 
Segurança 
Performance 
Gerenciamento 
Desenvolvimento de 
Aplicações 
[...]
SDN: Desenvolvimento de Aplicações 
Soluções Atuais: 
REST API 
SDN 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.

Mais conteúdo relacionado

Mais procurados

Gerenciamento de Projeto Rede de computadores
Gerenciamento de Projeto Rede de computadoresGerenciamento de Projeto Rede de computadores
Gerenciamento de Projeto Rede de computadoresLucas Mendes
 
Prova roteamentoavancado-30102011
Prova roteamentoavancado-30102011Prova roteamentoavancado-30102011
Prova roteamentoavancado-30102011Carlos Melo
 
Aula 03 - Analisando objetivos técnicos - Projeto de Redes de Computadores
Aula 03 - Analisando objetivos técnicos - Projeto de Redes de ComputadoresAula 03 - Analisando objetivos técnicos - Projeto de Redes de Computadores
Aula 03 - Analisando objetivos técnicos - Projeto de Redes de ComputadoresDalton Martins
 
Projetos Estruturados de Redes - Parte 3
Projetos Estruturados de Redes - Parte 3Projetos Estruturados de Redes - Parte 3
Projetos Estruturados de Redes - Parte 3José Wagner Bungart
 
Projetos Estruturados de Redes - Parte 2
Projetos Estruturados de Redes - Parte 2Projetos Estruturados de Redes - Parte 2
Projetos Estruturados de Redes - Parte 2José Wagner Bungart
 
Redes Avançadas - 3.Noções de Projeto de Redes
Redes Avançadas - 3.Noções de Projeto de RedesRedes Avançadas - 3.Noções de Projeto de Redes
Redes Avançadas - 3.Noções de Projeto de RedesMauro Tapajós
 
New TCP version for large bandwidth networks
New TCP version for large bandwidth networksNew TCP version for large bandwidth networks
New TCP version for large bandwidth networksDavid Serafim
 
Aula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosAula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosMessias Batista
 

Mais procurados (9)

Gerenciamento de Projeto Rede de computadores
Gerenciamento de Projeto Rede de computadoresGerenciamento de Projeto Rede de computadores
Gerenciamento de Projeto Rede de computadores
 
Prova roteamentoavancado-30102011
Prova roteamentoavancado-30102011Prova roteamentoavancado-30102011
Prova roteamentoavancado-30102011
 
Aula 03 - Analisando objetivos técnicos - Projeto de Redes de Computadores
Aula 03 - Analisando objetivos técnicos - Projeto de Redes de ComputadoresAula 03 - Analisando objetivos técnicos - Projeto de Redes de Computadores
Aula 03 - Analisando objetivos técnicos - Projeto de Redes de Computadores
 
Projetos Estruturados de Redes - Parte 3
Projetos Estruturados de Redes - Parte 3Projetos Estruturados de Redes - Parte 3
Projetos Estruturados de Redes - Parte 3
 
Projetos Estruturados de Redes - Parte 2
Projetos Estruturados de Redes - Parte 2Projetos Estruturados de Redes - Parte 2
Projetos Estruturados de Redes - Parte 2
 
DevOps: Entregando software e serviços rapidamente
DevOps: Entregando software e serviços rapidamenteDevOps: Entregando software e serviços rapidamente
DevOps: Entregando software e serviços rapidamente
 
Redes Avançadas - 3.Noções de Projeto de Redes
Redes Avançadas - 3.Noções de Projeto de RedesRedes Avançadas - 3.Noções de Projeto de Redes
Redes Avançadas - 3.Noções de Projeto de Redes
 
New TCP version for large bandwidth networks
New TCP version for large bandwidth networksNew TCP version for large bandwidth networks
New TCP version for large bandwidth networks
 
Aula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosAula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - Processos
 

Semelhante a Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios

III SBTI - Sessão 4 – Abordagem Dirigida a Modelos para o Gerenciamento de Re...
III SBTI - Sessão 4 – Abordagem Dirigida a Modelos para o Gerenciamento de Re...III SBTI - Sessão 4 – Abordagem Dirigida a Modelos para o Gerenciamento de Re...
III SBTI - Sessão 4 – Abordagem Dirigida a Modelos para o Gerenciamento de Re...Felipe Alencar
 
Em Direção às Redes Programáveis na Internet do Futuro
Em Direção às Redes Programáveis na Internet do FuturoEm Direção às Redes Programáveis na Internet do Futuro
Em Direção às Redes Programáveis na Internet do FuturoMagnos Martinello
 
T@rget trust integrando flex e java com blazeds
T@rget trust   integrando flex e java com blazedsT@rget trust   integrando flex e java com blazeds
T@rget trust integrando flex e java com blazedsTargettrust
 
01 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.101 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.1César Augusto Pessôa
 
OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)Ricardo Rufino
 
Introdução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETIntrodução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETMário Meyrelles
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosFrederico Madeira
 
ARQUITETURA DISTRIBUÍDA DE SOFTWARE PARA AMBIENTE DE DESENVOLVIMENTO DISTRIBUÍDO
ARQUITETURA DISTRIBUÍDA DE SOFTWARE PARA AMBIENTE DE DESENVOLVIMENTO DISTRIBUÍDOARQUITETURA DISTRIBUÍDA DE SOFTWARE PARA AMBIENTE DE DESENVOLVIMENTO DISTRIBUÍDO
ARQUITETURA DISTRIBUÍDA DE SOFTWARE PARA AMBIENTE DE DESENVOLVIMENTO DISTRIBUÍDOEstevão Hess
 
Criando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindCriando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindJaydson Gomes
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKRyan Padilha
 
Arquitetando aplicações php
Arquitetando aplicações phpArquitetando aplicações php
Arquitetando aplicações phpEduardo Cesar
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014Giovanni Bassi
 
Indo alem do_mvc_node_js
Indo alem do_mvc_node_jsIndo alem do_mvc_node_js
Indo alem do_mvc_node_jsgustavobeavis
 
Sistemas Operacionais em redes
Sistemas Operacionais em redesSistemas Operacionais em redes
Sistemas Operacionais em redesDaniel Brandão
 

Semelhante a Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios (20)

III SBTI - Sessão 4 – Abordagem Dirigida a Modelos para o Gerenciamento de Re...
III SBTI - Sessão 4 – Abordagem Dirigida a Modelos para o Gerenciamento de Re...III SBTI - Sessão 4 – Abordagem Dirigida a Modelos para o Gerenciamento de Re...
III SBTI - Sessão 4 – Abordagem Dirigida a Modelos para o Gerenciamento de Re...
 
Em Direção às Redes Programáveis na Internet do Futuro
Em Direção às Redes Programáveis na Internet do FuturoEm Direção às Redes Programáveis na Internet do Futuro
Em Direção às Redes Programáveis na Internet do Futuro
 
DotNet vs. Java
DotNet vs. JavaDotNet vs. Java
DotNet vs. Java
 
T@rget trust integrando flex e java com blazeds
T@rget trust   integrando flex e java com blazedsT@rget trust   integrando flex e java com blazeds
T@rget trust integrando flex e java com blazeds
 
01 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.101 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.1
 
OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)
 
Introdução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETIntrodução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NET
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas Distribuídos
 
Android juliana-mono
Android juliana-monoAndroid juliana-mono
Android juliana-mono
 
ARQUITETURA DISTRIBUÍDA DE SOFTWARE PARA AMBIENTE DE DESENVOLVIMENTO DISTRIBUÍDO
ARQUITETURA DISTRIBUÍDA DE SOFTWARE PARA AMBIENTE DE DESENVOLVIMENTO DISTRIBUÍDOARQUITETURA DISTRIBUÍDA DE SOFTWARE PARA AMBIENTE DE DESENVOLVIMENTO DISTRIBUÍDO
ARQUITETURA DISTRIBUÍDA DE SOFTWARE PARA AMBIENTE DE DESENVOLVIMENTO DISTRIBUÍDO
 
Aula 1
Aula 1Aula 1
Aula 1
 
Criando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindCriando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMind
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDK
 
RAD
RADRAD
RAD
 
Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0
 
Arquitetando aplicações php
Arquitetando aplicações phpArquitetando aplicações php
Arquitetando aplicações php
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014
 
Cursos
CursosCursos
Cursos
 
Indo alem do_mvc_node_js
Indo alem do_mvc_node_jsIndo alem do_mvc_node_js
Indo alem do_mvc_node_js
 
Sistemas Operacionais em redes
Sistemas Operacionais em redesSistemas Operacionais em redes
Sistemas Operacionais em redes
 

Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios