Programando SDNs

Preview:

DESCRIPTION

Introdução sobre desenvolvimento SDN e desafios existentes.

Citation preview

Aluno: Felipe Alencar

Programando SDNs

Baseado no tutorial de:

Dr. Nick Feamster.

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

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.

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

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.

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.

Programando SDNs

Três Passos:

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

Programando SDNs

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

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).

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.

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.”

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.

Programando SDNs: Resonance

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

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

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.

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.

Programando SDNs: Resonance

Programando SDNs

Exemplo de uma Campus Network

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.

Programando SDNs

Programando SDNs: Proposta

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

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.

Programando SDNs: Proposta

Avior: Desenvolvida pelo grupo de estudos em

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

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/