Arquitectura

Plano de control separado del plano de datos para máxima flexibilidad y fiabilidad

Arquitectura del Plano de Control

GovernFlow opera como un plano de control externo, completamente separado del plano de datos VPN. Esta separación permite gestión centralizada, escalado independiente y conmutación sin afectar sesiónes VPN activas.

governflowd

Demonio principal que proporciona API REST, coordinacion de cluster, gestión de sesiónes e integración OpenVPN via socket Unix.

governflow-ls

Servidor de licencias para gestión de licencias multi-tenant con licencias firmadas RSA-SHA256 y control de funcionalidades por niveles.

governflow-query

Ayudante ligero llamado por OpenVPN para configuración de cliente, reglas de firewall y gestión de rutas.

libgovernflow

Biblioteca compartida con funcionalidades comunes: registro, análisis de config, pool de conexiónes DB y verificacion de licencia.

┌──────────────────────────────────────────┐
│           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 del Cluster

Arquitectura distribuida con consenso Raft para alta disponibilidad

Nodo Líder

Maneja todas las operaciones de escritura y coordina el estado del cluster. Elegido automáticamente via consenso Raft.

Nodos Seguidores

Replican el estado del líder y manejan operaciones de lectura. Pueden convertirse en líder si el líder actual falla.

Protección de Quorum

Las escrituras requieren confirmacion mayoritaria. Previene split-brain y garantiza cero pérdida de datos durante conmutación.

Canales de Comunicacion

Port 8443
API REST HTTPS
Gestión de clientes, configuración
Port 8444
Heartbeat UDP
Intervalos de 2 segundos, HMAC-SHA256
Port 8445
Consenso Raft
Cifrado mTLS, replicacion de estado

Flujo de Datos

Como GovernFlow se integra con OpenVPN para configuración en tiempo real

1

Cliente se Conecta a OpenVPN

OpenVPN recibe solicitud de conexión y activa el script client-connect

2

governflow-query Obtiene Config

Consulta governflowd via socket Unix para configuración de cliente (IP, rutas, QoS, zona)

3

Configuración Aplicada

Reglas de firewall via pf/iptables, rutas agregadas, archivo push generado para OpenVPN

4

Sesión Rastreada en el Cluster

Sesión registrada en todos los nodos del cluster con bloqueo distribuido para prevenir duplicados

Stack Tecnológico

Construido con rendimiento y fiabilidad en mente

C
Rendimiento nativo
SQLite
Cero dependencias
OpenSSL
Criptografía
libmicrohttpd
Servidor HTTP/S

Aprenda mas sobre GovernFlow

Programe una inmersion técnica con nuestro equipo de ingenieria.