شرح طريقة عمل بروتوكول protocol Spanning tree ' STP ' فى سويتش
اليوم يأخوانى جايب لكم درس جدآ حلو ومهم بالنسبة لهذآ protocol Spanning tree
يعمل هذا البروتوكول في الطبقة الثانية
لكي تعمل شبكة Ethernet بشكل جيد يجب ان يتواجد مسار واحد فقط بين أي جهازين
ويمكنك بعد قرائتك و فهمك لعمل البروتوكول ان تعرف ايضا
.......................................................
عمل STP شفاف ولا تحس به الطرفيات
يستخدم هذا البروتوكول من اجل حساب افضل طريق بدون حلقات loop-free في الشبكة، يقوم
SW بارسال واستقبال بيانات خاصة بهذا البروتوكول تدعى BPDU ضمن فترات زمنية محددة وهذه
البيانات تستخدم من اجل بناء مسارات خالية من الحلقات
في حال وجود اكثر من مسار من المرسل الى المستقبل في شبكات Ethernet يؤدي الى وجود
حلقات وهذا يؤدي الى ان يستقبل الجهاز عدة نسخ من الرسالة نفسها التي ارسلها المرسل
ووجود الحلقات يجعل Sw يكتشف عنوان MAC لجهاز ما في عدة منافذ على SW
يقوم هذا البروتوكول بانشاء SW اساسي يدعى Root و كذلك يقوم بانشاء مسار (loop-free)من
الـ Root الى بقية الاجهزة، ويحول أي مسار احتياطي الى حالة Block ، وفي حال وجود عطل في
أي مقطع في الشبكة فان البروتوكول يبدأ بإعادة حساب البنية من جديد ويفعل الخط الذي كان سابقا من نوع Block
عندما تكون وصلتين في Sw جزء من Loop فان Sw يستخدم افضلية المنفذ وتكلفة الطريق لتحديد أي منفذ سوف يكون في حالة Forward واي منفذ في حالة block
افضلية المنفذ: تمثل هذه القيمة مكان الوصلة في بنية الشبكة وكيف يمكن الوصول اليه لتمرير البيانات
تكلفة المسار: تمثل سرعة الوصلة
يدعم SW هذا البروتوكول لكل VLAN ويسمى PVST per-VLAN Spanning tree وعدده هو 64 instances
الشبكة المستقرة تحدد بـ 3 عناصر:
*Bridge ID (يتكون من افضلية الجهاز و عنوان MAC) في كل VLAN لكل جهاز
*تكلفة المسار وصولا الى Root
port id*(افضلية المنفذ وعنوان MAC) لكل وصلة في الجهاز
عند تشغيل أي جهاز فانه يكون root ويقوم بارسال BPDU على جميع منافذه ، تحتوي BPDU على المعلومات التالية:
• Bridge ID للجهاز الذي يعتبر نفسه Root
• تكلفة المسار وصولا الى Root
•Bridge ID للذي يرسل اطار BPDU
•عمر الرسالة Age
•Port ID للمنفذ الذي يرسل BPDU
•قيم كلا من : Hello – forward delay – max-age
عندما يستقبل SW اطار BPDU يحتوي قيم افضل (رقم Bridge ادنى – اقل تكلفة للمسار ) فانه يحتفظ بهذا الاطار ويقوم بتمرير هذا الاطار الى باقي الاجهزة بعد تحديث BPDU
عندما يستقبل SW اطار BPDU يحتوي قيم ادنى مقارنة مع القيم الموجودة عنده فانه يتلف BPDU ولا يقوم بتمرير هذا BPDU عبر منافذ وانما يقوم بتمرير احدث معلومات عن BPDU
نتائج تمرير BPDU:
• اختيار جهاز واحد لكي يكون Root
• اختيار منفذ واحد في بقية الاجهزة لكي يكون Root port وهذا المنفذ يعطي اقل تكلفة للمسار لتمرير البيانات الى Root switch
• في كل مقطع يتم اختيار Switch واحد ليكون Designated switch ويضمن هذا الجهاز اقل تكلفة للمسار لتمرير البيانات من هذا المقطع الى Root Sw ، والمنفذ المتصل مع هذا المقطع يدعى بـ Designated port
• جميع Root port و designated port في حالة forward والبقية في حالة Block
اختير Root Sw
في كل VLAN يتم اختير افضل افضلية (اقل رقم) لكي يكون Root Sw واذا كانت الافضلية متساوية (افتراضيا تساوي 32768) فيتم اخذ اصغر MAC في هذه VLAN
وبالتالي عند تغير افضلية Sw الى رقم اقل من 32768 فان SW يتحول الى Root
أي مسار لا نحتاج اليه للوصول الى Root Sw في الشبكة يتحول الى حالة Block
يتكون Bridge ID من 8 بايت : اعلى بايتين للأفضلية للجهاز و6 خانات الاخرى لـ MAC
مراحل الوصلات
يتم ذلك بإعطاء قيمة لـ Switch priority اقل من 32768 وبعد تنفيذ الامر تتحول الافضلية الى 24576 واذا نفذنا الامر على جهاز آخر تتحول الافضلية الى 4096
الامر
Config t
Spanning-tree vlan(no) root primary [hello-time sec
NO=رقم الــVLAN
هنا نحدد من سوف يكون root switch لكل VLAN على حدة ونحدد ايضا فترة ارسال زمن Hello وهو افتراضي 2 sec
للتاكد نكتب الامر show spanning-tree detail
تحديد افضلية المنفذ
المنفذ الذي يكون له اعلى افضلية (ذات الرقم الادنى) يكون في حالة Forward
اذا كانت جميع الوصلات لها نفس الافضلية فان المنفذ ذا الرقم الاقل سوف يكون في حالة Forward
Config t
Int اسم الوصلة
Spanning-tree port-priority-no
NO=رقم الــpriority الأفضلية
الرقم من 0 الى 255 وافتراضيا يكون 128
ويمكن تحديدها لكل VLAN
Spanning-tree vlan-no port-priority
NO=رقم الــvlan
تكلفة الطريق
تحسب تكلفة الطريق بالاعتماد على سرعة الوصلة
الوصلة التي لها تكلفة مسار اقل تكون في حالة Forward
اذا تساوت تكلفة طريقين فاننا ناخذ الطريق المتصل مع الوصلة ذات الرقم الاقل
تغير افضلية الـ Sw
تغير زمن Hello
يستفاد من هذا الوقت في تحديد مدة ارسال BPDU من Root Sw
يستفاد منه في تحديد الوقت من اجل الانتقال من حالتي Learning & listening الى forward وهو افتراضيا 15 ثانية
يستفاد منه في تحديد فترة الانتظار بعدم استقبال BPDU وبعد الانتظار هذه الفترة يتم اعادة حساب بنية الشبكة من جديد
وهو افتراضيا 20 ثانية
يعمل هذا البروتوكول في الطبقة الثانية
لكي تعمل شبكة Ethernet بشكل جيد يجب ان يتواجد مسار واحد فقط بين أي جهازين
ويمكنك بعد قرائتك و فهمك لعمل البروتوكول ان تعرف ايضا
أنواع الـ Spanning Tree Protocol
.......................................................
عمل STP شفاف ولا تحس به الطرفيات
يستخدم هذا البروتوكول من اجل حساب افضل طريق بدون حلقات loop-free في الشبكة، يقوم
SW بارسال واستقبال بيانات خاصة بهذا البروتوكول تدعى BPDU ضمن فترات زمنية محددة وهذه
البيانات تستخدم من اجل بناء مسارات خالية من الحلقات
في حال وجود اكثر من مسار من المرسل الى المستقبل في شبكات Ethernet يؤدي الى وجود
حلقات وهذا يؤدي الى ان يستقبل الجهاز عدة نسخ من الرسالة نفسها التي ارسلها المرسل
ووجود الحلقات يجعل Sw يكتشف عنوان MAC لجهاز ما في عدة منافذ على SW
يقوم هذا البروتوكول بانشاء SW اساسي يدعى Root و كذلك يقوم بانشاء مسار (loop-free)من
الـ Root الى بقية الاجهزة، ويحول أي مسار احتياطي الى حالة Block ، وفي حال وجود عطل في
أي مقطع في الشبكة فان البروتوكول يبدأ بإعادة حساب البنية من جديد ويفعل الخط الذي كان سابقا من نوع Block
عندما تكون وصلتين في Sw جزء من Loop فان Sw يستخدم افضلية المنفذ وتكلفة الطريق لتحديد أي منفذ سوف يكون في حالة Forward واي منفذ في حالة block
افضلية المنفذ: تمثل هذه القيمة مكان الوصلة في بنية الشبكة وكيف يمكن الوصول اليه لتمرير البيانات
تكلفة المسار: تمثل سرعة الوصلة
يدعم SW هذا البروتوكول لكل VLAN ويسمى PVST per-VLAN Spanning tree وعدده هو 64 instances
الشبكة المستقرة تحدد بـ 3 عناصر:
*Bridge ID (يتكون من افضلية الجهاز و عنوان MAC) في كل VLAN لكل جهاز
*تكلفة المسار وصولا الى Root
port id*(افضلية المنفذ وعنوان MAC) لكل وصلة في الجهاز
عند تشغيل أي جهاز فانه يكون root ويقوم بارسال BPDU على جميع منافذه ، تحتوي BPDU على المعلومات التالية:
• Bridge ID للجهاز الذي يعتبر نفسه Root
• تكلفة المسار وصولا الى Root
•Bridge ID للذي يرسل اطار BPDU
•عمر الرسالة Age
•Port ID للمنفذ الذي يرسل BPDU
•قيم كلا من : Hello – forward delay – max-age
عندما يستقبل SW اطار BPDU يحتوي قيم افضل (رقم Bridge ادنى – اقل تكلفة للمسار ) فانه يحتفظ بهذا الاطار ويقوم بتمرير هذا الاطار الى باقي الاجهزة بعد تحديث BPDU
عندما يستقبل SW اطار BPDU يحتوي قيم ادنى مقارنة مع القيم الموجودة عنده فانه يتلف BPDU ولا يقوم بتمرير هذا BPDU عبر منافذ وانما يقوم بتمرير احدث معلومات عن BPDU
نتائج تمرير BPDU:
• اختيار جهاز واحد لكي يكون Root
• اختيار منفذ واحد في بقية الاجهزة لكي يكون Root port وهذا المنفذ يعطي اقل تكلفة للمسار لتمرير البيانات الى Root switch
• في كل مقطع يتم اختيار Switch واحد ليكون Designated switch ويضمن هذا الجهاز اقل تكلفة للمسار لتمرير البيانات من هذا المقطع الى Root Sw ، والمنفذ المتصل مع هذا المقطع يدعى بـ Designated port
• جميع Root port و designated port في حالة forward والبقية في حالة Block
اختير Root Sw
في كل VLAN يتم اختير افضل افضلية (اقل رقم) لكي يكون Root Sw واذا كانت الافضلية متساوية (افتراضيا تساوي 32768) فيتم اخذ اصغر MAC في هذه VLAN
وبالتالي عند تغير افضلية Sw الى رقم اقل من 32768 فان SW يتحول الى Root
أي مسار لا نحتاج اليه للوصول الى Root Sw في الشبكة يتحول الى حالة Block
يتكون Bridge ID من 8 بايت : اعلى بايتين للأفضلية للجهاز و6 خانات الاخرى لـ MAC
مراحل الوصلات
القيم الافتراضية:
يعمل هذا البروتوكول بشكل افتراضي في
VLAN1
Switch priority = 32768
Port priority = 128
يعمل هذا البروتوكول بشكل افتراضي في
VLAN1
Switch priority = 32768
Port priority = 128
Port cost = 4(1000 mbps) or = 19(100mbps) or =100(10mbps)
Hello time = 2 sec
Forward-delay time = 15sec
Maximum-aging time = 20 sec
Hello time = 2 sec
Forward-delay time = 15sec
Maximum-aging time = 20 sec
الغاء عمل STP
Config t
No spanning-tree vlan
يمكن الغاء عمل STP لـ Vlan محددة
للتاكد نكتب show spanning-tree vlan vlan-id
تحديد Root switchConfig t
No spanning-tree vlan
يمكن الغاء عمل STP لـ Vlan محددة
للتاكد نكتب show spanning-tree vlan vlan-id
يتم ذلك بإعطاء قيمة لـ Switch priority اقل من 32768 وبعد تنفيذ الامر تتحول الافضلية الى 24576 واذا نفذنا الامر على جهاز آخر تتحول الافضلية الى 4096
الامر
Config t
Spanning-tree vlan(no) root primary [hello-time sec
هنا نحدد من سوف يكون root switch لكل VLAN على حدة ونحدد ايضا فترة ارسال زمن Hello وهو افتراضي 2 sec
للتاكد نكتب الامر show spanning-tree detail
المنفذ الذي يكون له اعلى افضلية (ذات الرقم الادنى) يكون في حالة Forward
اذا كانت جميع الوصلات لها نفس الافضلية فان المنفذ ذا الرقم الاقل سوف يكون في حالة Forward
Config t
Int اسم الوصلة
Spanning-tree port-priority-no
NO=رقم الــpriority الأفضلية
الرقم من 0 الى 255 وافتراضيا يكون 128
ويمكن تحديدها لكل VLAN
Spanning-tree vlan-no port-priority
NO=رقم الــvlan
تكلفة الطريق
تحسب تكلفة الطريق بالاعتماد على سرعة الوصلة
الوصلة التي لها تكلفة مسار اقل تكون في حالة Forward
اذا تساوت تكلفة طريقين فاننا ناخذ الطريق المتصل مع الوصلة ذات الرقم الاقل
Config t
Int اسم الوصلة
Spanning-tree cost الرقم
او لكل VLAN
Spanning-tree vlan-NO cost
NO=رقم الــVLAN
Int اسم الوصلة
Spanning-tree cost الرقم
او لكل VLAN
Spanning-tree vlan-NO cost
NO=رقم الــVLAN
تغير افضلية الـ Sw
Config t
Spanning-tree vlan-NO priority
للتاكد
Sh spanning-tree vlan رقم-الفيلان
Spanning-tree vlan-NO priority
للتاكد
Sh spanning-tree vlan رقم-الفيلان
يستفاد من هذا الوقت في تحديد مدة ارسال BPDU من Root Sw
Config t
Spanning-tree vlan-NO hello-time-Z
Z=قيمة الزمــن
تغير زمن forward delaySpanning-tree vlan-NO hello-time-Z
Z=قيمة الزمــن
يستفاد منه في تحديد الوقت من اجل الانتقال من حالتي Learning & listening الى forward وهو افتراضيا 15 ثانية
Config t
Spanning-tree vlan-NO forward-time-Z
NO=رقم الــVLAN
Z=قيمة الزمن
تغير زمن maximum ageSpanning-tree vlan-NO forward-time-Z
NO=رقم الــVLAN
Z=قيمة الزمن
يستفاد منه في تحديد فترة الانتظار بعدم استقبال BPDU وبعد الانتظار هذه الفترة يتم اعادة حساب بنية الشبكة من جديد
وهو افتراضيا 20 ثانية
Config t
Spanning-tree vlan-NO max-age-Z
NO=رقم الــ VLAN
Z=قيمة الزمن
Spanning-tree vlan-NO max-age-Z
NO=رقم الــ VLAN
Z=قيمة الزمن