دليل عمليات OmniPGW
OmniPGW - وحدة التحكم في بوابة الحزمة (PGW-C)
بواسطة خدمات شبكة أومنيتاتش
جدول المحتويات
- نظرة عامة
- العمارة
- واجهات الشبكة
- المفاهيم الأساسية
- البدء
- التكوين
- واجهة الويب - لوحة عمليات الوقت الحقيقي
- المراقبة والقياسات
- التوثيق التفصيلي
- الموارد الإضافية
- المساهمة
- الدعم
نظرة عامة
OmniPGW هو تنفيذ عالي الأداء لوحدة التحكم في بوابة الحزمة (PGW-C) لشبكات 3GPP LTE Evolved Packet Core (EPC)، تم تطويره بواسطة خدمات شبكة أومنيتاتش. يدير وظائف التحكم في جلسات البيانات، بما في ذلك:
- إدارة الجلسات - إنشاء وتعديل وإنهاء جلسات بيانات UE (جهاز المستخدم)
- تخصيص عنوان IP - تخصيص عناوين IP للأجهزة المحمولة من برك محددة
- السياسة والتحكم في الفوترة - التفاعل مع PCRF لفرض السياسات والفوترة
- تنسيق مستوى المستخدم - التحكم في PGW-U (مستوى المستخدم) لتوجيه الحزم
ما الذي يفعله PGW-C
- يقبل طلبات الجلسة من SGW-C عبر واجهة S5/S8 (GTP-C)
- يخصص عناوين IP لـ UE من برك الشبكة المحددة
- يطلب قرارات السياسة من PCRF عبر واجهة Gx (Diameter)
- يبرمج قواعد التوجيه في PGW-U عبر واجهة Sxb (PFCP)
- يدير فرض QoS من خلال سياقات الحامل وقواعد QoS
- يتتبع معلومات الفوترة لأنظمة الفوترة
العمارة
نظرة عامة على المكونات
بنية العملية
PGW-C مبني على Elixir/OTP ويستخدم بنية عملية تحت إشراف:
- مشرف التطبيق - مشرف على المستوى الأعلى يدير جميع المكونات
- وسطاء البروتوكول - يتعاملون مع رسائل البروتوكول الواردة/الصادرة
- عمليات الجلسة - واحدة GenServer لكل اتصال PDN نشط
- السجلات - تتبع الموارد المخصصة (IP، TEID، SEID، إلخ)
- مدير عقدة PFCP - يحافظ على ارتباطات PFCP مع نظراء PGW-U
كل مكون تحت إشراف وسيتم إعادة تشغيله تلقائيًا عند الفشل، مما يضمن موثوقية النظام.
واجهات الشبكة
PGW-C ينفذ ثلاث واجهات رئيسية من 3GPP:
واجهة S5/S8 (GTP-C v2)
الغرض: إشارات مستوى التحكم بين SGW-C و PGW-C
البروتوكول: GTP-C الإصدار 2 عبر UDP
الرسائل الرئيسية:
- طلب/استجابة إنشاء جلسة
- طلب/استجابة حذف جلسة
- طلب/استجابة إنشاء حامل
- طلب/استجابة حذف حامل
التكوين: انظر تكوين S5/S8
واجهة Sxb (PFCP)
الغرض: إشارات مستوى التحكم بين PGW-C و PGW-U
البروتوكول: PFCP (بروتوكول التحكم في توجيه الحزم) عبر UDP
الرسائل الرئيسية:
- طلب/استجابة إعداد الارتباط
- طلب/اس��جابة إنشاء جلسة
- طلب/استجابة تعديل الجلسة
- طلب/استجابة حذف الجلسة
- طلب/استجابة نبض القلب
التكوين: انظر توثيق واجهة PFCP/Sxb
واجهة Gx (Diameter)
الغرض: واجهة وظيفة قواعد السياسة والفوترة (PCRF)
البروتوكول: Diameter (IETF RFC 6733)
الرسائل الرئيسية:
- طلب/استجابة التحكم في الائتمان الأولي (CCR-I/CCA-I)
- طلب/استجابة إنهاء التحكم في الائتمان (CCR-T/CCA-T)
التكوين: انظر توثيق واجهة Diameter Gx
المفاهيم الأساسية
جلسة PDN
تمثل جلسة PDN (شبكة بيانات الحزمة) اتصال بيانات UE بشبكة خارجية (مثل الإنترنت). تحتوي كل جلسة على:
- عنوان IP لـ UE - مخصص من بركة الشبكة المحددة
- APN (اسم نقطة الوصول) - يحدد الشبكة الخارجية
- سياق الحامل - يحتوي على معلمات QoS ومعلومات النفق
- ID الفوترة - معرف فريد للفوترة
- TEID (معرف نقطة نهاية النفق) - معرف نفق واجهة S5/S8
- SEID (معرف نقطة نهاية الجلسة) - معرف جلسة واجهة Sxb
سياق الحامل
يمثل الحامل تدفقًا مروريًا بخصائص QoS محددة:
- الحامل الافتراضي - يتم إنشاؤه مع كل جلسة PDN
- الحوامل المخصصة - حوامل إضافية لاحتياجات QoS محددة
- EBI (معرف حامل EPS) - معرف فريد لكل حامل
- معلمات QoS - QCI، ARP، معدلات البيانات (MBR، GBR)
قواعد PFCP
يقوم PGW-C ببرمجة PGW-U بقواعد معالجة الحزم:
- PDR (قاعدة كشف الحزمة) - تطابق الحزم (الرفع/الخفض)
- FAR (قاعدة إجراء التوجيه) - تحدد سلوك التوجيه
- QER (قاعدة فرض QoS) - تفرض حدود معدلات البيانات
- BAR (قاعدة إجراء التخزين المؤقت) - تتحكم في تخزين الحزم
انظر توثيق واجهة PFCP للحصول على التفاصيل.
تخصيص عنوان IP
تُخصص عناوين IP لـ UE من برك الشبكة المحددة:
- اختيار قائم على APN - يمكن أن تستخدم APNs المختلفة شبكات فرعية مختلفة
- التخصيص الديناميكي - اختيار IP عشوائي من النطاق المتاح
- التخصيص الثابت - دعم لعناوين IP المطلوبة من قبل UE
- كشف التصادم - يضمن تخصيص IP فريد
انظر تخصيص بركة IP لـ UE للتكوين.
البدء
المتطلبات المسبقة
- Elixir ~1.16
- Erlang/OTP 26+
- اتصال الشبكة بـ SGW-C و PGW-U و PCRF
- فهم لهندسة EPC LTE
بدء OmniPGW
- تكوين إعدادات وقت التشغيل في
config/runtime.exs - تجميع التطبيق:
mix deps.get
mix compile - بدء التطبيق:
mix run --no-halt
التحقق من التشغيل
تحقق من السجلات لبدء التشغيل الناجح:
[info] Starting OmniPGW...
[info] Starting Metrics Exporter on 127.0.0.42:42069
[info] Starting S5/S8 Broker on 127.0.0.10
[info] Starting Sxb Broker on 127.0.0.20
[info] Starting Gx Broker
[info] Starting PFCP Node Manager
[info] OmniPGW successfully started
الوصول إلى القياسات على http://127.0.0.42:42069/metrics (العنوان المكون).
التكوين
يتم تعريف جميع تكوينات وقت التشغيل في config/runtime.exs. يتم هيكلة التكوين في عدة أقسام:
نظرة عامة على التكوين
مرجع تكوين سريع
| القسم | الغرض | الوثائق |
|---|---|---|
| القياسات | مصدّر قياسات Prometheus | دليل المراقبة |
| Diameter | واجهة Gx إلى PCRF | تكوين Diameter Gx |
| S5S8 | واجهة GTP-C إلى SGW-C | تكوين S5/S8 |
| Sxb | واجهة PFCP إلى PGW-U | تكوين PFCP |
| UE | برك عناوين IP لـ UE | تكوين بركة IP |
| PCO | خيارات تكوين البروتوكول | تكوين PCO |
| CDR | الفوترة غير المتصلة وتقارير الاستخدام | تنسيق CDR |
انظر دليل التكوين الكامل للحصول على معلومات مفصلة.
واجهة الويب - لوحة عمليات الوقت الحقيقي
يتضمن OmniPGW واجهة ويب مدمجة للمراقبة والعمليات في الوقت الحقيقي، مما يوفر رؤية فورية لحالة النظام دون الحاجة إلى أدوات سطر الأوامر أو استعلامات القياسات.
الوصول إلى واجهة الويب
http://<omnipgw-ip>:<web-port>/
الصفحات المتاحة:
| الصفحة | URL | الغرض | معدل التحديث |
|---|---|---|---|
| بحث UE | /ue_search | الغوص العميق في جلسات المشتركين المحددة | عند الطلب |
| جلسات PGW | /pgw_sessions | عرض جميع جلسات PDN النشطة | 2 ثواني |
| تاريخ الجلسة | /session_history | سجل تدقيق لأحداث الجلسة | 5 ثواني |
| الطوبولوجيا الشبكية | /topology | عرض الطوبولوجيا الشبكية المرئي�� | 5 ثواني |
| برك IP | /ip_pools | استخدام بركة عناوين IP لـ UE | 2 ثواني |
| جلسات PFCP | /pfcp_sessions | عرض جلسات PFCP مع PGW-U | 2 ثواني |
| حالة UPF | /upf_status | مراقبة ارتباطات نظراء PFCP | 2 ثواني |
| اختيار UPF | /upf_selection | عرض قواعد اختيار UPF وحالة P-CSCF | ثابت |
| نظراء Diameter | /diameter | مراقبة الاتصال بـ PCRF | 1 ثانية |
| مراقبة P-CSCF | /pcscf_monitor | حالة اكتشاف DNS لـ P-CSCF | 5 ثواني |
| محاكي Gy | /gy_simulator | اختبار الفوترة عبر الإنترنت Gy/Ro | عند الطلب |
| أبراج الخلايا | /cell_towers | تصفح قاعدة بيانات OpenCellID | ثابت |
| السجلات | /logs | بث السجلات في الوقت الحقيقي | مباشر |
الميزات الرئيسية
التحديثات في الوقت الحقيقي:
- جميع الصفحات تتجدد تلقائيًا (لا حاجة لإعادة التحميل يدويًا)
- تدفق البيانات الحية من عمليات OmniPGW
- مؤشرات حالة ملونة (أخضر/أحمر)
البحث والتصفية:
- البحث عن الجلسات باستخد��م IMSI أو IP أو MSISDN أو APN
- تصفية فورية دون إعادة تحميل الصفحة
تفاصيل قابلة للتوسيع:
- انقر على أي صف لرؤية التفاصيل الكاملة
- فحص حالة الجلسة الكاملة
- عرض تكوين وقدرات النظراء
لا حاجة للمصادقة (للاستخدام الداخلي):
- وصول مباشر من الشبكة الإدارية
- مصممة للاستخدام من قبل فريق NOC/العمليات
- ربط فقط بعنوان IP الإداري لأغراض الأمان
سير العمل التشغيلي
استكشاف مشاكل الجلسة (غوص عميق):
1. المستخدم يبلغ عن مشكلة في الاتصال
2. افتح صفحة بحث UE (/ue_search)
3. ابحث باستخدام IMSI أو MSISDN أو عنوان IP
4. راجع تفاصيل الجلسة الشاملة:
a) الجلسات النشطة - تحقق من وجود الجلسة مع المعلمات الصحيحة
b) الموقع الحالي - تحقق من TAC و Cell ID والموقع الجغرافي
c) معلومات الحامل - تحقق من الحوامل الافتراضية والمخصصة
- QCI، MBR/GBR، أسماء قواعد الفوترة
- حدود APN-AMBR
d) معلومات الفوترة - معرف جلسة Gy، حالة الحصة
e) معلومات السياسة - جلسة Gx، قواعد PCC المثبتة
f) الأحداث الأخيرة - تاريخ الجلسة وتغييرات الحالة
5. إذا لم يتم العثور على الجلسة → تحقق من صفحة Diameter للاتصال بـ PCRF
6. إذا كانت هناك مشاكل في الموقع → تحقق من بيانات برج الخلية في قسم الموقع الحالي
بحث سريع عن الجلسة:
1. المستخدم يبلغ عن مشكلة
2. افتح صفحة جلسات PGW (/pgw_sessions)
3. ابحث باستخدام IMSI أو رقم الهاتف
4. تحقق من وجود الجلسة مع التفاصيل الأساسية:
- عنوان IP لـ UE المخصص
- معلمات QoS
- نقاط نهاية النفق التي تم إنشاؤها
5. للتحليل التفصيلي → انقر على الجلسة للتوسيع أو استخدم بحث UE
تحقق من صحة النظام:
1. افتح صفحة حالة UPF → تحقق من أن جميع نظراء PGW-U "مرتبطون"
2. افتح صفحة Diameter → تحقق من أن جميع نظراء PCRF "متصلون"
3. افتح جلسات PGW → تحقق من عدد الجلسات النشطة مقابل السعة
مراقبة السعة:
- نظرة على عدد جلسات PGW
- قارن مع السعة المرخصة/المتوقعة
- تحديد أوقات الاستخدام القصوى
- مراقبة التوزيع عبر APNs
واجهة الويب مقابل القياسات
استخدم واجهة الويب لـ:
- استكشاف مشاكل المشتركين بعمق (بحث UE)
- تفاصيل الجلسة الفردية وفحص الحالة
- حالة النظراء في الوقت الحقيقي (PFCP، Diameter)
- فحوصات صحة سريعة عبر جميع الواجهات
- استكشاف مشاكل المستخدمين المحددين بواسطة IMSI/MSISDN/IP
- التحقق من الموقع الجغرافي (تكامل برج الخلية)
- تحليل QoS للحامل (MBR، GBR، QCI)
- فحص قواعد السياسة والفوترة
- تاريخ الجلسة وآثار التدقيق
- مراقبة سعة بركة IP
- التحقق من التكوين والقواعد
استخدم قياسات Prometheus لـ:
- الاتجاهات التاريخية
- التنبيهات والإشعارات
- رسوم بيانية لتخطيط السعة
- تحليل الأداء
- المراقبة على المدى الطويل
أفضل ممارسة: استخدم كلاهما معًا - واجهة الويب للعمليات الفورية، وPrometheus للاتجاهات والتنبيهات.
المراقبة والقياسات
بالإضافة إلى واجهة الويب، يعرض OmniPGW قياسات متوافقة مع Prometheus للمراقبة:
القياسات المتاحة
-
قياسات الجلسة
teid_registry_count- جلسات S5/S8 النشطةseid_registry_count- جلسات PFCP النشطةsession_id_registry_count- جلسات Gx النشطةaddress_registry_count- عناوين IP المخصصة لـ UEcharging_id_registry_count- معرفات الفوترة النشطة
-
قياسات الرسائل
s5s8_inbound_messages_total- رسائل GTP-C المستلمةsxb_inbound_messages_total- رسائل PFCP المستلمةgx_inbound_messages_total- رسائل Diameter المستلمة- توزيعات مدة معالجة الرسائل
-
قياسات الأخطاء
s5s8_inbound_errors_total- أخطاء بروتوكول S5/S8sxb_inbound_errors_total- أخطاء بروتوكول PFCPgx_inbound_errors_total- أخطاء Diameter
الوصول إلى القياسات
تُعرض القياسات عبر HTTP عند نقطة النهاية المكون��:
curl http://127.0.0.42:42069/metrics
انظر دليل المراقبة والقياسات لإعداد لوحة المعلومات والتنبيهات.
التوثيق التفصيلي
تقدم هذه القسم نظرة شاملة على جميع وثائق OmniPGW. يتم تنظيم الوثائق حسب الموضوع وحالة الاستخدام.
هيكل الوثائق
وثائق OmniPGW
├── OPERATIONS.md (هذا الدليل)
│
└── docs/
├── التكوين والإعداد
│ ├── configuration.md مرجع كامل لـ runtime.exs
│ ├── ue-ip-allocation.md تكوين بركة IP
│ └── pco-configuration.md إعدادات DNS و P-CSCF و MTU
│
├── واجهات الشبكة
│ ├── pfcp-interface.md Sxb/PFCP (تواصل PGW-U)
│ ├── diameter-gx.md Gx (تواصل PCRF)
│ ├── diameter-gy.md Gy/Ro (تواصل OCS)
│ └── s5s8-interface.md S5/S8 (تواصل SGW-C)
│
└── العمليات
├── session-management.md دورة حياة جلسة PDN
└── monitoring.md قياسات Prometheus والتنبيه��ت
الوثائق حسب الموضوع
🚀 البدء
| الوثيقة | الوصف | الغرض |
|---|---|---|
| OPERATIONS.md | الدليل الرئيسي للعمليات (هذا الدليل) | نظرة عامة وبدء سريع |
⚙️ التكوين
| الوثيقة | الوصف | الأسطر |
|---|---|---|
| configuration.md | مرجع كامل لتكوين runtime.exs | 1,600+ |
| ue-ip-allocation.md | إدارة وتخصيص بركة IP لـ UE | 943 |
| pco-configuration.md | خيارات تكوين البروتوكول (DNS، P-CSCF، MTU) | 344 |
🔌 واجهات الشبكة
| الوثيقة | الوصف | الأسطر |
|---|---|---|
| pfcp-interface.md | واجهة PFCP/Sxb إلى PGW-U | 1,355 |
| diameter-gx.md | واجهة Diameter Gx إلى PCRF (التحكم في السياسة) | 941 |
| diameter-gy.md | واجهة Diameter Gy/Ro إلى OCS (الفوترة عبر الإنترنت) | 1,100+ |
| s5s8-interface.md | واجهة GTP-C S5/S8 إلى SGW-C | 456 |
📊 العمليات وا��مراقبة
| الوثيقة | الوصف | الأسطر |
|---|---|---|
| session-management.md | دورة حياة الجلسة PDN والعمليات | 435 |
| monitoring.md | قياسات Prometheus، لوحات Grafana، التنبيهات | 807 |
| data-cdr-format.md | تنسيق ملف CDR، تكوين URR، الفوترة غير المتصلة | 847 |
| qos-bearers.md | إدارة QoS والحامل، التحكم في السياسة | 448 |
| troubleshooting.md | إجراءات استكشاف الأخطاء والمشاكل الشائعة | 687 |
🔧 الميزات المتقدمة
| الوثيقة | الوصف | الأسطر |
|---|---|---|
| pcscf-monitoring.md | اكتشاف P-CSCF ومراقبة الصحة | 894 |
ميزات الوثائق
📈 مخططات Mermaid
تتضمن جميع الوثائق مخططات Mermaid لفهم بصري:
- مخططات العمارة
- مخططات التسلسل (تدفقات الرسائل)
- آلات الحالة
- الطوبولوجيا الشبكية
💡 أمثلة عملية
تتضمن كل وثيقة:
- أمثلة تكوين من العالم الحقيقي
- تكوينات جاهزة للنسخ واللصق
- حالات استخدام شائعة
🔍 استكشاف الأخطاء
تتضمن كل وثيقة واجهة:
- مشاكل شائعة وحلول
- أوامر تصحيح الأخطاء
- قياسات للتشخيص
🔗 المراجع المتقاطعة
تم ربط الوثائق بشكل موسع لتسهيل التنقل.
مسارات القراءة
لمشغلي الشبكة
- OPERATIONS.md - نظرة عامة (هذا الدليل)
- configuration.md - الإعداد
- monitoring.md - المراقبة
- session-management.md - العمليات اليومية
لمهندسي الشبكة
- OPERATIONS.md - نظرة عامة على العمارة (هذا الدليل)
- pfcp-interface.md - التحكم في مستوى المستخدم
- diameter-gx.md - التحكم في السياسة
- diameter-gy.md - الفوترة عبر الإنترنت
- s5s8-interface.md - إدارة الجلسة
- ue-ip-allocation.md - إدارة IP
للتكوين و��لنشر
- configuration.md - مرجع كامل
- ue-ip-allocation.md - برك IP
- pco-configuration.md - معلمات الشبكة
- monitoring.md - إعداد المراقبة
إحصائيات الوثائق
- إجمالي الوثائق: 14
- إجمالي الأسطر: ~10,900+
- إجمالي الحجم: ~265 KB
- مخططات Mermaid: 75+
- أمثلة الشيفرة: 150+
المفاهيم الرئيسية المغطاة
العمارة
- ✅ فصل مستوى التحكم/المستخدم
- ✅ بنية OTP/Elixir
- ✅ إشراف العمليات
- ✅ جلسات قائمة على GenServer
البروتوكولات
- ✅ PFCP (بروتوكول التحكم في توجيه الحزم)
- ✅ GTP-C v2 (بروتوكول نفق GPRS)
- ✅ Diameter (RFC 6733)
واجهات 3GPP
- ✅ Sxb (PGW-C ↔ PGW-U)
- ✅ Gx (PGW-C ↔ PCRF)
- ✅ Gy/Ro (PGW-C ↔ OCS)
- ✅ S5/S8 (SGW-C ↔ PGW-C)
العمليات
- ✅ إدارة الجلسة
- ✅ استراتيجيات تخصيص IP
- ✅ فرض QoS
- ✅ تكامل الفوترة
- ✅ المراقبة والتنبيهات
الموارد الإضافية
مواصفات 3GPP
| المواصفة | العنوان |
|---|---|
| TS 29.274 | GTP-C v2 (واجهة S5/S8) |
| TS 29.244 | PFCP (واجهة Sxb) |
| TS 29.212 | واجهة Diameter Gx (التحكم في السياسة) |
| TS 32.299 | تطبيقات الفوترة Diameter (Gy/Ro) |
| TS 32.251 | فوترة المجال المعبأ |
| TS 23.401 | عمارة EPC |
الوثائق ذات الصلة
- ملف التكوين: config/runtime.exs