software-defined networking (sdn) - conceitos básicos, programação e desafios

48
Felipe A. Lopes Mestrando do Cin/UFPE e colaborador no projeto OpenDaylight felipealencar.net [email protected] Software-Defined Networking (SDN) Conceitos Básicos, Programação e Desafios

Upload: felipe-alencar

Post on 22-Jun-2015

298 views

Category:

Internet


0 download

DESCRIPTION

Slides da apresentação realizada para a turma de Engenharia da Computação no CIn/UFPE.

TRANSCRIPT

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

Felipe A. LopesMestrando do Cin/UFPE e colaborador no projeto OpenDaylightfelipealencar.net

[email protected]

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

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

Agenda

SDN?

DESAFIOS

MODEL-DRIVEN

NETWORKING

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

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

Agenda

SDN?

DESAFIOS

MODEL-DRIVEN

NETWORKING

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

SDN: Uma Definição em Evolução

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

SDN: Arquitetura

Arquitetura de Rede Tradicional

Arquitetura de SDN

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

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

SDN: Arquitetura

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

Importante: Openflow não é igual à SDN.

SoftwareDefined

Networking

Openflow

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

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

Como isso funciona?

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

SDN: Como funciona o OpenFlow

Data Data Data

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

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

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

SDN: Como funciona o OpenFlow

Data Data Data

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

SDN: FlowTable em mais detalhes

FLOW TABLE

HEADER FIELDS COUNTERS ACTIONS

... ... ...

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

Pra que serve tudo isso?

Page 19: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios
Page 20: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios
Page 21: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios
Page 22: Software-Defined Networking (SDN) - Conceitos Básicos, Programação e Desafios

Onde está o S de SDN?

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

SDN: Visão Geral

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

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

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

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

Agenda

SDN?

DESAFIOS

MODEL-DRIVEN

NETWORKING

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

SDN: Desafios

EscalabilidadeSegurançaPerformanceGerenciamentoDesenvolvimento de Aplicações[...]

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

SDN: Desafios

EscalabilidadeSegurançaPerformanceGerenciamentoDesenvolvimento de Aplicações[...]

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

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

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

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

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

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

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

Linguagens e APIs tornam aplicações dependentes de controladores

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

Agenda

SDN?

DESAFIOS

MODEL-DRIVEN

NETWORKING

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

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

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

Model-Driven Networking

Model-Driven Development (MDD)

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

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

Model-Driven Networking

Syntaxe Concreta Syntaxe Abstrata

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

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

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

Resumo

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

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

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

Obrigado.