apresentação sic 2016

46
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

Upload: levindo-gabriel-taschetto-neto

Post on 12-Apr-2017

106 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Apresentação SIC 2016

Título do capítulo Autor: Levindo Gabriel Taschetto NetoOrientador: Alberto Egon Schaeffer-Filho 15/09/2016

Verificação Formal em Redes Definidas por Software

Page 2: Apresentação SIC 2016

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

Page 3: Apresentação SIC 2016

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

Page 4: Apresentação SIC 2016

Propriedades Exploradas em SDN

ConflitosRegras com mesmo match (dados de reconhecimento de pacote), mas ações diferentes.

Page 5: Apresentação SIC 2016

Propriedades Exploradas em SDN

ConflitosRegras com mesmo match (dados de reconhecimento de pacote), mas ações diferentes.RedundânciasRegras com mesmo match (dados de reconhecimento de pacote) e ações iguais.

Page 6: Apresentação SIC 2016

Propriedades Exploradas em SDN

ConflitosRegras com mesmo match (dados de reconhecimento de pacote), mas ações diferentes.RedundânciasRegras com mesmo match (dados de reconhecimento de pacote) e ações iguais.ReachabilityDeterminado pacote que sai de um switch A chega em um switch B de maneira certa.

Page 7: Apresentação SIC 2016

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.

Page 8: Apresentação SIC 2016

Placidus: Localização na rede

ControladorSDN

Dispositivomal configurado

Fluxos

Page 9: Apresentação SIC 2016

Placidus: Coleta de Dados

Page 10: Apresentação SIC 2016

Placidus: Coleta de Dados

Page 11: Apresentação SIC 2016

Placidus: Coleta de Dados

Page 12: Apresentação SIC 2016

Placidus: Módulos

Verificador de Conflitos e

Redundâncias

Verificador de Reachability

Page 13: Apresentação SIC 2016

Placidus: Verificador de Conflitos e Redundâncias

Estrutura de Dados

SW1

SW2

SW3

Switches Lista de regras de cada switchMatch Ação

Page 14: Apresentação SIC 2016

Placidus: Verificador de Conflitos e Redundâncias

Match 0

Match 1

Match 2

Match 3

Match 4

AlgoritmoCompara dados de reconhecimento

Page 15: Apresentação SIC 2016

Placidus: Verificador de Conflitos e Redundâncias

Algoritmo

Match 0

Match 1

Match 2

Match 3

Match 4

Compara dados de reconhecimento

Page 16: Apresentação SIC 2016

Placidus: Verificador de Conflitos e Redundâncias

Algoritmo

Match 0

Match 1

Match 2

Match 3

Match 4

Compara dados de reconhecimento

Page 17: Apresentação SIC 2016

Placidus: Verificador de Conflitos e Redundâncias

Algoritmo

Match 0

Match 1

Match 2

Match 3

Match 4

Compara dados de reconhecimento

Page 18: Apresentação SIC 2016

Placidus: Verificador de Conflitos e Redundâncias

Algoritmo

Match 0

Match 1

Match 2

Match 3

Match 4

Remove a primeira regra

Page 19: Apresentação SIC 2016

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

Page 20: Apresentação SIC 2016

Placidus: Verificador de Conflitos e Redundâncias

Match 1

Match 2

Match 3

Match 4

Iguais

AlgoritmoSegue com as comparações até encontrar regras com mesmo match

Page 21: Apresentação SIC 2016

Placidus: Verificador de Conflitos e Redundâncias

Ação 1

Ação 2

AlgoritmoCompara as ações das regras com iguais dados de reconhecimento

Page 22: Apresentação SIC 2016

Placidus: Verificador de Conflitos e Redundâncias

Ação 1

Ação 2

Diferentes

AlgoritmoCompara as ações das regras com iguais dados de reconhecimento

Page 23: Apresentação SIC 2016

Placidus: Verificador de Conflitos e Redundâncias

Ação 1

Ação 2

DiferentesConflito

AlgoritmoCompara as ações das regras com iguais dados de reconhecimento

Page 24: Apresentação SIC 2016

Placidus: Verificador de Conflitos e Redundâncias

Ação 1

Ação 2

Iguais

AlgoritmoCompara as ações das regras com iguais dados de reconhecimento

Page 25: Apresentação SIC 2016

Placidus: Verificador de Conflitos e Redundâncias

Ação 1

Ação 2

IguaisRedundância

AlgoritmoCompara as ações das regras com iguais dados de reconhecimento

Page 26: Apresentação SIC 2016

Placidus: Verificador de Conflitos e Redundâncias

Comparações a cada iteração

Desempenho

Comparações

Page 27: Apresentação SIC 2016

Placidus: Verificador de Conflitos e Redundâncias

Execução

Switches contidos na topologia

Page 28: Apresentação SIC 2016

Placidus: Verificador de Conflitos e Redundâncias

SaídaSã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

Page 29: Apresentação SIC 2016

Placidus: Verificador de Reachability

Estrutura de DadosLista com listas de vetores de bits

Match Ação

SW1

SW2

SW3

Page 30: Apresentação SIC 2016

Placidus: Verificador de Reachability

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

Page 31: Apresentação SIC 2016

Placidus: Verificador de Reachability

AlgoritmoConverte 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

Page 32: Apresentação SIC 2016

Placidus: Verificador de Reachability

AlgoritmoA tabela de bits é convertida em listas de vetores de bits

010101101 1

101111011 0

110110001 1

111101110 0

010001101 1

110100111 0

Page 33: Apresentação SIC 2016

Placidus: Verificador de Reachability

AlgoritmoO 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

Page 34: Apresentação SIC 2016

Placidus: Verificador de Reachability

AlgoritmoO 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

Page 35: Apresentação SIC 2016

Placidus: Verificador de Reachability

AlgoritmoO 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

Page 36: Apresentação SIC 2016

Placidus: Verificador de Reachability

AlgoritmoO pacote é encontrado nos n-1 bits de uma das listas

010101101 1

101111011 0

110110001 1

111101110 0

010001101 1

110100111 0

110110001

1

Page 37: Apresentação SIC 2016

Placidus: Verificador de Reachability

AlgoritmoÉ feito um AND entre a ação da regra encontrada com o bit 1

110110001 1

1

1

Page 38: Apresentação SIC 2016

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

Page 39: Apresentação SIC 2016

Placidus: Verificação de Reachability

Execução

Page 40: Apresentação SIC 2016

Placidus: Resultados Experimentais

Configurações da máquina utilizada

ProcessadorIntel Core I7-4790 3.6GhZ de 8 núcleos

Memória RAM15.6 GB

Page 41: Apresentação SIC 2016

Resultados Experimentais: Conflitos e Redundâncias

nº de regras

tempo (s)

Page 42: Apresentação SIC 2016

Resultados Experimentais: Reachability

tempo (s)

nº de regras

Page 43: Apresentação SIC 2016

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.

Page 44: Apresentação SIC 2016

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.

Page 45: Apresentação SIC 2016

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

Page 46: Apresentação SIC 2016

Título do capítuloObrigado!

Salão de Iniciação Científica UFRGS 2016

Autor: Levindo Gabriel Taschetto NetoOrientador: Alberto Egon Schaeffer-Filho 15/09/2016