🛠️ NetMentor — Schéma d'Orchestration Fonctionnel NetMentor :

Discover how the NetMentor platform orchestrates intelligent LAB generation, simulation, and analysis.

Flux Orchestration NetMentor


Description des Apps

1️⃣ App assistant/ (Assistant IA)

Élément Détail
🎯 Rôle Gérer le dialogue avec l'utilisateur pour créer ou améliorer un LAB
📥 Input Questions/commandes utilisateur via UI (chatbot web)
⚙️ Traitement Utiliser LLM pour répondre / générer des propositions techniques
📤 Output Réponses semi-structurées (texte, json brut)
🔗 Vers prompt/ (structuration propre)
✅ Exemple :

APPORT DE L ASSITANT IA - LLM

CatégorieExemples de Questions
Topologie simple Créer une topologie simple avec 3 routeurs et 1 switch"- "Générer un réseau Clos FatTree 3:1".
Topologie avancée Créer un LAB SD-WAN simple | Génère une topologie réseau avec deux régions interconnectées via SD-WAN avec 2 routeurs par site..
Topologie avancée Générer un LAB EVPN VXLAN | Crée une topologie basée sur EVPN VXLAN avec 2 leafs et 2 spines.
Topologie avancée Générer un LAB MPLS complexe multi-régions | (Prompt structuré ➡️ détaillé juste en dessous ⬇️).
Sécurité"Lister les failles de sécurité sur une topologie donnée"- "Ajouter des ACL sur toutes les interfaces externes"
⚙️ Simulation"Simuler une coupure de lien OSPF entre R1 et R2"- "Analyser le temps de convergence BGP après panne"
⚙️ Simulation avancée Simuler une panne BGP multi-AS | Simule une panne BGP entre 2 AS distincts avec perte de peering.
📤 Audit "Vérifier l'isolation VRF pour tous les clients"- "Contrôler les routes importées/exportées en VPNv4"
📤Audit avancé Détecter les anomalies BGP | Analyse une topologie BGP et détecte les chemins incohérents ou boucles de routage.
🔗 Déploiement "Générer le fichier clab.yml pour la topologie MPLS"- "Préparer les configs de boot des équipements"
Monitoring "Afficher les flux NetFlow les plus actifs"- "Détecter les anomalies de trafic sur le réseau"


✅ Exemple de prompt complet :

"Génère une topologie MPLS avancée multi-régions avec les critères suivants :
Produis une sortie YAML compatible avec un fichier Containerlab .clab.yml.
Chaque équipement doit avoir un hostname, une boucle OSPF, une interface de transport, et une connectivité BGP/MPLS."


Assistant IA (App assistant/)

ÉlémentDétail
🌟 RôleGérer le dialogue avec l'utilisateur pour créer ou améliorer un LAB.
📥 InputQuestions/commandes utilisateur via UI (chatbot web)
⚙️ TraitementUtiliser LLM pour répondre / générer des propositions techniques
📤 OutputRéponses semi-structurées (texte, JSON brut)
🔗 Versprompt/ (structuration propre)

Prompt Manager (App prompt/)

ÉlémentDétail
🌟 RôleStructurer et valider les données issues de l'assistant IA.
📥 InputJSON brut des réponses
⚙️ TraitementNormalisation, enrichissement, validation de topologie.
📤 OutputTopologie propre (JSON/YAML)
🔗 Verstopology/ ou labs/

Topology Generator (App topology/)

ÉlémentDétail
🌟 RôleGénération de topologies aléatoires via Neo4j si besoin.
📥 InputStructure JSON/YAML validée
⚙️ TraitementCréation automatique de liens/nœuds.
📤 OutputTopologie enrichie
🔗 Verslabs/

Lab Manager (App labs/)

ÉlémentDétail
🌟 RôleGénération et stockage de fichiers .clab.yml.
📥 InputTopologie enrichie
⚙️ TraitementÉcriture du fichier YAML, affichage à l'utilisateur.
📤 OutputFichier .clab.yml sauvegardé
🔗 Verssimulator/

Simulator (App simulator/)

ÉlémentDétail
🌟 RôleExécution du LAB (Containerlab) et tests réseau.
📥 InputFichier .clab.yml
⚙️ TraitementDéploiement, test de convergence, collecte de logs.
📤 OutputLogs et résultats de simulation
🔗 Versaudit/

Audit Manager (App audit/)

ÉlémentDétail
🌟 RôleAnalyse d'impact et détection d'anomalies.
📥 InputLogs de simulation
⚙️ TraitementComparaison, scoring, CVE check.
📤 OutputRapport final à l'utilisateur
🔗 Versdashboard/ (visualisation)


UTILISATEUR (Dashboard / Chatbot IA) | v +----------------------------+ | assistant/ | | (Dialogue + récupération) | +------------+---------------+ | v +----------------------------+ | prompt/ | | (Structuration + validation)| +------------+---------------+ | v +----------------------------+ | topology/ | | (Génération de topologie | | aléatoire via Neo4j) | +------------+---------------+ | v +----------------------------+ | labs/ | | (Création du .clab.yml) | | (Stockage + affichage) | +------------+---------------+ | v +----------------------------+ | simulator/ | | (Déploiement + Simulation) | +------------+---------------+ | v +----------------------------+ | audit/ | | (Analyse résultats) | | (Impact, CVE, Résilience) | +----------------------------+ | v +----------------------------+ | Retour Utilisateur | | (Résultats, Optimisations) | +----------------------------+

🛠 Comment chaque app doit fonctionner et se chaîner :

App Django Fonction principale Donnée entrée Donnée sortie
assistant/ Gérer le dialogue avec l'utilisateur pour créer ou améliorer un LAB.
prompt/ Dialogue + collecte d'infos Questions/réponses utilisateur Réponses JSON
topology/ Génération aléatoire de topologie (option) Infos réseau Topologie structurée
labs/ Génération du .clab.yml Topologie ou configs Fichier YAML valide
simulator/Déploiement et simulation réseau .clab.yml Résultats simulation
audit/ Analyse de performance et erreurs Résultats simulation Rapport final

📋 Résumé rapide :

Fonction Enchaînement
Créer un LAB Assistant ➔ Prompt ➔ Topology ➔ Labs
Déployer un LABLabs ➔ Simulator
Analyser un LAB Simulator ➔ Audit

🎯 Ce que cela permet :


🔥 Exemple de scénario utilisateur complet :

  • 👤 L'utilisateur parle au Chatbot : "Je veux créer un réseau avec 5 routeurs BGP et un pare-feu. "
  • 🤖 Assistant prépare des prompts spécifiques pour récupérer plus d’infos.
  • 🧠 Prompt Manager valide et transforme les réponses en YAML/JSON structuré.
  • 🌐 Topology Generator (optionnel) crée une première topologie automatique.
  • 🛠️ LAB Manager génère le fichier .clab.yml complet.
  • 🚀 Simulator déploie le lab dans ContainerLab.
  • 🔎 Audit Manager fait tourner des simulations de pannes, vérifie la convergence.
  • 📊 Dashboard affiche résultats et propose corrections automatiques.

  • 🎯 Tout est fluide, sans code manuel pour l'utilisateur.

    ✅ PLAN DE TEST STACK NETMENTOR

    🛠️ Plan de Test NetMentor

    Validation complète du cycle de vie des projets réseau via la plateforme.

    # Étape Description Responsable Statut
    1 Création Projet Création d'un projet réseau depuis le Dashboard. Utilisateur Validé
    2 Interaction Chatbot Collecte et assistance via Chatbot IA intelligent. Assistant IA À tester
    3 Génération YAML Création dynamique du fichier `.clab.yml` basé sur les prompts. Backend Django Validé
    4 Déploiement Lab Déploiement automatisé via ContainerLab sur l'infrastructure cible. ContainerLab À planifier
    5 Supervision & Monitoring Surveillance en temps réel et analyse des simulations de panne. Monitoring Django À planifier
    User wants to create Topology Chatbot Proposes: 1. Random Topology 2. User Topology User Chooses Random Chatbot Asks for Number of Routers, Clients, Servers,... Chatbot Generates Random Topology (JSON) Visualize Topology (Modal) User Validates/ Requests Correction Chatbot Asks for Correction (JSON) LLM Processes Correction Generates Updated JSON Visualize Updated Topology Save Topology to Neo4j Deploy & Test User Provides Topology (JSON) ✅ Fonction generate_topology_lan() Cette fonction gère plusieurs types de LAN : 1R1S → 1 routeur, 1 switch 2R2S-1 → 2 routeurs, 2 switches, même site 2R2S-2 → 2 routeurs, 2 switches, deux sites 2RN → 2 routeurs, N switches répartis sur 2 sites Elle utilise les fonctions create_node() et create_relationship_nodes() de neo4j_services.py. Base Neo4j Application Django Neo4j Service Convertisseur Topologie → YAML Générateur de Configurations Containerlab (YAML) FRRouting (Configurations) Conversion Neo4j → Containerlab avec FRRouting Application Django pour générer des déploiements réseau conteneurisés