Acompanhamento - IC - Levindo GTN [02]

11
Título do capítulo 05/2016 Levindo Gabriel Taschetto Neto [email protected] Acompanhamento - IC

Transcript of Acompanhamento - IC - Levindo GTN [02]

Page 1: Acompanhamento - IC - Levindo GTN [02]

Título do capítulo

05/2016

Levindo Gabriel Taschetto Neto

[email protected]

Acompanhamento - IC

Page 2: Acompanhamento - IC - Levindo GTN [02]

Artigos lidos na área de verificação de redes

• Network Troubleshooting with SDN-RADARAvanesov,T; Kantor,M; Gheorghe,G; Popoviciu,C; Palattella,M.R.; Engel,T Monitoramento da rede feito pelos Sonar Agents (Scripts que coletam dados pela experiência de usuários em serviços específicos).

• FlowChecker: Configuration Analysis and Verification of Federated OpenFlow InfrastructuresAl-Shaer,E; Al-Haj,S Configuração e verificação das infraestruturas do openflow utilizando BDD's, nele, a rede é configurada como uma máquina de estados.

• VeriFlow: Verifying Network-Wide Invariants in Real TimeKhurshid,A; Zou,X; Zhou,W;Caesar,M; Godfrey,P.B. Divisão da rede em classes equivalentes, tendo como um dos problemas a incerteza se dois pedaços, gerados pela divisão, se sobrepõem.

Page 3: Acompanhamento - IC - Levindo GTN [02]

Artigos lidos na área de verificação de redesDetecção de Loop's e verificação de Reachability

• Header Space Analysis: Static Checking For NetworksKazemian,P; Varghese,G; McKeown,N. É feita a criação de um predicado que representa todas as regras de determinado switch, daí pode-se fazer detecção de loop's (inserção de pacote totalmente genérico na rede) e verificação de reachability de maneira eficiente, já que utiliza somente valores binários para a representação da regra.

• Efficient Verification of Network Reachability PropertiesYang,H. É feita a decomposição das regras do switch em predicados subatômicos, a intersecção entre os predicados subatômicos gera um predicado, e a união dos predicados forma a regra para o switch (formada apenas por bit's zeros e uns).

Page 4: Acompanhamento - IC - Levindo GTN [02]

Utilização do Alloy

• A síntaxe do Alloy foi aprendida via slides disponibilizados pelo MIThttp://alloy.mit.edu/alloy/tutorials/day-course/

• O maior problema, além da síntaxe, encontrado na utilização do Alloy, foi adaptar os dados, gerados pela flowtable, para fazer verificações lógicas.

• Alguns pequenos modelos de rede foram gerados (próximo slide), porém não foi dado procedência ao trabalho com o uso do Alloy.

Page 5: Acompanhamento - IC - Levindo GTN [02]

Utilização do Alloy – Criação de regras

Page 6: Acompanhamento - IC - Levindo GTN [02]

Novo problema abordado

O novo problema abordado, na bolsa de IC, na área de verificação de redes, é o de reachability (verificar se um determinado pacote que entra em switch A chega ou não em seu destino). Antes de iniciar o algoritmo para verificação de reachability, foramlidos dois artigos na área, os quais são citados no terceiro slide. A ideia de ambos os artigos é criar algum modo de criar um identificador para o switch (regra base do switch), de maneira que não se precise fazer testes exaustivos com os pacotes que entram na rede.

Page 7: Acompanhamento - IC - Levindo GTN [02]

Algoritmo proposto para verificação de reachability em redes com switches openflow

A ideia base do algoritmo encontra-se em modelar a rede apenas por valores booleanos, para que todas as operações lógicas seja do tipo bit a bit. Para isso, tem-se utilizado a classe BitVector 3.4.4 para Python (https://pypi.python.org/pypi/BitVector/3.4.4). Para cada regra contida no switch, cria-se uma regra concisa, de 33 bits, sendo 32 bits para representar o match e 1 bit (por enquanto), para representar o action.

As regras serão armazenadas em uma tabela hash, permitindo acesso às chaves (match) em tempo linear. Os valores da tabela hash serão representados pelos bit's referentes ao action de cada regra.

Page 8: Acompanhamento - IC - Levindo GTN [02]

Algoritmo proposto para verificação de reachability em redes com switches openflow

A montagem da regra base para cada switch será feita da seguinte maneira: Todas as informações referentes ao match de uma regra contida no switch serão convertidas para números binários de 32 bits. Como ainda estamos trabalhando com actions do tipo allow e deny, os mesmos serão representados por um bit de valor 1 e 0, respectivamente. Após essa conversão, dentro da regra é feita a intersecção bit a bit entre todas as informações referentes ao match da regra. Com os 33 bits referentes a cada regra é montada uma tabela hash, os 32 bits mais significativos servirão como chave e o bit menos significativo será o valor.

Page 9: Acompanhamento - IC - Levindo GTN [02]

Algoritmo proposto para verificação de reachability em redes com switches openflow

O pacote também será moldado com 33 bits, sendo que os 32 bits serão para o match do pacote e o bit menos significativo será sempre 1. Tendo a tabela montada, para saber se determinado pacote passa ou não, primeiramente é feito o acesso à tabela hash, para encontrar os 32 bits mais significativos da tabela que, fazendo a operação de XNOR bit a bit com os 32 bits mais significativos do pacote, resulta em 32 bits ligados em 1. Ao ter-se encontrada a regra referente ao pacote na tabela, é feita a operação lógica AND entre o valor da tabela e o bit menos significativo do pacote, como o bit menos significativo do pacote é sempre 1, se a operação de AND resultar em 0, o pacote não passa.

Page 10: Acompanhamento - IC - Levindo GTN [02]

Próxima etapa

A próxima etapa será a finalização do verificador de reachability e fazer testes funcionais e de desempenho do mesmo.

Page 11: Acompanhamento - IC - Levindo GTN [02]

Título do capítuloObrigado !

Instituto de Informática