پروتکل STP چیست؟ جامعترین مقاله Spanning Tree سیسکو
در دنیای شبکههای کامپیوتری، ایجاد افزونگی (Redundancy) برای افزایش پایداری و دسترسپذیری یک ضرورت است؛ اما همین افزونگی میتواند به کابوسی به نام Loop یا «چرخش بستهها» منجر شود. اینجاست که پروتکل STP یا همان Spanning Tree Protocol بهعنوان ناجی شبکه وارد میدان میشود. STP مانند یک ناظر هوشمند، مسیرهای اضافی را شناسایی و بهطور موقت مسدود میکند تا ساختار شبکه بهشکل یک درخت بدون حلقه درآید. نتیجه؟ شبکهای پایدار، قابل پیشبینی و مقاوم در برابر اختلالات احتمالی.
در این مقاله با ماهیت پروتکل STP، نحوه عملکرد آن، و دلایلی که آن را به یکی از پایههای مهم طراحی شبکههای محلی (LAN) تبدیل کرده است، آشنا میشویم.
فهرست مطالب
پروتکل STP چیست؟
پروتکل STP یا Spanning Tree Protocol یکی از مهمترین مکانیزمها در طراحی شبکههای محلی است که با هدف جلوگیری از ایجاد حلقههای شبکهای (Loop) طراحی شده است. حلقه در شبکه میتواند باعث ایجاد طوفان Broadcast، مصرف بیش از حد منابع و در نهایت اختلال کامل در عملکرد شبکه شود. STP با تشخیص مسیرهای اضافی و غیرفعال کردن مسیرهای غیرضروری، ساختار شبکه را به شکل یک درخت بدون حلقه Spanning Tree درمیآورد.
نقش اصلی پروتکل STP، جلوگیری از بروز loopهای لایه دوم در شبکه است. در یک شبکه سوئیجشده، معمولا چند مسیر فیزیکی بین سوئیچها برای افزایش پایداری و افزونگی (Redundancy) وجود دارد. اما این افزونگی در نبود کنترل مناسب میتواند باعث چرخش بیپایان بستهها شود. STP با استفاده از الگوریتمی خاص، یکی از سوئیجها را بهعنوان Root Bridge انتخاب کرده و از آن بهعنوان نقطه مرجع برای تعیین مسیر بهینه استفاده میکند. مسیرهای اضافی که ممکن است باعث حلقه شوند، توسط STP بهطور موقت بلوکه میشوند ولی در صورت قطعی در مسیر اصلی، دوباره فعال میگردند.

در نتیجه استفاده از پروتکل STP، از ایجاد چرخههای بیمورد بین دستگاهها جلوگیری میشود. بهعبارتی دیگر، فقط یک مسیر لایه دوم بین یک دستگاه و دستگاه دیگر در شبکه باید موجود باشد و اگر مسیر ثانویه ای وجود داشت. STP آن را خواهد بست. در صورتی که هرگونه تغییری در شبکه عمال گردد، مثلا فعال شدن یک پورت و یا از کار افتادن آن، اتصال دستگاهی جدید به شبکه و یا خروج دستگاهی دیگر، پروتکل STP بار دیگر الگوریتم محاسبه را اجرا و در مورد وضعیت جدید تصمیمگیری دیگری اتخاذ میکند.
فرض کنید یک اداره کوچک دارید که سه سوئیچ در شبکه آن نصب شده است: سوئیچ A، سوئیچ B و سوئیچ C.
برای افزایش اطمینان این سه سوئیچ بهصورت مثلثی به هم متصل شدهاند؛ یعنی A به B، سوئیچ B به C و C به A وصل است. این طراحی از نظر افزونگی (Redundancy) عالی است، چون اگر یکی از لینکها قطع شود، دو لینک دیگر همچنان مسیر ارتباطی را برقرار نگه میدارند.
اما این طرح یک مشکل جدی دارد: حلقه شبکهای (Loop). در چنین ساختاری، اگر پروتکل STP وجود نداشته باشد، یک بسته Broadcast ممکن است مدام بین سوئیچها بچرخد و هیچوقت متوقف نشود. این پدیده باعث مصرف شدید منابع شبکه، کندی یا حتی قطعی کامل آن خواهد شد.
اینجاست که پروتکل STP وارد عمل میشود. STP ابتدا یکی از سوئیچها (مثلاً سوئیچ A) را بهعنوان Root Bridge انتخاب میکند. سپس مسیرهای بهینه از هر سوئیچ به Root Bridge را مشخص کرده و لینک اضافی که میتواند باعث Loop شود (مثلاً بین B و C) را غیرفعال (Blocked) میکند.
اما اگر یک روز لینک بین A و B قطع شود، STP سریعاً وضعیت شبکه را دوباره ارزیابی میکند و لینک مسدودشده بین B و C را فعال میکند تا ارتباط دوباره برقرار شود — بدون نیاز به دخالت انسانی.
دو نسخه مهم برای این پروتکل وجود دارد:
- DEC
- IEEE 802.1d
استاندارد DEC بهوسیله دو شرکت HP و COMPAQ ایجاد شد که سازمان بینالمللی استاندارد IEEE نسخه موجود را اصلاح و استاندارد IEE 802.1d را بنیان نهاد. این دو نسخه پروتکل STP با یکدیگر سازگار نبوده و اگر برخی از دستگاههای موجود در یک شبکه از DEC و بقیه از 802.1d پشتیبانی کنند، قطعا با مشکلات مربوط به loop در شبکه برخورد میکنیم. دستگاههای سیسکو بهصورت پیشفرض از 802.1d استفاده میکنند.
BPDU چیست؟
BPDU در واقع پیامی ویژه است که سوئیچها برای برقراری هماهنگی در ساختار STP و جلوگیری از ایجاد Loop به یکدیگر ارسال میکنند.
برای اینکه پروتکل STP قادر به جلوگیری از loopهای لایه دوم باشد، سوئیچهای موجود باید در مورد کل توپولوژی شبکه اطلاعات لازم را داشته باشند. هر سوئیچ در شبکه، در بازههای زمانی منظم (معمولا هر 2 ثانیه)، بستههایی حاوی اطلاعاتی درباره وضعیت خود و مسیرهای ارتباطیاش را از طریق BPDU ارسال میکند. این بستهها نقش گزارش وضعیت را دارند که سایر سوئیچها بر اساس آنها تصمیم میگیرند کدام مسیر فعال بماند، کدام مسیر غیرفعال شود، و کدام سوئیچ باید نقش Root Bridge را ایفا کند.
BPDU یک پیام Multicast بوده و فقط لایه دوم را تحت تاثیر قرار میدهد. محتوای BPDU شامل اطلاعاتی مانند:
- Bridge ID (شناسه سوئیچ فرستنده)
- Root Path Cost (هزینه رسیدن به Root)
- Port ID (شناسه پورت)
- Timerهای STP (Hello Time, Max Age, Forward Delay)
بدون BPDU، پروتکل STP عملاً قادر به تصمیمگیری و مدیریت مسیرها نخواهد بود. به همین دلیل، در محیطهای واقعی، مهندسان شبکه معمولاً ارسال و دریافت BPDU را دقیقاً بررسی و مانیتور میکنند تا از عملکرد صحیح STP اطمینان حاصل شود. این بسته هر ۲ ثانیه یکبار به وسیله Interfaceهای سوئیچ ایجاد و فرستاده میشود و با این کار باعث بالا رفتن میزان Convergence شبکه خواهد شد.
مفهوم Convergence در STP چیست؟
Convergence در STP به فرآیند همگرایی یا رسیدن شبکه به یک وضعیت پایدار بدون Loop گفته میشود. زمانیکه تغییری در توپولوژی شبکه رخ میدهد — مثلاً یک لینک قطع یا اضافه شود — STP باید دوباره مسیرها را محاسبه کند و تصمیم بگیرد کدام پورتها فعال یا مسدود باشند. این بازمحاسبه تا زمانی ادامه دارد که همه سوئیچها درباره مسیر به Root Bridge و وضعیت پورتها به توافق برسند. در این حالت، میگوییم که شبکه به Convergence رسیده است؛ یعنی همه مسیرها مشخصاند، حلقهای وجود ندارد و تبادل ترافیک بهدرستی انجام میشود.
تنظیم شدن این زمان بر روی ۲ ثانیه باعث میشود که هرگونه تعییری در شبکه بین دستگاههای مختلق سریعا گزارش شده و دستگاهها بتوانند هرچه سریعتر خود را با وضعیت جدید تطبیق دهند.
Root Switch یا Root Bridge چیست؟
خود کلمه STP بیانکننده مکانیسم عمل آن نیز است. Spanning Tree Protocol شبیه به یک درخت وارونه بوده که در بالاترین نقطه آن، ریشه و یا Root قرار دارد. دستگاه Root نیز دارای شاخههایی است که از طریق آنها به دستگاههای دیگر اتصال یافته است.
در پروتکل STP، اولین و مهمترین تصمیمی که گرفته میشود، انتخاب یک سوئیچ بهعنوان “ریشه” یا Root Bridge است. این سوئیچ در مرکز ساختار درختی قرار میگیرد و همه مسیرهای شبکه نسبت به آن سنجیده میشوند. به بیان سادهتر، Root Switch مانند مرکز فرماندهی شبکه عمل میکند که سایر سوئیچها مسیر خود را تا آن تنظیم میکنند.
انتخاب Root Switch به وسیله BPDUها انجام خواهد گرفت. همانطور که قبلا نیز اشاره شد، سوئیچها در هنگام ایجاد BPDU، شناسه یا ID مربوط به خود را نیز در داخل پیام قرار میدهند. این شناسه همان Bridge ID است و انتخاب Root Switch بر اساس کمترین Bridge ID انجام میشود؛ Bridge ID ترکیبی از اولویت (Priority) و آدرس MAC سوئیچ است. سوئیچی که کمترین مقدار Bridge ID را دارد، بهطور خودکار بهعنوان Root انتخاب میشود.
- Priority: مربوط به دستگاهها؛ در سوئیچهای سیسکو همیشه برابر با 22768 بوده و به طول ۲ بایت است.
- آدرس MAC: برابر با ۶ بایت خواهد بود.
از آنجایی که طبق استاندارد 802.1d همه دستگاههای سیسکو دارای شناسه برابر هستند، بنابراین سوئیچی که کوچکترین آدرس MAC را داشته باشد به عنوان دستگاه Root انتخاب خواهد شد.
نکته مهم: اگر یک سوئیچ تصادفی بهعنوان Root انتخاب شود (مثلاً بهخاطر اولویت پیشفرض)، ممکن است ساختار بهینهای برای شبکه ایجاد نشود. به همین دلیل، مهندسان شبکه اغلب بهصورت دستی اولویت Root را در سوئیچ مورد نظر تنظیم میکنند تا کنترل کاملتری روی توپولوژی داشته باشند.
پس از انتخاب Root Switch:
- هر سوئیچ مسیر بهینه خود به Root را پیدا میکند.
- مسیرهایی که ممکن است باعث Loop شوند، غیرفعال میگردند.
- ساختار شبکه تبدیل به یک درخت بدون حلقه میشود.
در شکل زیر مثالی از یک توپولوژی فیزیکی فرضی نشان داده شده است. وقتی پروتکل STP اجرا شود، از دیدگاه منطقی یا Logical، شبکه بهصورت شکل سمت راست درخواهد آمد که SW1 در بالاترین نقطه و به عنوان Root Switch قرار خواهد گرفت و شاخههای دیگر آن را به دستگاههای دیگر متصل میکنند.

در صورت بروز هرگونه تغییر در شبکه، تمامی سوئیچها، بهغیر از سوئیچ Root، منتظر میمانند تا پیام BPDU را از سوئیچ Root دریافت کنند. حداکثر زمان این انتظار ۲۰ ثانیه است که به آن Maximum age time گفته میشود. اگر زمان انتظار از این حد فراتر رود، سوئیچهای شبکه، فرض بر خرابی سوئیچ Root میگیرند و از ابتدا اقدام به انتخاب دستگاه Root میکنند.
STP با وجود VLANها چگونه کار میکند؟ PVST چیست؟
در سوئیچهایی که از VLAN استفاده میکنند، به ازای هر VLAN یک پروتکل STP جداگانه وجود خواهد داشت که مستقل است. یک سوئیج ممکن است به عنوان دستگاه Root برای همه VLANها انتخاب شود و یا اینکه هر VLAN برای خود دستگاه Root جداگانهای داشته باشد. به این نوع از STP اصطلاحا PVST گفته میشود
Root Port چیست؟
در ساختار STP، پس از انتخاب Root Bridge، هر سوئیچ باید بهینهترین مسیر ممکن به Root را پیدا کند. پورتی که از طریق آن این مسیر برقرار میشود، Root Port نام دارد. بهعبارت ساده، Root Port، پورتی است که کمترین هزینه (Path Cost) را برای رسیدن به Root Bridge دارد. این پورت همیشه در حالت فعال (Forwarding) قرار دارد و تنها یک Root Port در هر سوئیچ غیر از Root Bridge وجود دارد.
ملاک انتخاب Root Port:
- کمترین مجموع هزینه از سوئیچ فعلی تا Root Bridge
- اگر دو پورت مسیر مساوی داشته باشند، مقایسه Bridge ID و Port ID هم لحاظ میشود
نکته: سوئیچ Root هیچ Root Portی ندارد، زیرا خودش مبدا مسیرهاست.
این مکانیزم باعث میشود فقط یک مسیر فعال برای رسیدن به Root وجود داشته باشد و مسیرهای اضافی که ممکن است باعث ایجاد حلقه شوند، در وضعیت غیرفعال (Blocking) قرار بگیرند.
Port Cost چیست؟
به هر یک از پورتها عددی مخصوص به خود تعلق میگیرد که بهنام Port Cost نامیده میشود. سوئیچها همیشه پورتی را در اولویت انتخاب به عنوان Root قرار میدهند که Port Cost آنها نسبت به بقیه کوچکتر باشد. Port Cost با مقدار پهنای باند هر پورت رابطه معکوس دارد. بنابراین هرچقدر که یک پورت بیشتر مورد استفاده قرار بگیرد، احتمال انتخاب آن کمتر خواهد بود. همچنین هر پورت یک عدد مخصوص به خود را نیز دارد که به عنوان Port Priority نامیده میشود و بهطور پپیشفرض برابر با ۳۲ است.

Path Cost چیست؟
Path Cost نیز عددی است که توسط سوئیچ Root محاسبه میشود. در واقع هر مسیر یحتملی که برای رسیدن به دستگاه Root وجود داشته باشد، بهوسیله میزان این عدد اولویتبندی شده و در شرایط عادی فقط یک مسیر برای اتصال هر دستگاه به سوئیچ Root وجود خواهد داشت. این مقدار برابر است با مجموع Port Cost تمام پورتهایی که در مسیر بین سوئیچ مقصد و Root قرار دارند.
وقتی دستگاه Root، بسته BPDU را ارسال میکند، مقدار پیشفرض Path Cost، برابر با «۰» است. هر دستگاهی که در بین راه، بسته BPDU را دریافت کند، عدد Path Cost را به اندازه Port Cost خودش افزایش میدهد. مثلا اگر پورت آن Fast Ethernet باشد، میزان Path Cost را به میزان ۱۹ عدد افزایش میدهد. سپس بسته را روانه سوئیچ مقصد میکند.
مراحل انتخاب Root Port
- اگر چند مسیر برای رسیدن به سوئیچ Root وجود داشته باشد، مسیری که Path Cost کمتری دارد انتخاب میشود.
- اگر Path Cost دو مسیر یکسان بود، ترافیک از سوئیچی که دارای کمترین مقدار Switch ID است، ارسال میشود.
- اگر باز هم Switch ID هردو یکسان بود، آن پورتی که دارای کمترین مقدار Priority باشد، انتخاب میشود.
- در صورتی که هیچکدام از مراحل بالا، سرانحام به تنها یک مسیر ختم نشود، پورتی که از لحاظ ترتیب قرار گرفتن نسبت به بقیه پورتها کوچکتر باشد، استفاده میشود. مثلا پورت FastEthernet0/1
Designated Port چیست؟
همانطور که در بخش قبل مشاهده کردید، تمامی سوئیچها دارای یک پورت به اسم Root Port بودند که برای دسترسی به سوئیج Root از آن استفاده میکردند. در کنار این مسئله، همه Segmentها نیز دارای پورتی بهنام Designated Port هستند، که آن Segment را به بقیه شبکه وصل میکند. مثلا فرض کنید در یک Segment دو سوئیچ وجود داشته باشد؛ در این صورت فقط یکی از آن دو سوئیچ، ترافیک مربوط به آن Segment را از خود عبور خواهد داد.
یک Segment شبکه (یا سگمنت اترنت) معمولاً به مجموعهای از دستگاهها یا سوئیچهایی اطلاق میشود که در یک Broadcast Domain مشترک قرار دارند. بهعبارت دیگر، اگر یکی از دستگاههای موجود در این بخش پیامی از نوع Broadcast ارسال کند، تمامی دستگاههای دیگر در همان سگمنت، بدون نیاز به روتر، آن پیام را مستقیماً دریافت خواهند کرد.
پس کار سوم پروتکل STP این است که در یکی از سوئیچهای درون یک Segment، یک پورت را بهعنوان Designated Port انتخاب کند. Designated Port پورتی است که کمترین هزینه مسیر (Path Cost) به Root Bridge (or Root Switch) را در آن سگمنت دارد و برای انتقال دادهها به آن بخش از شبکه در حالت فعال (Forwarding) قرار میگیرد.
ویژگیهای کلیدی Designated Port:
- در هر سگمنت فقط یک Designated Port وجود دارد.
- میتواند روی خود Root Bridge یا روی سوئیچهای دیگر قرار گرفته باشد.
- سایر پورتهای متصل به همان سگمنت که Designated نیستند، در وضعیت Blocking قرار میگیرند تا از بروز Loop جلوگیری شود.
مراحل انتخاب Designated Port
- سوئیچی که مسیر بین آن و دستگاه Root، دارای کمترین میزان Path Cost باشد به عنوان Designated Switch عمل خواهد کرد.
- اگر بیش از یک مسیر با کمترین میزان Path Cost برای اتصال یک Segment به Root وجود داشته باشد، سوئیچی که ID کمتری دارد، انتخاب میشود.
- اگر یک سوئیچ در شبکه وجود داشته باشد که دو اتصال همزمان به LAN داشته باشد، پورتی که دارای کمترین مقدار Priority باشد، استفاده خواهد شد.
- اگر مرحله سوم نیز با موفقیت همراه نبود، پورتی که از لحاظ ترتیب قرارگیری کوچکتر از بقیه باشد مورد استفاده قرار میگیرد.
به دستگاهی که دارای پورت Designated باشد، اصطلاحا Designated Switch گفتیم. ممکن است این اصطلاح در همیشه صحیح نباشد. زیرا احتمال دارد یک سوئیچ به دو Segment جداگانه متصل شده باشد که برای یکی از این Segmentها در حکم Designated Switch بوده اما برای دیگری نباشد.
نکته: همه پورتهایی که در نقش Root Port انجام وظیفه میکنند. همیشه بهعنوان Designated Port نیز انتخاب میشوند. زیرا Cost مربوط به هر Segment شبکه برای رسیدن به دستگاه Root معدل صفر که کمترین میزان ممکن است، میباشد. بنابراین همه Segmentها بهطور مستقیم به سوئیچ Root متصل هستند.
فرق Root Port و Designated Port
Root Port: پورتی که سوئیچ Root در همه سوئیچهای غیر از خودش انتخاب میکند و نشاندهنده کوتاهترین مسیر به Root است.
Designated Port: این پورت به عنوان بهترین مسیر برای ارسال ترافیک به سوی دیگر سوییچها انتخاب میشود. پورت مقابل Root Port همان Designated Port است.
در بخش زیر تفاوت Root Switch با Designated Port را با جزئیات بررسی میکنیم:
Root Port
- جهت: به سمت سوئیچ Root (مسیر بالارونده یا Uplink) قرار دارد.
- وظیفه: فقط به پیامهای BPDU که از سوی سوئیچ Root ارسال میشوند گوش میدهد.
- انتخاب: در هر سوئیچ غیر ریشهای، فقط یک پورت بهعنوان Root Port انتخاب میشود؛ این پورت در مسیری با کمترین هزینه (Path Cost) به Root Bridge قرار دارد.
- وضعیت: همیشه در حالت Forwarding (فعال) قرار دارد.
- مثال: اگر یک سوئیچ چند مسیر مختلف به Root Bridge داشته باشد، پورتی که در مسیر با کمترین هزینه قرار دارد بهعنوان Root Port انتخاب میشود.
Designated Port
- جهت: به سمت سایر دستگاهها در شبکه یا مسیر پاییندست (Downlink) قرار دارد.
- وظیفه: ترافیک را در سگمنت شبکه هدایت میکند و اجازه عبور دادهها را میدهد.
- انتخاب: در هر سگمنت شبکه (دامنه برخورد یا Collision Domain)، فقط یک پورت بهعنوان Designated Port انتخاب میشود.
- وضعیت: همیشه در حالت Forwarding (فعال) قرار دارد.
- مثال: اگر در یک سگمنت، یک طرف آن Root Port باشد، سوی دیگر که به آن متصل است، بهعنوان Designated Port انتخاب خواهد شد.
نکته: تمام پورتهای موجود روی سوئیچ Root بهطور پیشفرض بهعنوان Designated Port در نظر گرفته میشوند، چرا که آنها وظیفه ارسال ترافیک به سایر بخشهای شبکه را بر عهده دارند.
حالات مختلف پورتها در پروتکل STP
پروتکل STP، پورتهای سوئیچ را در یکی از چند حالت مشخص قرار میدهد. این حالتها رفتار هر پورت را در فرآیند انتقال داده تعیین میکنند. این پورتها میتوانند در یکی از حالتهای زیر قرار داشته باشند:
- Blocked
- Listening
- Learning
- Forwarding
- Disabled
حالت Blocked
در پروتکل STP، یکی از مهمترین مکانیسمها برای جلوگیری از ایجاد حلقه در شبکه، قرار دادن برخی پورتها در حالت Blocked است. پورتهایی که در این وضعیت قرار دارند، هیچگونه ترافیک دادهای را ارسال یا دریافت نمیکنند (بهجز BPDUها)، و تنها نقش ناظر را ایفا میکنند.
STP با تحلیل مسیرها و مقایسه هزینهها (Path Cost) تصمیم میگیرد که کدام مسیر باید فعال باقی بماند و کدام مسیر به حالت مسدود منتقل شود. در نتیجه، اگر در یک سگمنت دو یا چند مسیر به سوئیچ Root وجود داشته باشد، فقط یکی از آنها فعال باقی میماند و سایر مسیرها برای جلوگیری از Loop به حالت Blocked میروند.
نکته مهم این است که پورت در حالت Blocked بهمعنای خراب یا قطع بودن نیست، بلکه کاملاً آگاهانه و کنترلی توسط STP به این وضعیت منتقل شده تا از ترافیک غیرضروری و حلقههای مخرب جلوگیری شود.
شرایطی که پورت در حالت Blocked قرار میگیرد
- در حین انتخاب سوئیچ Root
- وقتی سوئیچ یک پیام BPDU مبتنی بر وجود مسیر بهتر برای دستیابی به سوئیج Root دریافت میکند.
- پورتی که نه Root Port باشد و نه Designated Port
حداکثر زمانی که یک پورت میتواند در حالت Blocked باشد، ۲۰ ثانیه است.
حالت Listening
پس از آنکه یک پورت وارد فرآیند فعالسازی در Spanning Tree Protocol (STP) میشود، یکی از اولین حالتهایی که تجربه میکند، Listening است. در این وضعیت، پورت هنوز اجازه عبور ترافیک داده را ندارد، اما شروع به گوش دادن و پردازش پیامهای BPDU (Bridge Protocol Data Unit) میکند. هدف از این مرحله، شرکت در محاسبات توپولوژی STP برای تشخیص مسیرهای بهینه و جلوگیری از ایجاد حلقه (Loop) در شبکه است.
- مدت زمان: بهطور پیشفرض، حالت Listening حدود ۱۵ ثانیه طول میکشد (قابل تنظیم). به این زمان Forward Delay Timer میگویند.
- عملکرد: در این حالت، پورت BPDUها را دریافت و ارسال میکند، اما هیچ دادهای را فوروارد نمیکند.
- هدف: بررسی اینکه آیا پورت میتواند بهعنوان بخشی از مسیر فعال در توپولوژی نهایی STP ایفای نقش کند یا خیر.
نکته: پورتهایی که در نهایت در توپولوژی STP باقی نمیمانند، پس از این مرحله ممکن است به حالت Blocked تغییر وضعیت دهند تا از بروز حلقه جلوگیری شود.
حالت Learning
پس از گذر از مرحله Listening، پورت وارد حالت Learning میشود. در این مرحله، پورت هنوز اجازه ارسال فریمهای دیتا را ندارد، اما شروع به یادگیری آدرسهای MAC از فریمهایی میکند که از کاربران دریافت مینماید و بهوسیله بررسی آدرسهای MAC پیامهای رسیده جدول CAM خود را کاملتر میکند.
- مدت زمان: بهطور پیشفرض، حالت Learning نیز حدود ۱۵ ثانیه طول میکشد.
- عملکرد: پورت شروع به یادگیری آدرسهای MAC از روی فریمهای ورودی میکند، اما هنوز هیچ ترافیکی را فوروارد نمیکند.
- هدف: بهینهسازی مسیرهای فورواردینگ بدون ایجاد Loop، با تکمیل جدول آدرسدهی پیش از فعالسازی کامل پورت.
نکته: حالت Learning یک مرحله میانی پیش از ورود پورت به حالت Forwarding است؛ یعنی پس از تکمیل یادگیری، اگر توپولوژی تغییری نکند، پورت به حالت فعال تبدیل خواهد شد.
حالت Forwarding
سرانجام بعد از سپری شدن مراحل بالا، پورت وارد این مرحله خواهد شد که هم کار دریافت و پردازش پیامهای BPDU، هم پردازش ترافیک کاربران و هم ارسال آنها به مقاصد را انجام میدهد. این مرحله زمانی آغاز میشود که STP اطمینان حاصل کرده باشد که این پورت منجر به ایجاد Loop نخواهد شد و میتواند بخشی از مسیر اصلی شبکه باشد.
- عملکرد: فوروارد کردن ترافیک داده و شرکت در فرآیند تبادل BPDU.
- وضعیت MAC Table: آدرسهای MAC را همچنان یاد میگیرد و بهروزرسانی میکند.
- پایداری: این حالت تا زمانی که تغییری در توپولوژی ایجاد نشود یا پورت غیرفعال نگردد، پایدار باقی میماند.
نکته: فقط پورتهایی که بهعنوان Root Port یا Designated Port انتخاب شدهاند، میتوانند وارد حالت Forwarding شوند.
حالت Disabled
Disabled حالتی است که در آن پورت بهطور کامل غیرفعال بوده و هیچ نقشی در فرآیند Spanning Tree یا انتقال ترافیک شبکه ندارد. این وضعیت معمولاً به دلایل مدیریتی یا مشکلات سختافزاری/نرمافزاری رخ میدهد و ممکن است توسط مدیر شبکه یا خود سوئیچ اعمال شده باشد.
- ترافیک: هیچ فریم دادهای از این پورت ارسال یا دریافت نمیشود.
- BPDU: پیامهای BPDU نیز در این وضعیت رد و بدل نمیگردند.
- شرکت در STP: پورت Disabled در الگوریتم STP شرکت نمیکند.
نکته: این حالت میتواند ناشی از خاموش بودن لینک، غیر فعال بودن پورت توسط مدیر شبکه (shutdown)، یا وجود خطا در لینک باشد.
سناریو: جلوگیری از ایجاد Loop در یک شبکه سهسوییچه با پروتکل STP
توپولوژی
ما سه عدد سوئیچ داریم:
Switch1 (S1) — به عنوان Root Bridge انتخاب خواهد شد.
Switch2 (S2) و Switch3 (S3) — بهصورت متصل به S1 و همچنین بین خودشان.

هدف
- جلوگیری از Loop در توپولوژی فوق.
- انتخاب خودکار پورتهای Root و Designated.
- آشنایی با دستورات پایه پروتکل STP در سوئیچهای سیسکو.
مراحل پیادهسازی
۱. انتخاب Root Bridge به صورت دستی
بهصورت پیشفرض، STP Root Bridge بر اساس کمترین Bridge ID (اولویت + MAC آدرس) انتخاب میشود. اما ما میخواهیم SW1 را بهعنوان Root Bridge تعیین کنیم.
# روی SW1
configure terminal
spanning-tree vlan 1 priority 4096
end
نکته: عدد اولویت پیشفرض 32768 است. هرچه کمتر، احتمال Root شدن بیشتر. 4096 یعنی ما داریم صراحتاً SW1 را به Root تبدیل میکنیم.
۲. تنظیم اولویت بالاتر برای سایر سوئیچها (اختیاری، برای اطمینان بیشتر)
# روی SW2 و SW3
configure terminal
spanning-tree vlan 1 priority 32768
end
۳. بررسی وضعیت STP
حالا میتوانید با این دستور ببینید کدام سوئیچ Root شده و پورتها در چه حالتی هستند:
show spanning-tree
انتظار داریم
SW1 → تمام پورتها Designated Forwarding
SW2 و SW3:
- یکی از پورتها به سمت SW1 → Root Port
- یکی از لینکهای بین SW2 و SW3 → Blocked
نکات تکمیلی
میتوانید از دستور زیر برای مشاهده وضعیت خاص یک اینترفیس استفاده کنید:
show spanning-tree interface FastEthernet0/1 detail
برای تست Loop یا قطع شدن یک لینک و مشاهده Convergence، یکی از کابلها را disconnect کنید و ببینید چطور پورتهای Blocked فعال میشوند.
پروتکل RSTP چیست؟
پروتکل RSTP، نسخه بهبود یافته و سریعتر STP است که در استاندارد IEEE 802.1w تعریف شده است. این پروتکل منطق کلی STP را حفظ میکند و در عین حال زمان Convergence را بهشدت کاهش میدهد. اگر مایل هستید درباره این پروتکل بیشتر بدانید، میتوانید به مقاله جامع ما پروتکل RSTP چیست؟ – Rapid Spanning Tree Protocol مراجعه کنید.

پروتکل RSTP چیست؟ – Rapid Spanning Tree Protocol
هدف اصلی پروتکل RSTP، همانند STP، جلوگیری از ایجاد حلقه در توپولوژی شبکه است؛ اما با سازوکاری سریعتر، هوشمندتر و با استفاده از روشهای نوین در تشخیص مسیر.
نتیجهگیری
پروتکل STP یکی از اجزای کلیدی در معماری شبکههای مبتنی بر سوئیچ محسوب میشود که وظیفهی اصلی آن جلوگیری از ایجاد حلقههای لایه دوم است؛ حلقههایی که میتوانند باعث اختلالهای جدی مانند Broadcast Storm یا ناپایداری در جداول MAC شوند.
در این مقاله به شکل ساختاریافته با اصول عملکرد STP آشنا شدیم. ابتدا مفهوم کلی STP و دلیل نیاز به آن را بررسی کردیم. سپس به بررسی پیامهای BPDU، سازوکار انتخاب Root Bridge و نحوهی تعیین پورتهایی مانند Root Port و Designated Port پرداختیم. همچنین، حالتهای مختلف پورتها در STP شامل Blocking، Listening، Learning، Forwarding و Disabled را معرفی کردیم و مفهوم Convergence در لایه دوم را توضیح دادیم. در ادامه، با طرح یک سناریوی ساده و ارائهی پیکربندیهای اولیه، نحوهی پیادهسازی STP در یک شبکهی نمونه نمایش داده شد.
در نهایت، درک عمیق از عملکرد STP نهتنها برای طراحی و نگهداری شبکههای پایدار ضروری است، بلکه پایهای برای تسلط بر مفاهیم پیشرفتهتر مانند Rapid STP یا Multiple STP نیز فراهم میسازد. با اجرای صحیح STP، میتوان اطمینان حاصل کرد که شبکه از نظر توپولوژی، بهینه، ایمن و عاری از اختلالهای ناشی از مسیرهای تکراری باقی میماند.
امیدواریم این مقاله برای شما مفید بوده باشد.
خدمات ما در مجموعه هیواشبکه شامل :
شرکت فنی و مهندسی هیوانوآوران داده گستر : مجری طراحی ، پیاده سازی ، پشتیبانی پروژه های شبکه و امنیت در استان گیلان – رشت و شهرها و استانهای همجوار
آموزشگاه تخصصی هیواشبکه : برگزار کننده دوره های تخصصی شبکه و امنیت ، پیکربندی سرور HP ، مجازی سازی ، MCSA 2022 ، نتورک و … به صورت حضوری با مجوز از سازمان فنی و حرفه ای و آموزش کارکنان دولت در رشت ، استان گیلان و به صورت مجازی در سراسر کشور
هیچ دیدگاهی نوشته نشده است.