![Page 1: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/1.jpg)
Felipe A. LopesMestrando do Cin/UFPE e colaborador no projeto OpenDaylightfelipealencar.net
Software-Defined Networking (SDN)Conceitos Básicos, Programação e Desafios
![Page 2: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/2.jpg)
Agenda
SDN?
DESAFIOS
MODEL-DRIVEN
NETWORKING
![Page 3: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/3.jpg)
![Page 4: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/4.jpg)
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)
![Page 5: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/5.jpg)
Agenda
SDN?
DESAFIOS
MODEL-DRIVEN
NETWORKING
![Page 6: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/6.jpg)
SDN: Uma Definição em Evolução
![Page 7: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/7.jpg)
SDN: Arquitetura
Arquitetura de Rede Tradicional
Arquitetura de SDN
![Page 8: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/8.jpg)
O que permite a comunicação entre os controladores e o data plane?
![Page 9: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/9.jpg)
SDN: Arquitetura
![Page 10: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/10.jpg)
Importante: Openflow não é igual à SDN.
SoftwareDefined
Networking
Openflow
![Page 11: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/11.jpg)
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.
![Page 12: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/12.jpg)
Como isso funciona?
![Page 13: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/13.jpg)
SDN: Como funciona o OpenFlow
Data Data Data
![Page 14: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/14.jpg)
SDN: Como funciona o OpenFlow
Data Data Data
Compara camposde cabeçalho
![Page 15: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/15.jpg)
SDN: Como funciona o OpenFlow
Data Data Data
Caso não encontre,o switch se comunicacom o controlador
![Page 16: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/16.jpg)
SDN: Como funciona o OpenFlow
Data Data Data
![Page 17: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/17.jpg)
SDN: FlowTable em mais detalhes
FLOW TABLE
HEADER FIELDS COUNTERS ACTIONS
... ... ...
![Page 18: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/18.jpg)
Pra que serve tudo isso?
![Page 19: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/19.jpg)
![Page 20: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/20.jpg)
![Page 21: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/21.jpg)
![Page 22: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/22.jpg)
Onde está o S de SDN?
![Page 23: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/23.jpg)
SDN: Visão Geral
![Page 24: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/24.jpg)
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)
![Page 25: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/25.jpg)
SDN: Programação
Não existe, ainda, um processo padrão para o desenvolvimento de aplicações de rede em SDN.
![Page 26: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/26.jpg)
SDN: Programação
“SDN make it possible to implement exciting new network services, SDN does not make it easy.” – Nate Foster
![Page 27: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/27.jpg)
Agenda
SDN?
DESAFIOS
MODEL-DRIVEN
NETWORKING
![Page 28: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/28.jpg)
SDN: Desafios
EscalabilidadeSegurançaPerformanceGerenciamentoDesenvolvimento de Aplicações[...]
![Page 29: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/29.jpg)
SDN: Desafios
EscalabilidadeSegurançaPerformanceGerenciamentoDesenvolvimento de Aplicações[...]
![Page 30: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/30.jpg)
SDN: Desenvolvimento de Aplicações
Soluções Atuais:
REST APISDN Programming Languages
![Page 31: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/31.jpg)
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.
![Page 32: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/32.jpg)
SDN: Desenvolvimento de Aplicações
SDN Programming Languages:FatTire, FML e Procera são exemplos de Domain-Specific Languages (DSL) para SDN.
![Page 33: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/33.jpg)
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.
![Page 34: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/34.jpg)
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.
![Page 35: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/35.jpg)
SDN: Desenvolvimento de Aplicações
SDN Programming Languages:
Select(packets) * GroupBy([srcmac]) *SplitWhen([inport]) *Limit(1)
Exemplo de sintaxe em Frenetic
![Page 36: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/36.jpg)
Linguagens e APIs tornam aplicações dependentes de controladores
![Page 37: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/37.jpg)
Agenda
SDN?
DESAFIOS
MODEL-DRIVEN
NETWORKING
![Page 38: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/38.jpg)
Model-Driven Networking
Conceito proposto em projeto de pesquisa do Cin/UFPE.
![Page 39: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/39.jpg)
Model-Driven Networking
Associação entre o paradigma de desenvolvimento de software Model-Driven Development (MDD) e SDN.
![Page 40: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/40.jpg)
Model-Driven Networking
Model-Driven Development (MDD)
![Page 41: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/41.jpg)
Model-Driven Networking
Aproveitamento de todo potencial de abstração possibilitado em SDN.
![Page 42: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/42.jpg)
Model-Driven Networking
Syntaxe Concreta Syntaxe Abstrata
![Page 43: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/43.jpg)
Model-Driven Networking
Nova abordagem para o desenvolvimento de aplicações SDN.
![Page 44: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/44.jpg)
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" […]
![Page 45: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/45.jpg)
Resumo
![Page 46: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/46.jpg)
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)
![Page 47: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/47.jpg)
SDN?
Permite a Programação
da rede
SDN
x
OpenFlow
Associação entre MDD
e SDN
![Page 48: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios](https://reader033.vdocuments.pub/reader033/viewer/2022060117/55877f1fd8b42ac44c8b461b/html5/thumbnails/48.jpg)
Obrigado.