5G Core (5GC)
يتم نشر النواة المستقلة 5G (SA) بواسطة services/5gc.yml playbook. يقوم دور مشترك واحد، 5gc_nf، بتثبيت كل وظيفة شبكة (NF). يتم تهيئة الدور لكل NF. تشرح هذه الصفحة هذا الدور، وNFs التي يبنيها، والتكوين الذي يقرأه كل واحد منها.
نظرة عامة
بدلاً من وجود دور واحد لكل NF، تستخدم OmniCore دور واحد (5gc_nf) لجميع NFs الـ 11 في 5GC. يستدعي playbook الدور مرة واحدة لكل 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(Profile A، X25519) أوsecp256r1(Profile B، prime256v1)، و<id>هو معرف المفتاح العام للشبكة المنزلية. - إذا كان الدليل فارغًا، يتم إنشاء
curve25519-1.keyافتراضيًا بحيث يعمل فك التشفير من الصندوق. هذه الخطوة غير متغيرة. لا يتم الكتابة فوق مفتاح موجود. - لكل
curve25519-*.key، يتم تصدير القيمة العامة الخام المطابقة 32 بايت (hex) إلى ملف.pubلتوفير USIM. تبقى ملفات.pubفي الجرد؛ فقط ملفات*.keyيتم نشرها إلى/etc/omniudm/hnet/على UDM (الوضع0600، الجذر).
المفتاح الذي تم إنشاؤه تلقائيًا عشوائي ويقوم فقط بفك تشفير SUCIs من USIMs المبرمجة بمفتاحها العام المطابق. خذ
.pubالمصدرة وقدمها كمفتاح عام للشبكة المنزلية على USIM. لا تحتاج بطاقات SIM التي تستخدم المخطط الفارغ إلى مفتاح HNET ويمكنها ترك الدليل فارغًا.
تفاصيل كاملة وأمثلة تخطيط الملفات: تكوين المتغيرات الجماعية: المثال 8.
الوثائق ذات الصلة
- Service Playbooks - جميع playbooks الخدمة وهيكل النشر
- النواة الدائرية - مجال CS القديم (BSC، MSC، SS7)
- تكوين المتغيرات الجماعية - قوالب تكوين لكل NF ومفاتيح HNET
- معمارية النشر - كيف تتناسب المجالات معًا
- تكوين OmniCore: https://docs.omnitouch.com.au/docs/repos/OmniCore - ما يتم تضمينه في ملفات تكوين NF