البنية

مستوى التحكم منفصل عن مستوى البيانات لأقصى مرونة وموثوقية

بنية مستوى التحكم

يعمل GovernFlow كمستوى تحكم خارجي، منفصل تماماً عن مستوى بيانات VPN. يتيح هذا الفصل الإدارة المركزية، والتوسع المستقل، وتجاوز الفشل دون التأثير على جلسات VPN النشطة.

governflowd

البرنامج الخفي الرئيسي الذي يوفر REST API، وتنسيق المجموعة، وإدارة الجلسات، وتكامل OpenVPN عبر Unix socket.

governflow-ls

خادم التراخيص لإدارة التراخيص متعددة المستأجرين مع تراخيص موقعة RSA-SHA256 والتحكم في الميزات القائم على المستوى.

governflow-query

مساعد خفيف الوزن يستدعيه OpenVPN لتكوين العميل، وقواعد جدار الحماية، وإدارة المسارات.

libgovernflow

مكتبة مشتركة مع وظائف مشتركة: التسجيل، تحليل التكوين، تجميع اتصالات قاعدة البيانات، والتحقق من الترخيص.

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

طوبولوجيا المجموعة

بنية موزعة مع توافق Raft للتوفر العالي

العقدة القائدة

تتعامل مع جميع عمليات الكتابة وتنسق حالة المجموعة. يتم انتخابها تلقائياً عبر توافق Raft.

العقد التابعة

تكرر الحالة من القائد وتتعامل مع عمليات القراءة. يمكن أن تصبح قائدة إذا فشل القائد الحالي.

حماية النصاب

تتطلب الكتابات تأكيد الأغلبية. يمنع split-brain ويضمن عدم فقدان البيانات أثناء تجاوز الفشل.

قنوات الاتصال

Port 8443
HTTPS REST API
إدارة العملاء، التكوين
Port 8444
نبض UDP
فترات 2 ثانية، HMAC-SHA256
Port 8445
توافق Raft
مشفر mTLS، نسخ الحالة

تدفق البيانات

كيف يتكامل GovernFlow مع OpenVPN للتكوين في الوقت الفعلي

1

العميل يتصل بـ OpenVPN

يستقبل OpenVPN طلب الاتصال ويفعّل سكريبت client-connect

2

governflow-query يجلب التكوين

يستعلم من governflowd عبر Unix socket للحصول على تكوين العميل (IP، المسارات، QoS، المنطقة)

3

تطبيق التكوين

قواعد جدار الحماية عبر pf/iptables، المسارات مضافة، ملف push مُنشأ لـ OpenVPN

4

تتبع الجلسة في المجموعة

الجلسة مسجلة عبر جميع عقد المجموعة مع قفل موزع لمنع التكرارات

المكدس التقني

مبني مع الأداء والموثوقية في الاعتبار

C
أداء أصلي
SQLite
صفر تبعيات
OpenSSL
التشفير
libmicrohttpd
خادم HTTP/S

اعرف المزيد عن GovernFlow

جدولة جلسة تقنية عميقة مع فريق الهندسة لدينا.