الوحدة 03: علاقات الجوار واكتشاف النظراء والـ DIS
الهدف الهندسي للوحدة
تفكيك آليات اكتشاف الجيران وتأسيس علاقات الجوار في شبكات مزودي الخدمة؛ دراسة المصافحة الثلاثية على روابط Point-to-Point لمنع ثقوب الألياف الأحادية؛ فهم انتخاب موجه DIS وتوليد الـ Pseudonode، واستيعاب الفوارق الهندسية الدقيقة بين IS-IS و OSPF في التعامل مع شبكات البث المتعدد.
1. المصافحة الثلاثية على روابط Point-to-Point (RFC 5303 Three-Way Handshake)
في المواصفة الأصلية لـ ISO 10589، كانت المصافحة على الروابط الثنائية مصافحة ثنائية بسيطة (2-Way Handshake): عندما يتلقى الموجه A حزمة ترحيب Hello من الموجه B، يعتبر العلاقة قائمة (UP) فوراً!
المأزق القاتل: عطل الليف الضوئي أحادي الاتجاه (Unidirectional Fiber Fault)
تتكون وصلات الألياف الضوئية من خيطين: إرسال (Tx) واستقبال (Rx). إذا انقطع خيط الـ Tx من الموجه B إلى A، بينما ظل خيط A إلى B سليماً، فإن الموجه B سيستمر في تلقي حزم A ويظن أن العلاقة نشطة (UP)!
يقوم الموجه B بتمرير ترافيك الزبائن إلى الموجه A، بينما يفشل الموجه A في إرسال أي باكت إلى B، مما يخلق ثقباً أسود صامتاً يبتلع حركة المرور دون أن يشعر مهندس الشبكة!
الحل المعياري (RFC 5303):
تم إدخال خيار المصافحة الثلاثية عبر TLV 240 (Point-to-Point Three-Way Adjacency). أصبحت حالات الجوار تمر بثلاث مراحل حتمية:
- Down: لا توجد معلومات عن الجار.
- Initializing: استلمت ترحيباً من الجار، ولكن الجار لم يذكر معرّفي (System ID) في قائمة جيرانه بعد.
- Up: أصبحت العلاقة مكتملة فقط عندما أرى معرّف System ID الخاص بي مذكوراً صراحة داخل حزمة الترحيب القادمة من الجار!
2. شبكات البث المتعدد وموجه الـ DIS (Designated Intermediate System)
عندما تتصل عدة موجهات عبر مبدلة Ethernet مشتركة (Broadcast Multiaccess)، فإن تشكيل شبكة كاملة من الجوار (Full Mesh) يتطلب عدد اتصالات يساوي N(N-1)/2. إذا كان هناك 20 موجه، ينتج عن ذلك 190 علاقة جوار، وإغراق متكرر للحزم يرهق المعالجات والمبدلات.
لحل هذه المعضلة، يُنتخب موجه واحد ليكون Designated Intermediate System (DIS).
قواعد انتخاب الـ DIS:
- الموجه صاحب أعلى أولوية على المنفذ (Priority تتراوح بين 0 و 127، والقيمة الافتراضية 64).
- في حال تعادل الأولوية: الموجه صاحب أعلى عنوان MAC فيزيائي (SNPA - Subnetwork Point of Attachment).
- يتم انتخاب DIS مستقل لكل مستوى: L1 DIS و L2 DIS.
3. العقدة الوهمية (Pseudonode) وتخفيض التعقيد الحسابي
لا يقتصر دور الـ DIS على تنظيم المزامنة، بل يقوم بإنشاء وتمثيل كيان منطقي افتراضي يسمى العقدة الوهمية (Pseudonode):
- يعلن كل موجه على شبكة البث عن رابط واحد فقط يرتبط بالعقدة الوهمية بتكلفته العادية.
- ينتج الـ DIS حزمة معلومات خاصة تسمى Pseudonode LSP (يُميز بأن قيمة Pseudonode ID في معرّف الـ LSP ليست صفراً، مثل 0000.0000.0002.01-00)، وتعلن هذه العقدة الوهمية عن روابط لكافة الموجهات المتصلة بتكلفة صفر (Metric = 0).
- بهذا يتحول تعقيد الروابط في شجرة خوارزمية ديكسترا (Dijkstra) من O(N^2) إلى O(N) الخطي!
4. المقارنة المعمارية الجوهرية: DIS في IS-IS مقابل DR في OSPF
غالباً ما يخلط المهندسون بين DIS و DR، ولكن الفلسفة الهندسية بينهما مختلفة جذرياً كما يوضح الجدول الآتي:
| وجه المقارنة | IS-IS (DIS) | OSPF (DR) | السبب الهندسي |
|---|---|---|---|
| وجود نائب احتياطي (Backup) | لا يوجد (No Backup DIS) | يوجد موجه نائب (BDR) | في IS-IS، كل الموجهات تشكل Full Adjacency مع بعضها مباشرة، لذا أي موجه يستطيع تولي دور الـ DIS فوراً دون الحاجة لإعادة تأسيس علاقات. |
| حق الشفعة / الإزاحة (Preemption) | نعم، حتمي وفوري (Deterministic) | ممنوع منعاً لاهتزاز الشبكة (Non-preemptive) | في OSPF، تغيير الـ DR يقطع الجوار ويعيد تشغيل LSA exchange. أما في IS-IS، فالجوار قائم أصلاً وتغيير الـ DIS يستغرق أجزاء من الثانية فقط. |
| أولوية الصفر (Priority = 0) | ما زال مرشحاً للانتخاب! | مستبعد نهائياً من الترشح (Never DR) | في IS-IS الأولوية 0 هي مجرد أقل رقم مفاضلة وليست أمراً بالاستبعاد. |
| مزامنة قاعدة البيانات (Database Sync) | يرسل حزم CSNP كل 10 ثوانٍ دورياً | يعتمد فقط على تبادل LSA عند بدء التشغيل والـ Ack الفردي | الـ CSNP الدوري يضمن المزامنة التلقائية حتى لو سقط باكت تحديث في الطريق. |
5. تشريح حزمة الترحيب (IIH) وأثر حشو الحزم (Padding)
تستخدم حزم IIH للتحقق من الاتصال الحيوي والمحافظة على علاقات الجوار:
قاعدة الحشو الإجباري للحد الأقصى (MTU Padding Rule)
وفق معيار ISO 10589، يتم حشو حزم IIH الأولية بواسطة TLV 8 (Padding TLV) لتصل إلى الحجم الكامل للـ MTU المبرمج على المنفذ (مثل 1500 أو 9000 في حالة Jumbo Frames).
لماذا هذا الإجراء؟ لمنع تأسيس علاقة جوار بين طرفين يملكان أحجام MTU مختلفة! لو قامت العلاقة بحزم صغيرة، فإن حزم الـ LSPs الكبيرة التي ستُرسل لاحقاً ستسقط في العتاد (Hardware Giant Drops)، مما يسبب شللاً كاملاً في تحديث التوجيه.
6. التحقق والتشخيص على Cisco IOS XR
! عرض جيران IS-IS وتفاصيل الـ DIS
RP/0/RSP0/CPU0:PE1# show isis neighbors detail
System Id Interface SNPA State Holdtime Type IETF-P2P
P1 Gi0/0/0/0 0000.0000.0002 Up 27 L2 3-Way
Area Address: 49.0001
IP Address: 10.1.2.2
IPv6 Address: 2001:db8::2
! فحص حالة الـ DIS على المنفذ
RP/0/RSP0/CPU0:PE1# show isis interface GigabitEthernet0/0/0/0
GigabitEthernet0/0/0/0 is Up, Link-Status Up
Circuit-Type: Level-1-2
Level 1:
Metric: 10, Priority: 64
DIS: P1.01 (Priority 100)
Next IIH in: 2.1s (Holdtime: 9s)
Level 2:
Metric: 10, Priority: 64
DIS: PE1.01 (Priority 64, Local DIS)