CCNAآموزش شبکه

آموزش CCNA : معرفی پروتکل STP – Spanning Tree Protocol

Spanning Protocol

Spanning Tree Protocol یا STP چیست؟ در آغاز این بحث باید به مسئله افزونگی بپردازیم. در بسیاری از شرایط نیاز است تا بین برخی شرایط اقداماتی انجام شود تا در دسترس بودن سرویس ها را افزایش دهیم.

اما مشکل این مسئله این است که بدون در نظر گرفتن ویژگی های خاص مشکلاتی درون شبکه ایجاد می شوند که به مجموع آنها Switching Loop گفته می شوند. در زیر موارد مشخص شده به عنوان Switching Loop آورده شده اند:

  • Broadcast Storms
  • MAC Table Instability
  • Multiple Frame Transmission

راهکار حل مشکلات ذکر شده در بالا پروتکل Spanning Tree می باشد

مشخصات این پروتکل:

  • استاندارد IEEE 802.1D می باشد
  • یک پروتکل لایه 2 می باشد
  • با غیرفعال ساختن لینک ها از Switching Loop جلوگیری می کند
Spanning Tree Protocol
Spanning Tree Protocol

نحوه فعالیت Spanning Protocol :

این پروتکل به این صورت کار می کند که ابتدا از بین تمام سوییچ ها اقدام به انتخاب یک Root Bridge می نماید. قدم بعدی اقدام به ایجاد Designated Port می باشد که با تبدیل تمام پورت های Root Bridged به این نوع پورت ها آغاز می شود. در مرحله سوم بر روی سوییچ هایی غیر از Root Bridge اقدام به انتخاب تنها یک Root Port می نماید، این پورت در واقع نزدیکترین پورت به Root Bridge بر روی آن سوییچ می باشد. در مرحله چهارم اقدام به Segment بندی می نماید. در این مرحله Collision Domain ها را به عنوان Segment درنظر می گیرد و در هر Segment دو عدد سوییچ وجود دارد.

از بین این دو سوییچ در یک Segment یک سوییچ به Root Bridge نزدیکتر می باشد، این سوییچ را Designated Bridge می نامند و پورتی از این سوییچ که به سوییچ دیگر متصل شده است را Designated Port می نامند. در مرحله آخر تمام پورتهایی که به عنوان DP و RP انتخاب نشوند به حالت Block تبدیل می شوند.

معیارهای STP برای انتخاب Root Bridge :

پروتکل STP با ایجاد شرایط آگاهی سوییچ ها از یکدیگر اقدام به جلوگیری از Loop می نماید. این آگاهی با ارسال بسته های BPDU یا Bridge Protocol Data Units بین سوییچ ها انجام می شود. این بسته ها 2 مدل می باشند:

  • Hello BPDU  Configuration BPDU
  • TCN

در Hello BPDU یک ویژگی به نام Bridge ID وجود دارد. در STP هر سوییچ برای خود دارای یک Identifier می باشد. این مقدار تشکیل شده از 2 ویژگی STP Priority و Switch MAC Address می باشد.

STP Priority یک مقدار عددی بین 0 تا 65535 می باشد و مقدار پیش فرض آن 32768 می باشد و در صورت عدم تغییر این مقدار، برای تمام سوییچ ها این مقدار در نظر گرفته می شود.

BPDU که مقدار Bridge ID کمتری داشته باشد، به عنوان BPDU بهتر شناخته می شود لذا در صورتیکه برای تمام سوییچ ها مقدار پیش فرض STP Priority درنظر گرفته شود، تساوی شکن بین سوییچ ها MAC Address سوئیچ ها خواهد بود و کمترین مقدار آدرس MAC یک سوئیچ باعث تعریف آن به عنوان Root Bridge می شود.

در هر بسته BPDU اطلاعات زیر ارسال می شود:

  • Root Bridge
  • Sender Bridge
  • Cost

نکته: این بسته ها هر 2 ثانیه یکبار ارسال می شوند و همچنین باید بدانید که انتخاب یک Root Bridge یک انتخاب رقابتی است و هر لحظه امکان تغییر آن وجود دارد.

نحوه تعیین Cost در BPDU :

نحوه فعالیت Spanning Protocol - نحوه تعیین Cost در BPDU

نکته: در نحوه انتخاب DP و RP ها ارسال بسته های BPDU در بین سوییچ ها بعد از گذر از هر سوییچ در بخش Cost با مقدار Cost قبلی خود جمع شده و به سوییچ بعدی ارسال می شود. این کار برای این است که به طور مثال یک سوییچ بداند که برای رسیدن به Root Bridge از چه نوع اینترفیس هایی و با چه مقدار Cost باید عبور کند تا در نهایت بتواند بهترین مسیر را براساس کمترین مقدار Cost برای خود انتخاب نماید.

نکته: ممکن است در زمان هایی مقدار Cost ها باهم برابر باشند، تساوی شکن ها در این حالت دو مورد زیر می باشند:

  • 1st: Sender Bridge ID
  • 2nd: Port ID

در مورد اول مقدار کمتر در Bridge ID برنده می باشد و در مورد دوم شماره پورت کوچکتر برنده می باشد.

آشنایی با Topology Change Notification یا TCN :

این بسته زمانی ارسال می شود که یک تغییر Direct در شبکه رخ می دهد. این بسته یک BPDU از نوع TCN می باشد که از طریق Root Port به Root Bridge ارسال می شود. هر سوییچی که یک TCN بر روی Designated Port خود دریافت کند موظف به ارسال آن از طریق Root Port خود می باشد تا در نهایت به Root Bridge برسد.

زمانیکه TCN به دست Root Bridge برسد، یک TCN Flag به بسته بعدی BPDU ارسالی از Root Bridge الصاق می شود تا به کل شبکه ارسال شود و همه از این تغییر آگاه شوند.

هر سوییچ دارای یک MAC Table Age Time به مدت 300 ثانیه می باشد که در صورت فعال نبودن یک MAC address ، سوییچ آنرا به مدت 300 ثانیه درون جدول خود نگهداری می کند. زمانیکه یک سوییچ بسته BPDU با TCN Flag دریافت می کند، این مدت زمان 300 ثانیه را به 15 ثانیه تغییر می دهد تا بتواند Idle Mac Address ها را شناسایی و حذف نماید.

انواع مختلف STP ها:

IEEE 802.1D CST (Common Spanning Tree)
Cisco PVST (Per VLAN STP)
Cisco PVST+
IEEE 802.1W (RSTP)
Cisco RPVST+
IEEE 802.1S (MST)

نکته: در CST بالاترین مقدار زمان همگرایی در پروتکل وجود دارد (30 ثانیه) و همچنین استفاده همزمان از لینک ها در این مدل امکان پذیر نمی باشد.

نکته: در مدل PVST امکان استفاده همزمان لینک ها براساس ترافیک VLAN ها وجود دارد اما با CST سازگار نمی باشد و همچنین با Encapsulation dot1q کار نمی کند.

نکته: PVST+ با Encapsulation dot1q سازگاری دارد اما زمان همگرایی همچنان بالاست.

نکته: در RSTP زمان همگرایی تا حد امکان پایین آمده است.

نکته: بهترین حالت در STP می تواند RPVST Plus باشد اما در این حالت به تعداد VLAN ها Instance ایجاد می شود و در صورتیکه تعداد VLAN ها زیاد باشند، کارآیی شبکه پایین می آید.

نکته: در MST تعداد Instance ها براساس تعداد توپولوژی ها ایجاد می شوند، در نتیجه در این مورد کارآیی بهتری وجود دارد و به دلیل استاندارد بودن این حالت، با تمام حالت های دیگر سازگاری دارد.

دستورات Show در STP:

دستور
توضیحات
SW#show spanning-tree
این دستور اطلاعات کلی رو برای ما نمایش می دهد
SW#show spanning-tree active
فقط اطلاعات STP های فعال را نمایش می دهد
SW#show spanning-tree bridge
این دستور اطلاعات bridge ID ، تایمر ها و پروتکل های محلی را تمایش می دهد
SW#show spanning-tree brief
با این دستور می توانیم خلاصه ای ازتنظیمات Spanning Tree Protocol STP را مشاهده کنیم
SW#show spanning-tree detail
این دستور اطلاعات جزئی تری درباره Spanning Tree Protocol STP به نمایش می دهد
SW#show spanning-tree interface
اطلاعات Spanning Tree Protocol STP بر روی یک اینترفیس را نمایش می دهد
SW#show spanning-tree mst
این دستور اطلاعات Multiple Spanning Tree  MST  را به ما نمایش می دهد
SW#show spanning-tree root
با این دستور میتواینم اطلاعات و دستورات root bridge را مشاهده کنیم
SW#show spanning-tree summary
این دستور اطلاعات کلی درباره Spanning Tree Protocol STP به نمایش می دهد
SW#show spanning-tree vlan
این دستور اطلاعات یک  Vlan خاص رو برای ما نمایش می دهد
SW#show spanning-tree blockedports
با این دستور میتوانیم اطلاعاتی درباره پورت های بلاک شده بدست آوریم

دستوراتی عملیاتی که میتوان در STP استفاده کرد:

دستور
توضیحات

Switch(config)#spanning-tree vlan 200 priority

با این دستور میتوان مشخص کرد یک Vlan با priority بالاتر یا کمتری در یک سوئیچ مورد استفاده قرار بگیرد. عدد priority از 0 تا 61440 می باشد و با پرش های 4096 بالا می رود.
Switch(config)#spanning-tree vlan 200 root primary با این دستور سوئیچ را به عنوان روت اصلی برای vlan مورد نظر انتخاب میکند
Switch(config)#spanning-tree vlan 200 root secondary با این دستور سوئیچ را به عنوان روت دوم (جای گزین) برای vlan مورد نظر انتخاب میکند
Switch(config-if)#spanning-tree vlan 200 port-priority با دستور port-priority را تغییر می دهیم
Switch(config-if)#spanning-tree vlan 200 root priority با دستور root priority را تغییر می دهیم
Switch(config-if)#spanning-tree vlan 200 cost 250 با دستور cost را تغییر می دهیم
Switch(config)#spanning-tree mode rapid-pvst با این دستور Rapid PVST+ را فعال میکنیم
Switch(config-if)#spanning-tree bpduguard enable یک قابلیت امنیتی است که به ما این امکان را می دهد که روی پورت هایی که انتخاب کرده ایم دیگر اجازه ارسال بسته های BPDU وجود نداشته باشد. با فعال کردن این دستور در صورتی که از آن پورت بسته BPDU  ارسال شود آن پورت درحالت error-disabled قرار گرده و پورت مورد نظر غیرفعال می شود.

دستور PortFast

این حالت فقط روی سوئیچ های لایه access شبکه کاربرد دارد که به PC ها و Workstation ها متصل هستند. انتخاب این دستور جهت بالابردن Convergence شبکه بسیار حائز اهمیت میباشد زیرا دیگر با وصل شدن یک pc به سوئیچ کل توپولوژی شبکه دستخوش تغییر نمیشود. به صورت پیش فرض PortFast روی تمامی پورتها غیر فعال میباشد. برای تبدیل کردن تمامی پورت ها به حالت portfast از دستور زیر استفاده میکنیم :

Switch(config)# spanning-tree portfast default

برای غیر فعال کردن portfast برای یک پورت خاص از دستور زیر استفاده میکنیم :

Switch(config-if)# [ no ] spanning-tree portfast

اگر پورت متصل به PC بر روی سوئیچ portfast نباشد زمان 50 ثانیه طول میکشد تا pc به شبکه متصل شود ( 30 ثانیه برای listening و learning ، همچنین 20 ثانیه برای etherchannel ).

حتما دقت کنید که portfast روی پورت هایی که به سوئیچ و یا هاب متصل هستند غیر فعال گردد.

نمایش وضعیت روی پورت portfast :

Switch# show spanning-tree interface type member/module/number portfast

درصورتی که یک پورت شما Trunk است می توانید از spanning-tree portfast trunk استفاده کنید، فقط توجه داشته باشید که spanning-tree portfast trunk را نباید در جایی استفاده کنید که دو طرف آن سوئیچ قرار دارد زیرا ممکن است Loop ایجاد شود. spanning-tree portfast trunk را معمولا زمانی استفاده میکنیم که برای مثال یک طرف سوئیچ و طرف دیگر اکسس پوینت یا دیوایسی به غیر از سوئیچ داریم.

UplinkFast چیست؟

ویژگی که سرعت تبادل اطلاعات STP را در زمانی که ارتباط مستقیم یک سوئیچ با سوئیچ بالادست قطع می شود را افزایش می دهد. در این حالت سوئیچ پورت Backup را برای Root Port تشخیص می دهد و زمانی که Root Port قطع شود پورت Backup بدون قرار گرفتن در وضعیت Learning و Listening جایگزین Root Port می شود. برای فعال کردن این ویژگی از دستور زیر استفاده می کنیم:

Switch(config)#spanning-tree uplinkfast

نکته: uplinkfast را نباید روی Root Bridge فعال کنیم.

BackboneFast چیست؟

ویژگی که سرعت تبادل اطلاعات STP را در زمانی که ارتباط سوئیچ به سمت Root Bridge در جایی که مستقیم به سوئیچ وصل نیست قطع شود را افزایش می دهد. برای فعال کردن این ویژگی از دستور زیر استفاده می کنیم:

Switch(config)#spanning-tree backbonefast
Shares:

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *