Architettura

Control plane separato dal data plane per massima flessibilità e affidabilità

Architettura Control Plane

GovernFlow opera come control plane esterno, completamente separato dal data plane VPN. Questa separazione abilita gestione centralizzata, scaling indipendente e failover senza impatto sulle sessioni VPN attive.

governflowd

Demone principale che fornisce API REST, coordinamento cluster, gestione sessioni e integrazione OpenVPN via Unix socket.

governflow-ls

Server licenze per gestione licenze multi-tenant con licenze firmate RSA-SHA256 e controllo funzionalità basato su tier.

governflow-query

Helper leggero chiamato da OpenVPN per configurazione client, regole firewall e gestione route.

libgovernflow

Libreria condivisa con funzionalità comuni: logging, parsing config, connection pooling database e verifica licenze.

┌──────────────────────────────────────────┐
│           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) │  │
│  └────────────────────────────────────┘  │
└──────────────────────────────────────────┘

Topologia Cluster

Architettura distribuita con consenso Raft per alta disponibilità

Nodo Leader

Gestisce tutte le operazioni di scrittura e coordina lo stato del cluster. Eletto automaticamente via consenso Raft.

Nodi Follower

Replicano lo stato dal leader e gestiscono operazioni di lettura. Possono diventare leader se il leader corrente fallisce.

Protezione Quorum

Le scritture richiedono conferma dalla maggioranza. Previene split-brain e garantisce zero perdita dati durante failover.

Canali di Comunicazione

Port 8443
API REST HTTPS
Gestione client, configurazione
Port 8444
Heartbeat UDP
Intervalli 2 secondi, HMAC-SHA256
Port 8445
Consenso Raft
Crittografato mTLS, replica stato

Flusso Dati

Come GovernFlow si integra con OpenVPN per configurazione in tempo reale

1

Client si Connette a OpenVPN

OpenVPN riceve richiesta di connessione e attiva lo script client-connect

2

governflow-query Recupera Config

Interroga governflowd via Unix socket per configurazione client (IP, route, QoS, zona)

3

Configurazione Applicata

Regole firewall via pf/iptables, route aggiunte, file push generato per OpenVPN

4

Sessione Tracciata nel Cluster

Sessione registrata su tutti i nodi cluster con locking distribuito per prevenire duplicati

Stack Tecnologico

Costruito con prestazioni e affidabilità in mente

C
Prestazioni native
SQLite
Zero dipendenze
OpenSSL
Crittografia
libmicrohttpd
Server HTTP/S

Scopri di più su GovernFlow

Prenota un approfondimento tecnico con il nostro team di ingegneria.