26
Aluno: Felipe Alencar Programando SDNs

Programando SDNs

Embed Size (px)

DESCRIPTION

Introdução sobre desenvolvimento SDN e desafios existentes.

Citation preview

Page 1: Programando SDNs

Aluno: Felipe Alencar

Programando SDNs

Page 2: Programando SDNs

Baseado no tutorial de:

Dr. Nick Feamster.

Programando SDNs

Page 3: Programando SDNs

Programando SDNs

1. Motivação

2. Linguagens de Programação para SDNs

3. Composição do controle em SDN

4. SDN, orientada a eventos

Page 4: Programando SDNs

Programando SDNs

OpenFlow: programação complexa. Dificuldades para executar múltiplas

tarefas independentes. OpenFlow possui um nível baixo de

abstração. O controlador apenas visualiza eventos de

pacotes que os switches não sabem manipular.

Condições de disputa, caso as regras no nível dos switches não estejam instaladas corretamente.

Page 5: Programando SDNs

Programando SDNs: soluções

“NORTHBOUND API” Interface de programação que permite às

aplicações e sistemas de orquestração programarem a rede.

Usos:– Computação de caminhos;– Prevenção de loops;– Roteamento;– Segurança.

https://www.opennetworking.org/competition

Page 6: Programando SDNs

Programando SDNs: soluções

“NORTHBOUND API” Atualmente não existem padrões que

definam esta API. São vistas várias APIs e linguagens de

programações:– Cada uma “compila” regras OpenFlow que são instaladas

nos switches. Objetivos: orchestration de serviços de alto-nível.

Page 7: Programando SDNs

Programando SDNs

OpenFlow: “SOUTHBOUND API” É uma tecnologia que oferece controle

sobre switches. Torna possível redes programáveis, mas

não torna isto fácil. “Northbound API” podem ajudar:

– Eventos sofisticados;– Composição de políticas/regras;– Manipulação de eventos.

Page 8: Programando SDNs

Programando SDNs

Três Passos:

Page 9: Programando SDNs

Programando SDNs

Frenetic: SQL-Like Query Language

Pode resolver e abstrair o problema do monitoramento.Monitoramento de Tráfego Aprendendo a localização do host

Page 10: Programando SDNs

Programando SDNs

Outros desafios: composição de políticas, resposta à eventos e compilação.

Page 11: Programando SDNs

Programando SDNs: Composição de Políticas

Pyretic É uma linguagem e runtime para SDN:

– Linguagem: expressa políticas em alto-nível;– Runtime: “compila” estas políticas para regras OpenFlow.

Permite aos programadores especificarem políticas em “pacotes localizados” (pacote + localização).

Page 12: Programando SDNs

Programando SDNs: Composição de Políticas

Pyretic Em OpenFlow, políticas são padrões de bits. Com Pyretic, políticas são funções que mapeiam

pacotes para outros pacotes.

Page 13: Programando SDNs

Programando SDNs

Muito das configurações de rede é somente processamento de eventos. “Limitar taxa de todo tráfego Bittorrent entre 7 e 9

da noite.” “Não utilizar mais que 100GB da minha banda

mensal alocada em tráfego do Netflix.” “Se um host for infectado, redirecioná-lo para um

portal com patches de software.”

Page 14: Programando SDNs

Programando SDNs: Resonance

Abordagem Resonance: Controle da rede baseado em eventos (Event-Driven).

Ideia principal: Expressar as políticas da rede como programas

baseados em eventos.

Resonance: Inference-Based Access Control for Entreprise Networks.Nayak, Reimers, Feamster, Clark.

ACM SIGCOMM Workshop on Enterprise Networks. August 2009.

Page 15: Programando SDNs

Programando SDNs: Resonance

Resonance: Inference-Based Access Control for Entreprise Networks.Nayak, reimers, Feamster, Clark.ACM SIGCOMM Workshop on Enterprise Networks. August 2009.

Page 16: Programando SDNs

Programando SDNs: Event-Driven

Resonance: Inference-Based Access Control for Entreprise Networks.Nayak, reimers, Feamster, Clark.ACM SIGCOMM Workshop on Enterprise Networks. August 2009.

Domínios Exemplos

Tempo Horários dos picos de tráfego, início do semestre acadêmico

História Quantidade de utilização de dados, taxa de tráfego, atraso de tráfego, taxa de perda

Usuário Identidade do usuário, atribuição de política de grupo distinta

Fluxo (Flow) Porta de entrada, fonte ethernet, destino ethernet, ether type, vlan id, prioridade vlan, IP da fonte, IP do destino, IP ToS bits, porta destino, porta fonte

Page 17: Programando SDNs

Programando SDNs: Resonance

Máquina de Estado Finito Estado: Uma série de valores de domínio

representam um estado. Representação do estado da rede.

Eventos: Controle de domínios orientado a eventos disparam transições de estado na máquina de estado finito do controlador:– Invasões;– Flutuações de tráfego;– Chegada e partida de hosts.

Page 18: Programando SDNs

Programando SDNs: Resonance

Manipulador de Eventos Dinâmicos Reage a eventos do domínio; Determina a fonte do evento; Atualiza o estado baseado no tipo do

evento; Pode processar eventos internos e

externos.

Page 19: Programando SDNs

Programando SDNs: Resonance

Page 20: Programando SDNs

Programando SDNs

Exemplo de uma Campus Network

Page 21: Programando SDNs

Programando SDNs

Problemas com a abordagem atual: O controle de acesso é “grosseiro”:

– Estático, inflexível e inclinado à erros de configuração;– Precisa confiar em VLANs para isolar máquinas infectadas.

Não consegue remanejar hosts para diferentes partes da rede:– É preciso uma requisição DHCP, que para o usuário Windows

significa um restart no serviço.

Page 22: Programando SDNs

Programando SDNs

Page 23: Programando SDNs

Programando SDNs: Proposta

Estado atual da pesquisa: Pyretic; Análise de ferramentas gráficas em SDN: Avior; Definição do modelo SDN.

Page 24: Programando SDNs

Programando SDNs: Proposta

Pyretic: Linguagem de domínio específico; Composição de operadores e biblioteca de

políticas para o encaminhamento e consultas de tráfego;

Permite que cada política opere em uma topologia abstrata que implicitamente determinar o que cada módulo (firewall, load balancer) pode ver e fazer;

Fornece um novo modelo de pacote abstrato que permite aos programadores extender pacotes com campos virtuais que talvez possam ser associados com metadados de alto nível.

Page 25: Programando SDNs

Programando SDNs: Proposta

Avior: Desenvolvida pelo grupo de estudos em

OpenFlow da IBM; Utiliza o controlador OpenFlow Floodlight; Lançada dia 25 de julho;

Page 26: Programando SDNs

Referências

J. S. Turner e D. E. Taylor, “Diversifying the Internet,” IEEE Global Telecommunications Conference, GLOBECOM '05., pp. 760-765, 2 December 2005.

N. Feamster, J. Rexford e E. Zegura, “The Road to SDN,” Queue - Large-Scale Implementations, vol. 11 Issue 12, p. 20, 2013.

Open Networking Foundation, “OpenFlow Switch Specification 1.4.0,” 14 Oct 2013. [Online]. Available: https://www.opennetworking.org/images/stories/downloads/sdn-resources/onf-specifications/openflow/openflow-spec-v1.4.0.pdf. [Acesso em 20 Apr 2014].

The Frenetic Project www.frenetic-lang.org/

Nick Feamster course - http://masimum.inf.um.es/fjrm/2013/09/05/software-defined-networking-by-nick-feamster/