5G Core (5GC)
يتم نشر النواة المستقلة 5G (SA) بواسطة كتاب التشغيل services/5gc.yml. يتم تثبيت كل وظيفة شبكة (NF) بواسطة دور مشترك واحد — 5gc_nf — مُعَلم لكل NF. تشرح هذه الصفحة هذا الدور، وNFs التي يبنيها، والتكوين الذي يقرأه كل واحد منها.
نظرة عامة
بدلاً من وجود دور واحد لكل NF، يستخدم OmniCore دور واحد (5gc_nf) لجميع وظائف 5GC الإحدى عشر. يستدعي كتاب التشغيل الدور مرة واحدة لكل NF ويمرر متغير nf_package الذي يحدد حزمة Debian، خدمة systemd، وقالب تكوين Jinja2. هذا يحافظ على منطق التثبيت، إصدار التكوين، الترخيص، وإعادة التشغيل متطابقًا عبر كل NF.
- name: Setup AMF
hosts: amf
roles:
- {role: 5gc_nf, nf_package: omniamf, become: yes}
وظائف الشبكة
كل NF لها مجموعة جرد خاصة بها، حزمة، خدمة systemd، وقالب تكوين (roles/5gc_nf/templates/<nf_package>.j2).
| NF | nf_package | مجموعة الجرد | قالب التكوين | الدور |
|---|---|---|---|---|
| وظيفة مستودع الشبكة | omninrf | nrf | omninrf.j2 | اكتشاف الخدمة / تسجيل NF |
| إدارة الوصول والتنقل | omniamf | amf | omniamf.j2 | إشارة N1/N2، التسجيل، إدارة الاتصال |
| خادم المصادقة | omniausf | ausf | omniausf.j2 | مصادقة 5G-AKA / EAP-AKA' |
| وظيفة دعم الربط | omnibsf | bsf | omnibsf.j2 | ربط PCF لجلسة PDU |
| وظيفة الشحن | omnichf | chf | omnichf.j2 | شحن متقارب عبر الإنترنت / غير متصل |
| اختيار شريحة الشبكة | omnissf | nssf | omnissf.j2 | NSSAI / اختيار الشريحة |
| وظيفة التحكم في السياسة | omnipcf | pcf | omnipcf.j2 | قواعد السياسة وجودة الخدمة |
| وكيل الاتصال بالخدمة | omniscp | scp | omniscp.j2 | توجيه رسائل SBI / الاتصالات غير المباشرة |
| وظيفة إدارة الجلسة | omnismf | smf | omnismf.j2 | جلسة PDU والتحكم في UPF (N4) |
| إدارة البيانات الموحدة | omniudm | udm | omniudm.j2 | بيانات الاشتراك، فك تشفير SUCI |
| مستودع البيانات الموحد | omniudr | udr | omniudr.j2 | تخزين البيانات الداعم لـ UDM/PCF |
كيفية عمل دور 5gc_nf
بالنسبة لكل NF، يقوم الدور بأداء نفس التسلسل:
- حل
group_vars_omnicore— يتم تعيينه إلى<inventory>/group_vars/، بحيث يتم حل عمليات البحث عن التكوين بالنسبة للجرد النشط. - اكتشاف خوادم الترخيص — إذا لم يتم تعيين
license_server_api_urls، يتم اشتقاقه من مجموعة جردlicense_server(https://<host>:8443/api). - تثبيت المتطلبات الأساسية —
lsb-release،curl،gpg،unzip،libglu1-mesa،libsctp1. - تثبيت حزمة NF من مستودع Omnitouch APT. الأحدث بشكل افتراضي؛ يمكن تثبيته باستخدام
nf_version(انظر تثبيت الإصدار). - تكوين القالب الزمني (المُعَلم) — يقوم بإنشاء
templates/<nf_package>.j2إلى/etc/<nf_package>/runtime-<deb_version>.exs. - إنشاء رابط رمزي لـ
runtime.exs→ تكوين الإصدار النشط، ونسخ هذا الرابط الرمزي إلى كل دليل/opt/<nf_package>/releases/*. - إعادة تشغيل NF (المعالج) كلما تغير التكوين النشط.
تثبيت الإصدار والعودة
يتم كتابة التكوين لكل إصدار Debian (runtime-<deb_version>.exs) وruntime.exs هو رابط رمزي للإصدار النشط. يتم الاحتفاظ بالتكوينات السابقة على القرص، لذا فإن العودة تعني إعادة تثبيت إصدار الحزمة الأقدم:
- {role: 5gc_nf, nf_package: omniamf, nf_version: "1.2.2-1", become: yes}
قم بإغفال nf_version لتتبع أحدث حزمة.
مفاتيح HNET لـ UDM (فك تشفير SUCI)
يمتلك UDM (nf_package: omniudm) خطوات إضافية لدعم فك تشفير SUCI (TS 33.501 §6.12) — استعادة SUPI من SUCI المخفية التي يقدمها UE عند التسجيل. هذا يحتاج إلى مفاتيح خاصة لشبكة المنزل تتزاوج مع المفاتيح العامة لشبكة المنزل على USIMs.
- تعيش المفاتيح في
group_vars/hnet_udm/على وحدة التحكم Ansible كـ<curve>-<id>.key(PEM)، حيث<curve>هوcurve25519(الملف الشخصي A، X25519) أوsecp256r1(الملف الشخصي B، prime256v1)، و<id>هو معرف المفتاح العام لشبكة المنزل. - إذا كان الدليل فارغًا، يتم إنشاء
curve25519-1.keyتلقائيًا بحيث يعمل فك التشفير من الصندوق. هذا هو idempotent — لا يتم الكتابة فوق مفتاح موجود. - لكل
curve25519-*.key، يتم تصدير القيمة العامة الخام البالغة 32 بايت (hex) إلى ملف.pubلتزويد USIM. تبقى ملفات.pubفي الجرد؛ فقط يتم نشر ملفات*.keyإلى/etc/omniudm/hnet/على UDM (الوضع0600، الجذر).
المفتاح الذي تم إنشاؤه تلقائيًا عشوائي ويقوم فقط بفك تشفير SUCIs من USIMs المبرمجة بمفتاحها المطابق العام. خذ
.pubالمصدرة وقم بتزويدها كمفتاح عام لشبكة المنزل على USIM. تحتاج بطاقات SIM التي تستخدم مخطط null إلى عدم وجود مفتاح HNET ويمكنها ترك الدليل فارغًا.
تفاصيل كاملة وأمثلة تخطيط الملفات: تكوين المتغيرات الجماعية — المثال 8.
الوثائق ذات الصلة
- كتب تشغيل الخدمة - جميع كتب تشغيل الخدمة وهيكل النشر
- النواة الدائرة المبدلة - نطاق CS القديم (BSC، MSC، SS7)
- تكوين المتغيرات الجماعية - قوالب تكوين لكل NF ومفاتيح HNET
- معمارية النشر - كيف تتناسب المجالات معًا
- تكوين OmniCore: https://docs.omnitouch.com.au/docs/repos/OmniCore - ما يتم تضمينه في ملفات تكوين NF