Este capítulo descreve estudos iniciais sobre verificação formal de redes definidas por software. Detalha artigos e cursos sobre SDN e NFV como foco inicial, trabalhos relacionados à verificação de redes e ferramentas como Mininet e Floodlight. Também apresenta algoritmos propostos para verificar dados de flowtables e regras de firewall quanto a conflitos e redundâncias.
3. Foco inicial dos estudos
Artigos:
●
The Road to SDN: An Intellectual History of Programmable
Networks. Feamster, N; Rexford, J; Zegura, E.
●
Network Function Virtualization: Challenges and
Opportunities for Innovations. Han, B; Gopalakrishnan, V;
Ji, L; Lee, S.
Cursos:
●
Computer Networks, University of Washington, Coursera.
Ferramentas:
●
Mininet
●
Floodlight
4. Trabalhos relacionados
Artigos:
●
New Directions for Network Verification. Panda, A.;
Argyraki K.; Sagiv M.; Schapira M.; Shenker, S.
●
Checking Cloud Contracts in Microsoft Azure. Bjørner. N;
Jayaraman, K.
●
Machine-Verified Network Controllers. Guha, A.; Reitblatt, M.;
Foster, N.
5. Obtenção e manipulação dos dados
Flowtable
• Coletagem de dados da flowtable
• Manipulação dos dados da flowtable
• Geração da tabela de dados
• Manipulação da tabela para encontrar regras redundantes
e conflitantes
• Geração de arquivos com as regras conflitantes
6. Verificação formal em regras do Firewall
Atualmente já é possível fazer na aplicação criada:
• Adicionar regras no Firewall (regra a regra)
• Adicionar regras no Firewall (string com um conjunto de regras)
• Deletar regra no Firewall
• Visualizar todas regras contidas no Firewall
• Geração da tabela de dados contidos no Firewall
7. Algoritmo proposto para a verificação dos
dados (Flowtable / Firewall)
• Complexidade: O(n²)
Funcionamento:
●
Ao iniciar a verificação, a aplicação coleta a regra contida na
posição 0 e verifica conflito/redudância com as outras
●
A cada iteração a primeira regra é descartada, e a sua sucessora
passa a ser a primeira regra, diminuindo o número de verificações
●
Regras redundantes e conflitantes são impressas em uma nova
tabela (arquivo com regras lógicas), e podem ser removidas
Problema:
Regras com muitos “don't cares”, pois não sabemos se retiramos essa
regra com “don't care” ou se tiramos a regra conflitante/redundante
sem “don't care”
8. Próximas etapas
• Testar aplicação de verificação de conflitos/redudâncias
• Implementar verificação online
• Análise de desempenho da solução proposta