Programando SDNs
Post on 29-Jun-2015
242 Views
Preview:
DESCRIPTION
Transcript
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/
top related