التحدي
أرادت المقاهي المستقلة والفنادق البوتيك وقاعات الفعاليات في منطقة تورنتو الكبرى تقديم WiFi للضيوف دون (أ) تسليم كلمة مرور شبكتها الدائمة، أو (ب) الارتباط ببوابة مورّد أجهزة واحد، أو (ج) السماح لضيف واحد بإشباع النطاق الترددي على حساب الجميع. فالخيارات الجاهزة إما ربطتهم بعلامة نقاط وصول محددة، أو فرضت رسماً شهرياً لكل نقطة وصول، أو لم تدعم سير العمل الذي أراده الموظفون فعلاً — قسيمة مطبوعة بلمسة واحدة تُسلَّم عبر الكاونتر مع الإيصال.
المطلوب: منصة WiFi مُدارة متعددة المواقع ومحايدة للمورّدين يستطيع فيها مشغّل واحد إدارة عدد غير محدود من المواقع من لوحة واحدة، وتبقى البوابات رخيصة وقابلة للاستبدال (أي جهاز MikroTik / RouterOS)، ويستطيع الموظفون طباعة قسيمة محددة المدة بلمسة واحدة، ويُفرض النطاق الترددي لكل مستخدم عند البوابة (وليس بالاعتماد على حسن النية)، ولا ينهار النظام في ليلة فعالية مزدحمة بأكثر من 1000 ضيف متزامن.
حلّنا
بنينا Logic HotSpot — لوحة إدارة بـ Yii2 (PHP) + بوابة تقييدية (captive portal) بعلامة تجارية + خط طباعة قسائم على طابعة حرارية، وكلها تتحدث مع بوابات MikroTik / RouterOS الجاهزة عبر API العامة، مع فرض النطاق الترددي لكل مستخدم عبر RADIUS (FreeRADIUS).
لوحة الإدارة هي واجهة قيادة المشغّل. من تسجيل دخول واحد يدير عدداً غير محدود من المواقع، ويحدد خطط WiFi (تجربة 15 دقيقة، وساعة، و24 ساعة، و7 أيام، ومؤتمر)، ويضبط حدود النطاق الترددي لكل خطة وقواعد الجلسات المتزامنة، ويضع علامته التجارية على البوابة التقييدية لكل موقع (الشعار والألوان والشروط والعرض التسويقي)، ويراقب الجلسات الحية في الوقت الفعلي — بما في ذلك القدرة على طرد جهاز مسيء بنقرة واحدة. ويُسجَّل كل إجراء في مسار التدقيق الخاص بالمشغّل.
البوابة التقييدية واجهة تسجيل سريعة تبدأ من الجوال. يتصل الضيف بشبكة SSID الخاصة بالموقع، ويحصل على البوابة ذات العلامة التجارية، ويختار خطة (أو يستردها)، ثم يتصل بالإنترنت — عادةً في أقل من 5 ثوانٍ من البداية إلى النهاية. وتُدعم الخطط المدفوعة والخطط المجانية مقابل استبيان وخطط القسائم المطبوعة كلها من البوابة نفسها.
طباعة القسائم على الطابعة الحرارية هي سير العمل الذي يُكمل الحلقة مع موظفي الموقع. تعرض اللوحة زر «طباعة قسيمة» بلمسة واحدة على جهاز لوحي خلف الكاونتر؛ ويصل الطلب إلى تكامل مع طابعة حرارية ESC/POS تطبع قسيمة بشكل إيصال تحمل شعار الموقع واسم الخطة والحد الزمني ورمز القسيمة ورمز QR جديداً. يمسح الضيف رمز QR أو يكتب الرمز على البوابة التقييدية ويتصل بالإنترنت خلال ثوانٍ.
فرض النطاق الترددي هو الجزء الذي تخطئ فيه معظم البوابات الجاهزة. فبدلاً من الوثوق بالبوابة التقييدية، نصادق كل جلسة عبر FreeRADIUS — وتفرض بوابة RouterOS خاصية تحديد المعدل التي يعيدها RADIUS على مستوى البيانات، فلا يستطيع ضيف واحد فعلياً تجاوز حد خطته مهما حاول جهازه. وتتراكم الحدود لكل مجموعة فوق الحدود لكل مستخدم بحيث يمكن تقييد فئة فعالية كاملة معاً.
كل شيء متعدد المستأجرين بحكم التصميم — مشغّل واحد ومواقع غير محدودة وإعدادات معزولة لكل موقع — ويعمل على Nginx + PHP-FPM مع Redis لتخزين عمليات البحث عن الجلسات مؤقتاً بحيث تبقى البوابة التقييدية بزمن استجابة أقل من ثانية تحت حمل ليلة الفعاليات.
- إدارة مواقع متعددة من لوحة مشغّل واحدة — مواقع غير محدودة وإعدادات معزولة لكل موقع
- تكامل مع بوابات RouterOS / MikroTik محايد للمورّدين — يعمل أي جهاز RouterOS دون ارتباط بأجهزة محددة
- بوابة تقييدية بعلامة تجارية لكل موقع (الشعار والألوان والشروط والعرض التسويقي) مع تسجيل في أقل من ثانية تحت الحمل
- طباعة قسائم على طابعة حرارية ESC/POS بلمسة واحدة — شعار الموقع والخطة والحد الزمني ورمز القسيمة ورمز QR جديد
- حدود نطاق ترددي لكل مستخدم ولكل مجموعة تُفرض عند البوابة عبر FreeRADIUS — وليس بالاعتماد على حسن النية
- مراقب جلسات فوري مع طرد الأجهزة المسيئة بنقرة واحدة
- محرك الخطط — تجربة 15 دقيقة، وساعة، و24 ساعة، و7 أيام، ومؤتمر، ومجاني مقابل استبيان، ومدفوع — كلها من البوابة نفسها
- بنية SaaS متعددة المستأجرين: Nginx + PHP-FPM + تخزين Redis المؤقت لحمل ليالي الفعاليات (أكثر من 1000 ضيف متزامن)