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

مجموعات IP

نظرة عامة

تقوم OmniTWAG بتعيين عناوين IPv4 لجلسات NSWO (عدم انقطاع WLAN Offload) من مجموعة IP. NSWO هو انقطاع محلي مدعوم من TWAG: تقوم OmniTWAG بإنهاء حركة مرور المستخدم وتفكيكها محليًا. تعرف مجموعة IP كتلة CIDR IPv4، وبوابة، وخوادم DNS، ومدة الإيجار. يقوم المشغل بإضافة وتغيير وإزالة المجموعات عند الطلب من خلال واجهة برمجة التطبيقات REST أو واجهة الويب الخاصة بلوحة التحكم.

تعريفات المجموعات دائمة. تقوم OmniTWAG بتخزينها في ملف DETS، لذا تبقى المجموعات موجودة بعد إعادة التشغيل. يتم تخصيص العناوين في الذاكرة. تقوم OmniTWAG بإعادة بناء التخصيصات عندما تعيد الجلسات الاتصال بعد إعادة التشغيل.

جدول المحت��يات

المفاهيم

مجموعة IP هي مجموعة من العناوين من كتلة CIDR IPv4 واحدة. تحتوي كل مجموعة على بوابة، وقائمة بخوادم DNS، ومدة إيجار.

ترتبط مجموعة IP بنقطة وصول من خلال بيانات اعتماد RADIUS الخاصة بنقطة الوصول. تحتوي بيانات الاعتماد على حقل ip_pool_id. يحمل هذا الحقل id المجموعة. انظر أسرار RADIUS المشتركة لنموذج بيانات الاعتماد. يتم تعيين جلسات NSWO من تلك نقطة الوصول من المجموعة المرتبطة.

تحتوي كل بيانات اعتماد أيضًا على حقل address_source. يحدد هذا الحقل كيفية منح OmniTWAG العنوان لجهاز المستخدم (UE). هناك مصدران للعناوين:

مصدر العنوانالسلوك
poolتقوم OmniTWAG بتخصيص عنوان ثابت لكل جلسة من المجموعة. يتم اختيار العنوان عند إعداد الجلسة.
dhcpيقوم خادم DHCP الخاص بـ OmniTWAG بتوزيع عنوان من نطاق المجموعة ردًا على DHCP DISCOVER من جهاز المستخدم.

كيفية حصول الجلسة على عنوان

تقوم OmniTWAG بتعيين كل جلسة NSWO من المجموعة المرتبطة ببيانات اعتماد نقطة الوصول. الخطوات هي:

  1. تقوم نقطة الوصول بالمصادقة من خلال بيانات اعتماد RADIUS الخاصة بها.
  2. تقوم OmniTWAG بقراءة حقل ip_pool_id في بيانات الاعتماد للعثور على المجموعة.
  3. تقوم OmniTWAG بقراءة حقل address_source في بيانات الاعتماد.
  4. إذا كان address_source هو pool، تقوم OmniTWAG بتخصيص عنوان ثابت للجلسة من المجموعة.
  5. إذا كان address_source هو dhcp، تنتظر OmniTWAG DHCP DISCOVER من جهاز المستخدم. يقوم خادم DHCP بعد ذلك بتوزيع عنوان من نطاق المجموعة.
  6. تقوم OmniTWAG بتزويد جهاز المستخدم بالعنوان، والبوابة، وخوادم DNS من المجموعة.

تخصيص العنوان

تقوم OmniTWAG بتخصيص المضيفين من CIDR المجموعة. يتخطى التخصيص عنوان الشبكة وعنوان البث. أول مضيف قابل للاستخدام هو عنوان الشبكة زائد واحد.

يجب أن يكون بادئة CIDR للمجموعة /30 أو أكبر لوجود مضيفين قابلين للاستخدام. تحتوي كتلة /30 على 2 مضيفين قابلين للاستخدام. تحتوي بادئة أصغر على مضيفين قابلين للاستخدام أقل، لذا ترفضها OmniTWAG.

عندما يتم تخصيص كل مضيف قابل للاستخدام، تعيد OmniTWAG pool_exhausted. لا يمكن لجلسة أخرى من نقطة الوصول المرتبطة الحصول على عنوان حتى يتم تحرير تخصيص.

يحتوي حقل allocated في المجموعة على العدد الحالي للتخصيصات. تقوم OmniTWAG بحساب هذا العدد من التخصيصات في الذاكرة.

نموذج المجموعة

تحتوي كل مجموعة على هذه الحقول.

الحقلالنوعالوصف
idسلسلةمعرف فريد (UUID). يقوم الخادم بتعيين هذه القيمة.
nameسلسلةتسمية قابلة للقراءة البشرية، على سبيل المثال WiFi ضيوف ملبورن.
cidrسلسلةكتلة CIDR IPv4 للمجموعة، على سبيل المثال 10.60.0.0/24. يجب أن تكون البادئة /30 أو أكبر لوجود مضيفين قابلين للاستخدام.
gatewayسلسلةعنوان بوابة IPv4 المقدم لجهاز المستخدم. الافتراضي هو أول مضيف قابل للاستخدام من CIDR إذا تم تجاهله.
dns_serversقائمة من السلاسلعناوين خوادم DNS IPv4 المقدمة لجهاز المستخدم.
lease_timeعدد صحيحمدة الإيجار بالثواني. الافتراضي هو 3600.
defaultمنطقيعندما يكون true، تكون هذه المجموعة هي النطاق الافتراضي لـ DHCP. يقوم خادم DHCP بالتوزيع منها لأي عميل ليس لديه إيجار مسبق التخصيص ولا ربط مجموعة. يمكن أن تكون مجموعة واحدة فقط هي الافتراضية في وقت واحد. الافتراضي هو false.
allocatedعدد صحيحعدد التخصيصات الحالية. يقوم الخادم بحساب هذه القيمة.
inserted_atعدد صحيحالوقت الذي تم فيه إنشاء المجمو��ة، بالمللي ثانية منذ بداية Unix. يقوم الخادم بتعيين هذه القيمة.
updated_atعدد صحيحالوقت الذي تم فيه تغيير المجموعة آخر مرة، بالمللي ثانية منذ بداية Unix. يقوم الخادم بتعيين هذه القيمة.

يقوم المشغل بتعيين name و cidr و gateway و dns_servers و lease_time. يقوم الخادم بتعيين id و allocated و inserted_at و updated_at.

واجهة برمجة التطبيقات REST

تقدم واجهة برمجة التطبيقات REST الخاصة بـ OmniTWAG هذه النقاط النهائية عبر HTTPS على المنفذ المخصص لواجهة برمجة التطبيقات (8444 بشكل افتراضي). المسار الأساسي هو /ip_pools.

الطريقةالمسارالإجراءالوصف
GET/ip_poolsindexقائمة بجميع المجموعات. تكون النتيجة مقسمة وقابلة للبحث بواسطة name أو cidr.
GET/ip_pools/{id}showالحصول على مجموعة واحدة بواسطة id.
POST/ip_poolscreateإنشاء مجموعة.
PUT/ip_pools/{id}updateتغيير مجموعة.
DELETE/ip_pools/{id}deleteإزالة مجموعة.

جسم الطلب

تقبل POST و PUT جسم JSON مع هذه الحقول.

الحقلالنوعمطلوبالوصف
nameسلسلةلاتسمية قابلة للقراءة البشرية.
cidrسلسلةنعمكتلة CIDR IPv4. يجب أن تكون البادئة /30 أو أكبر.
gatewayسلسلةلاعنوان بوابة IPv4. الافتراضي هو أول مضيف قابل للاستخدام من CIDR إذا تم تجاهله.
dns_serversقائمة من السلاسللاعناوين خوادم DNS IPv4.
lease_timeعدد صحيحلامدة الإيجار بالثواني. الافتراضي هو 3600.
defaultمنطقيلاوضع علامة على هذه المجموعة كنطاق DHCP الافتراضي. يؤدي تعيينها إلى مسح العلامة على أي مجموعة أخرى.

تقوم PUT بتغيير الحقول الموجودة فقط في الجسم. تبقى الحقول التي ليست في الجسم على قيمتها الحالية.

الاستجابات

الحالةالمعنى
200 OKكانت الطلب ناجحًا (index، show، update، delete).
201 Createdتم إنشاء المجموعة.
404 Not Foundلا توجد مجموعة بالـ id المعطى.
422 Unprocessable Entityالـ cidr ليس كتلة CIDR IPv4 صالحة، أو أن البادئة صغيرة جدًا لوجود مضيفين قابلين للاستخدام.

مثال: قائمة المجموعات

الطلب:

GET /ip_pools

الاستجابة:

{
"count": 1,
"ip_pools": [
{
"id": "0d1e2f3a-4b5c-6d7e-8f90-1a2b3c4d5e6f",
"name": "WiFi ضيوف ملبورن",
"cidr": "10.60.0.0/24",
"gateway": "10.60.0.1",
"dns_servers": ["8.8.8.8", "8.8.4.4"],
"lease_time": 3600,
"allocated": 12,
"inserted_at": 1734512400000,
"updated_at": 1734512400000
}
]
}

مثال: إنشاء مجموعة

الطلب:

POST /ip_pools
{
"name": "WiFi ضيوف ملبورن",
"cidr": "10.60.0.0/24",
"gateway": "10.60.0.1",
"dns_servers": ["8.8.8.8", "8.8.4.4"],
"lease_time": 3600
}

تعود الطلب الناجح بـ 201 Created مع المجموعة الجديدة، بما في ذلك id الخاص بها. إذا تم تجاهل gateway، تستخدم المج��وعة أول مضيف قابل للاستخدام من CIDR (10.60.0.1 في هذا المثال).

مثال: CIDR صغير جدًا

الطلب:

{
"name": "مجموعة معطلة",
"cidr": "10.60.0.0/31"
}

الاستجابة (422 Unprocessable Entity):

{
"error": "cidr too small: 10.60.0.0/31 has no usable hosts"
}

المجموعة الافتراضية

يمكن أن تكون مجموعة واحدة هي النطاق الافتراضي لـ DHCP. يقوم خادم DHCP بتوزيع عنوان من المجموعة الافتراضية لأي عميل ليس لديه إيجار مسبق التخصيص ولا ربط مجموعة صريح. استخدم المجموعة الافتراضية لتقديم نطاق محدد عبر واجهة برمجة التطبيقات لخدمة DHCP الأساسية، وليس فقط لجلسات NSWO.

قم بتعيين الافتراضي باستخدام حقل default، أو خانة الاختيار على صفحة الويب. يمكن أن تكون مجموعة واحدة فقط هي الافتراضية في وقت واحد. عند وضع علامة على مجموعة كافتراضية، تقوم OmniTWAG بمسح العلامة على المجموعة الافتراضية السابقة.

تسجل كل إيجار نشط مصدره. انظر عرض إيجارات IP: يظهر الإيجار PGW (tunneled)، أو مجموعة NSWO مسماة، أو المجموعة الافتراضية.

واجهة الويب

تحتوي لوحة التحكم على صفحة إدارة مجموعات IP. تسرد الصفحة كل مجموعة مع اسمها وCIDR والبوابة وعدد التخصيصات. تحتوي الصفحة على عناصر تحكم لإضافة وتحرير وحذف مجموعة.

كانت صفحة مجموعة DHCP السابقة تحمل الآن تسمية إيجارات IP. تعرض صفحة إيجارات IP الإيجارات النشطة.

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

استنفاد مجموعة

الأعراض: لا يمكن لجلسات NSWO الجديدة من نقطة الوصول الحصول على عنوان. تعيد OmniTWAG pool_exhausted.

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

  • تم تخصيص كل مضيف قابل للاستخدام في CIDR المجموعة.
  • CIDR المجموعة صغير جدًا لعدد الجلسات النشطة.

الحل:

  1. تحقق من عدد allocated مقابل عدد المضيفين القابلين للاستخدام في CIDR.
  2. قم بتوسيع CIDR المجموعة لإضافة ا��مزيد من المضيفين القابلين للاستخدام، أو حرر التخصيصات القديمة عن طريق إنهاء الجلسات الخاملة.
  3. تأكد من أن مدة الإيجار ليست طويلة جدًا بحيث تبقى العناوين المحررة مخصصة.

نقطة الوصول لا تستخدم مجموعة

الأعراض: لا يتم تعيين الجلسات من نقطة الوصول من أي مجموعة IP.

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

  • تستخدم نقطة الوصول انقطاعًا محليًا مملوكًا لنقطة الوصول، وليس NSWO المدعوم من TWAG. تقوم نقطة وصول انقطاع محلي مملوكة لنقطة الوصول بتعيين عملائها ولا تستخدم مجموعة OmniTWAG.
  • لا تحتوي بيانات اعتماد نقطة الوصول على ip_pool_id، لذا لا توجد مجموعة مرتبطة.

الحل:

  1. تأكد من أن نقطة الوصول تستخدم NSWO المدعوم من TWAG. فقط جلسات NSWO تستخدم مجموعة.
  2. إذا كان يجب أن تستخدم نقطة الوصول مجموعة، قم بتعيين ip_pool_id على بيانات اعتماد RADIUS الخاصة بها إلى id المجموعة. انظر أسرار RADIUS المشتركة.

جهاز المستخدم لا يحصل على عنوان

الأعراض: يتصل جهاز المستخدم ولكن لا يتلقى عنوان IPv4.

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

  • لا يتطابق address_source في بيانات الاعتماد مع كيفية طلب جهاز المستخدم عنوانًا. مع dhcp، يجب على جهاز المستخدم إرسال DHCP DISCOVER. مع pool، تقوم OmniTWAG بتخصيص العنوان مسبقًا.
  • المجموعة المرتبطة مستنفدة.
  • يشير ip_pool_id في بيانات الاعتماد إلى مجموعة غير موجودة.

الحل:

  1. تأكد من أن address_source في بيانات الاعتماد يتطابق مع سلوك جهاز المستخدم.
  2. تأكد من أن المجموعة المرتبطة تحتوي على عناوين مجانية. تحقق من عدد allocated.
  3. تأكد من أن ip_pool_id في بيانات الاعتماد يشير إلى مجموعة صالحة.

نظرة عامة