O documento descreve a plataforma Placidus para verificação formal de redes definidas por software. A plataforma inclui módulos para verificar propriedades como conflitos, redundâncias e reachability. Os módulos usam algoritmos e estruturas de dados para comparar regras e verificar se pacotes podem alcançar switches específicos. Resultados experimentais mostram que a plataforma pode verificar propriedades em redes de tamanho significativo.
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.
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
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
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