لماذا يتجدد وقت كرت الهوت سبوت عند إعادة الاتصال؟ وكيف تحسب الوقت الإجمالي
إذا كان كرت «4 ساعات» يعطي المستخدم 4 ساعات جديدة كلما فصل وأعاد الاتصال، فالسبب أن الكرت محدود بـ Session-Timeout فقط، وهو حد للجلسة الواحدة. الحل عدّاد للوقت الإجمالي في خادم RADIUS يجمع دقائق كل الجلسات ويرفض الكرت عند النفاد.
آخر تحديث: · فريق برق رايديس
ثلاث طرق لتحديد وقت الكرت
| الخاصية | ماذا تحدد | عند إعادة الاتصال |
|---|---|---|
| Session-Timeout | مدة الجلسة الحالية | تبدأ من جديد ✗ |
| Max-All-Session | مجموع وقت الاتصال عبر كل الجلسات | يكمل من حيث توقف ✓ |
| Expire-After | مدة الصلاحية من أول دخول (وقت ساعة الحائط) | يستمر العد حتى لو لم يكن متصلاً ✓ |
كيف يعمل العدّاد في FreeRADIUS
وحدة sqlcounter تجمع AcctSessionTime من سجلات المحاسبة للمستخدم، وتقارنه بالحد المكتوب للكرت. إذا نفد الوقت ترفض الدخول، وإلا تعيد للراوتر Session-Timeout يساوي الوقت المتبقي فقط، فتنقطع الجلسة الحالية لحظة النفاد.
sqlcounter noresetcounter {
sql_module_instance = sql
dialect = mysql
counter_name = Max-All-Session-Time
check_name = Max-All-Session
reply_name = Session-Timeout
key = User-Name
reset = never
query = "SELECT SUM(acctsessiontime) FROM radacct WHERE username = '%{${key}}'"
}ثم يُكتب حد الكرت في radcheck:
username | attribute | op | value
4827361950 | Max-All-Session | := | 14400 # 4 ساعات استخدام فعليولا تكتب Session-Timeout ثابتاً في radreply لنفس الكرت، لأنه يتعارض مع الوقت المتبقي الذي يحسبه العدّاد.
الصلاحية من أول دخول
عدّاد آخر (expire_on_login) يستخدم Expire-After: يبدأ العد من أول دخول وينتهي بعد المدة المحددة، سواء استخدم المستخدم الإنترنت أم لا. يناسب كروت «يوم» و«أسبوع».
أمثلة عملية
| الكرت | Max-All-Session | Expire-After | النتيجة |
|---|---|---|---|
| 4 ساعات استخدام | 14400 | — | 4 ساعات اتصال فعلي على أيام متفرقة |
| 4 ساعات خلال 4 ساعات | 14400 | 14400 | ينتهي بعد 4 ساعات من أول دخول أو عند نفاد الاستخدام |
| 10 ساعات خلال 12 ساعة | 36000 | 43200 | 10 ساعات استخدام فعلي، صالحة 12 ساعة من أول دخول |
| يوم كامل | — | 86400 | 24 ساعة من أول دخول مهما كان الاستخدام |
ملاحظة عن mac-cookie
إذا كان تسجيل الدخول في Hotspot يشمل mac-cookie، قد يظهر هاتف المستخدم «متصلاً» على الراوتر بعد انتهاء كرته، حتى يحاول الراوتر إعادة المصادقة فيرفضه RADIUS. هذا سلوك طبيعي وليس خطأ في حساب الوقت.
في برق رايديس
عند إنشاء الباقة تحدد «ساعات الاستخدام الفعلي» و«الصلاحية من أول دخول»، ويكتب برق الخصائص المناسبة لكل كرت. العدّادان مفعّلان على الخادم افتراضياً.