مجموعات IP
تقوم OmniTWAG بتعيين عناوين IPv4 لجلسات NSWO (عدم انقطاع WLAN Offload) من مجموعة IP. NSWO هو انقطاع محلي مدعوم من TWAG: تقوم OmniTWAG بإنهاء حركة مرور المستخدم وتفكيكها محليًا. تعرف مجموعة IP كتلة CIDR IPv4، وبوابة، وخوادم DNS، ومدة الإيجار. يقوم المشغل بإضافة وتغيير وإزالة المجموعات عند الطلب من خلال واجهة برمجة التطبيقات REST أو واجهة الويب الخاصة بلوحة التحكم.
تعريفات المجموعات دائمة. تقوم OmniTWAG بتخزينها في ملف DETS، لذا تبقى المجموعات موجودة بعد إعادة التشغيل. يتم تخصيص العناوين في الذاكرة. تقوم OmniTWAG بإعادة بناء التخصيصات عندما تعيد الجلسات الاتصال بعد إعادة التشغيل.
جدول المحت��يات
- المفاهيم
- كيفية حصول الجلسة على عنوان
- تخصيص العنوان
- نموذج المجموعة
- واجهة برمجة التطبيقات REST
- واجهة الويب
- استكشاف الأخطاء وإصلاحها
المفاهيم
مجموعة 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 من المجموعة المرتبطة ببيانات اعتماد نقطة الوصول. الخطوات هي:
- تقوم نقطة الوصول بالمصادقة من خلال بيانات اعتماد RADIUS الخاصة بها.
- تقوم OmniTWAG بقراءة حقل
ip_pool_idفي بيانات الاعتماد للعثور على المجموعة. - تقوم OmniTWAG بقراءة حقل
address_sourceفي بيانات الاعتماد. - إذا كان
address_sourceهوpool، تقوم OmniTWAG بتخصيص عنوان ثابت للجلسة من المجموعة. - إذا كان
address_sourceهوdhcp، تنتظر OmniTWAG DHCP DISCOVER من جهاز المستخدم. يقوم خادم DHCP بعد ذلك بتوزيع عنوان من نطاق المجموعة. - تقوم 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_pools | index | قائمة بجميع المجموعات. تكون النتيجة مقسمة وقابلة للبحث بواسطة name أو cidr. |
| GET | /ip_pools/{id} | show | الحصول على مجموعة واحدة بواسطة id. |
| POST | /ip_pools | create | إنشاء مجموعة. |
| 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 المجموعة صغير جدًا لعدد الجلسات النشطة.
الحل:
- تحقق من عدد
allocatedمقابل عدد المضيفين القابلين للاستخدام في CIDR. - قم بتوسيع CIDR المجموعة لإضافة ا��مزيد من المضيفين القابلين للاستخدام، أو حرر التخصيصات القديمة عن طريق إنهاء الجلسات الخاملة.
- تأكد من أن مدة الإيجار ليست طويلة جدًا بحيث تبقى العناوين المحررة مخصصة.
نقطة الوصول لا تستخدم مجموعة
الأعراض: لا يتم تعيين الجلسات من نقطة الوصول من أي مجموعة IP.
الأسباب المحتملة:
- تستخدم نقطة الوصول انقطاعًا محليًا مملوكًا لنقطة الوصول، وليس NSWO المدعوم من TWAG. تقوم نقطة وصول انقطاع محلي مملوكة لنقطة الوصول بتعيين عملائها ولا تستخدم مجموعة OmniTWAG.
- لا تحتوي بيانات اعتماد نقطة الوصول على
ip_pool_id، لذا لا توجد مجموعة مرتبطة.
الحل:
- تأكد من أن نقطة الوصول تستخدم NSWO المدعوم من TWAG. فقط جلسات NSWO تستخدم مجموعة.
- إذا كان يجب أن تستخدم نقطة الوصول مجموعة، قم بتعيين
ip_pool_idعلى بيانات اعتماد RADIUS الخاصة بها إلىidالمجموعة. انظر أسرار RADIUS المشتركة.
جهاز المستخدم لا يحصل على عنوان
الأعراض: يتصل جهاز المستخدم ولكن لا يتلقى عنوان IPv4.
الأسباب المحتملة:
- لا يتطابق
address_sourceفي بيانات الاعتماد مع كيفية طلب جهاز المستخدم عنوانًا. معdhcp، يجب على جهاز المستخدم إرسال DHCP DISCOVER. معpool، تقوم OmniTWAG بتخصيص العنوان مسبقًا. - المجموعة المرتبطة مستنفدة.
- يشير
ip_pool_idفي بيانات الاعتماد إلى مجموعة غير موجودة.
الحل:
- تأكد من أن
address_sourceفي بيانات الاعتماد يتطابق مع سلوك جهاز المستخدم. - تأكد من أن المجموعة المرتبطة تحتوي على عناوين مجانية. تحقق من عدد
allocated. - تأكد من أن
ip_pool_idفي بيانات الاعتماد يشير إلى مجموعة صالحة.