شرح spanning-tree

إيه هو الـ Spanning Tree Protocol؟

Spanning Tree Protocol (STP) هو بروتوكول بيستخدم في شبكات الـ Ethernet لإدارة الروابط بين السويتشات (المفاتيح) ومنع حدوث دوائر لانهائية (loops) في الشبكة. وجود دوائر في الشبكة ممكن يسبب مشاكل زي ازدواجية البيانات، وتأخير في الشبكة، أو حتى توقفها عن العمل.

ليه الـ STP مهم؟

في الشبكات الكبيرة، ممكن يكون عندك أكتر من مسار (Path) بين السويتشات علشان تضمن التوافرية (Availability). لكن لو حصل دايركت سير البيانات في دوائر، ممكن يسبب مشاكل كبيرة. STP بيحل المشكلة دي عن طريق تحديد مسار أساسي وقطع باقي المسارات الاحتياطية حتى لو حصل عطل في المسار الأساسي.

إزاي الـ STP بيشتغل؟

  1. تحديد الجذر (Root Bridge):

    • في البداية، كل سويتش في الشبكة بيعتبر نفسه جذر (Root Bridge).
    • السويتش اللي عنده أقل Bridge ID هو اللي بيبقى الجذر الفعلي. الـ Bridge ID بيكون مكون من أولوية (Priority) وMAC Address.
  2. حساب المسافات (Path Costs):

    • بعد تحديد الجذر، كل سويتش بيحسب المسافة بتاعته من الجذر بناءً على الـ Cost لكل رابط.
    • الـ Cost بيعتمد على سرعة الرابط؛ الروابط الأسرع ليها Cost أقل.
  3. تحديد البورتات النشطة (Active Ports) والبورتات المقفولة (Blocked Ports):

    • لكل سويتش، بيتم تحديد أفضل مسار للوصول للجذر.
    • البورت اللي بيستخدم في المسار ده بيكون نشيط، والبورتات التانية اللي ممكن تسبب دايرة بتتقفل.
  4. التبديل في حالة العطل:

    • لو حصل عطل في المسار الأساسي، STP بيعيد فتح بورت مقفول لتوفير مسار بديل، وبالتالي الشبكة بتفضل شغالة بدون توقف.

أنواع البورتات في الـ STP

  1. Root Port (RP):
    • هو البورت الأقرب للجذر في كل سويتش غير الجذر نفسه.
  2. Designated Port (DP):
    • هو البورت اللي بيبقى مسؤول عن إرسال واستقبال البيانات على الشبكة الفرعية (Segment) المحددة.
  3. Blocked Port:
    • هو البورت اللي بيتم تقفيله لمنع حدوث دوائر. مش بيشارك في نقل البيانات، لكن ممكن يتفتح لو حصل عطل في مسار آخر.

إصدارات الـ STP

  1. STP التقليدي (802.1D):

    • الإصدارات الأولية من STP.
    • بتاخد وقت أطول في التوافق (Convergence) وبتحتاج للوقت لتحديد المسارات الجديدة في حالة العطل.
  2. Rapid Spanning Tree Protocol (RSTP - 802.1w):

    • تحسين على STP التقليدي.
    • بيكون أسرع في التوافق وبيقلل من زمن الانتقال في حالة حدوث تغييرات في الشبكة.
  3. Multiple Spanning Tree Protocol (MSTP - 802.1s):

    • بيسمح بوجود أكتر من شجرة تمتد (Spanning Trees) لإدارة VLANs مختلفة بكفاءة أكبر.

نصائح لتحسين أداء الـ STP

  • اختيار الجذر بعناية: تأكد إن السويتش الأقوى أو الأكثر مركزية هو الجذر لتقليل زمن التأخير والمسارات الطويلة.
  • استخدام RSTP أو MSTP: للاستفادة من سرعة التوافق وإدارة أفضل للشبكة.
  • تحديد الـ Port Roles بشكل صحيح: لضمان توزيع الأحمال بشكل متوازن ومنع حدوث دوائر.

1. تشغيل STP على السويتش:

بما إنك مش هتستخدم VLAN، كفاية تفعيل الـ STP على الشبكة بدون ما تحدد VLAN معينة. وده بيتم بشكل افتراضي، لكن لو عايز تتأكد أو تشغله:

bash
Switch(config)# spanning-tree

2. عرض حالة الـ STP:

عشان تشوف حالة الـ STP، مين الـ Root Bridge، إيه حالة البورتات، وتكلفة كل مسار:

bash
Switch# show spanning-tree

3. تحديد أولوية الجذر (Root Bridge):

عشان تضمن إن سويتش معين يبقى Root Bridge، لازم تقلل أولوية السويتش. افتراضياً، الأولوية بتبقى 32768. لو عايز تخلي سويتش معين هو الجذر، استخدم الأمر ده لتقليل الأولوية:

bash
Switch(config)# spanning-tree priority 4096

ده بيقلل أولوية السويتش وبالتالي يخليه هو الـ Root Bridge.

4. ضبط سرعة توافق STP (RSTP):

لو عايز تسرع من عملية التوافق بتاعت الـ STP، ممكن تفعّل Rapid Spanning Tree Protocol (RSTP) اللي أسرع من الـ STP التقليدي:

bash
Switch(config)# spanning-tree mode rapid-pvst

5. عرض حالة الـ Root Port والبورتات التانية:

عشان تعرف مين البورت اللي السويتش بيستخدمه للوصول للجذر (Root Port) وإيه حالة باقي البورتات:

bash
Switch# show spanning-tree detail

6. ضبط وضعية البورت (PortFast):

لو عندك بورتات متصلة بأجهزة زي أجهزة كمبيوتر أو سيرفرات، ومش عايز البورت دا يعدي بمرحلة الـ Listening و Learning في STP (اللي بتاخد شوية وقت)، ممكن تستخدم PortFast لتخطي المراحل دي:

bash
Switch(config-if)# spanning-tree portfast

7. تفعيل الحماية ضد الـ BPDU Guard:

لو عايز تمنع استقبال أي رسائل BPDU من الأجهزة المتصلة ببورت معين علشان ميحصلش تغيير في هيكلية الـ STP:

bash
Switch(config-if)# spanning-tree bpduguard enable

8. إعادة ضبط (Reset) الـ STP:

لو عايز تعيد تشغيل الـ STP في السويتش وتبدأ من جديد:

bash
Switch# clear spanning-tree detected-protocols

التطبيق:

  1. أول حاجة، تقدر توصل أكتر من سويتش في الـ Cisco Packet Tracer.
  2. بعد كده، تدخل على الـ CLI لكل سويتش وتطبق الأوامر دي.
  3. تقدر تتابع حالة الشبكة وتتحقق من عدم وجود أي loops أو مشاكل تانية

خلاصة

الـ Spanning Tree Protocol هو أداة أساسية في إدارة شبكات الـ Ethernet الكبيرة، بيساعد في منع حدوث دوائر لانهائية ويضمن استمرارية العمل في حالة حدوث أعطال في المسارات. باستخدام STP بشكل صحيح، تقدر تبني شبكة مستقرة وموثوقة بتتعامل مع التحديات المختلفة بكفاءة.

Mohamed hamed
بواسطة : Mohamed hamed
محمد حامد هو منشئ ومبرمج موقع تيكنولوجاوي وهي مدونة تقنية تعرض كل ما يخص التقنية من البرمجة والامن والربح من الانترنت ومن الكورسات التعليمية والتطبيقات الجوالة
تعليقات