دليل عمليات OmniUPF
جدول المحتويات
- نظرة عامة
- فهم بنية مستوى المستخدم 5G
- مكونات UPF
- بروتوكول PFCP وتكامل SMF
- العمليات الشائعة
- استكشاف الأخطاء وإصلاحها
- وثائق إضافية
- قاموس المصطلحات
نظرة عامة
OmniUPF (وظيفة مستوى المستخدم المعتمدة على eBPF) هي وظيفة مستوى مستخدم 5G/LTE عالية الأداء توفر توجيه حزم بمستوى ناقل، وإنفاذ جودة الخدمة (QoS)، وإدارة حركة المرور لشبكات الهاتف المحمول. تم بناؤها على تقنية Linux eBPF (مرشح حزم بيركلي الموسع) ومزودة بقدرات إدارة شاملة، توفر OmniUPF البنية التحتية الأساسية لمعالجة الحزم المطلوبة لشبكات 5G SA و 5G NSA و LTE.
ما هي وظيفة مستوى المستخدم؟
وظيفة مستوى المستخدم (UPF) هي عنصر الشبكة المعتمد من 3GPP المسؤول عن معالجة الحزم وتوجيهها في شبكات 5G و LTE. إنها توفر:
- توجيه حزم عالي السرعة بين الأجهزة المحمولة وشبكات البيانات
- إنفاذ جودة الخدمة (QoS) لأنواع حركة المرور المختلفة
- كشف حركة المرور وتوجيهها بناءً على مرشحات الحزم والقواعد
- تقرير الاستخدام للفوترة والتحليلات
- تخزين الحزم لسيناريوهات التنقل وإدارة الجلسات
- دعم الاعتراض القانوني للامتثال التنظيمي
تقوم OmniUPF بتنفيذ الوظائف الكاملة لـ UPF المحددة في 3GPP TS 23.501 (5G) و TS 23.401 (LTE)، مما يوفر حلاً كاملاً جاهزاً للإنتاج لوظيفة مستوى المستخدم باستخدام تقنية Linux kernel eBPF لتحقيق أقصى أداء.
القدرات الرئيسية لـ OmniUPF
معالجة الحزم:
- معالجة حزم مستوى المستخدم المتوافقة مع 3GPP بالكامل
- مسار بيانات معتمد على eBPF لأداء على مستوى النواة
- تغليف وفك تغليف GTP-U (بروتوكول نفق GPRS)
- دعم IPv4 و IPv6 لكل من الشبكات الوصول وبيانات
- XDP (مسار البيانات السريع) لمعالجة ذات زمن انتقال منخفض للغاية
- معالجة حزم متعددة الخيوط
جودة الخدمة وإدارة حركة المرور:
- قواعد إنفاذ جودة الخدمة (QER) لإدارة النطاق الترددي
- قواعد كشف الحزم (PDR) لتصنيف حركة المرور
- قواعد إجراءات التوجيه (FAR) لقرارات التوجيه
- تصفية تدفق بيانات الخدمة (SDF) للتوجيه المحدد للتطبيق
- قواعد تقرير الاستخدام (URR) لتتبع الحجم والفوترة
التحكم والإدارة:
- واجهة PFCP (بروتوكول التحكم في توجيه الحزم) إلى SMF/PGW-C
- واجهة API RESTful للمراقبة والتشخيص
- إحصائيات ومقاييس في الوقت الحقيقي
- مراقبة سعة خريطة eBPF
- لوحة تحكم قائمة على الويب
ميزات الأداء:
- معالجة الحزم بدون نسخ عبر eBPF
- توجيه الحزم على مستوى النواة (بدون عبء على مساحة المستخدم)
- قابلية التوسع متعددة النوى
- دعم التحميل لزيادة السرعة بواسطة الأجهزة
- مُحسّن للنشر السحابي
للحصول على تفاصيل حول استخدام لوحة التحكم، راجع عمليات واجهة الويب.
فهم بنية مستوى المستخدم
تعد OmniUPF حلاً موحدًا لمستوى المستخدم يوفر توجيه حزم بمستوى ناقل لشبكات 5G المستقلة (SA) و 5G NSA و 4G LTE/EPC. OmniUPF هو منتج واحد يمكن أن يعمل في وقت واحد كـ:
- UPF (وظيفة مستوى المستخدم) - مستوى مستخدم 5G/NSA (تحت السيطرة من قبل OmniSMF عبر N4/PFCP)
- PGW-U (بوابة PDN مستوى المستخدم) - بوابة EPC 4G ��لى الشبكات الخارجية (تحت السيطرة من قبل OmniPGW-C عبر Sxc/PFCP)
- SGW-U (بوابة الخدمة مستوى المستخدم) - بوابة الخدمة EPC 4G (تحت السيطرة من قبل OmniSGW-C عبر Sxb/PFCP)
يمكن أن تعمل OmniUPF في أي مجموعة من هذه الأوضاع:
- UPF فقط: نشر 5G خالص
- PGW-U + SGW-U: بوابة 4G مجمعة (نشر EPC نموذجي)
- UPF + PGW-U + SGW-U: دعم 4G و 5G في وقت واحد (سيناريو الهجرة)
تستخدم جميع الأوضاع نفس محرك معالجة الحزم المعتمد على eBPF وبروتوكول PFCP، مما يوفر أداءً عاليًا متسقًا سواء كانت تعمل كـ UPF أو PGW-U أو SGW-U أو جميعها في وقت واحد.
بنية الشبكة 5G (وضع SA)
تقع حل OmniUPF في مستوى البيانات لشبكات 5G، حيث توفر طبقة توجيه الحزم عالية السرعة التي تربط الأجهزة المحمولة بشبكات البيانات والخدمات.
بنية الشبكة 4G LTE/EPC
تدعم OmniUPF أيضًا نشرات 4G LTE و EPC (النواة المحسّنة للحزم)، تعمل كـ OmniPGW-U أو OmniSGW-U اعتمادًا على بنية الشبكة.
وضع PGW-U/SGW-U المدمج (نشر 4G نموذجي)
في هذا الوضع، تعمل OmniUPF كـ SGW-U و PGW-U، تحت السيطرة من وظائف مستوى التحكم المنفصلة.
وضع SGW-U و PGW-U المنفصل (التجوال/مواقع متعددة)
في نشرات التجوال أو المواقع المتعددة، يمكن نشر مثيلين منفصلين من OmniUPF - واحد كـ SGW-U وآخر كـ PGW-U.
كيفية عمل وظائف مستوى المستخدم في الشبكة
تع��ل وظيفة مستوى المستخدم (OmniUPF، OmniPGW-U، أو OmniSGW-U) كطائرة توجيه تحت السيطرة من طائرة التحكم المعنية:
-
تأسيس الجلسة
- 5G: يقوم OmniSMF بإنشاء ارتباط PFCP عبر واجهة N4 مع OmniUPF
- 4G: يقوم OmniPGW-C أو OmniSGW-C بإنشاء ارتباط PFCP عبر Sxb/Sxc مع OmniPGW-U/OmniSGW-U
- تقوم طائرة التحكم بإنشاء جلسات PFCP لكل جلسة PDU UE (5G) أو سياق PDP (4G)
- تتلقى طائرة المستخدم قواعد PDR و FAR و QER و URR عبر PFCP
- يتم ملء خرائط eBPF بقواعد التوجيه
-
معالجة حزم الرفع (UE → شبكة البيانات)
- 5G: تصل الحزم على واجهة N3 من gNB مع تغليف GTP-U
- 4G: تصل الحزم على واجهة S1-U (SGW-U) أو واجهة S5/S8 (PGW-U) من eNodeB مع تغليف GTP-U
- تطابق طائرة المستخدم الحزم ضد PDRs الرفع بناءً على TEID
- يطبق برنامج eBPF QER (تحديد المعدل، العلامة)
- تحدد FAR إجراء التوجيه (التوجيه، الإسقاط، التخزين، التكرار)
- تتم إزالة نفق GTP-U، ويتم توجيه الحزم إلى واجهة N6 (5G) أو SGi (4G)
- تتعقب URR عدد الحزم والبايتات للفوترة
-
معالجة حزم النزول (شبكة البيانات → UE)
- 5G: تصل الحزم على واجهة N6 كـ IP أصلي
- 4G: تصل الحزم على واجهة SGi كـ IP أصلي
- تطابق طائرة المستخدم الحزم ضد PDRs النزول بناءً على عنوان IP للـ UE
- قد تصنف مرشحات SDF حركة المرور بشكل إضافي حسب المنفذ أو البروتوكول أو التطبيق
- تحدد FAR نفق GTP-U ومعلمات التوجيه
- تتم إضافة تغليف GTP-U مع TEID المناسب
- 5G: يتم توجيه الحزم إلى واجهة N3 نحو gNB
- 4G: يتم توجيه الحزم إلى S1-U (SGW-U) أو S5/S8 (PGW-U) نحو eNodeB
-
التنقل والتبديل
- 5G: يقوم OmniSMF بتحديث قواعد PDR/FAR أثناء سيناريوهات التبديل
- 4G: يقوم OmniSGW-C/OmniPGW-C بتحديث القواعد أثناء تبديل بين eNodeB أو TAU (تحديث منطقة التتبع)
- قد تقوم طائرة المستخدم بتخزين الحزم أثناء تبديل المسار
- انتقال سلس بين محطات القاعدة دون فقدان الحزم
التكامل مع طائرة التحكم (4G و 5G)
يتكامل OmniUPF مع كل من وظائف طائرة التحكم 5G و 4G عبر واجهات 3GPP القياسية:
واجهات 5G
| الواجهة | من → إلى | الغرض | مواصفة 3GPP |
|---|---|---|---|
| N4 | OmniSMF ↔ OmniUPF | إنشاء، تعديل، حذف جلسة PFCP | TS 29.244 |
| N3 | gNB → OmniUPF | حركة مرور مستوى المستخدم من RAN (GTP-U) | TS 29.281 |
| N6 | OmniUPF → شبكة البيانات | حركة مرور مستوى المستخدم إلى DN (IP أصلي) | TS 23.501 |
| N9 | OmniUPF ↔ OmniUPF | التواصل بين UPF للتجوال/الحافة | TS 23.501 |
واجهات 4G/EPC
| الواجهة | من → إلى | الغرض | مواصفة 3GPP |
|---|---|---|---|
| Sxb | OmniSGW-C ↔ OmniUPF (وضع SGW-U) | التحكم في جلسة PFCP للبوابة الخدمية | TS 29.244 |
| Sxc | OmniPGW-C ↔ OmniUPF (وضع PGW-U) | التحكم في جلسة PFCP للبوابة PDN | TS 29.244 |
| S1-U | eNodeB → OmniUPF (وضع SGW-U) | حركة مرور مستوى المستخدم من RAN (GTP-U) | TS 29.281 |
| S5/S8 | OmniUPF (SGW-U) ↔ OmniUPF (PGW-U) | مستوى المستخدم بين البوابات (GTP-U) | TS 29.281 |
| SGi | OmniUPF (وضع PGW-U) → PDN | حركة مرور مستوى المستخدم إلى شبكة البيانات (IP أصلي) | TS 23.401 |
ملاحظة: تستخدم جميع واجهات PFCP (N4، Sxb، Sxc) نفس بروتوكول PFCP المحدد في TS 29.244. تختلف أسماء الواجهات ولكن البروتوكول وصيغ الرسائل متطابقة.
مكونات UPF
مسار eBPF
مسار eBPF هو محرك معالجة الحزم الأساسي الذي يعمل في نواة Linux لتحقيق أقصى أداء.
الوظائف الأساسية:
- معالجة GTP-U: تغليف وفك تغليف أنفاق GTP-U
- تصنيف الحزم: مطابقة الحزم ضد قواعد PDR باستخدام TEID، عنوان IP للـ UE، أو مرشحات SDF
- إنفاذ QoS: تطبيق تحديد المعدل وعلامة الحزم وفقًا لقواعد QER
- قرارات التوجيه: تنفيذ إجراءات FAR (التوجيه، الإسقاط، التخزين، التكرار، الإخطار)
- تتبع الاستخدام: زيادة عدادات URR للفوترة المعتمدة على الحجم
خرائط eBPF: يستخدم المسار خرائط eBPF (جداول هاش في ذاكرة النواة) لتخزين القواعد:
| اسم الخريطة | الغرض | المفتاح | القيمة |
|---|---|---|---|
uplink_pdr_map | PDRs الرفع | TEID (32-bit) | معلومات PDR (FAR ID، QER ID، URR IDs) |
downlink_pdr_map | PDRs النزول (IPv4) | عنوان IP للـ UE | معلومات PDR |
downlink_pdr_map_ip6 | PDRs النزول (IPv6) | عنوان IPv6 للـ UE | معلومات PDR |
far_map | قواعد التوجيه | FAR ID | معلمات التوجيه (الإجراء، معلومات النفق) |
qer_map | قواعد QoS | QER ID | معلمات QoS (MBR، GBR، العلامة) |
urr_map | تتبع الاستخدام | URR ID | عدادات الحجم (الرفع، النزول، الإجمالي) |
sdf_filter_map | مرشحات SDF | PDR ID | مرشحات التطبيقات (المنافذ، البروتوكولات) |
خصائص الأداء:
- بدون نسخ: تتم معالجة الحزم بالكامل في مساحة النواة
- دعم XDP: التعلق على مستوى برنامج تشغيل الشبكة لزمن انتقال دون ميكروثانية
- متعددة النوى: تتوسع عبر نوى CPU مع دعم خريطة لكل CPU
- السعة: ملايين PDRs/FARs في خرائط eBPF (محدودة بواسطة ذاكرة النواة)
للحصول على معلومات حول مراقبة السعة، راجع إدارة السعة.
معالج واجهة PFCP
تimplement واجهة PFCP بروتوكول TS 29.244 للتواصل مع SMF أو PGW-C.
الوظائف الأساسية:
- إدارة الارتباط: نبض PFCP وإعداد/إطلاق الارتباط
- دورة حياة الجلسة: إنشاء وتعديل وحذف جلسات PFCP
- تثبيت القواعد: ترجمة عناصر معلومات PFCP إلى إدخالات خريطة eBPF
- تقرير الأحداث: إخطار SMF بعناصر الاستخدام، الأخطاء، أو أحداث الجلسة
دعم رسائل PFCP:
| نوع الرسالة | الاتجاه | الغرض |
|---|---|---|
| إعداد الارتباط | SMF → UPF | إنشاء ارتباط التحكم PFCP |
| إطلاق الارتباط | SMF → UPF | إنهاء ارتباط PFCP |
| نبض | ثنائي الاتجاه | الحفاظ على ارتباط نشط |
| إنشاء الجلسة | SMF → UPF | إنشاء جلسة PDU جديدة مع PDR/FAR/QER/URR |
| تعديل الجلسة | SMF → UPF | تحديث القواع�� للتنقل، تغييرات QoS |
| حذف الجلسة | SMF → UPF | إزالة الجلسة وجميع القواعد المرتبطة |
| تقرير الجلسة | UPF → SMF | تقرير الاستخدام، الأخطاء، أو الأحداث |
عناصر المعلومات (IE) المدعومة:
- إنشاء PDR، FAR، QER، URR
- تحديث PDR، FAR، QER، URR
- إزالة PDR، FAR، QER، URR
- معلومات كشف الحزم (عنوان IP للـ UE، F-TEID، مرشح SDF)
- معلمات التوجيه (مثال الشبكة، إنشاء رأس خارجي)
- معلمات QoS (MBR، GBR، QFI)
- مشغلات تقرير الاستخدام (عتبة الحجم، عتبة الوقت)
خادم REST API
يوفر REST API وصولاً برمجياً إلى حالة UPF والعمليات.
الوظائف الأساسية:
- مراقبة الجلسات: استعلام عن جلسات PFCP النشطة والارتباطات
- فحص القواعد: عرض تكوينات PDR، FAR، QER، URR
- الإحصائيات: استرجاع عدادات الحزم، إحصائيات المسار، إحصائيات XDP
- إدارة التخزين: عرض والتحكم في تخزين الحزم
- معلومات الخريطة: مراقبة استخدام خريطة eBPF والسعة
نقاط نهاية API: (34 نقطة نهاية إجمالية)
| الفئة | نقاط النهاية | الوصف |
|---|---|---|
| الصحة | /health | فحص الصحة والحالة |
| التكوين | /config | تكوين UPF |
| الجلسات | /pfcp_sessions, /pfcp_associations | بيانات جلسة/ارتباط PFCP |
| PDRs | /uplink_pdr_map, /downlink_pdr_map, /downlink_pdr_map_ip6, /uplink_pdr_map_ip6 | قواعد كشف الحزم |
| FARs | /far_map | قواعد إجراءات التوجيه |
| QERs | /qer_map | قواعد إنفاذ QoS |
| URRs | /urr_map | قواعد تقرير الاستخدام |
| التخزين | /buffer | حالة التحكم في تخزين الحزم |
| الإحصائيات | /packet_stats, /route_stats, /xdp_stats, /n3n6_stats | مقاييس الأداء |
| السعة | /map_info | سعة واستخدام خريطة eBPF |
| مسار البيانات | /dataplane_config | عناوين واجهات N3/N9 |
للحصول على تفاصيل API واستخدامها، راجع دليل المراقبة.
لوحة التحكم عبر الويب
توفر لوحة التحكم عبر الويب لوحة معلومات في الوقت الحقيقي لمراقبة وإدارة UPF.
الميزات:
- عرض الجلسات: تصفح جلسات PFCP النشطة مع عنوان IP للـ UE، TEID، وعدد القواعد
- إدارة القواعد: عرض وإدارة PDRs و FARs و QERs و URRs عبر جميع الجلسات
- مراقبة التخزين: تتبع الحزم المخزنة والتحكم في التخزين لكل FAR
- لوحة إحصائيات: إحصائيات حزم، مسارات، XDP، وإحصائيات واجهات N3/N6 في الوقت الحقيقي
- مراقبة السعة: استخدام خريطة eBPF مع مؤشرات سعة ملونة
- عرض التكوين: عرض تكوين UPF وعناوين مسار البيانات
- عارض السجلات: دفق السجلات المباشرة لاستكشاف الأخطاء وإصلاحها
للحصول على عمليات واجهة المستخدم التفصيلية، راجع دليل عمليات واجهة الويب.
بروتوكول PFCP وتكامل SMF
ارتباط PFCP
قبل أن يمكن إنشاء الجلسات، يجب على SMF إنشاء ارتباط PFCP مع UPF.
دورة حياة الارتباط:
النقاط الرئيسية:
- يقوم كل SMF بإنشاء ارتباط واحد مع UPF
- يتتبع UPF الارتباط بواسطة معرف العقدة (FQDN أو عنوان IP)
- تحافظ رسائل النبض على حيوية الارتباط
- يتم حذف جميع الجلسات تحت ارتباط إذا تم إطلاق الارتباط
لرؤية الارتباطات، راجع عرض الجلسات.
اكتشاف إعادة تشغيل SMF وتنظيف الجلسات اليتيمة
تكتشف OmniUPF تلقائيًا عندما يتم إعادة تشغيل SMF وتقوم بتنظيف الجلسات اليتيمة وفقًا لمواصفات 3GPP TS 29.244.
كيف يعمل:
عندما يقوم SMF بإنشاء ارتباط PFCP، فإنه يوفر طابع زمني للاسترداد يشير إلى متى بدأ. تقوم OmniUPF بتخزين هذا الطابع الزمني لكل ارتباط. إذا تم إعادة تشغيل SMF:
- يفقد SMF كل حالة الجلسة في الذاكرة
- يعيد SMF إنشاء ارتباط PFCP مع UPF
- يرسل SMF طابع زمني جديد للاسترداد (مختلف عن السابق)
- تكتشف UPF تغيير الطابع الزمني = تم إعادة تشغيل SMF
- تقوم UPF تلقائيًا بحذف جميع الجلسات اليتيمة من مثيل SMF القديم
- ينشئ SMF جلسات جديدة للمشتركين النشطين
تدفق اكتشاف إعادة التشغيل:
مثال على السجل:
عند إعادة تشغيل SMF، سترى:
WARN: الارتباط مع NodeID: smf-1 والعنوان: 192.168.1.10 موجود بالفعل
WARN: تغير طابع زمني لاسترداد SMF (القديم: 2025-01-15T10:00:00Z، الجديد: 2025-01-15T10:30:15Z) - تم إعادة تشغيل SMF، حذف 245 جلسة يتيمة
INFO: حذف الجلسة اليتيمة 2 (LocalSEID) بسبب إعادة تشغيل SMF
INFO: حذف الجلسة اليتيمة 3 (LocalSEID) بسبب إعادة تشغيل SMF
...
INFO: حذف الجلسة اليتيمة 246 (LocalSEID) بسبب إعادة تشغيل SMF
ملاحظات مهمة:
-
العزل: يتم حذف الجلسات فقط من SMF المعاد تشغيله. لا تتأثر ارتباطات SMF الأخرى وجلساتها بأي شكل.
-
مقارنة الطوابع الزمنية: إذا كان طابع الاسترداد متماثلاً، يتم الاحتفاظ بالجلسات (تم إعادة الاتصال بـ SMF دون إعادة تشغيل).
-
امتثال 3GPP: هذا السلوك مطلوب بموجب 3GPP TS 29.244 القسم 5.22.2:
"إذا كان طابع الاسترداد لوظيفة CP قد تغير منذ آخر إعداد ارتباط، يجب أن تعتبر وظيفة UP أن وظيفة CP قد أعيد تشغيلها ويجب أن تحذف جميع جلسات PFCP المرتبطة بتلك الوظيفة CP."
لإصلاح مشكلات الجلسات اليتيمة، راجع دليل استكشاف الأخطاء وإصلاحها.
معالجة إشارة الخطأ GTP-U
تتعامل OmniUPF مع رسائل إشارة الخطأ GTP-U من الأقران السفليين (PGW-U، SGW-U، eNodeB، gNodeB) وفقًا لمواصفات 3GPP TS 29.281.
ما هي إشارات الأخطاء:
عندما تقوم OmniUPF بتوجيه حزمة GTP-U إلى نظير بعيد (على سبيل المثال، PGW-U في نشر SGW-U)، قد يرسل النظير إشارة خطأ إذا لم يتعرف على TEID (معرف نقطة النفق). هذا يشير إلى:
- أن النظير البعيد قد أعيد تشغيله وفقد حالة النفق
- أن النفق لم يتم إنشاؤه أبدًا على الجانب البعيد (تعارض في التكوين)
- أن النفق قد تم حذفه بالفعل على الجانب البعيد
كيف يعمل:
- UPF يوجه الحزمة → يرسل حزمة GTP-U مع TEID X إلى النظير البعيد (المنفذ 2152)
- النظير البعيد لا يتعرف على TEID X → يبحث عن TEID في جدول الأنفاق الخاص به، غير موجود
- النظير البعيد يرسل إشارة خطأ → رسالة GTP-U من النوع 26 مع IE تحتوي على TEID الخاطئ
- UPF تتلقى إشارة الخطأ → تقوم بتحليل الرسالة لاستخراج TEID X
- UPF تجد الجلسات المتأثرة → تبحث عن جميع الجلسات بحثًا عن FARs التي توجه إلى TEID X
- UPF تحذف الجلسات → تزيل الجلسات من خرائط eBPF وحالة PFCP
- UPF تحدث المقاييس → تزيد عدادات Prometheus للمراقبة
تدفق إشارة الخطأ:
تنسيق الحزمة (3GPP TS 29.281 القسم 7.3.1):
إشارة خطأ GTP-U:
┌─────────────────────────────────────────┐
│ رأس GTP-U (12 بايت) │
├─────────────────────────────────────────┤
│ الإصدار، PT، العلامات │ 0x32 │
│ نوع الرسالة │ 26 (0x1A) │
│ الطول │ 9 بايت │
│ TEID │ 0 (دائمًا) │
│ رقم التسلسل │ يتغير │
│ رقم N-PDU │ 0 │
│ رأس الامتداد التالي │ 0 │
├─────────────────────────────────────────┤
│ IE: بيانات TEID I (5 بايت) │
├────────��────────────────────────────────┤
│ النوع │ 16 (0x10) │
│ TEID الخاطئ │ 4 بايت │
└─────────────────────────────────────────┘
متى تكون هذه المسألة مهمة:
السيناريو 1: إعادة تشغيل PGW-U في بنية GTP S5/S8
- يقوم SGW-U (OmniUPF) بتوجيه حركة المرور S5/S8 إلى PGW-U
- يعيد PGW-U التشغيل ويفقد كل حالة النفق S5/S8
- يستمر SGW-U في التوجيه إلى TEIDs القديمة
- يرسل PGW-U إشارات خطأ
- SGW-U يتوقف تلقائيًا عن استخدام الأنفاق الميتة
السيناريو 2: إعادة تشغيل UPF النظير في بنية N9
- UPF-1 (OmniUPF) يوجه حركة المرور N9 إلى UPF-2
- UPF-2 يعيد التشغيل
- UPF-1 يتلقى إشارات خطأ
- UPF-1 ينظف الجلسات
مثال على السجل:
عند تلقي إشارة خطأ:
WARN: تلقي إشارة خطأ GTP-U من 192.168.50.10:2152 لـ TEID 0x12345678 - النظير البعيد لا يتعرف على هذا TEID
WARN: وجدت جلسة LocalSEID=42 مع FAR GlobalId=1 توجه إلى TEID الخاطئ 0x12345678 من النظير 192.168.50.10
INFO: حذف الجلسة LocalSEID=42 بسبب إشارة خطأ GTP-U لـ TEID 0x12345678 من 192.168.50.10
WARN: تم حذف 1 جلسة(ات) بسبب إشارة خطأ GTP-U لـ TEID 0x12345678 من النظير 192.168.50.10
مقاييس Prometheus:
راقب نشاط إشارة الخطأ مع تفاصيل لكل نظير ولكل عقدة:
# إجمالي إشارات الخطأ المستلمة من الأقران
upf_buffer_listener_error_indications_received_total{node_id="pgw-u-1",peer_address="192.168.50.10"}
# الجلسات المحذوفة بسبب إشارات الخطأ
upf_buffer_listener_error_indication_sessions_deleted_total{node_id="pgw-u-1",peer_address="192.168.50.10"}
# إشارات الخطأ المرسلة (لـ TEIDs الواردة غير المعروفة)
upf_buffer_listener_error_indications_sent_total{node_id="enodeb-1",peer_address="10.60.0.1"}
تسميات المقاييس:
node_id: معرف عقدة PFCP من الارتباط (أو "غير معروف" إذا لم يوجد ارتباط)peer_address: عنوان IP للنظير البعيد
تساعد هذه المقاييس في تحديد الأقران الم problematic وتتبع أنم��ط إشارة الخطأ لكل عقدة في طائرة التحكم.
ملاحظات مهمة:
-
تنظيف تلقائي: لا حاجة لتدخل المشغل - يتم حذف الجلسات تلقائيًا
-
مطابقة TEID: يتم حذف الجلسات فقط مع FARs التي توجه إلى TEID الخاطئ بالضبط
-
عزل لكل نظير: تؤثر إشارات الخطأ من نظير واحد فقط على الجلسات التي توجه إلى ذلك النظير
-
جلسات متعددة: إذا كانت هناك جلسات متعددة توجه إلى نفس TEID الميت، يتم حذف جميعها
-
تكامل مع طابع الاسترداد:
- اكتشاف طابع الاسترداد = استباقي (يكتشف إعادة التشغيل أثناء إعداد الارتباط)
- معالجة إشارة الخطأ = تفاعلي (يكتشف الأنفاق الميتة عندما تتدفق حركة المرور)
-
معالجة الحزم غير الصالحة: يتم تسجيل إشارات الخطأ غير الصالحة وتجاهلها (لا يتم حذف أي جلسات)
لإصلاح مشكلات إشارات الخطأ، راجع دليل استكشاف الأخطاء وإصلاحها.
إنشاء جل��ة PFCP
عندما يقوم UE بإنشاء جلسة PDU (5G) أو سياق PDP (LTE)، يقوم SMF بإنشاء جلسة PFCP في UPF.
تدفق إنشاء الجلسة:
محتويات الجلسة النموذجية:
- PDR للرفع: مطابقة على TEID N3، التوجيه عبر FAR إلى N6
- PDR للنزول: مطابقة على ع��وان IP للـ UE، التوجيه عبر FAR إلى N3 مع تغليف GTP-U
- FAR: معلمات التوجيه (إنشاء رأس خارجي، مثيل الشبكة)
- QER: حدود QoS (MBR، GBR) وعلامة الحزم (QFI)
- URR: تقرير الحجم للفوترة (اختياري)
تعديل جلسة PFCP
يمكن لـ SMF تعديل الجلسات لأحداث التنقل (التبديل)، تغييرات QoS، أو تحديثات الخدمة.
سيناريوهات التعديل الشائعة:
-
التبديل (استنادًا إلى N2)
- تحديث FAR للرفع مع نقطة نهاية جديدة لـ gNB (F-TEID)
- تخزين الحزم أثناء التبديل
- تفريغ التخزين إلى المسار الجديد عند الاستعداد
-
تغيير QoS
- تحديث QER مع قيم MBR/GBR جديدة
- قد يتم إضافة/إزالة مرشحات SDF في PDR من أجل QoS المحدد للتطبيق
-
تحديث الخدمة
- إضافة PDRs جديدة لتدفقات حركة المرور الإضافية
- تعديل FARs لتغييرات التوجيه
تدفق تعديل الجلسة:
لإدارة القواعد، راجع دليل إدارة القواعد.
حذف جلسة PFCP
عندما يتم إطلاق جلسة PDU، يقوم SMF بحذف جلسة PFCP في UPF.
تدفق حذف الجلسة:
التنظيف الذي تم:
- تمت إزالة جميع PDRs (الرفع والنزول)
- تمت إزالة جميع FARs و QERs و URRs
- تم مسح التخزين
- تم إرسال تقرير الاستخدام النهائي إلى SMF للفوترة
العمليات الشائعة
توفر OmniUPF قدرات تشغيل شاملة من خلال لوحة التحكم المستندة إلى الويب و REST API. تغطي هذه القسم العمليات الشائعة وأهميتها.
مراقبة الجلسات
فهم جلسات PFCP:
تمثل جلسات PFCP الجلسات النشطة PDU للـ UE (5G) أو سياقات PDP (LTE). تحتوي كل جلسة على:
- SEIDs محلية وبعيدة (معرفات نقاط نهاية الجلسة)
- PDRs لتصنيف الحزم
- FARs لقرارات التوجيه
- QERs لإنفاذ QoS (اختياري)
- URRs لتتبع الاستخدام (اختياري)
العمليات الرئيسية للجلسة:
- عرض جميع الجلسات مع عناوين IP للـ UE، TEIDs، وعدد القواعد
- تصفية الجلسات حسب عنوان IP أو TEID
- فحص تفاصيل الجلسة بما في ذلك تكوينات PDR/FAR/QER/URR الكاملة
- مراقبة عدد الجلسا�� لكل ارتباط PFCP
للحصول على إجراءات الجلسة التفصيلية، راجع عرض الجلسات.
إدارة القواعد
قواعد كشف الحزم (PDR):
تحدد PDRs الحزم التي تتطابق مع تدفقات حركة المرور المحددة. يمكن للمشغلين:
- عرض PDRs الرفع المفاتيح بواسطة TEID من واجهة N3
- عرض PDRs النزول المفاتيح بواسطة عنوان IP للـ UE (IPv4 و IPv6)
- فحص مرشحات SDF لتصنيف الحركة المحددة للتطبيق
- مراقبة عدد PDRs واستخدام السعة
قواعد إجراءات التوجيه (FAR):
تحدد FARs ما يجب فعله مع الحزم المطابقة. يمكن للمشغلين:
- عرض إجراءات FAR (التوجيه، الإسقاط، التخزين، التكرار، الإخطار)
- فحص معلمات التوجيه (إنشاء رأس خارجي، الوجهة)
- مراقبة حالة التخزين لكل FAR
- تبديل التخزين لقواعد FAR محددة أثناء استكشاف الأخطاء وإصلاحها
قواعد إنفاذ QoS (QER):
تطبق QERs حدود النطاق الترددي وعلامة الحزم. ��مكن للمشغلين:
- عرض معلمات QoS (MBR، GBR، علامات الحزم)
- مراقبة QERs النشطة لكل جلسة
- فحص علامات QFI لتدفقات QoS 5G
قواعد تقرير الاستخدام (URR):
تتبع URRs أحجام البيانات للفوترة. يمكن للمشغلين:
- عرض عدادات الحجم (الرفع، النزول، الإجمالي)
- مراقبة عتبات الاستخدام ومشغلات التقرير
- فحص URRs النشطة عبر جميع الجلسات
لإدارة القواعد، راجع دليل إدارة القواعد.
تخزين الحزم
لماذا يعتبر التخزين أمرًا حيويًا لـ UPF
يعد تخزين الحزم واحدة من أهم وظائف UPF لأنه يمنع فقدان الحزم أثناء أحداث التنقل وإعادة تكوين الجلسات. بدون التخزين، سيواجه المستخدمون المحمولون اتصالات مفقودة، وتنزيلات مقطوعة، وفشل في الاتصالات في الوقت الحقيقي في كل مرة يتحركون بين أبراج الخلايا أو عندما تتغير ظروف الشبكة.
المشكلة: فقدان الحزم أثناء التنقل
في الشبكات المحمولة، يتحرك المستخدمون باستمرار. عندما ينتقل جهاز من برج خلية إلى آخر (تبديل)، أو عندما يحتاج الشبكة إلى إعادة تكوين مسار البيانات، هناك نافذة حرجة حيث تكون الحزم في الطيران ولكن المسار الجديد ليس جاهزًا بعد:
بدون التخزين: الحزم التي تصل خلال هذه النافذة ال��رجة ستُفقد، مما يسبب:
- توقف اتصالات TCP أو إعادة تعيينها (تصفح الويب، التنزيلات مقطوعة)
- تجميد مكالمات الفيديو أو فقدانها (Zoom، Teams، مكالمات WhatsApp تفشل)
- انقطاع جلسات الألعاب (الألعاب عبر الإنترنت، التطبيقات في الوقت الحقيقي تفشل)
- فقدان مكالمات VoIP أو وجود فجوات (مكالمات الهاتف مقطوعة)
- فشل التنزيلات وتحتاج إلى إعادة البدء
مع التخزين: تقوم OmniUPF مؤقتًا بتخزين الحزم حتى يتم إنشاء المسار الجديد، ثم توجيهها بسلاسة. يختبر المستخدم عدم انقطاع.
متى يحدث التخزين
تقوم OmniUPF بتخزين الحزم في هذه السيناريوهات الحرجة:
1. تبديل استنادًا إلى N2 (5G) / تبديل استنادًا إلى X2 (4G)
عندما يتحرك UE بين أبراج الخلايا:
الجدول الزمني:
- T+0ms: لا يزال المسار القديم نشطًا
- T+10ms: يخبر SMF UPF بالتخزين (المسار القديم يغلق، المسار الجديد ليس جاهزًا)
- T+10-50ms: نافذة التخزين الحرجة - تصل الحزم ولكن لا يمكن توجيهها
- T+50ms: المسار الجديد جاهز، يخبر SMF UPF بالتوجيه
- T+50ms+: تقوم UPF بتفريغ الحزم المخزنة إلى المسار الجديد، ثم توجيه الحزم الجديدة على الفور
بدون التخزين: ~40ms من الحزم (آلاف الحزم المحتملة) ستُفقد. مع التخزين: عدم فقدان الحزم، تبديل سلس.
2. تعديل الجلسة (تغيير QoS، تحديث المسار)
عندما تحتاج الشبكة إلى تغيير معلمات الجلسة:
- ترقية/خفض QoS: ينتقل المستخدم من تغطية 4G إلى 5G (وضع NSA)
- تغيير السياسة: يدخل المستخدم المؤسسي الحرم الجامعي (تغييرات توجيه الحركة)
- تحسين الشبكة: يعيد توجيه الشبكة الأساسية حركة المرور إلى UPF أقرب (تحديث ULCL)
أثناء التعديل، قد تحتاج طائرة التحكم إلى تحديث عدة قواعد بشكل ذري. يضمن التخزين عدم توجيه الحزم مع مجموعات قواعد جزئية/غير متسقة.
3. إشعار بيانات النزول (استرداد وضع الخمول)
عندما يكون UE في وضع الخمول (إيقاف الشاشة، توفير البطارية) وتصل بيانات النزول:
بدون التخزين: ستُفقد الحزمة الأولية التي أثارت الإشعار، مما يتطلب من المرسل إعادة إرسالها (يضيف زمن انتقال). مع التخزين: يتم تسليم الحزمة التي أيقظت UE على الفور عند إعادة الاتصال بـ UE.
4. تبديل بين RAT (4G ↔ 5G)
عندما ينتقل UE بين تغطية 4G و 5G:
- تتغير البنية (eNodeB ↔ gNB)
- تتغير نقاط نهاية الأنفاق (تخصيص TEID مختلفة)
- يضمن التخزين انتقالًا سلسًا بين أنواع RAT
كيف يعمل التخزين في OmniUPF
آلية تقنية:
تستخدم OmniUPF هيكل تخزين ذو مرحلتين:
- مرحلة eBPF (النواة): تكشف عن الحزم التي تتطلب التخزين بناءً على علامات إجراء FAR
- مرحلة مساحة المستخدم: تخزن وتدير الحزم المخزنة في الذاكرة
عملية التخزين:
تفاصيل رئيسية:
- منفذ التخزين: منفذ UDP 22152 (الحزم المرسلة من eBPF إلى مساحة المستخدم)
- التغليف: يتم تغليف الحزم في GTP-U مع FAR ID كـ TEID
- التخزين: تخزين الحزم في الذاكرة لكل FAR مع بيانات التعريف (الطابع الزمني، الاتجاه، حجم الحزمة)
- الحدود:
- حد لكل FAR: 10,000 حزمة (افتراضي)
- حد عالمي: 100,000 حزمة عبر جميع FARs
- TTL: 30 ثانية (افتراضي) - يتم تجاهل الحزم التي تزيد عن TTL
- التنظيف: عملية في الخلفية تزيل الحزم منتهية الصلاحية كل 60 ثانية
دورة حياة التخزين:
- تمكين التخزين: يقوم SMF بتعيين إجراء FAR BUFF=1 (بت 2) عبر تعديل جلسة PFCP
- تخزين الحزم: يكتشف eBPF علامة BUFF، يغلف الحزم، يرسل إلى المنفذ 22152
- تخزين مساحة المستخدم: يقوم مدير التخزين بتخزين الحزم مع FAR ID، الطابع الزمني، الاتجاه
- تعطيل التخزين: يقوم SMF بتعيين إجراء FAR FORW=1، BUFF=0 مع معلمات التوجيه الجديدة
- تفريغ التخزين: يقوم مساحة المستخدم بإعادة تشغيل الحزم المخزنة باستخدام قواعد FAR الجديدة (نقطة نهاية النفق الجديدة)
- استئناف الوضع الطبيعي: يتم توجيه الحزم الجديدة على الفور عبر المسار الجديد
لماذا يهم هذا لتجربة المستخدم
التأثير في العالم الحقيقي:
| السيناريو | بدون تخزين | مع التخزين |
|---|---|---|
| مكالمة فيديو أثناء التبديل | تتجمد المكالمة لمدة 1-2 ثانية، قد تسقط | سلس، لا انقطاع |
| تنزيل ملف عند حافة الخلية | يفشل التنزيل، يجب إعادة البدء | يستمر التنزيل دون انقطاع |
| لعبة عبر الإنترنت أثناء الحركة | تنقطع الاتصال، يتم طردك من اللعبة | لعب سلس، لا انقطاع |
| مكالمة VoIP في السيارة | تنقطع المكالمة في كل تبديل | واضحة تمامًا، لا انقطاعات |
| بث فيديو على القطار | يتوقف الفيديو، تنخفض الجودة | تشغيل سلس |
| نقطة ساخنة محمولة للكمبيوتر المحمول | تنقطع جلسة SSH، تفشل مكالمة الفيديو | يتم الحفاظ على جميع الاتصالات |
فوائد مشغل الشبكة:
- خفض معدل انقطاع المكالمات (CDR): KPI حرج لجودة الشبكة
- زيادة رضا العملاء: لا يلاحظ المستخدمون التبديلات
- خفض تكاليف الدعم: شكاوى أقل بشأن الاتصالات المفقودة
- ميزة تنافسية: تسويق "أفضل شبكة للتغطية"
عمليات إدارة التخزين
يمكن للمشغلين مراقبة والتحكم في التخزين عبر واجهة الويب و API:
المراقبة:
- عرض الحزم المخزنة لكل FAR ID (العدد، البايتات، العمر)
- تتبع استخدام التخزين مقابل الحدود (لكل FAR، عالمي)
- تنبيه عند تجاوز التخزين أو مدة التخزين المفرطة
- تحديد التخزين العالق (الحزم المخزنة > عتبة TTL)
عمليات التحكم:
- تفريغ التخزين: تشغيل تفريغ التخزين يدويًا (استكشاف الأخطاء وإصلاحها)
- مسح التخزين: تجاهل الحزم المخزنة (تنظيف التخزين العالق)
- تعديل TTL: تغيير وقت انتهاء صلاحية الحزم
- تعديل الحدود: زيادة سعة التخزين لكل FAR أو عالمي
استكشاف الأخطاء وإصلاحها:
- التخزين لا يتفريغ: تحقق مما إذا كان SMF أرسل تحديث FAR لتعطيل التخزين
- تجاوز التخزين: زيادة الحدود أو التحقيق في سبب مدة التخزين المفرطة
- حزم قديمة في التخزين: قد يكون TTL مرتفعًا جدًا، أو تأخر تحديث FAR
- تخزين مفرط: قد يشير إلى مشكلات في التنقل أو مشاكل في SMF
للحصول على عمليات التخزين التفصيلية، راجع دليل إدارة التخزين.
تكوين التخزين
تكوين سلوك التخزين في /etc/omniupf/runtime.exs:
# إعدادات التخزين
buffer_port = 22152 # منفذ UDP للحزم المخزنة (افتراضي)
التوصيات:
- الشبكات ذات الحركة العالية (الطرق السريعة، القطارات): زيادة
buffer_max_packetsإلى 20,000+ - المناطق الحضرية الكثيفة (التبديلات المتكررة): تقليل
buffer_packet_ttlإلى 15s - التطبيقات ذات زمن الانتقال المنخفض: تعيين
buffer_packet_ttlإلى 10s لمنع البيانات القديمة - الشبكات IoT: تقليل الحدود (تولد أجهزة IoT حركة مرور أقل أثناء التبديل)
للحصول على خيارات التكوين الكاملة، راجع دليل التكوين.
الإحصائيات والمراقبة
إحصائيات الحزم:
مقاييس معالجة الحزم في الوقت الحقيقي بما في ذلك:
- حزم RX: إجمالي الحزم المستلمة من جميع الواجهات
- حزم TX: إجمالي الحزم المرسلة إلى جميع الواجهات
- حزم مفقودة: الحزم التي تم إسقاطها بسبب الأخطاء أو السياسة
- حزم GTP-U: عدادات الحزم الموجهة
إحصائيات المسار:
مقاييس توجيه لكل مسار:
- ضربات المسار: الحزم المطابقة لكل مسار
- عدادات التوجيه: النجاح/الفشل لكل وجهة
- عدادات الأخطاء: TEIDs غير صالحة، عناوين IP غير معروفة للـ UE
إحصائيات XDP:
مقاييس أداء eXpress Data Path:
- XDP المعالجة: الحزم التي تم التعامل معها على مستوى XDP
- XDP المرسلة: الحزم المرسلة إلى كومة الشبكة
- XDP المفقودة: الحزم التي تم إسقاطها على مستوى XDP
- XDP الملغاة: أخطاء المعالجة
إحصائيات واجهة N3/N6:
عدادات حركة المرور لكل واجهة:
- N3 RX/TX: حركة المرور من/إلى RAN (gNB/eNodeB)
- N6 RX/TX: حركة المرور من/إلى شبكة البيانات
- إجمالي عدادات الحزم: إحصائيات واجهة مجمعة
للحصول على تفاصيل المراقبة، راجع دليل المراقبة.
إدارة السعة
مراقبة سعة خريطة eBPF:
يعتمد أداء UPF على سعة خريطة eBPF. يمكن للمشغلين:
- مراقبة استخدام الخريطة مع مؤشرات النسبة في الوقت الحقيقي
- عرض حدود السعة لكل خريطة eBPF
- تنبيهات ملونة:
- أخضر (<50%): طبيعي
- أصفر (50-70%): حذر
- كهرماني (70-90%): تحذير
- أحمر (>90%): حرجة
خرائط حرجة للمراقبة:
uplink_pdr_map: تصنيف حركة المرور الرفعdownlink_pdr_map: تصنيف حركة المرور النزول IPv4far_map: قواعد التوجيهqer_map: قواعد QoSurr_map: تتبع الاستخدام
تخطيط السعة:
- كل PDR تستهلك إدخال خريطة (حجم المفتاح + حجم القيمة)
- يتم تكوين سعة الخريطة عند بدء UPF (حد ذاكرة النواة)
- يؤدي تجاوز السعة إلى فشل إنشاء الجلسة
للحصول على معلومات حول مراقبة السعة، راجع إدارة السعة.
إدارة التكوين
تكوين UPF:
عرض والتحقق من معلمات التشغيل UPF:
- واجهة N3: عنوان IP للاتصال بـ RAN (GTP-U)
- واجهة N6: عنوان IP للاتصال بشبكة البيانات
- واجهة N9: عنوان IP للتواصل بين UPF (اختياري)
- واجهة PFCP: عنوان IP للاتصال بـ SMF
- منفذ API: منفذ REST API للاستماع
- نقطة نهاية المقاييس: منفذ مقاييس Prometheus
تكوين مسار البيانات:
معلمات مسار البيانات النشطة eBPF:
- العنوان النشط N3: ربط واجهة N3 في الوقت الحقيقي
- العنوان النشط N9: ربط واجهة N9 في الوقت الحقيقي (إذا تم تمكينه)
للحصول على عرض التكوين، راجع عرض التكوين.
استكشاف الأخطاء وإصلاحها
يغطي هذا القسم المشكلات التشغيلية الشائعة واستراتيجيات حلها.
فشل إنشاء الجلسات
الأعراض: تفشل جلسات PFCP في الإنشاء، لا يمكن لـ UE إنشاء اتصال بيانات
الأسباب الجذرية الشائعة:
-
لم يتم إنشاء ارتباط PFCP
- تحقق من أن SMF يمكنه الوصول إلى واجهة PFCP الخاصة بـ UPF (المنفذ 8805)
- تحقق من حالة ارتباط PFCP في عرض الجلسات
- تحقق من أن تكوين معرف العقدة يتطابق بين SMF و UPF
-
استنفاد سعة خريطة eBPF
- تحقق من عرض السعة للخرائط الحمراء (>90%)
- زيادة أحجام خريطة eBPF في تكوين UPF
- حذف الجلسات القديمة إذا كانت الخريطة ممتلئة
-
تكوين PDR/FAR غير صالح
- تحقق من أن عنوان IP للـ UE فريد وصالح
- تحقق من أن تخصيص TEID لا يتعارض
- تأكد من أن FAR تشير إلى مثيلات الشبكة الصالحة
-
مشكلات تكوين الواجهة
- تحقق من أن عنوان واجهة N3 قابل للوصول من gNB
- تحقق من جداول التوجيه لتوصيل N6 بشبكة البيانات
- تأكد من أن حركة مرور GTP-U غير محجوبة بواسطة جدار الحماية
للحصول على استكشاف الأخطاء التفصيلي، راجع دليل استكشاف الأخطاء وإصلاحها.
فقدان الحزم أو مشكلات التوجيه
الأعراض: يمتلك UE اتصالًا ولكن يعاني من فق��ان الحزم أو عدم تدفق الحركة
الأسباب الجذرية الشائعة:
-
تكوين PDR غير صحيح
- تحقق من أن TEID PDR للرفع يتطابق مع TEID المعين من gNB
- تحقق من أن PDR للنزول يتطابق مع عنوان IP المعين
- تحقق من مرشحات SDF لقواعد صارمة للغاية
-
مشكلات إجراء FAR
- تحقق من أن إجراء FAR هو FORWARD (ليس DROP أو BUFFER)
- تحقق من معلمات إنشاء الرأس الخارجي لـ GTP-U
- تأكد من أن نقطة النهاية الوجهة صحيحة
-
تجاوز حدود QoS
- تحقق من إعدادات QER MBR (معدل البت الأقصى)
- تحقق من تخصيص GBR (معدل البت المضمون)
- راقب فقدان الحزم بسبب تحديد المعدل
-
مشكلات MTU للواجهة
- تحقق من أن العبء الإضافي لـ GTP-U (40-50 بايت) لا يسبب التجزئة
- تحقق من تكوين MTU لواجهات N3/N6
- راقب رسائل ICMP المطلوبة للتجزئة
مشكلات التخزين
الأعراض: الحزم المخزنة إلى أجل غير مسمى، تجاوز التخزين
الأسباب الجذرية الشائعة:
-
لم يتم تعطيل التخزين بعد التبديل
- تحقق من علامة التخزين لـ FAR (بت 2)
- تحقق من أن SMF أرسل تعديل الجلسة لتعطيل التخزين
- قم بتعطيل التخزين يدويًا عبر لوحة التحكم إذا كانت عالقة
-
انتهاء صلاحية TTL للتخزين
- تحقق من عمر الحزم في عرض التخزين
- تحقق من تكوين TTL للتخزين (قد يكون الافتراضي طويلًا جدًا)
- قم بمسح التخزين المنتهي يدويًا
-
استنفاد سعة التخزين
- راقب إجمالي استخدام التخزين والحدود لكل FAR
- تحقق من القواعد المكونة بشكل خاطئ التي تسبب تخزينًا مفرطًا
- قم بضبط الحدود القصوى أو زيادة سعة التخزين
لإصلاح مشكلات التخزين، راجع عمليات التخزين.
شذوذ الإحصائيات
الأعراض: عدادات الحزم غير المتوقعة، إحصائيات مفقودة
الأسباب الجذرية الشائعة:
-
تجاوز العداد
- تستخدم خرائط eBPF عدادات 64 بت (يجب ألا تتجاوز)
- تحقق من أحداث إعادة تعيين العداد في السجلات
- تحقق من أن تقرير URR يعمل
-
إحصائيات المسار لا تتحدث
- تحقق من أن برنامج eBPF متصل بالواجهات
- تحقق من أن إصدار النواة يدعم ميزات eBPF المطلوبة
- راجع إحصائيات XDP لأخطاء المعالجة
-
تعارض إحصائيات الواجهة
- قارن إحصائيات N3/N6 مع عدادات الواجهة في النواة
- تحقق من حركة المرور التي تتجاوز eBPF (على سبيل المثال، التوجيه المحلي)
- تحقق من أن جميع حركة المرور تمر عبر خطافات XDP
تدهور الأداء
الأعراض: زمن انتقال مرتفع، إنتاجية منخفضة، تشبع CPU
التشخيص:
- راقب إحصائيات XDP: تحقق من الإخفاقات أو الإلغاءات XDP
- تحقق من زمن الوصول لخريطة eBPF: يجب أن تكون عمليات البحث في الهاش دون ميكروثانية
- راجع استخدام CPU: يجب أن يتوزع eBPF عبر النوى
- حلل واجهة الشبكة: تحقق من أن NIC ��دعم تحميل XDP
اعتبارات القابلية للتوسع:
- أداء XDP: 10M+ حزمة في الثانية لكل نواة
- سعة PDR: ملايين PDRs محدودة فقط بواسطة ذاكرة النواة
- عدد الجلسات: آلاف الجلسات المتزامنة لكل مثيل UPF
- الإنتاجية: إنتاجية متعددة الجيجابت مع NICs المناسبة
لتحسين الأداء، راجع دليل البنية.
الوثائق الإضافية
أدلة العمليات الخاصة بالمكونات
للح