SlideShare una empresa de Scribd logo
1 de 46
Descargar para leer sin conexión
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
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
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
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.
Redundâncias
Regras com mesmo match (dados de
reconhecimento de pacote) e ações iguais.
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.
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.
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
Match Ação
Placidus: Verificador de Conflitos e Redundâncias
Match 0
Match 1
Match 2
Match 3
Match 4
Algoritmo
Compara dados de reconhecimento
Placidus: Verificador de Conflitos e Redundâncias
Algoritmo
Match 0
Match 1
Match 2
Match 3
Match 4
Compara dados de reconhecimento
Placidus: Verificador de Conflitos e Redundâncias
Algoritmo
Match 0
Match 1
Match 2
Match 3
Match 4
Compara dados de reconhecimento
Placidus: Verificador de Conflitos e Redundâncias
Algoritmo
Match 0
Match 1
Match 2
Match 3
Match 4
Compara dados de reconhecimento
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é encontrar
regras com mesmo match
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
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
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
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
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
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
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
● Regras redundantes
● Todas as regras da topologia
No seguinte formato
... 00:04 ^00:02 ^0x0x806 -> output=1
Match Ação
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” “5” “5” “1”
“5” “7” “3” “0”
“6” “6” “1” “1”
“7” “5” “6” “1”
“2” “1” “5” “0”
“6” “4” “7” “0”
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
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
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
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
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
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
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
1
Pacote pode passar
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
Memória RAM
15.6 GB
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 grafos aliados aos vetores de bits.
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.
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
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

Más contenido relacionado

Similar a Apresentação SIC 2016

Comparação de desempenho entre SQL e NoSQL
Comparação de desempenho entre SQL e NoSQLComparação de desempenho entre SQL e NoSQL
Comparação de desempenho entre SQL e NoSQL
pichiliani
 
Metodologia de-testes
Metodologia de-testesMetodologia de-testes
Metodologia de-testes
padinho
 

Similar a Apresentação SIC 2016 (20)

V SEGINFO: “Utilizando padrões abertos para Coleta de informações e Assessmen...
V SEGINFO: “Utilizando padrões abertos para Coleta de informações e Assessmen...V SEGINFO: “Utilizando padrões abertos para Coleta de informações e Assessmen...
V SEGINFO: “Utilizando padrões abertos para Coleta de informações e Assessmen...
 
Jboss Night
Jboss NightJboss Night
Jboss Night
 
Maratona JBoss 2010 - Drools Expert : Programação Orientada a Regras
Maratona JBoss 2010 - Drools Expert : Programação Orientada a RegrasMaratona JBoss 2010 - Drools Expert : Programação Orientada a Regras
Maratona JBoss 2010 - Drools Expert : Programação Orientada a Regras
 
O que você precisa saber sobre testes unitários
O que você precisa saber sobre testes unitáriosO que você precisa saber sobre testes unitários
O que você precisa saber sobre testes unitários
 
WorkshopMaxtera_RevDados_11mar15
WorkshopMaxtera_RevDados_11mar15WorkshopMaxtera_RevDados_11mar15
WorkshopMaxtera_RevDados_11mar15
 
TDC2018SP | Trilha Comp Cognitiva - Quer ter um bom chatbot ? Entao vamos com...
TDC2018SP | Trilha Comp Cognitiva - Quer ter um bom chatbot ? Entao vamos com...TDC2018SP | Trilha Comp Cognitiva - Quer ter um bom chatbot ? Entao vamos com...
TDC2018SP | Trilha Comp Cognitiva - Quer ter um bom chatbot ? Entao vamos com...
 
Projeto de Software
Projeto de SoftwareProjeto de Software
Projeto de Software
 
Data science
Data scienceData science
Data science
 
Introdução a Ciência de Dados
Introdução a Ciência de DadosIntrodução a Ciência de Dados
Introdução a Ciência de Dados
 
Comparação de desempenho entre SQL e NoSQL
Comparação de desempenho entre SQL e NoSQLComparação de desempenho entre SQL e NoSQL
Comparação de desempenho entre SQL e NoSQL
 
Tomada de decisões com xPaaS aplicada ao fantasy game oficial do campeonato b...
Tomada de decisões com xPaaS aplicada ao fantasy game oficial do campeonato b...Tomada de decisões com xPaaS aplicada ao fantasy game oficial do campeonato b...
Tomada de decisões com xPaaS aplicada ao fantasy game oficial do campeonato b...
 
Monitoracao Inteligente na Globo.com
Monitoracao Inteligente na Globo.comMonitoracao Inteligente na Globo.com
Monitoracao Inteligente na Globo.com
 
Machine learning java ce conference 2012 - fortaleza ce
Machine learning java ce conference 2012 - fortaleza ceMachine learning java ce conference 2012 - fortaleza ce
Machine learning java ce conference 2012 - fortaleza ce
 
Aula12 T EES UFS Testes de SW
Aula12  T EES  UFS  Testes de SWAula12  T EES  UFS  Testes de SW
Aula12 T EES UFS Testes de SW
 
Aula12 TEES UFS Testes de SW
Aula12 TEES UFS Testes de SWAula12 TEES UFS Testes de SW
Aula12 TEES UFS Testes de SW
 
Metodologia de-testes
Metodologia de-testesMetodologia de-testes
Metodologia de-testes
 
Testando aplicações DataSnap
Testando aplicações DataSnapTestando aplicações DataSnap
Testando aplicações DataSnap
 
Pesquisa do Sapo
Pesquisa do SapoPesquisa do Sapo
Pesquisa do Sapo
 
Testes de Sistema
Testes de SistemaTestes de Sistema
Testes de Sistema
 
Usando Rede Bayesiana e Critério de Adequação para Obter uma Melhor Cobertura...
Usando Rede Bayesiana e Critério de Adequação para Obter uma Melhor Cobertura...Usando Rede Bayesiana e Critério de Adequação para Obter uma Melhor Cobertura...
Usando Rede Bayesiana e Critério de Adequação para Obter uma Melhor Cobertura...
 

Apresentação SIC 2016

  • 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. 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. 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. Propriedades Exploradas em SDN Conflitos Regras com mesmo match (dados de reconhecimento de pacote), mas ações diferentes.
  • 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. 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. 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. Placidus: Localização na rede Controlador SDN Dispositivo mal configurado Fluxos
  • 12. Placidus: Módulos Verificador de Conflitos e Redundâncias Verificador de Reachability
  • 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. Placidus: Verificador de Conflitos e Redundâncias Match 0 Match 1 Match 2 Match 3 Match 4 Algoritmo Compara dados de reconhecimento
  • 15. Placidus: Verificador de Conflitos e Redundâncias Algoritmo Match 0 Match 1 Match 2 Match 3 Match 4 Compara dados de reconhecimento
  • 16. Placidus: Verificador de Conflitos e Redundâncias Algoritmo Match 0 Match 1 Match 2 Match 3 Match 4 Compara dados de reconhecimento
  • 17. Placidus: Verificador de Conflitos e Redundâncias Algoritmo Match 0 Match 1 Match 2 Match 3 Match 4 Compara dados de reconhecimento
  • 18. Placidus: Verificador de Conflitos e Redundâncias Algoritmo Match 0 Match 1 Match 2 Match 3 Match 4 Remove a primeira regra
  • 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. 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. 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. 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. 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. 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. 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. Placidus: Verificador de Conflitos e Redundâncias Comparações a cada iteração Desempenho Comparações
  • 27. Placidus: Verificador de Conflitos e Redundâncias Execução Switches contidos na topologia
  • 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. Placidus: Verificador de Reachability Estrutura de Dados Lista com listas de vetores de bits Match Ação SW1 SW2 SW3
  • 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. 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. 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. 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. 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. 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. 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. Placidus: Verificador de Reachability Algoritmo É feito um AND entre a ação da regra encontrada com o bit 1 110110001 1 1 1
  • 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. Placidus: Verificação de Reachability Execução
  • 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. Resultados Experimentais: Conflitos e Redundâncias nº de regras tempo (s)
  • 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. 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. 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. 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