Título do capítulo
Autor: Levindo Gabriel Taschetto Neto
Orientador: Alberto Egon Schaeffer-Filho
15/09/2016
Verificação F...
Introdução
Atualmente a necessidade por mais
programabilidade e flexibilidade encoraja a
utilização de abstrações de softw...
Objetivo do Trabalho
O objetivo do presente trabalho é investigar
métodos, e desenvolver aplicações para
verificar formalm...
Propriedades Exploradas em SDN
Conflitos
Regras com mesmo match (dados de
reconhecimento de pacote), mas ações
diferentes.
Propriedades Exploradas em SDN
Conflitos
Regras com mesmo match (dados de
reconhecimento de pacote), mas ações
diferentes....
Propriedades Exploradas em SDN
Conflitos
Regras com mesmo match (dados de
reconhecimento de pacote), mas ações
diferentes....
Placidus: A Platform for Formal Verification in
Software Defined Networks
O Placidus é uma plataforma de verificação
forma...
Placidus: Localização na rede
Controlador
SDN
Dispositivo
mal configurado
Fluxos
Placidus: Coleta de Dados
Placidus: Coleta de Dados
Placidus: Coleta de Dados
Placidus: Módulos
Verificador de
Conflitos e
Redundâncias
Verificador de
Reachability
Placidus: Verificador de Conflitos e Redundâncias
Estrutura de Dados
SW1
SW2
SW3
Switches Lista de regras de cada switch
M...
Placidus: Verificador de Conflitos e Redundâncias
Match 0
Match 1
Match 2
Match 3
Match 4
Algoritmo
Compara dados de recon...
Placidus: Verificador de Conflitos e Redundâncias
Algoritmo
Match 0
Match 1
Match 2
Match 3
Match 4
Compara dados de recon...
Placidus: Verificador de Conflitos e Redundâncias
Algoritmo
Match 0
Match 1
Match 2
Match 3
Match 4
Compara dados de recon...
Placidus: Verificador de Conflitos e Redundâncias
Algoritmo
Match 0
Match 1
Match 2
Match 3
Match 4
Compara dados de recon...
Placidus: Verificador de Conflitos e Redundâncias
Algoritmo
Match 0
Match 1
Match 2
Match 3
Match 4
Remove a primeira regra
Placidus: Verificador de Conflitos e Redundâncias
Algoritmo
Match 1
Match 2
Match 3
Match 4
Segue com as comparações até e...
Placidus: Verificador de Conflitos e Redundâncias
Match 1
Match 2
Match 3
Match 4
Iguais
Algoritmo
Segue com as comparaçõe...
Placidus: Verificador de Conflitos e Redundâncias
Ação 1
Ação 2
Algoritmo
Compara as ações das regras com iguais
dados de ...
Placidus: Verificador de Conflitos e Redundâncias
Ação 1
Ação 2
Diferentes
Algoritmo
Compara as ações das regras com iguai...
Placidus: Verificador de Conflitos e Redundâncias
Ação 1
Ação 2
DiferentesConflito
Algoritmo
Compara as ações das regras c...
Placidus: Verificador de Conflitos e Redundâncias
Ação 1
Ação 2
Iguais
Algoritmo
Compara as ações das regras com iguais
da...
Placidus: Verificador de Conflitos e Redundâncias
Ação 1
Ação 2
IguaisRedundância
Algoritmo
Compara as ações das regras co...
Placidus: Verificador de Conflitos e Redundâncias
Comparações a cada iteração
Desempenho
Comparações
Placidus: Verificador de Conflitos e Redundâncias
Execução
Switches contidos na
topologia
Placidus: Verificador de Conflitos e Redundâncias
Saída
São gerados três arquivos após a
execução
● Regras conflitantes
● ...
Placidus: Verificador de Reachability
Estrutura de Dados
Lista com listas de vetores de bits
Match Ação
SW1
SW2
SW3
Placidus: Verificador de Reachability
Algoritmo
Converte a tabela de dados geradas na
coleta para uma tabela de bits
“2” “...
Placidus: Verificador de Reachability
Algoritmo
Converte a tabela de dados geradas na
coleta para uma tabela de bits
“2” “...
Placidus: Verificador de Reachability
Algoritmo
A tabela de bits é convertida em listas de
vetores de bits
010101101 1
101...
Placidus: Verificador de Reachability
Algoritmo
O pacote de entrada é procurado nos n-1
bits das listas, por meio de um XN...
Placidus: Verificador de Reachability
Algoritmo
O pacote de entrada é procurado nos n-1
bits das listas, por meio de um XN...
Placidus: Verificador de Reachability
Algoritmo
O pacote de entrada é procurado nos n-1
bits das listas, por meio de um XN...
Placidus: Verificador de Reachability
Algoritmo
O pacote é encontrado nos n-1 bits de
uma das listas
010101101 1
101111011...
Placidus: Verificador de Reachability
Algoritmo
É feito um AND entre a ação da regra
encontrada com o bit 1
110110001 1
1
1
Placidus: Verificador de Reachability
Algoritmo
É feito um AND entre a ação da regra
encontrada com o bit 1
110110001 1
1
...
Placidus: Verificação de Reachability
Execução
Placidus: Resultados Experimentais
Configurações da máquina utilizada
Processador
Intel Core I7-4790 3.6GhZ de 8 núcleos
M...
Resultados Experimentais:
Conflitos e Redundâncias
nº de
regras
tempo (s)
Resultados Experimentais:
Reachability
tempo (s)
nº de
regras
Trabalhos em andamento
Atualmente tem se trabalhado em uma solução
para a verificação de Reachability com a
utilização de ...
Trabalhos relacionados
Alguns trabalhos que foram utilizados como
inspiração para os algoritmos desenvolvidos
para a plata...
Conclusão e Trabalhos Futuros
Nossa pesquisa na área de verificação formal
de redes SDN tem o propósito de tornar a rede
m...
Título do capítuloObrigado!
Salão de Iniciação Científica
UFRGS 2016
Autor: Levindo Gabriel Taschetto Neto
Orientador: Alb...
Próximos SlideShares
Carregando em…5
×

Apresentação SIC 2016

110 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
110
No SlideShare
0
A partir de incorporações
0
Número de incorporações
6
Ações
Compartilhamentos
0
Downloads
1
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Apresentação SIC 2016

  1. 1. Título do capítulo Autor: Levindo Gabriel Taschetto Neto Orientador: Alberto Egon Schaeffer-Filho 15/09/2016 Verificação Formal em Redes Definidas por Software
  2. 2. Introdução Atualmente a necessidade por mais programabilidade e flexibilidade encoraja a utilização de abstrações de software. Isso serve para realizar atividades relacionadas à operação da rede. Exemplos • Algoritmos de roteamento • Balanceadores de carga Software fechado rodando em um hardware proprietário Manipulação de fluxos de dados usando software independentemente do hardware
  3. 3. Objetivo do Trabalho O objetivo do presente trabalho é investigar métodos, e desenvolver aplicações para verificar formalmente as seguintes propriedades em redes definidas por software • Conflitos • Redundâncias • Reachability
  4. 4. Propriedades Exploradas em SDN Conflitos Regras com mesmo match (dados de reconhecimento de pacote), mas ações diferentes.
  5. 5. Propriedades Exploradas em SDN Conflitos Regras com mesmo match (dados de reconhecimento de pacote), mas ações diferentes. Redundâncias Regras com mesmo match (dados de reconhecimento de pacote) e ações iguais.
  6. 6. Propriedades Exploradas em SDN Conflitos Regras com mesmo match (dados de reconhecimento de pacote), mas ações diferentes. Redundâncias Regras com mesmo match (dados de reconhecimento de pacote) e ações iguais. Reachability Determinado pacote que sai de um switch A chega em um switch B de maneira certa.
  7. 7. Placidus: A Platform for Formal Verification in Software Defined Networks O Placidus é uma plataforma de verificação formal para redes definidas por software. A plataforma conta com dois módulos que verificam as seguintes propriedades • Conflitos e Redundâncias de regras lógicas formados a partir de uma topologia. • Reachability dentro de uma rede.
  8. 8. Placidus: Localização na rede Controlador SDN Dispositivo mal configurado Fluxos
  9. 9. Placidus: Coleta de Dados
  10. 10. Placidus: Coleta de Dados
  11. 11. Placidus: Coleta de Dados
  12. 12. Placidus: Módulos Verificador de Conflitos e Redundâncias Verificador de Reachability
  13. 13. Placidus: Verificador de Conflitos e Redundâncias Estrutura de Dados SW1 SW2 SW3 Switches Lista de regras de cada switch Match Ação
  14. 14. Placidus: Verificador de Conflitos e Redundâncias Match 0 Match 1 Match 2 Match 3 Match 4 Algoritmo Compara dados de reconhecimento
  15. 15. Placidus: Verificador de Conflitos e Redundâncias Algoritmo Match 0 Match 1 Match 2 Match 3 Match 4 Compara dados de reconhecimento
  16. 16. Placidus: Verificador de Conflitos e Redundâncias Algoritmo Match 0 Match 1 Match 2 Match 3 Match 4 Compara dados de reconhecimento
  17. 17. Placidus: Verificador de Conflitos e Redundâncias Algoritmo Match 0 Match 1 Match 2 Match 3 Match 4 Compara dados de reconhecimento
  18. 18. Placidus: Verificador de Conflitos e Redundâncias Algoritmo Match 0 Match 1 Match 2 Match 3 Match 4 Remove a primeira regra
  19. 19. Placidus: Verificador de Conflitos e Redundâncias Algoritmo Match 1 Match 2 Match 3 Match 4 Segue com as comparações até encontrar regras com mesmo match
  20. 20. Placidus: Verificador de Conflitos e Redundâncias Match 1 Match 2 Match 3 Match 4 Iguais Algoritmo Segue com as comparações até encontrar regras com mesmo match
  21. 21. Placidus: Verificador de Conflitos e Redundâncias Ação 1 Ação 2 Algoritmo Compara as ações das regras com iguais dados de reconhecimento
  22. 22. Placidus: Verificador de Conflitos e Redundâncias Ação 1 Ação 2 Diferentes Algoritmo Compara as ações das regras com iguais dados de reconhecimento
  23. 23. Placidus: Verificador de Conflitos e Redundâncias Ação 1 Ação 2 DiferentesConflito Algoritmo Compara as ações das regras com iguais dados de reconhecimento
  24. 24. Placidus: Verificador de Conflitos e Redundâncias Ação 1 Ação 2 Iguais Algoritmo Compara as ações das regras com iguais dados de reconhecimento
  25. 25. Placidus: Verificador de Conflitos e Redundâncias Ação 1 Ação 2 IguaisRedundância Algoritmo Compara as ações das regras com iguais dados de reconhecimento
  26. 26. Placidus: Verificador de Conflitos e Redundâncias Comparações a cada iteração Desempenho Comparações
  27. 27. Placidus: Verificador de Conflitos e Redundâncias Execução Switches contidos na topologia
  28. 28. Placidus: Verificador de Conflitos e Redundâncias Saída São gerados três arquivos após a execução ● Regras conflitantes ● Regras redundantes ● Todas as regras da topologia No seguinte formato ... 00:04 ^00:02 ^0x0x806 -> output=1 Match Ação
  29. 29. Placidus: Verificador de Reachability Estrutura de Dados Lista com listas de vetores de bits Match Ação SW1 SW2 SW3
  30. 30. Placidus: Verificador de Reachability Algoritmo Converte a tabela de dados geradas na coleta para uma tabela de bits “2” “5” “5” “1” “5” “7” “3” “0” “6” “6” “1” “1” “7” “5” “6” “1” “2” “1” “5” “0” “6” “4” “7” “0”
  31. 31. Placidus: Verificador de Reachability Algoritmo Converte a tabela de dados geradas na coleta para uma tabela de bits “2” “5” “5” “1” “5” “7” “3” “0” “6” “6” “1” “1” “7” “5” “6” “1” “2” “1” “5” “0” “6” “4” “7” “0” 010 101 101 1 101 111 011 0 110 110 001 1 111 101 110 1 010 001 101 0 110 100 111 0
  32. 32. Placidus: Verificador de Reachability Algoritmo A tabela de bits é convertida em listas de vetores de bits 010101101 1 101111011 0 110110001 1 111101110 0 010001101 1 110100111 0
  33. 33. Placidus: Verificador de Reachability Algoritmo O pacote de entrada é procurado nos n-1 bits das listas, por meio de um XNOR bit a bit 010101101 1 101111011 0 110110001 1 111101110 0 010001101 1 110100111 0 110110001 0
  34. 34. Placidus: Verificador de Reachability Algoritmo O pacote de entrada é procurado nos n-1 bits das listas, por meio de um XNOR bit a bit 010101101 1 101111011 0 110110001 1 111101110 0 010001101 1 110100111 0 110110001 0
  35. 35. Placidus: Verificador de Reachability Algoritmo O pacote de entrada é procurado nos n-1 bits das listas, por meio de um XNOR bit a bit 010101101 1 101111011 0 110110001 1 111101110 0 010001101 1 110100111 0 110110001 0
  36. 36. Placidus: Verificador de Reachability Algoritmo O pacote é encontrado nos n-1 bits de uma das listas 010101101 1 101111011 0 110110001 1 111101110 0 010001101 1 110100111 0 110110001 1
  37. 37. Placidus: Verificador de Reachability Algoritmo É feito um AND entre a ação da regra encontrada com o bit 1 110110001 1 1 1
  38. 38. Placidus: Verificador de Reachability Algoritmo É feito um AND entre a ação da regra encontrada com o bit 1 110110001 1 1 1 Pacote pode passar
  39. 39. Placidus: Verificação de Reachability Execução
  40. 40. Placidus: Resultados Experimentais Configurações da máquina utilizada Processador Intel Core I7-4790 3.6GhZ de 8 núcleos Memória RAM 15.6 GB
  41. 41. Resultados Experimentais: Conflitos e Redundâncias nº de regras tempo (s)
  42. 42. Resultados Experimentais: Reachability tempo (s) nº de regras
  43. 43. Trabalhos em andamento Atualmente tem se trabalhado em uma solução para a verificação de Reachability com a utilização de grafos aliados aos vetores de bits.
  44. 44. Trabalhos relacionados Alguns trabalhos que foram utilizados como inspiração para os algoritmos desenvolvidos para a plataforma Placidus • Formal Correctness of Conflict Detection for Firewalls Caprett, V; Stepien, B; Felty, A; Matwin, S. • Header Space Analysis: Static Checking For Networks Kazemian,P; Varghese,G; McKeown,N.
  45. 45. Conclusão e Trabalhos Futuros Nossa pesquisa na área de verificação formal de redes SDN tem o propósito de tornar a rede mais robusta e confiável. Trabalhos futuros incluem • Uniformização das Estruturas de Dados • Detecção de loops • Detecção de black holes • Aprimoramento dos algoritmos para verificação das propriedades já verificadas
  46. 46. Título do capítuloObrigado! Salão de Iniciação Científica UFRGS 2016 Autor: Levindo Gabriel Taschetto Neto Orientador: Alberto Egon Schaeffer-Filho 15/09/2016

×