Architektur

Control Plane getrennt vom Data Plane für maximale Flexibilität und Zuverlässigkeit

Control-Plane-Architektur

GovernFlow operiert als externes Control Plane, vollständig getrennt vom VPN-Data-Plane. Diese Trennung ermöglicht zentralisierte Verwaltung, unabhängige Skalierung und Failover ohne Beeintrachtigung aktiver VPN-Sitzungen.

governflowd

Haupt-Daemon mit REST-API, Cluster-Koordination, Sitzungsverwaltung und OpenVPN-Integration über Unix-Socket.

governflow-ls

Lizenzserver für Multi-Tenant-Lizenzverwaltung mit RSA-SHA256-signierten Lizenzen und stufenbasierter Feature-Kontrolle.

governflow-query

Leichtgewichtiger Helper, der von OpenVPN für Client-Konfiguration, Firewall-Regeln und Routenverwaltung aufgerufen wird.

libgovernflow

Gemeinsame Bibliothek mit allgemeinen Funktionen: Logging, Config-Parsing, Datenbank-Connection-Pooling und Lizenzverifizierung.

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

Cluster-Topologie

Verteilte Architektur mit Raft-Konsens für Hochverfügbarkeit

Leader-Knoten

Verarbeitet alle Schreiboperationen und koordiniert den Cluster-Zustand. Automatisch über Raft-Konsens gewählt.

Follower-Knoten

Replizieren den Zustand vom Leader und verarbeiten Leseoperationen. Können Leader werden, wenn der aktuelle Leader ausfallt.

Quorum-Schutz

Schreibvorgange erfordern Mehrheitsbestatigung. Verhindert Split-Brain und garantiert keinen Datenverlust beim Failover.

Kommunikationskanale

Port 8443
HTTPS REST-API
Client-Verwaltung, Konfiguration
Port 8444
UDP-Heartbeat
2-Sekunden-Intervalle, HMAC-SHA256
Port 8445
Raft-Konsens
mTLS-verschlüsselt, Zustandsreplikation

Datenfluss

Wie GovernFlow mit OpenVPN für Echtzeit-Konfiguration integriert

1

Client verbindet sich mit OpenVPN

OpenVPN empfängt Verbindungsanfrage und löst client-connect-Skript aus

2

governflow-query holt Config

Fragt governflowd über Unix-Socket für Client-Konfiguration (IP, Routen, QoS, Zone) ab

3

Konfiguration angewendet

Firewall-Regeln über pf/iptables, Routen hinzugefügt, Push-Datei für OpenVPN generiert

4

Sitzung im Cluster verfolgt

Sitzung über alle Cluster-Knoten registriert mit verteiltem Locking zur Vermeidung von Duplikaten

Technologie-Stack

Entwickelt mit Leistung und Zuverlässigkeit im Fokus

C
Native Leistung
SQLite
Keine Abhängigkeiten
OpenSSL
Kryptographie
libmicrohttpd
HTTP/S-Server

Mehr über GovernFlow erfahren

Planen Sie einen technischen Deep-Dive mit unserem Engineering-Team.