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

Post on 22-Jun-2015

298 Views

Category:

Internet

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

fal3@cin.ufpe.br

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.

top related