>_ DevTrendsfr

Langue

Accueil

Langages

Sections

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarqué Sécurité
Rust

Comment Scanopy vous épargne le dessin manuel des schémas réseau

Scanopy Logo

Quiconque a déjà essayé de maintenir une carte à jour d'un réseau d'entreprise ou de serveur domestique connaît cette galère. Vous vous instalrez devant draw.io ou Visio, passez une demi-journée à disposer soigneusement de petites cases pour les commutateurs, les serveurs et les connexions. Une semaine passe, l'admin système change quelques câbles patch, l'ingénieur DevOps déploie une nouvelle stack dans Docker, et votre schéma dessiné à la main devient un document historique inutile.

L'état Terraform ou Ansible ne vous sauve pas toujours non plus. Le code d'infrastructure ne montre que ce qui est décrit dans le pipeline, ignorant les modifications manuelles sur les commutateurs ou les machines virtuelles temporairement déployées.

Je suis récemment tombé sur le projet Scanopy. Ils ont créé un outil qui gère l'analyse réseau régulière et génère automatiquement des diagrammes interactifs à plusieurs niveaux d'abstraction.

L2 view

L2 (Physique)
Chaque commutateur, chaque port, chaque lien.

L3 view

L3 (Logique)
Sous-réseaux et comment les hôtes s'y connectent.

Workloads view

Workloads
Du bare metal aux hyperviseurs en passant par les conteneurs.

Applications view

Applications
Services et leurs dépendances, regroupés par application.

Comment ça fonctionne en coulisses

Au lieu d'installer des agents lourds sur chaque machine virtuelle, le projet utilise un scanner daemon léger. Le daemon interroge les équipements réseau via SNMP, analyse les tables LLDP et ARP, et scanne les ports ouverts. Lorsque nécessaire, le scanner se connecte directement au socket Docker pour inventorier les conteneurs.

En coulisses, Scanopy est écrit en Rust. Cela offre des performances rapides pour le scanner et le serveur sans alourdir la consommation mémoire.

Après chaque exécution du scanner, un modèle d'infrastructure est construit, à partir duquel le système génère quatre slices séparées :

  1. Couche physique L2. Cela inclut les commutateurs, les liens physiques et les ports de connexion d'équipements spécifiques.
  2. Couche logique L3. Affiche le routage, les sous-réseaux et la distribution des adresses IP entre les hôtes.
  3. Workloads. Affiche la chaîne depuis les serveurs bare metal et les hyperviseurs jusqu'aux machines virtuelles et aux conteneurs individuels.
  4. Applications. Regroupe les services et construit un graphe de dépendances entre les bases de données, les serveurs web et les workers d'arrière-plan.

Le projet est déjà livré avec plus de deux cents signatures de services préconstruites. Le scanner reconnaît immédiatement PostgreSQL, Redis, Nginx, Kubernetes et beaucoup d'autres logiciels sans étiquetage manuel supplémentaire.

Ce que le scanner peut faire

Le principal avantage de cette approche est l'autonomie. Vous définissez un planning, et le scanner met régulièrement à jour la topologie en arrière-plan.

Voici les fonctionnalités pratiques :

  • Collecte de données distribuée. Pour plusieurs bureaux ou VLANs isolés, vous pouvez déployer des daemons séparés qui envoient les données vers un serveur central.
  • Export de diagrammes. Les diagrammes terminés peuvent être exportés en SVG, intégrés dans la documentation en code Mermaid, ou uploadés directement sur Confluence.
  • Interface web interactive. Vous pouvez zoomer sur la carte, cliquer sur des nœuds individuels, voir les ports actifs et les connexions voisines.
  • Modèle d'accès basé sur les rôles. Il y a une séparation intégrée entre les organisations et les utilisateurs, ce qui est utile pour les entreprises de services et les équipes d'externalisation.

Démarrage rapide en laboratoire

Le moyen le plus simple d'essayer le système est de lancer des conteneurs via Docker Compose sur un hôte ayant accès au sous-réseau requis.

curl -O https://raw.githubusercontent.com/scanopy/scanopy/refs/heads/main/docker-compose.yml
docker compose up -d

Après le démarrage, l'interface web écoute sur le port 60072. Naviguez vers http://localhost:60072, créez un compte administrateur local, et lancez le premier cycle d'analyse.

Si vous utilisez un homelab sur Proxmox VE, les auteurs proposent un script prêt à l'emploi pour le déploiement dans un conteneur LXC. Scanopy est également disponible dans le catalogue d'applications Unraid.

Si vous ne souhaitez pas installer localement, les créateurs proposent un bac à sable de démonstration public à demo.scanopy.net avec des données de test préremplies.

Pour qui le projet fera gagner du temps

Pour les ingénieurs opérations et les équipes DevOps, Scanopy répond à la question éternelle de « où va ce trafic et où tourne ce conteneur ». Vous voyez les liaisons matérielles physiques et logiques sans avoir à collecter manuellement des traces.

Pour les ingénieurs réseau, l'outil aide à maintenir une carte de commutation à jour sans des heures fastidieuses dans des éditeurs graphiques. Lors de la migration d'un service ou du changement de ports, la topologie se met à jour automatiquement lors du prochain scan.

Pour les propriétaires de serveurs domestiques et d'homelab, l'outil offre un moyen d'organiser la prolifération de vos services sans passer vos week-ends à faire de la documentation manuelle.

Conclusion

Scanopy résout le problème classique de la documentation qui devient obsolète de manière directe et simple. Les diagrammes sont générés basés sur l'état réel du réseau, et non sur la compréhension du développeur d'il y a six mois.

Le code est distribué sous licence AGPL-3.0 pour l'auto-hébergement. Si vous avez reporté la mise à jour de vos cartes d'infrastructure ou que vous êtes fatigué de redessiner les diagrammes après chaque déploiement, lancez le daemon sur un réseau de test et observez les résultats du premier passage.

Projets similaires