آشنایی با پروتکل STP

احتمالا شما هم با عباراتی مانند پروتکل STP، به وجود آمدن loop در شبکه، RSTP و… روبرو شدید. در این مقاله ابتدا پروتکل STP و کاربرد آن را معرفی کرده، سپس نحوه‌ی کارکرد این پروتکل را بررسی می‌کنیم.

Spanning Tree Protocol چیست؟

سوئیچ های سیسکو با استفاده از پروتکل STP، از به وجود آمدن loop در شبکه جلوگیری می کنند. اگر در یک LAN که دارای مسیر های redundant می‌باشد، پروتکل STP فعال نباشد، loopهای نامحدودی در شبکه به وجود می آید که این امر می تواند باعث down شدن شبکه شود. در حالی که اگر در همان LAN پروتکل STP فعال باشد، سوئیچ ها برخی از پورت ها را بلاک می کنند و اجازه عبور اطلاعات از آن پورت ها را نمی‌دهند تا در شبکه loop ایجاد نشود.


پروتکل STP برای بلاک کردن پورت ها به دو معیار توجه می کند:

• تمامی deviceهای موجود در LAN باید بتوانند با هم ارتباط برقرار کنند. درواقع STP حداقل تعداد پورت ها را بلاک می کند تا LAN به چند بخش مستقل از هم که نمی توانند با هم ارتباط برقرار کنند، تقسیم نشود.
• Frame ها بعد از مدتی drop می شوند و به طور نامحدود در loop قرار نمی‌گیرند.

پروتکل STP شبکه ها را متعادل می‌کند بطوریکه  frameها  به هر کدام از deviceها می توانند ارسال شوند بدون اینکه مشکل loop به وجود آید.
پروتکل STP با چک کردن هر پورت قبل از اینکه از طریق آن اطلاعات ارسال کند، از به وجود آمدن loop در شبکه جلوگیری می‌کند. در این روند چک کردن اگر آن پورت در یک VLAN، در وضعیت STP forwarding باشد، از آن پورت داخل همان VLAN در حالت عادی استفاده می شود، اما اگر در وضعیت STP blocking باشد، در آن VLAN، ترافیک تمام کاربران بلاک می شود و ترافیکی از آن پورت عبور نخواهد کرد.
توجه کنید که وضعیت STP یک پورت، دیگراطلاعات مربوط به پورت را تغییر نمی‌دهد. برای مثال با تغییر وضعیت خود تغییری در وضعیت های trunk/access و connected/not-connected ایجاد نمی‌کند. وضعیت STP یک مقدار جدا از وضعیت های قبلی دارد و اگر در حالت بلاک باشد پورت را از پایه غیر فعال می‌کند.

نیاز به پروتکل STP

پروتکل STP از وقوع سه مشکل رایج در Ethernet LANها جلوگیری می‌کند. در نبود پروتکل STP ، بعضی از frameهای Ethernet برای مدت زیادی (ساعت ها، روز ها و حتی برای همیشه اگر deviceهای LAN و لینک ها از کار نیوفتند) در یک loop داخل شبکه قرار می‌گیرند. سوئیچ های سیسکو به طور پیش فرض پروتکل STP را اجرا می کنند. توصیه می کنیم پروتکل STP را تا زمانی که تسلط کامل به آن ندارید، غیر فعال نکنید.

اگر یک frame درloop قرار بگیرد Broadcast storm به وجود می آید. Broadcast storm زمانی به وجود می آید که هر نوعی از frameهای Ethernet (مانند multicast frame،broadcast frame و unicast frameهایی که مقصدشان مشخص نیست) در loop بی نهایت داخل LAN قرار بگیرند. Broadcast stormها می توانند لینک های شبکه را با کپی های به وجود آمده از یک frame اشباع کنند و باعث از بین رفتن بعضی از frameها شوند، از طرفی با توجه به بار پردازشی مورد نیاز برای پردازش broadcast frameها، تاثیر قابل ملاحظه ای روی عملکرد deviceهای کاربران دارند.
تصویر 1-2 یک مثال ساده از Broadcast storm را نشان می‌دهد که در آن سیستمی که Bob نام دارد یک broadcast frame ارسال می‌کند. خط چین ها نحوه ارسال frameها توسط سوئیچ ها را در نبود STP نمایش می‌دهند.

 

در تصویر 1-2، frameها در جهت های مختلفی می چرخند، برای ساده تر شدن مثال فقط در یک جهت آنها را نمایش داده ایم.

سوئیچ ها broadcast farmeها را به تمام پورت ها به جز پورت فرستنده آن frame، ارسال می‌کنند. در تصویر 1-2، سوئیچ سوم frame دریافتی از Bob را به سوئیچ SW2 ارسال می‌کند، سوئیچ SW2 آن را برای سوئیچ SW1 ارسال می‌کند و سوئیچ SW1 نیز آن را برای SW3 ارسال می کند و به همین ترتیب این frame داخل یک loop قرار می‌گیرد.
زمانی که یک Broadcast storm اتفاق میوفتد، frameها مانند مثال بالا به چرخیدن ادامه می‌دهند تا زمانی که تغییراتی به وجود آید (شخصی یکی از پورت ها را خاموش کند، سوئیچ را reload کند یا کاری کند که loop از بین برود).

Broadcast storm همچنین باعث به وجود آمدن مشکل نا محسوسی به نام MAC table instability یا ناپایداری جدول مک می‌شود. در این مشکل frame هایی که مک آدرس مبداء یکسانی دارند، از پورت های مختلفی وارد سوئیچ می‌شوند که منجر به تغییر دائمی جدول مک آدرس می شود. به مثال زیر توجه کنید:
در تصویر 1-2 در ابتدا سوئیچ SW3 مک آدرس باب را که از طریق پورت Fa0/13 وارد سوئیچ می شود را به جدول مک آدرس خود اضافه می کند:

0200.3333.3333 Fa0/13 VLAN 1

حالا فرایند switch learning را در نظر بگیرید، frame ارسالی پس از یک دور چرخیدن از طریق پورت Gi0/1 وارد سوئیچ SW3 می‌شود. سوئیچ SW3 متوجه می‌شود که frame وارد شده از پورت Gi0/1، مک آدرس مبداء 0200.3333.3333 را دارد، بنابراین جدول مک آدرس خود را به روز می‌کند:

0200.3333.3333 Gi0/1 VLAN 1

پس از به روز رسانی جدول مک آدرس، سوئیچ SW3 هم دیگر نمی‌تواند به درستی frameها را به سیستم Bob برساند. برای مثال در این حالت اگر یک frame که مقصد آن Bob باشد به سوئیچ SW3 برسد (خارج از frameهایی که در داخل loop افتاده اند) ، سوئیچ SW3 به اشتباه frame را روی پورت Gi0/1 به سوئیچ SW1 ارسال می‌کند، نتیجه ی این اشتباه یک loop است که ترافیک زیادی را در شبکه ایجاد می‌کند.

سومین مشکلی که Frame های موجود در یک broadcast storm ایجاد می‌کنند، رسیدن کپی های مختلف از یک frame به دست گیرنده است. در تصویر 1-2 فرض کنید که باب یک frame را برای لاری ارسال کند، در حالی که هیچ کدام از سوئیچ ها مک آدرس لاری را نمی‌دانند. سوئیچ ها frameها را به صورت unicastهایی که مک آدرس مقصدشان مشخص نیست، ارسال می‌کنند. زمانی که باب یک frame که مک آدرس مقصدش لاری است را ارسال می کند، سوئیچ SW3 آن را به سوئیچ های SW1 و SW2 ارسال می‌کند. سوئیچ های SW1 و SW2 نیز frame را broadcast می‌کنند، این broadcast ها منجر به قرار گرفتن آن frame در داخل یک loop می‌شوند. سوئیچ SW1 نیز کپی های متعددی از آن frame را به پورت Fa0/11 برای لاری ارسال می کند. در نتیجه لاری کپی های مختلفی از آن frame را دریافت می‌کند، که می تواند باعث از کار افتادن برنامه ای در سیستم لاری و یا مشکلات شبکه ای شود.

جدول زیر خلاصه ای از سه مشکل اساسی در شبکه ای که دارای redundancy است و STP در آن اجرا نمی شود را نشان می دهد:

نحوه کار پروتکل STP

پروتکل (STP (IEEE 802.1D دقیقا چه کار می کند؟

پروتکلSTP با قرار دادن هر یک از پورت های سوئیچ در وضعیت های forwarding و blocking از به وجود آمدن loop جلوگیری می‌کند. پورت هایی که در وضعیت forwarding هستند به صورت عادی فعالیت می‌کنند، frameها را ارسال و دریافت می‌کنند. اما پورت هایی که در وضعیت blocking قرار دارند به جز پیام های مربوط به پروتکل STP (و برخی دیگر از پیام هایی که برای پروتکل ها استفاده می‌شوند)، هیچ frame دیگری را پردازش نمی‌کنند. در واقع این پورت ها frameهای کاربران را ارسال نمی‌کنند، مک آدرس frameهای ورودی را ذخیره نمی‌کنند و frameهای دریافتی از کاربران را نیز پردازش نمی‌کنند.
تصویر 2-2 راه حل استفاده از پروتکل STP (قرار دادن یکی از پورت های سوئیچ SW3 در وضعیت blocking) در مثال پیشین را نمایش می‌دهد:

همانطور که در مراحل زیر نشان داده شده، زمانی که باب یک broadcast را ارسال می‌کند، دیگر loop به وجود نمی‌آید:

• مرحله اول: باب frame را به سوئیچ SW3 ارسال می‌کند.
• مرحله دوم: سوئیچ SW3 این frame را فقط به سوئیچ SW1 ارسال می‌کند، دیگر به سوئیچ SW2 ارسال نمی‌کند؛ چون پورت Gi0/2 در وضعیت blocking قرار دارد.
• مرحله سوم: سوئیچ SW1 این frame را روی پورت های Fa0/11 و Gi0/1 ارسال می‌کند.
• مرحله چهارم: سوئیچ SW2 این frame را روی پورت های Fa0/12 و Gi0/1 ارسال می‌کند.
• مرحله پنجم: سوئیچ SW3 به صورت فیزیکی یک frame را دریافت می‌کند، اما frame دریافتی از SW2 به دلیل اینکه پورت Gi0/2 در سوئیچ SW3 در وضعیت blocking قرار دارد، نادیده گرفته می‌شود.

 

با استفاده از توپولوژی STP در تصویر 2-2، سوئیچ ها از لینک موجود بین SW2 و SW3 برای انتقال ترافیک استفاده نمی‌کنند. با این حال، اگر لینک بین SW3 و SW1 دچار مشکل شود، پروتکل STP وضعیت پورت Gi0/2 را از blocking به forwarding تغییر می‌دهد و سوئیچ ها می‌توانند از آن لینک redundant استفاده کنند. در این موقعیت ها پروتکل STP با انجام فرایند هایی متوجه تغییرات در توپولوژی شبکه می‌شود و تشخیص می‌دهد که پورت ها نیاز به تغییر در وضعیتشان دارند و وضعیت آن ها را تغییر می‌دهد.

سوالاتی که احتمالا ذهن شما را نیز مشغول کرده: پروتکل STP چگونه پورت ها را برای تغییر وضعیت انتخاب می کند و چرا این کار را می کند؟ چگونه وضعیت blocking را برای بهره مندی از مزایای لینک های redundant، به وضعیت forwarding تغییر می‌دهد؟ در ادامه به این سوالات پاسخ خواهیم داد.

پروتکل STP چگونه کار می کند؟

الگوریتم STP از پورت هایی که درجابجایی frameها مشارکت می‌کنند یک درخت پوشا (spanning tree) تشکیل می‌دهد. این ساختار درختی، مسیرهایی را برای رساندن لینک های Ethernet به هم مشخص می‌کند. (مانند پیمودن یک درخت واقعی که از ریشه درخت شروع می‌شود و تا برگ ها ادامه دارد)

توجه: STP قبل از اینکه در سوئیچ های LAN استفاده شود، در Ethernet bridgeها به کار رفته بود.

STP از فرایندی که بعضا Spanning-Tree Algorithm) STA) نامیده می‌شود، استفاده می‌کند تا پورت هایی که باید در وضعیت forwarding قرار بگیرند را انتخاب کند. سپس STP پورت هایی که برای forwarding انتخاب نشدند را در وضعیت blocking قرار می‌دهد. در واقع پروتکل STP پورت هایی که در ارسال کردن اطلاعات باید فعال باشند را انتخاب می‌کند و پورت های باقی مانده را در وضعیت blocking قرار می‌دهد.
پروتکل STP برای قرار دادن پورت ها در حالت forwarding از سه مرحله استفاده می‌کند:

• پروتکل STP یک سوئیچ را به عنوان root انتخاب می‌کند و تمام پورت های فعال در آن سوئیچ را در وضعیت forwarding قرار می‌دهد.
• در هر کدام از سوئیچ های non-root (همه ی سوئیچ ها به جز root)، پورتی که کمترین هزینه را برای رسیدن به سوئیچ root دارد (root cost)، به عنوان root port) RP) انتخاب می‌کند و آن ها را در وضعیت forwarding قرار می‌دهد.
• تعداد زیادی سوئیچ می‌توانند به یک بخش از Ethernet متصل شوند، اما در شبکه های مدرن، معمولا دو سوئیچ به هر لینک (بخش) متصل می‌شوند. در بین سوئیچ هایی که به یک لینک مشترک متصل هستند، پورت سوئیچی که root cost کمتری دارد در وضعیت forwarding قرار می‌گیرد. این سوئیچ ها را designated switch می‌نامند و پورت هایی که در وضعیت forwarding قرار گرفته را (designated port (DP می‌نامند.

باقی پورت ها در وضعیت blocking قرار می‌گیرند.

خلاصه ای از علت قرار گرفتن پورت ها در وضعیت های blocking و forwarding توسط پورتکل STP:

Bridge و Hello BPDU

فرایند STA با انتخاب یک سوئیچ به عنوان root شروع می‌شود. برای اینکه روند انتخاب را بهتر متوجه شوید، شما باید با مفهوم پیام هایی که بین سوئیچ ها تبادل می‌شود و فرمت شناساگری که برای شناسایی هر سوئیچ استفاده می‌شود آشنا شوید.
(STP Bridge ID (BID یک مقدار 8 بایتی برای شناسایی هر سوئیچ می‌باشد. Bridge ID به دو بخش 2 بایتی که مشخص کننده اولویت و حق تقدم است و 6 بایتی که system ID نامیده می‌شود و همان مک آدرس هر سوئیچ است، تقسیم می‌شود. استفاده از مک آدرس این اطمینان را می‌دهد که bridge ID هر سوئیچ یکتا خواهد بود.
پیام هایی که برای تبادل اطلاعات مربوط به پروتکل STP بین سوئیچ ها استفاده می شود، BPDU یا Bridge Protocol Data Units نام دارد. رایج ترین BPDU ، که Hello BPDU نام دارد، تعدادی از اطلاعات که شامل BID سوئیچ ها نیز می‌شود را لیست و ارسال می‌کند. با استفاده از BID درج شده روی هر پیام، سوئیچ ها می‌توانند تشخیص دهند که هر پیام Hello BPDU از طرف کدام سوئیچ است.
جدول زیر اطلاعات کلیدی مربوط به Hello BPDU را نشان می‌دهد:

انتخاب سوئیچ root

سوئیچ ها با استفاده از BIDهای موجود در پیام های BPDU، سوئیچ root را انتخاب می‌کنند. سوئیچی که عدد BID آن مقدار کمتری را داشته باشد به عنوان سوئیچ root انتخاب می‌شود. با توجه به اینکه بخش اول عدد BID مقدار اولویت می‌باشد، سوئیچی که مقدار اولویت پایین تری داشته باشد به عنوان سوئیچ root انتخاب می‌شود. برای مثال اگر سوئیچ های اول و دوم به ترتیب دارای اولویت های 4096 و 8192 باشند، بدون در نظر گرفتن مک آدرس سوئیچ ها که در به وجود آمدن BID هر سوئیچ موثر است، سوئیچ اول به عنوان سوئیچ root انتخاب خواهد شد.
اگر مقدار اولویت دو سوئیچ برابر شد، سوئیچی که مک آدرس آن مقدار کمتری را داشته باشد به عنوان سوئیچ root انتخاب می‌شود. در این حالت به علت یکتا بودن مک آدرس، حتما یک سوئیچ انتخاب خواهد شد. پس اگر مقدار اولویت دو سوئیچ برابر باشد و مک آدرس آنها 0200.0000.0000 و 0911.1111.1111 باشد، سوئیچی که دارای مک آدرس 0200.0000.0000 است، به عنوان سوئیچ root انتخاب می‌شود.
مقدار اولویت مضربی از 4096 است و به صورت پیش فرض برای همه ی سوئیچ ها مقدار 32768 را دارد. از آنجایی که مک آدرس سوئیچ ها معیار مناسبی برای انتخاب سوئیچ root نمی‌باشد بهتر است به صورت دستی مقدار اولویت را تغییر دهیم تا سوئیچی که می‌خواهیم، به عنوان سوئیچ root انتخاب شود.
در فرایند انتخاب سوئیچ root، سوئیچ ها از طریق فرستادن پیام های Hello BPDU که BID خود را در این پیام ها به عنوان root BID قرار داده اند، سعی می کنند خود را به عنوان سوئیچ root به سوئیچ های مجاور خود معرفی کنند. اگر یک سوئیچ پیامی را دریافت کند که BID کمتری نسبت به BID خودش داشته باشد، آن سوئیچ دیگر خود را به عنوان سوئیچ root معرفی نمی‌کند، به جای آن شروع به ارسال BPDU دریافتی که دارای BID بهتری است می‌کند (مانند رقابت های انتخاباتی که یک نامزد به نفع نامزد هم حزبش که موقعیت بهتری دارد، از رقابت در انتخابات خارج می‌شود). در نهایت تمامی سوئیچ ها به یک نظر نهایی می‌رسند که کدام سوئیچ BID کمتری دارد و همه آن سوئیچ را به عنوان سوئیچ root انتخاب می‌کنند.
توجه : در مقایسه دو پیام Hello با هم، پیامی که BID کمتری دارد، superior Hello و پیامی که BID بیشتری دارد، inferior Hello نام دارد.

تصویر 3-2 آغاز فرایند انتخاب سوئیچ root را نشان می‌دهد، در ابتدای این فرایند SW2 همانند باقی سوئیچ ها خود را به عنوان سوئیچ root معرفی می‌کند. SW2 پس از دریافت Hello مربوط به SW1 متوجه می‌شود که SW1 شرایط بهتری را برای root بودن دارد، پس شروع به ارسال Hello دریافتی از SW1 می‌کند. در این حالت سوئیچ SW1 خود را به عنوان root معرفی می‌کند و SW2 نیز با آن موافقت می‌کند اما سوئیچ SW3 هنوز سعی می کند که خود را به عنوان سوئیچ root معرفی کند و Hello BPDUهای خود را ارسال می‌کند.

دو نامزد هنوز باقی ماندند: SW1 و SW3. از آنجایی که SW1 مقدار BID کمتری دارد، SW3 پس از دریافت BPDU مربوط به SW1، SW1 را به عنوان سوئیچ root می پذیرد و به جای BPDU خود، BPDU دریافتی از SW1 را به سوئیچ های مجاور ارسال می‌کند.

پس از اینکه فرایند انتخاب تکمیل شد، فقط سوئیچ root به تولید پیام های Hello BPDU ادامه می‌دهد. سوئیچ های دیگر این پیام ها را دریافت می‌کنند و BID فرستنده و root cost را تغییر می‌دهند و به باقی پورت ها ارسال می‌کنند. در تصویر 4-2، در قدم اول سوئیچ SW1 پیام های Hello را ارسال می‌کند، در قدم دوم سوئیچ های SW2 و SW3 به صورت مستقل تغییرات را روی پیام های دریافتی اعمال می کنند و آن ها را روی پورت های خود ارسال می‌کنند.

برای اینکه بخواهیم مقایسه BID را خلاصه کنیم، BID را به بخش های تشکیل دهنده آن تقسیم می‌کنیم، سپس به صورت زیر مقایسه می کنیم:

• اولویتی که کمترین مقدار را دارد
• اگر مقدار اولویت آن ها برابر باشد، سوئیچی که مک آدرسش کمترین مقدار را دارد

 

انتخاب Root Port برای هر سوئیچ

پس از انتخاب سوئیچ root، در مرحله ی بعدی، پروتکل STP برای سوئیچ های nonroot (همه ی سوئیچ ها به جز سوئیچ root) یک (root port (RP انتخاب می‌کند. RP هر سوئیچ، پورتی است که کمترین هزینه را برای رسیدن به سوئیچ root دارد.
احتمالا عبارت هزینه برای همه ی ما در انتخاب مسیر بهتر، روشن و مشخص باشد. اگر به دیاگرام شبکه ای که در آن سوئیچ root و هزینه ارسال اطلاعات روی هر پورت مشخص باشد توجه کنید، می‌توانید هزینه برقراری ارتباط با سوئیچ root را برای هر پورت به دست آورید. توجه کنید که سوئیچ ها برای به دست آوردن هزینه برقراری ارتباط با سوئیچ root، از دیاگرام شبکه استفاده نمی‌کنند، صرفا استفاده از آن برای درک این موضوع به ما کمک می‌کند.
تصویر 5-2 همان سوئیچ های مثال پیشین که در آن سوئیچ root و هزینه ی رسیدن به سوئیچ root را برای پورت های سوئیچ SW3 نشان می دهد.

سوئیچ SW3 برای ارسال frameها به سوئیچ root، می‌تواند از دو مسیر استفاده کند: مسیر مستقیم که از پورت Gi0/1 خارج می‌شود و به سوئیچ root می‌رسد، و مسیر غیر مستقیمی که از پورت Gi0/2 خارج می‌شود و از طریق SW2 به سوئیچ root می‌رسد. برای هر یک از پورت ها، هزینه ی رسیدن به سوئیچ root برابر است با مجموع هزینه ی خروج از پورت هایی که frame ارسالی، برای رسیدن به سوئیچ root از آن ها عبور می‌کند (در این محاسبه، هزینه ورود به پورت ها حساب نمی‌شود). همانطور که مشاهده می‌کنید، مجموع هزینه ی مسیر مستقیم که از پورت Gi0/1 سوئیچ SW3 خارج می‌شود برابر 5 است، و مسیر دیگر دارای مجموع هزینه ی 8 می‌باشد. از آنجاییکه مسیری که دارای هزینه کمتری برای رسیدن به سوئیچ root می‌باشد از پورت Gi0/1 خارج می‌شود، سوئیچ SW3 این پورت را به عنوان root port انتخاب می‌کند.
سوئیچ ها با سپری کردن فرایندی متفاوت به همین نتیجه می‌رسند. آنها هزینه خروج از پورت خود را به root cost موجود در Hello BPDU ورودی از همان پورت اضافه می‌کنند و هزینه رسیدن به سوئیچ root از طریق آن پورت را به دست می‌آورند. هزینه خروج از هر پورت در پروتکل STP یک عدد صحیح (integer) می‌باشد که به هر پورت در هر VLAN اختصاص می‌یابد، تا پروتکل STP با استفاده از این مقیاس اندازه گیری بتواند تصمیم بگیرد که کدام پورت را به توپولوژی خود اضافه کند. سوئیچ ها در این فرایند root cost سوئیچ های مجاور که از طریق Hello BPDUهای دریافتی به دست می‌آورند را بررسی می‌کنند.

تصویر 6-2 یک مثالی از چگونگی محاسبه بهترین root cost و سپس انتخاب آن به عنوان root port را نشان می‌دهد. اگر به تصویر توجه کنید، خواهید دید که سوئیچ root پیام هایی(Hello) که root cost آن ها برابر صفر می‌باشد را ارسال می‌کند. هزینه رسیدن به سوئیچ root از طریق پورت های سوئیچ root برابر با صفر است.
در ادامه به سمت چپ تصویر توجه کنید که سوئیچ سوم، root cost دریافتی از طریق SW1 را (که برابر صفر می‌باشد) با هزینه ی خروج از پورت Gi0/1 که آن Hello را دریافت کرده (مقدار آن برابر 5 می‌باشد) جمع می‌کند و هزینه ارسال اطلاعات از طریق این پورت را به دست می‌آورد.
در سمت راست تصویر، سوئیچ SW2 متوجه شده که root cost آن برابر با 4 است. پس زمانی که SW2 یک Hello برای SW3 ارسال می‌کند، مقدار root cost آن را 4 قرار می‌دهد. در سمت دیگر هزینه ارسال اطلاعات از طریق پورت Gi0/2 در سوئیچ SW3 برابر 4 می‌باشد، از اینرو سوئیچ SW3 این دو مقدار را با هم جمع می‌کند و به این نتیجه می‌رسد که هزینه ی رسیدن به سوئیچ root از طریق پورت Gi0/2 برابر 8 است.
با توجه به نتایج به دست آمده از آنجایی که پورت Gi0/1 نسبت به پورت Gi0/2 هزینه ی کمتری برای رسیدن به سوئیچ root دارد، پس سوئیچ SW3 پورت Gi0/1 را به عنوان RP انتخاب می‌کند. سوئیچ SW2 نیز با گذراندن همین فرایند پورت Gi0/2 را به عنوان RP انتخاب می‌کند. سپس تمام سوئیچ ها، root port های خود را در وضعیت forwarding قرار می‌دهند.

 

انتخاب Designated Port در هر LAN segment (پورت کاندید)

پس از انتخاب سوئیچ root، در سوئیچ های nonroot، تمام root portها مشخص شدند و در وضعیت forwarding قرار گرفتند. مرحله نهایی پروتکل STP برای تکمیل توپولوژی STP، انتخاب designated port در هر LAN segment است. در هر بخش(segment) از LAN، پورت سوئیچی که کمترین root cost را دارد و به آن بخش از LAN متصل است Designated port )DP) نامیده می شود. زمانی که یک سوئیچ nonroot می خواهد که یک Hello را ارسال کند، هزینه رسیدن به سوئیچ root را در root cost آن پیام قرار می دهد و ارسال می کند. دراینصورت پورت سوئیچی که کمترین هزینه را برای رسیدن به root دارد، در میان تمام سوئیچ هایی که به آن بخش متصل هستند، به عنوان DP در آن بخش شناخته می شود. در این مرحله اگر هزینه سوئیچ ها برای رسیدن به سوئیچ root برابر بود، پورت سوئیچی که BID کمتری دارد را به عنوان DP انتخاب می کنیم.
در تصویر 4-2 پورت Gi0/1 در سوئیچ SW2 که به سوئیچ SW3 متصل است، به عنوان DP انتخاب می شود.
پس از انتخاب DPها، تمام آن ها را در وضعیت forwarding قرار می دهیم.
مثالی که در تصاویر 3-2 تا 6-2 به نمایش گذاشته شد، تنها پورتی که نیازی ندارد تا در وضعیت forwarding قرار بگیرد، پورت Gi0/2 در سوئیچ SW3 است. درنهایت فرایند پروتکل STP کامل شد و جدول زیر وضعیت نهایی هر پورت و علت قرار گرفتن در آن وضعیت را نشان می دهد:

 

 

به صورت خلاصه اگر بخواهیم توضیح دهیم، در فرایند اجرای پروتکل STP:
• در قدم اول سوئیچ root انتخاب می شود که ابتدا تمام سوئیچ ها سعی می کنند خود را به عنوان root معرفی کنند، سپس سوئیچی که رقم BID آن مقدار کمتری را داشته باشد به عنوان سوئیچ root انتخاب خواهد شد.
• در قدم دوم برای هر سوئیچ، پورتی که کمترین هزینه برای رسیدن به سوئیچ root دارد را به عنوان root port انتخاب می شود. سپس همه ی root portها را در وضعیت forwarding قرار می گیرند.
• در قدم سوم پورت های کاندید انتخاب می شوند و در وضعیت forwarding قرار می گیرند. در نهایت پورت هایی که وضعیتشان مشخص نشده در وضعیت blocking قرار می گیرند.

13 پاسخ
  1. farhad می گوید:

    مطالب واقعا مفید و با زبان ساده بیان شده بود که از یادگیری بالایی برخوردار بود.
    من که استفاده بردم. واقعا متشکر و ممنون

    پاسخ
  2. wourya می گوید:

    ممنون بابت پست.
    این فقط ترجمه کتاب Volume 1 کتاب 301-200 هستش. کاش توضیحات تکمیلی رو هم اضافه میکردید.

    پاسخ
    • عباس اشرفی می گوید:

      سپاس بابت زمانی گه برای مطالعه پست گذاشتید، اگر سوالی در مورد پست هست بفرمایید، در قالب پست تکمیلی منتشر خواهیم کرد.

      پاسخ
  3. علی می گوید:

    فوق العاده عالی، جامع و کامل بود. بسیار از مقاله خوبتون استفاده کردم و ممنون.

    پاسخ

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

می خواهید در گفت و گو شرکت کنید؟
خیالتان راحت باشد :)

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

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