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

Port 8443
API REST HTTPS
Gestion client, configuration
Port 8444
Battement UDP
Intervalles de 2 secondes, HMAC-SHA256
Port 8445
Consensus Raft
Chiffré mTLS, réplication d'etat

Flux de Données

Comment GovernFlow s'intègre avec OpenVPN pour une configuration en temps reel

1

Client se Connecte a OpenVPN

OpenVPN reçoit la demande de connexion et déclenche le script client-connect

2

governflow-query Récupère la Config

Interroge governflowd via socket Unix pour la configuration client (IP, routes, QoS, zone)

3

Configuration Appliquee

Regles pare-feu via pf/iptables, routes ajoutees, fichier push généré pour OpenVPN

4

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

C
Performance native
SQLite
Zero dépendances
OpenSSL
Cryptographie
libmicrohttpd
Serveur HTTP/S

En savoir plus sur GovernFlow

Planifiez une plongee technique approfondie avec notre équipe d'ingenierie.