Snono SAS4 هو نظام محاسبة المشتركين الأوسع انتشاراً في السوق العراقي: المشتركون والباقات والفواتير والكروت والوكلاء والتقارير في لوحة واحدة، وخادم راديوس يقف خلفها ويقرّر من يدخل ومن لا يدخل.
سننصّبه على بروكسموكس، ونربطه ببرّاس MikroTik، ثم — وهو الأهم — نعرض كل عطل قابلناه فعلاً في الطريق وكيف شخّصناه. لأن الربط ينجح من أول مرّة عند قليلين، والفرق بين من يحلّه في عشر دقائق ومن يقضي ليلته هو معرفة أين ينظر.
كل لقطة وكل مخرج أمر في هذه السلسلة من مختبر بنيناه ويعمل. على سيرفر Proxmox VE واحد: راوتر MikroTik CHR 7.23 كبرّاس، ونظاما محاسبة حقيقيان بترخيصين فعّالين، وجهاز مشترك اتصل فعلاً عبر PPPoE وحصل على عنوان وإنترنت. والوصول إلى كل اللوحات كان عبر نفق مشفّر — لم تُفتح لوحة إدارة واحدة على الإنترنت أثناء التصوير، ولا يظهر في أي صورة زبون حقيقي.
ما الذي تراه حين يعمل
الخطوة 1: الجهاز والموارد
| عدد المشتركين | الأنوية | الذاكرة | القرص |
|---|---|---|---|
| حتى 500 | 2 | 2 GB | 32 GB |
| حتى 2000 | 4 | 4 GB | 64 GB |
| أكثر | 4–8 | 8 GB | 100 GB+ |
والقرص يكبر مع السجلات لا مع عدد المشتركين — جداول المحاسبة والجلسات هي التي تتضخّم. خطّط لتقليمها من الشهر الأول.
qm clone <القالب> 7201 --name sas --full 1
qm set 7201 --cores 2 --memory 2048 --net0 virtio,bridge=vmbr2 \
--ipconfig0 ip=10.10.10.90/24,gw=10.10.10.1 --nameserver 1.1.1.1
qm start 7201
لا تضع نظام المحاسبة على عنوان عام. هو يحتاج أن يصل إليه البرّاس فقط، وأنت تدخل لوحته عبر النفق. وضعه على الإنترنت يعني أن كل بيانات مشتركيك ومالية شركتك خلف صفحة دخول واحدة مكشوفة للعالم — وهذا ما نراه عند كثيرين.
الخطوة 2: الترخيص
النظام لا يعمل بلا ترخيص فعّال، والترخيص مرتبط بمعرّف عتاد يتولّد من الجهاز:
معرّف العتاد يتغيّر إن تغيّر الجهاز. نقل النظام إلى سيرفر آخر، أو تغيير القرص، أو الاسترجاع من نسخة إلى جهاز جديد — كلها تُبطل الترخيص وتحتاج إعادة تفعيل. تواصل مع المزوّد قبل النقل لا بعده، وخذ نسخة من الترخيص مع نسخة قاعدة البيانات.
الخطوة 3: عرّف البرّاس في النظام
هذه أول خطوة ربط: النظام لا يجيب راوتراً لا يعرفه.
الحقول التي تهمّ فعلاً:
| الحقل | القيمة | لماذا |
|---|---|---|
| الاسم | bras-mansour | سمِّه باسم البرج — ستشكرك نفسك لاحقاً |
| العنوان | 10.10.10.81 | عنوان البرّاس الذي تخرج منه طلباته |
| النوع | Mikrotik | يحدّد خصائص السرعة والقطع |
| السرّ المشترك | طويل وعشوائي | هو كلمة مرور الراوتر عند النظام |
| منفذ CoA | 3799 | بدونه لا ترقية ولا قطع فوري |
الخطوة 4: الباقات والمشتركون
الباقة تحدّد السرعة والمدة والسعر، والمشترك يُربط بباقة. وحدّ السرعة يُرسَل من النظام مع كل قبول، فلا تضعه على الراوتر إطلاقاً.
الخطوة 5: الربط الفعلي — وثلاثة أعطال متتابعة
هنا الجزء الذي لا تجده في أي شرح. وصلنا البرّاس بالنظام، فلم يعمل. وكل عطل كان يبدو كسابقه ويحتاج علاجاً مختلفاً:
العطل الأول: radius timeout
البرّاس يرسل ولا يأتيه جواب. والسبب الذي يضيّع ساعات:
خدمة الراديوس تقرأ قائمة الرواتر عند إقلاعها فقط. أي راوتر تضيفه بعد ذلك تُسقَط طلباته بصمت تام — لا سطر في أي سجل، ولا رسالة خطأ في اللوحة. العلاج سطر واحد:
systemctl restart freeradius
واجعلها عادة: بعد كل إضافة راوتر، أعد تشغيل الخدمة.
والأداة التي تحسم هذا العطل في ثانيتين هي مراقبة الحزم على خادم النظام:
tcpdump -ni any udp port 1812
إن رأيت Access-Request يصل ولا جواب يخرج، فالمشكلة عند النظام لا في الشبكة. وإن لم يصل شيء أصلاً، فالمشكلة في الطريق أو الجدار.
العطل الثاني: Access-Reject
الآن يأتي جواب — لكنه رفض. وهذا عطل مختلف تماماً: الطريق سليم والسرّ صحيح والنظام يعرف الراوتر، والمشكلة في بيانات الحساب.
وهنا يفيد تشغيل الراديوس بوضع التشخيص، فيطبع سبب الرفض حرفياً:
systemctl stop freeradius
radiusd -X | tee /tmp/radius-debug.log
في حالتنا كان السبب استعلاماً عن جدول غير موجود في هذه النسخة — فشل الاستعلام فتحوّل القرار إلى رفض. وهذا نمط شائع: خطأ فني في مرحلة التفويض يظهر للمشترك كأنه كلمة مرور خاطئة.
العطل الثالث: قبول من النظام ورفض عند الراوتر
وهذا أخبثها. سجلّ النظام يقول Access-Accept و«تمّت المصادقة بنجاح»، وجهاز المشترك يقول failed to authenticate. الاثنان صادقان — ونشرحه في القسم التالي لأنه يستحقّ عنواناً مستقلاً.
⭐ السطر الذي يوقف كل مزوّد اليوم
إصدارات RouterOS 7.17 فما فوق تشترط وجود Message-Authenticator في جواب الراديوس — وهو تشديد أمني صحيح بعد ثغرة معروفة في البروتوكول. لكن كثيراً من خوادم الراديوس لا ترسل هذه الخاصية في Access-Accept، فيُسقِط الراوتر قبولاً صحيحاً ويظهر العطل كأنه كلمة مرور خاطئة.
الحلّ الفوري:
/radius set [find] require-message-auth=no
والحلّ الصحيح على المدى الطويل: حدّث خادم الراديوس إلى إصدار يرسلها، ثم أعد التشديد. وقد قامت الجلسة عندنا من أول محاولة بعد هذا السطر.
⭐ فخّ ثانٍ: زرّ الحفظ الذي لا يحفظ
في النسخة التي اختبرناها كان الضغط على Submit في نموذج إضافة راوتر لا يفعل شيئاً — ولا رسالة خطأ. وبفحص الطلب تبيّن أن الخادم يردّ 405 Method Not Allowed: الواجهة الأمامية والخلفية من إصدارين مختلفين، فالواجهة ترسل بطريقة لا تقبلها الخلفية.
إن صادفك هذا: حدّث النظام كاملاً من صفحة التحديثات. ولا تضيّع وقتك في مراجعة الحقول — المشكلة ليست فيما كتبت.
ترتيب التشخيص الذي يوفّر عليك الليل
| # | السؤال | الأداة | إن كان الجواب لا |
|---|---|---|---|
| 1 | هل تصل الحزمة إلى النظام؟ | tcpdump على المنفذ 1812 | جدار ناري أو توجيه |
| 2 | هل يردّ النظام؟ | نفس اللقطة | الراوتر غير معرّف — أعد تشغيل الخدمة |
| 3 | هل الردّ قبول؟ | سجلّ مصادقة المستخدمين | بيانات الحساب — شغّل وضع التشخيص |
| 4 | هل يقبل الراوتر الردّ؟ | سجلّ جهاز المشترك | require-message-auth |
| 5 | هل قامت الجلسة؟ | /ppp active print | المجمّع أو ملف التعريف |
خمسة أسئلة بالترتيب — ولا تنتقل إلى التالي قبل أن يكون جواب سابقه نعم. هذا وحده يختصر أغلب ليالي المزوّدين.
أخطاء شائعة وحلولها
| العَرَض | السبب | الحل |
|---|---|---|
| لا شيء في سجلّ المصادقة | الطلب لا يصل أو الراوتر غير معرّف | tcpdump ثم إعادة تشغيل الخدمة |
| رفض لكل المشتركين | السرّ المشترك مختلف بين الطرفين | انسخه بلا مسافات زائدة |
| رفض لمشترك واحد | منتهٍ أو موقوف أو باقته محذوفة | افحص صفحته في اللوحة |
| قبول والجلسة لا تقوم | Message-Authenticator | require-message-auth=no |
| الاستهلاك لا يُسجَّل | accounting مطفأ على الراوتر | /ppp aaa set accounting=yes |
| الترقية لا تسري إلّا بعد إعادة الاتصال | CoA غير مفعّل | /radius incoming set accept=yes port=3799 |
| القرص يمتلئ بسرعة | سجلات المحاسبة تتراكم | فعّل تقليم السجلات الدوري |
أسئلة شائعة
هل أحتاج ترخيصاً لأجرّب؟
نعم للاستعمال الفعلي. والطريقة المعقولة: احصل على ترخيص بحدّ مشتركين صغير، وارفعه حين تكبر.
هل يعمل مع أكثر من برّاس؟
نعم — أضف كل برّاس كراوتر مستقلّ بسرّ مختلف. والسرّ المختلف ليس تزيّداً: تسريب سرّ برج لا يجب أن يفتح بقية الشبكة.
كيف أنقله إلى سيرفر آخر؟
نسخة قاعدة البيانات + إعادة تفعيل الترخيص على المعرّف الجديد. تواصل مع المزوّد قبل النقل، لا بعده والنظام متوقّف.
وهل أستطيع ربطه بنظام الفوترة عندي؟
عبر واجهته البرمجية، نعم. وفي أغلب الحالات يكفي أن تستعمل فوترته الداخلية بدل بناء تكامل تصونه إلى الأبد.
ما أهم شيء أفعله بعد التنصيب مباشرةً؟
نسخة احتياطية مجدولة لقاعدة البيانات — واختبر استرجاعها. فقدان قاعدة المشتركين يعني فقدان شركتك، لا فقدان خادم. وشرحنا الإجراء في مقالة النسخ والاسترجاع.
الخطوة التالية
عندك الآن نظام يعمل. لكن هل هو الأنسب لك؟ في الجزء الرابع نجرّب نظاماً منافساً على نفس البرّاس ونقارن بصراحة — بلا مجاملة لأحد.
هذه المقالة من سلسلة «أنظمة مزوّد الإنترنت على بروكسموكس» — راوتر ونظام محاسبة وPPPoE وهوت سبوت على سيرفر واحد: ١. MikroTik CHR على بروكسموكس · ٢. PPPoE من الصفر · ٣. سنونو ساس والربط بالراديوس · ٤. دادي ساس والفرق العملي · ٥. الهوت سبوت وكروت الشحن