Architecture
Plan de controle séparé du plan de données pour une flexibilité et fiabilité maximales
Architecture du Plan de Controle
GovernFlow fonctionne comme un plan de controle externe, complètement séparé du plan de données VPN. Cette separation permet une gestion centralisée, une mise a l'échelle independante et un basculement sans affecter les sessions VPN actives.
governflowd
Démon principal fournissant l'API REST, coordination de cluster, gestion de sessions et integration OpenVPN via socket Unix.
governflow-ls
Serveur de licences pour gestion multi-locataire avec licences signées RSA-SHA256 et controle de fonctionnalités par niveau.
governflow-query
Assistant leger appele par OpenVPN pour la configuration client, regles pare-feu et gestion des routes.
libgovernflow
Bibliothèque partagee avec fonctionnalités communes: journalisation, analyse de config, pool de connexions DB et verification de licence.
┌──────────────────────────────────────────┐ │ GovernFlow Control Plane │ ├──────────────────────────────────────────┤ │ │ │ ┌────────────────────────────────────┐ │ │ │ governflowd │ │ │ │ ┌──────────────────────────────┐ │ │ │ │ │ Core: config, log, db, http │ │ │ │ │ └──────────────────────────────┘ │ │ │ │ ┌──────────────────────────────┐ │ │ │ │ │ Plugins: 14 dynamic modules │ │ │ │ │ └──────────────────────────────┘ │ │ │ │ Ports: 8443 (API), 8444 (UDP), │ │ │ │ 8445 (Raft), Unix Socket │ │ │ └────────────────────────────────────┘ │ │ │ │ │ ┌─────────────────┴──────────────────┐ │ │ │ libgovernflow.so │ │ │ └────────────────────────────────────┘ │ │ │ ├──────────────────────────────────────────┤ │ OpenVPN Data Plane │ ├──────────────────────────────────────────┤ │ ┌────────────────────────────────────┐ │ │ │ OpenVPN Server + governflow-query │ │ │ │ (client-connect/disconnect hooks) │ │ │ └────────────────────────────────────┘ │ └──────────────────────────────────────────┘
Topologie du Cluster
Architecture distribuée avec consensus Raft pour haute disponibilité
Noeud Leader
Gere toutes les operations d'ecriture et coordonne l'etat du cluster. Élu automatiquement via consensus Raft.
Nœuds Suiveurs
Répliquent l'etat du leader et gèrent les operations de lecture. Peuvent devenir leader si le leader actuel échoue.
Protection par Quorum
Les écritures nécessitent confirmation majoritaire. Prévient le split-brain et garantit zero perte de données lors du basculement.
Canaux de Communication
Flux de Données
Comment GovernFlow s'intègre avec OpenVPN pour une configuration en temps reel
Client se Connecte a OpenVPN
OpenVPN reçoit la demande de connexion et déclenche le script client-connect
governflow-query Récupère la Config
Interroge governflowd via socket Unix pour la configuration client (IP, routes, QoS, zone)
Configuration Appliquee
Regles pare-feu via pf/iptables, routes ajoutees, fichier push généré pour OpenVPN
Session Suivie dans le Cluster
Session enregistree sur tous les nœuds du cluster avec verrouillage distribue pour éviter les doublons
Pile Technologique
Conçu avec performance et fiabilité en tete
En savoir plus sur GovernFlow
Planifiez une plongee technique approfondie avec notre équipe d'ingenierie.