darcosion / Echosounder

petit programme marrant
MIT License
14 stars 1 forks source link

Englobale de réseau ou de sous-réseaux par fCOSE #42

Closed darcosion closed 2 years ago

darcosion commented 2 years ago

Il est possible de placer un ensemble de noeud dans un groupe, je l'ai fait pour Epic stamina.

Je propose d'effectuer la même chose, mais pour les noeuds que nous arrivons à lier à une gateway.

darcosion commented 2 years ago

Ok, j'ai un plan : on va renommer toutes les fonctions d'ajouter d'éléments dans le graph pour qu'il n'y en ai aucune de générique. A partir de là, on ajoute les éléments dans le graph en fonction de plusieurs modèles : (traceroute, VLAN, Service, etc...) et on s'en sert pour construire la topologie en oubliant l'approche "gateway unique" au profit d'un placement et de liaison des éléments dans le graphe "opportuniste".

darcosion commented 2 years ago

Le placement a été fait dans l'issue 5515e2cc4918f2e728ebdfa290944f79d3ffebde !

Il a été nécessaire de reconstruire dans le backend certaines données émises (IP/CIDR VLAN) : https://github.com/darcosion/Echosounder/blob/5515e2cc4918f2e728ebdfa290944f79d3ffebde/webchosounder.py#L37

En plus de ça, la fonction de création de graph cytoscape a été réecrite pour ajouter une notion de parentalité : https://github.com/darcosion/Echosounder/blob/5515e2cc4918f2e728ebdfa290944f79d3ffebde/static/main.js#L328-L400

IMPORTANT : IL FAUT OUBLIER FCOSE DANS LA NOTION D'ENGLOBEMENT.

fCOSE ne sert pas à gérer l'englobement, cytoscape a l'élégance de le faire nativement dès que l'on définit un nœud comme parent d'un autre nœud. fCOSE, dérivé de la fonction de layout COSE permet de définir des layout différents en fonction des englobement généraux (un layout différent par type de node englobant par exemple).

Finalement, la résolution de cette issue nous permet désormais de scanner plusieurs VLAN sans risque de casser la mécanique de gestion de l'affichage graph. Par contre, les relier entre eux sera nécessairement quelque chose à ajouter dans le code.