PPPoE هو صلب عمل مزوّد الإنترنت: كل مشترك يدخل باسم وكلمة مرور، فتعرف من المتصل، وكم استهلك، ومتى تنتهي اشتراكه، وتستطيع قطعه أو رفع سرعته بضغطة.
سنبنيه هنا من الصفر على برّاس MikroTik — ستة أوامر على الخادم وأمر واحد على جهاز المشترك — ثم نوصل مشتركاً حقيقياً ونتأكّد أنه يتصفّح.
كل لقطة وكل مخرج أمر في هذه السلسلة من مختبر بنيناه ويعمل. على سيرفر Proxmox VE واحد: راوتر MikroTik CHR 7.23 كبرّاس، ونظاما محاسبة حقيقيان بترخيصين فعّالين، وجهاز مشترك اتصل فعلاً عبر PPPoE وحصل على عنوان وإنترنت. والوصول إلى كل اللوحات كان عبر نفق مشفّر — لم تُفتح لوحة إدارة واحدة على الإنترنت أثناء التصوير، ولا يظهر في أي صورة زبون حقيقي.
كيف يعمل PPPoE في ثلاث جمل؟
جهاز المشترك يصرخ في الشبكة المحلية: «هل من خادم؟». يجيبه البرّاس. يتبادلان اسم المستخدم وكلمة المرور. ثم يسأل البرّاس خادم الراديوس: «هل هذا مشترك صالح؟ وبأي سرعة؟» — وبحسب الجواب يُعطيه عنواناً وحدّ سرعة، أو يُغلق الباب.
وكل ما نفعله أدناه هو بناء هذه السلسلة قطعةً قطعة.
الخطوة 1: مجمّع العناوين
/ip pool add name=pppoe-pool ranges=10.50.0.10-10.50.0.254
هذه العناوين يوزّعها البرّاس على المشتركين. احسبها بسخاء — العنوان الخاص لا يكلّف شيئاً — واترك أول عشرة للخدمات.
الخطوة 2: ملف تعريف الاتصال
/ppp profile add name=pppoe-default \
local-address=10.50.0.1 \
remote-address=pppoe-pool \
dns-server=1.1.1.1
local-address هو عنوان البرّاس الذي يراه المشترك كبوّابة، وremote-address المجمّع الذي يأخذ منه المشترك عنوانه.
الخطوة 3: الخادم نفسه
/interface pppoe-server server add \
service-name=maram \
interface=ether2 \
disabled=no \
default-profile=pppoe-default \
one-session-per-host=yes \
authentication=pap,chap
one-session-per-host=yes ليست تفصيلاً. بدونها يستطيع مشترك واحد فتح عدة جلسات بنفس الحساب — أي أن حساباً واحداً يخدم ثلاثة بيوت. هذا أكثر تسرّب إيرادات في شبكات المزوّدين الصغار، وعلاجه كلمة واحدة.
الخطوة 4: اربطه بنظام المحاسبة
/radius add service=ppp \
address=10.10.10.91 \
secret="<سرّ-مشترك-طويل-وعشوائي>" \
timeout=3s
/ppp aaa set use-radius=yes accounting=yes interim-update=5m
| الخيار | ماذا يفعل |
|---|---|
| use-radius=yes | المصادقة من النظام لا من قائمة محلية |
| accounting=yes | يرسل الاستهلاك — بدونه لا تعرف من استعمل كم |
| interim-update=5m | تحديث كل خمس دقائق بدل نهاية الجلسة فقط |
وinterim-update هو ما يجعل «المتصلون الآن» في لوحتك حقيقياً. بدونه لا ترى استهلاك مشترك بقي متصلاً ثلاثة أيام إلّا بعد أن يقطع.
الخطوة 5: أخرجهم إلى الإنترنت
/ip firewall nat add chain=srcnat action=masquerade out-interface=ether1
الخطوة 6: جهاز المشترك
/interface pppoe-client add name=wan interface=ether1 \
user=ali.mansour password=****** \
add-default-route=yes use-peer-dns=yes disabled=no
التحقّق: هل اتصل فعلاً؟
ثلاثة أوامر تكفي للتأكّد:
# على البرّاس
/ppp active print detail
# عند المشترك
/ip address print
/ping 1.1.1.1 count=3
علامة R في الجلسة تعني RADIUS — أي أن المصادقة جاءت من نظام المحاسبة لا من قائمة محلية. وهذه هي العلامة التي تريدها.
حدود السرعة — من أين تأتي؟
لا تضعها على البرّاس. ضعها في نظام المحاسبة داخل الباقة، فيرسلها الراديوس مع كل قبول:
Mikrotik-Rate-Limit = "10M/20M" # رفع/تنزيل
الفائدة أن ترقية مشترك من باقة إلى أخرى تصبح تغيير حقل في اللوحة — لا لمس الراوتر. وفي كل برج.
ولترقية فورية بلا قطع الجلسة
فعّل CoA — وهو ما يجعل الراديوس يغيّر سرعة جلسة قائمة:
/radius incoming set accept=yes port=3799
وفي النظام اضبط منفذ CoA على 3799 للراوتر نفسه. بدونه، ترقية الباقة لا تسري حتى يعيد المشترك الاتصال.
القطع التلقائي عند انتهاء الاشتراك
هذا يفعله نظام المحاسبة لا الراوتر: حين تنتهي مدّة المشترك يرفض الراديوس المصادقة، وترسل اللوحة أمر قطع للجلسة القائمة عبر CoA. ولهذا تحتاج الاثنين — accounting وCoA — لا واحداً منهما.
وقبل أن تشغّل القطع التلقائي على مشتركين حقيقيين: جرّبه على حساب اختبار بمدّة تنتهي بعد خمس دقائق. أسوأ سيناريو في هذا الباب هو إعداد خاطئ يقطع نصف مشتركيك في وقت واحد لأن حقل تاريخ فيه خطأ.
أخطاء شائعة وحلولها
| العَرَض | السبب | الحل |
|---|---|---|
| الجهاز لا يجد الخادم | الخادم على واجهة خاطئة | راجع interface في إعداد الخادم |
| radius timeout | النظام لا يعرف هذا الراوتر | أضفه ثم أعد تشغيل خدمة الراديوس |
| Access-Reject | الحساب ناقص في قاعدة الراديوس | راجع الجزء الثالث |
| قبول من النظام ورفض عند الراوتر | Message-Authenticator | require-message-auth=no |
| يتصل وبلا إنترنت | NAT أو خادم الأسماء | راجع masquerade وdns-server في الملف |
| حساب واحد بعدة جلسات | one-session-per-host مطفأ | فعّله فوراً |
| الاستهلاك لا يظهر | accounting مطفأ | /ppp aaa set accounting=yes |
| حدّ السرعة لا يُطبَّق | الباقة لا ترسل Rate-Limit | أضفه في إعداد الباقة |
أسئلة شائعة
PPPoE أم DHCP مع ربط العنوان بالبطاقة؟
PPPoE — لأنه يربط الخدمة بحساب لا بجهاز. المشترك يغيّر راوتره ويبقى حسابه، وأنت تقطع وتُرقّي بضغطة. وربط البطاقة ينهار عند أول تغيير جهاز.
كم مشتركاً يتحمّل برّاس واحد؟
عملياً حتى ألف جلسة على أربعة أنوية بلا ضغط. والحدّ ليس العدد بل الترافك المارّ وقواعد الجدار.
هل أحتاج نظام محاسبة من اليوم الأول؟
تستطيع البدء بقائمة محلية (/ppp secret) لعشرين مشتركاً. لكن ابنِ الراديوس مبكراً — لأن نقل مئتي مشترك من قائمة محلية إلى نظام محاسبة عمل يوم كامل.
ماذا يحدث حين ينقطع خادم الراديوس؟
الجلسات القائمة تستمر، والجديدة تفشل. ولهذا اجعل خادم الراديوس على سيرفر مستقرّ وخذ له نسخاً — واختبر استرجاعها.
وهل أستطيع تشغيل PPPoE والهوت سبوت معاً؟
نعم، على واجهتين مختلفتين — وهذا ما فعلناه في المختبر. ونشرح الهوت سبوت في الجزء الخامس.
الخطوة التالية
الآن عندك برّاس يشتغل — لكنه يسأل نظاماً لم نبنه بعد. في الجزء الثالث نبني نظام المحاسبة الأشهر في السوق العراقي ونربطه به، ونعرض تشخيص كل عطل قابلناه فعلاً.
هذه المقالة من سلسلة «أنظمة مزوّد الإنترنت على بروكسموكس» — راوتر ونظام محاسبة وPPPoE وهوت سبوت على سيرفر واحد: ١. MikroTik CHR على بروكسموكس · ٢. PPPoE من الصفر · ٣. سنونو ساس والربط بالراديوس · ٤. دادي ساس والفرق العملي · ٥. الهوت سبوت وكروت الشحن