الوحدة 04: دورة حياة الـ LSP ومزامنة الـ LSDB وبت الـ Overload
الهدف الهندسي للوحدة
فهم المحرك الأساسي لمزامنة قاعدة البيانات (LSDB Synchronization Engine)؛ دراسة فيزياء حزم الـ LSP وأرقام التسلسل ومؤقتات البقاء؛ استيعاب الدور الدقيق لحزم CSNP و PSNP على روابط P2P والشبكات المشتركة؛ ثم حل معضلة الثقب الأسود عند إعادة تشغيل موجهات النواة عبر ترويض بت الـ Overload مع تزامن BGP.
1. حقول ترويسة حزمة الـ LSP (Link-State PDU Anatomy)
حزمة الـ LSP هي الوحدة الحصرية التي تنقل معلومات الروابط وحالتها وعناوين الشبكات. تتكون ترويسة الـ LSP من حقول هندسية حاسمة:
| الحقل | الحجم | السؤال الهندسي الذي يجيب عليه | أثر العطل أو الغياب |
|---|---|---|---|
| LSP ID | 8 Bytes | من هو الموجه المولد، وهل هي عقدة فيزيائية أم وهمية، وما رقم الشظية (Fragment)؟ | بدونه يتعذر تمييز مصدر المعلومات وتتعطل هيكلة قاعدة البيانات بالكامل. |
| Sequence Number | 4 Bytes (32 bits) | هل هذه النسخة من المعلومات أحدث أم أقدم من النسخة الموجودة في ذاكرتي المحلية؟ | حدوث فوضى عارمة واختلاط البيانات القديمة والجديدة أثناء الـ Flooding. |
| Remaining Lifetime | 2 Bytes (16 bits) | كم ثانية باقية قبل أن تُعتبر هذه المعلومات ميتة ويجب تنظيفها من الذاكرة؟ | بقاء مسارات الموجهات الميتة أو المسحوبة للأبد في الذاكرة (Ghost Routes). |
| Checksum (Fletcher) | 2 Bytes | هل تعرضت محتويات الحزمة لأي تشوه أو عطب أثناء العبور بالذاكرة أو كوابل النقل؟ | تلف قاعدة البيانات وحساب مسارات كارثية تؤدي لانهيار الشبكة. |
| Overload (OL) Bit | 1 Bit | هل يعاني هذا الموجه من ضغط أو يمر بمرحلة إقلاع تمنعه من تمرير حركة عبور الترانزيت؟ | ابتلاع حركة المرور في ثقب أسود (Blackhole) قبل جاهزية جداول التوجيه الكاملة. |
2. دورة حياة الـ LSP: التوليد، التحديث، والتطهير (Purge)
تخضع حزمة الـ LSP لقوانين زمنية صارمة لضمان حداثة البيانات ونظافة الذاكرة:
- التوليد والتحديث: يولد الموجه رقماً تسلسلياً يبدأ من 0x00000001 ويزيد بمقدار 1 مع كل تغيير يطرأ على روابطه أو عناوينه.
- التناقص الزمني التلقائي (Aging): يبدأ عداد الـ Remaining Lifetime من 1200 ثانية (20 دقيقة) ويتناقص ثانية بثانية في ذاكرة كافة الموجهات.
- التجديد الدوري (Periodic Refresh): قبل أن ينتهي العمر (عادة عند 900 ثانية)، يقوم الموجه المصدر بإعادة إرسال الـ LSP بنفس المحتوى وبرقم تسلسلي جديد لتصفير العداد إلى 1200 ثانية.
- التطهير والإلغاء (Purging): إذا أراد الموجه حذف معلومة فوراً (أو مات الموجه وانتهت الـ 1200 ثانية)، يُرسل الـ LSP بقيمة Remaining Lifetime = 0. يُفيض هذا الـ LSP المطهر عبر الشبكة لإجبار الجميع على حذفه فوراً من الـ LSDB.
3. محرك المزامنة: حزم CSNP وحزم PSNP
كيف تضمن مئات الموجهات أن قواعد بياناتها متطابقة تماماً دون إغراق الروابط بالحزم الضخمة باستمرار؟
حزمة CSNP (Complete Sequence Number PDU)
فهرس جرد شامل لقاعدة البيانات يحدد ملخص كافة الـ LSPs وأرقامها التسلسلية وقيم الـ Checksum الخاصة بها. يقوم موجه الـ DIS ببثها دورياً كل 10 ثوانٍ على شبكات البث المتعدد لتدقيق المزامنة الصامتة.
حزمة PSNP (Partial Sequence Number PDU)
تؤدي وظيفتين مختلفتين بحسب نوع الرابط:
- على روابط P2P: تعمل كإشعار استلام صريح (ACK) لكل LSP يصل الموجه.
- على شبكات البث (Broadcast): تعمل كطلب جلب (NACK/Request) إذا لاحظ الموجه في الـ CSNP وجود LSP ينقصه!
4. بت الحمل الزائد (Overload / OL Bit) ومعضلة ثقب إقلاع النواة
في شبكات مزودي الخدمة (Service Providers)، تحتوي موجهات النواة (مثل Cisco ASR 9922) على ملايين المسارات القادمة عبر BGP، وتمرر حركة مرور تصل لعشرات التيرابت بالثانية.
الكارثة التشغيلية: الثقب الأسود عند إعادة تشغيل الموجه
عند إعادة تشغيل موجه في النواة (Core Reload)، يستغرق بروتوكول IS-IS نحو ثانيتين فقط لتأسيس الجوار وإعلان مساراته. بالمقابل، يحتاج بروتوكول BGP من 60 إلى 180 ثانية لتحميل كامل جدول الإنترنت (Full Internet Table) من الـ Route Reflectors وبرمجة شرائح الـ FIB في كروت الخطوط!
إذا بدأ IS-IS بإعلان هذا الموجه كممر طبيعي للمرور، ستقوم بقية موجهات الشبكة بتوجيه حركة الترانزيت العالمية إليه فوراً. وبما أن الـ FIB ما زال خالياً من مسارات BGP، يقوم الموجه بإسقاط كل هذه الحزم في ثقب أسود لعدة دقائق كاملة!
الحل الهندسي العبقري: بت الـ Overload المتزامن مع BGP
عندما يُرفع بت الـ Overload (OL = 1) في ترويسة الـ LSP للموجه، تقوم خوارزمية ديكسترا في بقية الموجهات بمعاملة هذا الموجه على أنه عقدة طرفية فقط (Stub/Leaf Node):
- تستطيع الموجهات الوصول إلى عناوين الموجه نفسه (مثل عناوين الإدارة و Loopback0).
- تعتبر تكلفة عبور الترانزيت عبر هذا الموجه لا نهائية (Infinite Metric)، وبالتالي لا يتم استخدامه لتمرير أي حزم مارة لزبائن آخرين!
5. التطبيق والتحقق على Cisco IOS XR
! تأمين إقلاع موجه النواة عبر مزامنة IS-IS مع BGP
router isis CORE
net 49.0001.0000.0000.0002.00
is-type level-2-only
! رفع بت Overload عند الإقلاع والانتظار حتى انتهاء BGP أو مرور 180 ثانية
set-overload-bit on-startup wait-for-bgp 180
address-family ipv4 unicast
metric-style wide
!
! التحقق من حالة الـ Overload في قاعدة البيانات
RP/0/RSP0/CPU0:Core-P1# show isis database detail Core-P1.00-00
LSPID LSP Seq Num LSP Checksum LSP Holdtime ATT/P/OL
Core-P1.00-00 * 0x00000004 0x8f2a 1180 0/0/1
Area Address: 49.0001
NLPID: 0xCC 0x8E
IP Address: 10.255.255.2