انتقل إلى المحتوى الرئيسي

خيارات تكوين البروتوكول (PCO)

معلمات الشبكة المرسلة إلى UE

OmniPGW من خدمات شبكة Omnitouch


نظرة عامة

PCO (خيارات تكوين البروتوكول) هي معلمات الشبكة المرسلة إلى UE (الجهاز المحمول) أثناء إنشاء اتصال PDN. تمكّن هذه المعلمات UE من الوصول إلى خدمات الشبكة مثل DNS وIMS وتكوين إعدادات الشبكة.

حاويات PCO التي يرسلها OmniPGW (الشبكة → MS):

IE NameContainer IDDescriptionRequired
DNS Server IPv4 Address0x000DPrimary DNSYes
DNS Server IPv4 Address0x000DSecondary DNSOptional
DNS Server IPv6 Address0x0003Primary/Secondary DNS (IPv6)Optional
P-CSCF IPv4 Address0x000CP-CSCF for IMS (one container per address)Optional (IMS)
P-CSCF IPv6 Address0x0001P-CSCF for IMS (one container per address)Optional (IMS)
IPv4 Link MTU0x0010Maximum transmission unitRecommended

DNS/NBNS عبر IPCP. عندما يطلب UE خوادم DNS (و NBNS/WINS) باستخدام IPCP (بروتوكول التحكم في الإنترنت، الحاوية 0x8021) طلب التكوين بدلاً من حاوية DNS العارية، يرد OmniPGW داخل IPCP Configure-Nak يحمل العناوين المكونة كخيارات IPCP ms_dns1/ms_dns2 و ms_wins1/ms_wins2 (RFC 1877). لذلك يتم تسليم NBNS/WINS فقط عبر هذا المسار IPCP — لا توجد حاوية PCO مستقلة لـ NBNS (0x0011) تم إصدارها. يتم استخدام Configure-Nak (ليس Ack) لأن PGW يزود عناوين تختلف عن العناصر النائبة 0.0.0.0 الخاصة بـ UE، و الرد يعكس معرف IPCP لطلب (RFC 1661 §5).

IPv4 و IPv6 P-CSCF / DNS؛ لا يوجد E-CSCF. يرد OmniPGW على كل من IPv4 و IPv6 طلبات عنوان P-CSCF، حيث يقوم بتوجيه كل عنوان مكتشف أو مكون إلى الحاوية المطابقة لعائلته: تذهب عناوين IPv4 في 0x000C، وتذهب عناوين IPv6 في 0x0001. يتم تقديم طلب P-CSCF IPv6 (p_cscf_ipv6_address_request) من p_cscf_ipv6_address_list (أو عناوين IPv6 التي تم إرجاعها بواسطة DNS/AAAA الاكتشاف)، ويتم تقديم طلب DNS IPv6 (dns_server_ipv6_address_request) في الحاوية 0x0003 من primary_dns_server_ipv6_address / secondary_dns_server_ipv6_address. لا يتم خلط عائلات العناوين عبر الحاويات. لا توجد معالجة لحاوية E-CSCF. ينطبق كل ما سبق بالتساوي على APCO (PCO الإضافي).


التكوين

التكوين الأساسي

# config/runtime.exs
config :pgw_c,
pco: %{
# خوادم DNS (مطلوبة)
primary_dns_server_address: "8.8.8.8",
secondary_dns_server_address: "8.8.4.4",

# خوادم DNS IPv6 (اختياري، الحاوية 0x0003)
primary_dns_server_ipv6_address: nil,
secondary_dns_server_ipv6_address: nil,

# خوادم NBNS (اختياري، لأجهزة Windows)
primary_nbns_server_address: nil,
secondary_nbns_server_address: nil,

# عناوين P-CSCF لـ IMS/VoLTE (اختياري)
p_cscf_ipv4_address_list: [], # الحاوية 0x000C
p_cscf_ipv6_address_list: [], # الحاوية 0x0001

# اكتشاف P-CSCF الديناميكي (اختياري؛ يحل سجلات A و AAAA)
p_cscf_discovery_enabled: false,
p_cscf_discovery_dns_server: nil,
p_cscf_discovery_timeout_ms: 5000,

# حجم MTU IPv4 (بايت)
ipv4_link_mtu_size: 1400
}

معلمات PCO

عناوين خادم DNS

DNS الأساسي والثانوي:

pco: %{
primary_dns_server_address: "8.8.8.8",
secondary_dns_server_address: "8.8.4.4"
}

مقدمو DNS الشائعون:

ProviderPrimarySecondary
Google8.8.8.88.8.4.4
Cloudflare1.1.1.11.0.0.1
Quad99.9.9.9149.112.112.112
OpenDNS208.67.222.222208.67.220.220

DNS الخاص:

pco: %{
primary_dns_server_address: "10.0.0.10",
secondary_dns_server_address: "10.0.0.11"
}

عناوين P-CSCF (IMS)

لخدمات IMS/VoLTE:

pco: %{
p_cscf_ipv4_address_list: [
"10.0.0.50", # P-CSCF الأساسي (IPv4، الحاوية 0x000C)
"10.0.0.51" # P-CSCF الثانوي
],
# عناوين P-CSCF IPv6 (الحاوية 0x0001) لشبكات PDN IMS IPv6/IPv4v6
p_cscf_ipv6_address_list: [
"2001:db8::50",
"2001:db8::51"
]
}

يتم إصدار كل عنوان فقط في الحاوية المطابقة لعائلته، وفقط عندما يطلب UE تلك العائلة — يتلقى طلب P-CSCF IPv4 الحاويات 0x000C ، ويتلقى طلب P-CSCF IPv6 الحاويات 0x0001. عادةً ما تطلب شبكات PDN IMS ثنائية المكدس كلاهما.

P-CSCF (وظيفة التحكم في جلسات المكالمات الوكيلة):

  • نقطة الدخول لإشارات IMS
  • مطلوبة لـ VoLTE و VoWiFi و RCS
  • يستخدم UE SIP عبر هذا الخادم

اكتشاف P-CSCF الديناميكي

اكتشاف P-CSCF القائم على DNS:

يدعم OmniPGW اكتشاف P-CSCF الديناميكي عبر استعلامات DNS كما هو محدد في 3GPP TS 23.003 و TS 24.229. عند التمكين، يمكن لـ PGW-C استعلام DNS عن عناوين P-CSCF بدلاً من استخدام التكوين الثابت.

pco: %{
# تمكين اكتشاف P-CSCF الديناميكي
p_cscf_discovery_enabled: true,

# خادم DNS لاستعلامات P-CSCF (كزوج)
p_cscf_discovery_dns_server: {10, 179, 2, 177},

# مهلة لاستعلامات DNS (بالملي ثانية)
p_cscf_discovery_timeout_ms: 5000,

# قائمة P-CSCF الثابتة (تستخدم كنسخة احتياطية إذا فشل DNS)
p_cscf_ipv4_address_list: ["10.0.0.50"]
}

كيف يعمل:

  1. عندما يكون p_cscf_discovery_enabled: true، يقوم PGW-C بتنفيذ استعلامات DNS لعناوين P-CSCF
  2. يتم إرسال استعلام DNS إلى p_cscf_discovery_dns_server المكون
  3. إذا نجح استعلام DNS، يتم إرسال عناوين P-CSCF المكتشفة إلى UE عبر PCO
  4. إذا فشل استعلام DNS أو انتهت المهلة، يتم الرجوع إلى p_cscf_ipv4_address_list الثابتة
  5. انظر مراقبة P-CSCF للحصول على تفاصيل المراقبة والقياسات

تدفق اكتشاف P-CSCF

أولوية الاكتشاف:

  1. اكتشاف FQDN لكل قاعدة (أعلى أولوية) - p_cscf_discovery_fqdn في قاعدة اختيار UPF
  2. اكتشاف DNS العالمي - p_cscf_discovery_enabled: true في تكوين PCO العالمي
  3. قائمة PCO الثابتة للقاعدة - p_cscf_ipv4_address_list في تجاوز PCO القاعدة
  4. قائمة PCO الثابتة العالمية (نسخة احتياطية) - p_cscf_ipv4_address_list في تكوين PCO العالمي

المراقبة:

يتم تسجيل جميع محاولات اكتشاف P-CSCF وتتبعها مع القياسات:

  • معدلات نجاح/فشل استعلام DNS
  • زمن اكتشاف
  • إحصائيات استخدام النسخ الاحتياطية
  • قياسات الاكتشاف لكل قاعدة وعالمية

انظر مراقبة P-CSCF للحصول على تفاصيل المراقبة الكاملة.

خيارات التكوين:

ParameterTypeDefaultDescription
p_cscf_discovery_enabledBooleanfalseتمكين اكتشاف P-CSCF الديناميكي القائم على DNS
p_cscf_discovery_dns_serverTuple (IP)nilعنوان IP لخادم DNS كزوج 4 (مثل {10, 179, 2, 177})
p_cscf_discovery_timeout_msInteger5000مهلة لاستعلامات DNS بالملي ثانية

حالات الاستخدام:

  • نشر IMS الديناميكي - تتغير عناوين P-CSCF بناءً على تكوين DNS
  • توازن الحمل الجغرافي - يعيد DNS أقرب خوادم P-CSCF
  • التوافر العالي - يعيد DNS تلقائيًا خوادم P-CSCF المتاحة
  • بيئات متعددة المستأجرين - يحصل مشتركون مختلفون على خ��ادم P-CSCF مختلفة

مثال: IMS الإنتاج مع اكتشاف DNS

pco: %{
primary_dns_server_address: "10.0.0.10",
secondary_dns_server_address: "10.0.0.11",

# تمكين اكتشاف P-CSCF الديناميكي
p_cscf_discovery_enabled: true,
p_cscf_discovery_dns_server: {10, 179, 2, 177}, # خادم DNS IMS
p_cscf_discovery_timeout_ms: 3000,

# عناوين P-CSCF الاحتياطية (إذا فشل DNS)
p_cscf_ipv4_address_list: [
"10.0.0.50", # الاحتياطي الأساسي
"10.0.0.51" # الاحتياطي الثانوي
],

ipv4_link_mtu_size: 1400
}

اكتشاف P-CSCF لكل قاعدة:

يمكن أيضًا تكوين اكتشاف P-CSCF لكل قاعدة اختيار UPF. يسمح ذلك لمختلف APNs باستخدام خوادم DNS مختلفة لاكتشاف P-CSCF:

# في تكوين اختيار upf
rules: [
%{
name: "IMS Traffic",
priority: 20,
match_field: :apn,
match_regex: "^ims",
upf_pool: [...],

# اكتشاف P-CSCF لكل قاعدة
p_cscf_discovery_fqdn: "pcscf.mnc001.mcc001.3gppnetwork.org"
}
]

انظر تكوين اختيار UPF للحصول على تفاصيل حول اكتشاف P-CSCF لكل ��اعدة.

انظر أيضًا: مراقبة P-CSCF لمراقبة اكتشاف P-CSCF وصحته

خوادم NBNS (NetBIOS)

للتوافق مع أجهزة Windows:

pco: %{
primary_nbns_server_address: "10.0.0.20",
secondary_nbns_server_address: "10.0.0.21"
}

متى تستخدم:

  • الشبكات المؤسسية مع أجهزة Windows
  • دعم التطبيقات القديمة
  • مطلوب حل اسم NetBIOS

حجم MTU للرابط

أقصى وحدة نقل:

pco: %{
ipv4_link_mtu_size: 1400 # بايت
}

قيم MTU الشائعة:

MTUاستخدام الحالة
1500Ethernet القياسي (بدون نفق)
1400تم احتساب تكلفة نفق GTP
1420تقليل التكلفة
1280الحد الأدنى لـ IPv6 MTU
1360بيئات VPN/نفق

التوصية: استخدم 1400 لـ LTE لأخذ تكلفة GTP-U في الاعتبار.


أمثلة على التكوين

APN الإنترنت

pco: %{
primary_dns_server_address: "8.8.8.8",
secondary_dns_server_address: "8.8.4.4",
ipv4_link_mtu_size: 1400
}

APN IMS

pco: %{
primary_dns_server_address: "10.0.0.10",
secondary_dns_server_address: "10.0.0.11",
p_cscf_ipv4_address_list: [
"10.0.0.50",
"10.0.0.51"
],
ipv4_link_mtu_size: 1400
}

انظر: مراقبة P-CSCF لمراقبة معدلات نجاح تسجيل IMS وصحة P-CSCF

APN المؤسسي

pco: %{
primary_dns_server_address: "10.100.0.10",
secondary_dns_server_address: "10.100.0.11",
primary_nbns_server_address: "10.100.0.20",
secondary_nbns_server_address: "10.100.0.21",
ipv4_link_mtu_size: 1400
}

PCO في رسائل GTP-C

استجابة إنشاء الجلسة

يتضمن OmniPGW PCO في رسالة استجابة إنشاء الجلسة:

Create Session Response
├── Cause: Request accepted
├── UE IP Address: 100.64.1.42
├── PCO (Protocol Configuration Options)
│ ├── DNS Server IPv4 Address: 8.8.8.8
│ ├── DNS Server IPv4 Address: 8.8.4.4
│ ├── P-CSCF IPv4 Address: 10.0.0.50
│ ├── P-CSCF IPv4 Address: 10.0.0.51
│ └── IPv4 Link MTU: 1400

معالجة UE

يتلقى UE PCO و:

  1. يقوم بتكوين محلل DNS مع الخوادم المقدمة
  2. يسجل مع P-CSCF لخدمات IMS
  3. يحدد MTU الواجهة إلى القيمة ال��حددة

استكشاف الأخطاء وإصلاحها

المشكلة: لا يمكن لـ UE حل DNS

الأعراض:

  • لدى UE عنوان IP ولكن لا يمكنه الوصول إلى الإنترنت
  • فشل استعلامات DNS

الأسباب المحتملة:

  1. عناوين خادم DNS غير صحيحة في تكوين PCO
  2. خوادم DNS غير قابلة للوصول من مجموعة IP الخاصة بـ UE
  3. جدار الحماية يحظر حركة مرور DNS

الحل:

# اختبار الوصول إلى خادم DNS
ping 8.8.8.8

# اختبار حل DNS من شبكة UE
nslookup google.com 8.8.8.8

# تحقق من تكوين PCO
grep "primary_dns_server_address" config/runtime.exs

المشكلة: فشل تسجيل IMS

الأعراض:

  • فشل مكالمات VoLTE
  • يظهر UE "لا تسجيل IMS"

الأسباب المحتملة:

  1. تكوين P-CSCF مفقود
  2. عناوين IP لـ P-CSCF غير صحيحة
  3. P-CSCF غير قابل للوصول

الحل:

# تحقق من تكوين P-CSCF
pco: %{
p_cscf_ipv4_address_list: ["10.0.0.50"] # تأكد من عدم كونها فارغة
}

المشكلة: مشاكل MTU

الأعراض:

  • تحميل بعض المواقع، بينم�� لا يتم تحميل الأخرى
  • فشل نقل الملفات الكبيرة
  • مشاكل التجزئة

الأسباب المحتملة:

  • MTU كبير جدًا لتكلفة النفق
  • MTU صغير جدًا مما يسبب تجزئة مفرطة

الحل:

# موصى به: 1400 لتكلفة GTP النفق
pco: %{
ipv4_link_mtu_size: 1400
}

# إذا كانت لا تزال تواجه مشاكل، جرب أقل
pco: %{
ipv4_link_mtu_size: 1360
}

أفضل الممارسات

تكوين DNS

  1. استخدم خوادم DNS موثوقة

    • عامة: Google (8.8.8.8)، Cloudflare (1.1.1.1)
    • خاصة: DNS داخلي للمؤسسات
  2. قم دائمًا بتكوين الثانوي

    • يوفر النسخ الاحتياطي
    • يحسن الموثوقية
  3. اعتبر أمان DNS

    • محللات قادرة على DNSSEC
    • تصفية DNS للأمان

تكوين IMS

  1. قدم P-CSCF متعددة

    • على الأقل 2 للنسخ الاحتياطي
    • توزيع جغرافي إذا أمكن
  2. تأكد من إمكانية الوصول

    • يجب أن يكون P-CSCF قابلاً للوصول من مجموعة IP الخاصة بـ UE
    • اختبار الاتصال بـ SIP

تحسين MTU

  1. خذ التكلفة في الاعتبار

    • GTP-U: 36 بايت (IPv4)
    • IPsec: متغير (50-100 بايت)
  2. MTU القياسي لـ LTE

    • موصى به: 1400 بايت
    • يوازن بين الإنتاجية والتوافق
  3. اختبار من النهاية إلى النهاية

    • اكتشاف MTU للمسار
    • اختبار مع حزم كبيرة

الوثائق ذات الصلة

أدلة التكوين

إدارة الجلسات والواجهات

IMS و VoLTE


العودة إلى دليل العمليات


تكوين PCO لـ OmniPGW - من خدمات شبكة Omnitouch