پروتکل Spanning tree – STP در سیسکو، در این مقاله قصد داریم پروتکل و قابلیت بسیار کلیدی Spanning Tree در سوئیچ های سیسکو را مورد بررسی قرار دهیم. پروتکل Spanning Tree یا به اختصار (STP) یکی از قابلیت هایی است که در پس زمینه سوئیچ های سیسکو به صورت پیش فرض در حال اجرا می باشد و در اکثر موارد افراد و سازمان ها از تنظیمات پیش فرض آن بهره مند می گردند. با وجود اینکه تنظیمات STP محدود می باشند اما یکی از پروتکل هایی است که از پیچیدگی های خاص خود پیروی می نماید.
پروتکل Spanning tree – STP در سیسکو
فهرست مطالب
- Spanning tree (STP) چیست
- فرایند STP
- انواع استاندارد های STP
- فرایند انتخاب Root Bridge
- پورت ها در STP
- تنظیمات STP
Spanning tree (STP) چیست
پروتکل Spanning Tree (STP) در مورد افزونگی و جلوگیری از Down شدن شبکه می باشد. افزونگی یکی از راهکار ها برای افرایش قابلیت اطمینان در در شبکه می باشد. فرض کنید سه سوئیچ در اختیار داریم و به منظور ایجاد قابلیت اطمینان قصد داشته باشیم این سه سوئیچ را مشابه تصویر زیر به یکدیگر متصل نماییم :
در چنین سناریویی با ایجاد افزونگی قابلیت اطمینان را افزایش یافته و هر کدام از لینک ها با مشکل مواجه شود همچنان شبکه به سرویس دهی خود ادامه خواهد داد. اما چنین سناریویی یک چالش بسیار بزرگ نیز در پی خواهد داشت. در چنین سناریویی چنانچه STP وجود نداشته باشد با Loop و در پی آن Broadcast Storm روبرو خواهیم شد. همانطور که می دانیم اگر یک Broadcast اتفاق بیوفتد در مرحله اول سوئیچ آن را به همه پورت های خود به غیر از پورتی که Broadcast را از آن دریافت نموده ارسال خواهد نمود. در چنین شرایطی این Broadcast در حلقه ایجاد شده بین سه سوئیچ آنقدر می چرخد تا شبکه به کلی از کار خواهد افتاد. کاری که Spanning Tree انجام می دهد این است که شبکه را پایش می کند تا در شرایطی که چنین افزونگی ها را مشاهده نمود، یکی از لینک های افزونه که ایجاد Loop یا حلقه نموده است را غیرفعال (Disable) می کند. این پایش در STP به واسطه ارسال بسته های Bridge Protocol Data Unit (BPDU) انجام می گیرد که در هر دو ثانیه این بسته از طریق سویئچ به شبکه ارسال می گردد. حال اگر یکی از لینک های اصلی با مشکل مواجه و Down شود، لینکی که توسط STP مسدود شده بود به حالت فعال باز خواهد گشت. پس در ابتدا STP لینک افزونه را مسدود می نماید و در شرایطی که نیاز باشد و حلقه به وجود نیاید دوباره لینک را به صورت اتوماتیک فعال خواهد نمود. اکنون متوجه می شویم در شبکه های وسیع که از ساختار سه سطحی با تعداد سوئیچ های بالا و افزونگی لینک ها بهره می برند وجود STP یکی امر اجتناب ناپذیر و کلیدی محسوب می گردد.
مراحل فرایند STP
پروتکل Spanning tree بنا به فرایند هایی یک لینک افزونه را مسدود خواهد نمود. مراحلی که در فرآیند STP طی می گردند به شرح زیر می باشد:
- انتخاب Root : از ریشه یا Root می توان به نوعی مرکز شبکه نام برد. در حالت پیش فرض روی تمامی سوئیچ های سیسکو STP فعال می باشد بنابراین انتخاب Root Bridge به واسطه فرایندی انجام می گیرد. این انتخاب به صورت خودکار در شبکه بین سوئیچ ها انجام می گیرد.
- در محله دوم تمامی سوئیچ ها می بایست بهترین مسیر به سمت Root را پیدا نمایند. اما این انتخاب بهترین مسیر بر اساس چند معیار انجام خواهد گرفت. این معیار ها بر اساس اولویت به ترتیب زیر می باشند:
- Lowest Cost: اولین معیار در انتخاب بهترین مسیر کمترین Cost می باشد که بر اساس پهنای باند لینک تعیین می گردد. اگر لینک 10Mbps باشد Cost مربوط به لینک 100 ، 100Mbps برابر با 19 و 1Gbps برابر با 4 می باشد. هر سوئیچ به صورت انفرادی مقدار Cost خود به سمت Root را محاسبه می نماید. این محاسبه نیز به واسطه بسته های BPDU پروتکل STP که از سوئیچ ها در سطح شبکه ارسال می گردند محاسبه می شود. چنانچه تمام مسیر ها Cost یکسانی داشتند معیار بعدی در انتخاب بهترین مسیر به سمت Root نظر گرفته خواهد شد.
- Lowest Bridge ID: دومین معیار برای انتخاب بهترین مسیر به سمت Root، معیار Bridge ID می باشد. از Bridge ID به عنوان نوعی نام سوئیچ در پروتکل STP یاد می شود. Bridge ID ترکیبی از Bridge Priority و آدرس MAC می باشد. کمترین Bridge ID به عنوان معیار انتخاب بهترین مسیر به سمت Root در نظر گرفته می شود. چنانچه این معیار هم برابر شد، معیار بعدی جهت تصمیم گیری برای انتخاب بهترین مسیر به سمت Root لحاظ می گردد.
- Lowest Port Number: در نهایت آخرین معیار جهت انتخاب بهترین مسیر به سمت Root کمترین شماره پورت می باشد.
- Block: در نهایت پورتی که به عنوان بهترین مسیر انتخاب نخواهد شد مسدود (Block) می گردد. این پورت مسدود می شود تا از حلقه یا Loop در شبکه جلوگیری به عمل آید.
انواع استاندارد های STP
- Common Spanning Tree (STP) : پروتکل اولیه STP که بر پایه استاندارد 1D می باشد. در این استاندارد همانطور که در بالاتر اشاره شد ابتدا حلقه شناسایی می گردد و لینک افزونه با توجه به محل قرار گیری Root و معیار های بهترین مسیر مسدود می شود. این استاندارد در سال 1993 ایجاد گردیده و یک پروتکل قدیمی محسوب می گردد که بین 30 تا 50 ثانیه زمان خواهد برد تا در صورت نیاز لینک مسدود شده فعال گردد. این مدت زمان عدم دسترسی به شبکه امروزه غیر قابل قبول می باشد.
- Per-VLAN Spanning Tree (PVST+): برای هر استاندارد سیسکو یک ورژن اختصاصی خود را نیز ایجاد نموده است که مبتی بر VLAN فعالیت می نماید. به همین علت نام آن Per-VLAN STP می باشد. در مدل عمومی STP یک لینک با محاسبات انجام شده به طور کلی مسدود می گردد. اما در مدل PVST سیسکو قصد دارد تا لینک را به صورت کلی مسدود نکند، چرا که هر کدام از لینک ها هزینه هایی را به سازمان متحمل می نماید لذا بلا استفاده نمودن این لینک ها در واقع اتلاف منابع محسوب می گردد. به همین منظور سیسکو ساختاری را ایجاد نموده تا Root Bridge را مبتی بر VLAN انتخاب نماییم. بدین صورت که یک سوئیچ برای چند VLAN به عنوان Root bridge در نظر گرفته شود و سوئیچ بعدی برای تعداد VLAN دیگر. در این حالت به نوعی Load Balancing را تجربه خواهیم نمود.
- Rapid Spanning Tree (RSTP) : جهت بر طرف نمودن چالش سرعت در استاندارد STP استاندارد 1W یا همان RSTP ارائه گردید. فعال شدن لینک مسدود شده در RSTP تنها 2 ثانیه زمان خواهد برد.
- Per-VLAN Rapid Spanning Tree (PVRST): این مدل ورژن اختصاصی RSTP در سیسکو می باشد که مبتنی بر VLAN می باشد.
- Multiple Spanning Tree Protocol (MSTP): این نسخه مطابق با استاندارد 1S می باشد که در واقع مدل استاندارد شده RSTP مبتنی بر VLAN می باشد. در این استاندارد چندین VLAN را درون یک گروه قرار می دهیم و یک Instance از RSTP را به آن اختصاص خواهیم داد. مزیت این استاندارد نسبت به مدل اختصاصی سیسکو (PVRST) کمتر بودن Overhead های مربوطه می باشد.
فرایند انتخاب Root Bridge
الگوریتم کلی پروتکل Spanning Tree بر پایه مرکز شبکه یا همان Root Bridge می باشد. به همین منظور انتخاب Root Bridge یکی از کلیدی ترین مراحل در فرایند STP محسوب می گردد. باید در نظر داشت که در این فرایند ما به عنوان یک ادمین شبکه هم می توانیم دخیل باشیم. Root Bridge بر اساس فرایند زیر انتخاب می گردد:
Bridge ID: سویئچی که کمترین Bridge ID را دارد به عنوان Root bridge انتخاب می گردد. Bridge ID از ترکیب Bridge Priority و Bridge MAC به دست می آید: در حالت پیش فرض Priority تجهیزات 32768 به صورت استاندارد می باشد. هر سوئیچ یک آدرس MAC نیز دارد که به عنوان Base ethernet MAC Address وجود دارد که برای محاسبهBridge ID مورد استفاده قرار می گیرد. به عنوان مثال ترکیب Bridge Priority و Bridge MAC به صورت 32768.00A0.1101.B011 محاسبه و هر دو ثانیه طی بسته های BPDU از طریق تمامی پورت ها به شبکه ارسال می گردد.
بدین ترتیب با توجه به اینکه تمامی سوئیچ ها Priority یکسان 32768 را دارند پس آدرس MAC کمتر به عنوان اولویت انتخاب Root Bridge در نظر گرفته می شود. تا زمانی که سوئیچ جدیدی با Bride ID کمتر وارد شبکه نشود سوئیچ منتخب به عنوان Root Bridge باقی خواهد ماند. اگر قصد داشته باشیم سوئیچ خاصی را به عنوان Root Bridge انتخاب نماییم این قابلیت وجود دارد تا بتوان priority را به صورت دستی و با عددی پایین تر از 32768 مقدار دهی نمود. در نظر داشته باشید سوئیچی که به عنوان Root Bridge انتخاب می شود ، تمامی پورت های آن در حالت Forwarding قرار دارند و هیچ یک از پورت های آن Block نخواهد شد.
پورت ها در STP
- Root Port: به استثنای سوئیچی که به عنوان Root Bridge انتخاب می گردد و تمامی پورت های آن در حالت Designated – Forwarding قرار می گیرد، مابقی سوئیچ ها می بایست یک مسیر بهترین مسیر به سمت Root Bridge داشته باشد که این مسیر همانطور که گفته شد به ترتیب بر اساس Lowest Cost، Lowest Bridge ID و Lowest Port number انتخاب می شود. هر پورتی که به عنوان بهترین مسیر به سمت Root Bridge انتخاب می گردد Root Port محسوب می گردد.
- Designated Port: پورتی است که در حالت Forwarding قرار دارد. همیشه یک Designated Port در هر Segment خواهیم داشت. هر لینک بین دو سوئیچ را یک Segment در نظر می گیریم. پس از دو سر هر لینک بین دو سوئیچ حتما یکی Designated Port می باشد. همچنین پورت هایی که یک سر آن ها Root Port هستند طرف دیگر آن ها طبق قانون مذکور Designated Port می باشد. در لینک هایی که دو سمت آن ها نه Root Port هستند و نه Designated Port جهت پیدا نمودن Designated Port بر اساس ترتیب Lowest Cost، Lowest Bridge ID و Lowest Port number انتخاب می شود.
- Block Ports: پورت هایی که در نهایت نه Root Bridge و نه Designated Port باقی می مانند به عنوان پورت مسدود Block Ports در نظر گرفته می شوند. در نظر داشته باشید تنها یک سمت یک لینک ممکن است Block شود و هیچگاه دو سمت یک لینک Block نخواهد شد.
تنظیمات پروتکل Spanning Tree
پروتکل STP تنظیمات گسترده ای را شامل نمی شود و دستورات در این پروتکل محدود می باشد اما دانش فرایندی که در پس زمینه این پروتکل در حال انجام است، ضروری می باشد. برخی از تنظیمات در این پروتکل به شرح زیر می باشد:
چنانچه قصد بر این باشد تا یک سوئیچ به از Rapid Spanning Tree (RSTP) به منظور سرعت بالاتر در تغییرات توپولوژیکی استفاده نماید دستور زیر می بایست اجرا گردد. در نظر داشته باشید این دستور می بایست بر روی تمامی سوئیچ های موجود اجرا گردد.
MSP-Switch (config)#spanning-tree mode rapid-pvst
چنانچه قصد داریم یک سوئیچ به عنوان Root Bridge انتخاب گردد این کار را با دو دستور می توان اجرا نمود.
MSP-Switch (config)#spanning-tree vlan 1,10,20,30 root primary
با اجرای دستور فوق سوئیچ مورد نظر برای VLAN های وارد شده به عنوان Root انتخاب خواهد شد. این کار را با مقداردهی priority به عددی پایین تر از پیش فرض (32768) نیز می توان انجام داد.
MSP-Switch (config)#spanning-tree vlan 1,10,20,30 priority 4096
پورت های Access سوئیچ که اطمینان داریم به تجهیزات نهایی نظیر کامپیوتر ها و سرور ها متصل می گردند ، هنگامی که از طریق کابل شبکه به سوئیچ متصل می گردند باید فرایند STP را طی نمایند و این باعث می شود که پورت های مربوطه چندین ثانیه زمان نیاز داشته باشند تا UP شوند، در چنین شرایطی می توان از دستور زیر استفاده نمود تا پورت های مذکور بدون تاخیر و طی نمودن فرایند STP اصطلاحاً UP شوند.
MSP-Switch (config)#interface gig 0/0
MSP-Switch(config-if)# spanning-tree portfast
همانطور که اشاره گردید، در STP به صورت پیش فرض هر دو ثانیه یک BPDU به پورت های متصل ارسال می گردد. در پورت هایی که به کلاینت ها متصل می گردند نیازی به ارسال چنین بسته هایی نیست. به منظور جلوگیری از ارسال BPDU در پورت های مورد نظر دستور زیر را اجرا می نماییم. این کار استفاده بهینه از پهنای باند را در پی خواهد داشت.
MSP-Switch (config)#interface gig 0/0
MSP- Switch(config-if)# spanning-tree bpdufilter enable
دستورات مشاهده تنظیمات و عیب یابی STP :
MSP-Switch#show spanning-tree
MSP-Switch(config)# show spanning-tree vlan 10 summary