آموزش جامع STP و انواع آن
Spanning Tree Protocol — نسخهٔ کامل آموزشی
مبانی، BPDU، انتخاب ریشه، حالات و نقشها، تایمرها، انواع STP (IEEE 802.1D, RSTP, MSTP, PVST) و پیکربندی و عیبیابی در محیطهای Cisco و Enterprise
تاریخ انتشار: ۱ آذر ۱۴۰۴ (۲۱ نوامبر ۲۰۲۵)
۱. مقدمه و ضرورت STP
هدف STP حذف مسیرهای حلقهای (Layer 2 loops) و ایجاد یک درخت بدون حلقه (loop-free) در دامنهٔ بریجها/سوئیچها است. هنگام طراحی شبکه باید همیشه redundancy و قابلیت بازیابی را با محافظت در برابر loop توازن داد.
منابع مفهومی: IEEE 802.1D (STP)، RFCها و مستندات فروشندگان.
۲. BPDU و انتخاب Root Bridge
BPDU (Bridge Protocol Data Unit) پیامی است که سوئیچها برای تبادل اطلاعات STP ارسال میکنند. دو نوع BPDU رایج در استانداردها وجود دارد: Configuration BPDU (BPDU کانفیگ) و TCN BPDU (Topology Change Notification).
محتوا/فیلدهای کلیدی در BPDU
- Bridge ID = Priority + Bridge MAC (شناسهٔ یکتا برای هر بریج)
- Root ID (شناسهٔ بریج ریشه)
- Root Path Cost (هزینهٔ مسیر تا ریشه)
- Port ID (شناسهٔ پورت فرستنده)
- Timer values (Hello, Max Age, Forward Delay)
انتخاب Root Bridge
الگوریتم انتخاب Root: بریجی که کمترین Bridge ID را دارد بهعنوان Root انتخاب میشود. Bridge ID ترکیبی از Priority و MAC است. بنابراین برای تعیین Root معمولاً Priority را کاهش میدهیم.
# مثال: تعیین سوئیچ بهعنوان Root برای VLAN 1 (Cisco) configure terminal spanning-tree vlan 1 root primary end
توجه: در شبکههای چند VLAN از PVST یا MSTP استفاده میشود تا هر VLAN یا گروه VLAN مستقل مدیریت شود.
۳. نقشها و حالات پورت در STP
نقشهای پورت (Port Roles)
| نقش | توضیح |
|---|---|
| Root Port (RP) | پورت با بهترین مسیر به Root (فقط یک RP در هر سوئیچ غیر-root) |
| Designated Port (DP) | پورت منتخب برای فرستادن فریمها روی یک LAN segment |
| Alternate / Backup | پورتهای پشتیبان که در حالت بلاک هستند و در صورت تغییر مسیر فعال میشوند |
حالات پورت (Port States) — کلاسیک STP
| حالت | توضیح |
|---|---|
| Blocking | پورت دریافت میکند اما فریم را فوروارد نمیکند؛ BPDU میفرستد/دریافت میکند |
| Listening | برای بهروزرسانی topology و جلوگیری از loop قبل از یادگیری MAC |
| Learning | آدرسهای MAC را یاد میگیرد اما هنوز فوروارد نمیکند |
| Forwarding | پورت فریمها را فوروارد میکند و در جدول MAC نوشته میشود |
| Disabled | پورت خاموش یا administratively down |
RSTP (802.1w) حالات را ساده میکند و سریعتر به وضعیت انتقال میرسد؛ بسیاری از حالات کلاسیک کنار گذاشته میشوند یا سریعتر طی میشوند.
۴. تایمرها و محاسبات
سه تایمر کلیدی در STP کلاسیک وجود دارد:
| تایمر | پیشفرض | هدف |
|---|---|---|
| Hello Time | ۲ ثانیه | فاصله ارسال BPDU توسط Root |
| Max Age | ۲۰ ثانیه | مدت زمان نگهداری اطلاعات قدیمی از BPDU |
| Forward Delay | ۱۵ ثانیه | مدت زمان در حالات Listening و Learning |
محاسبه مدت زمان converge در STP کلاسیک
مدت زمان تقریبی convergence در worst-case:
Convergence ≈ MaxAge + 2 × ForwardDelay مثلاً: 20 + 2×15 = 50 ثانیه
RSTP convergence بسیار سریعتر است (معمولاً چند ثانیه) زیرا از مکانیزمهای handshake سریع بین پورتها استفاده میکند.
۵. انواع STP
IEEE 802.1D — STP کلاسیک
استاندارد اولیه؛ convergence کندتر و مناسب شبکههای کوچک تا متوسط.
IEEE 802.1w — RSTP (Rapid Spanning Tree)
نسخهٔ سریعتر STP با converge سریعتر و پشتیبانی از port roles جدید (Alternate/Backup) و Link-type detection.
IEEE 802.1s — MSTP (Multiple Spanning Tree)
MSTP اجازه میدهد چندین instance از STP را تعریف کنید و گروهی از VLANها را به هر instance نگاشت کنید؛ مناسب دیتاسنتر و شبکههای بزرگ برای load-balancing بین مسیرها.
PVST / PVST+ (Cisco)
Per-VLAN Spanning Tree — برای هر VLAN یک instance جداگانه (در سویچهای Cisco Catalyst). این امکان کنترل و root selection مستقل برای هر VLAN را فراهم میکند.
Rapid PVST+
نسخهٔ سریع PVST با مزایای RSTP بهازای هر VLAN.
| نوع | استاندارد | مزایا | معایب |
|---|---|---|---|
| STP | 802.1D | ساده و استاندارد | کند، converge طولانی |
| RSTP | 802.1w | سریع، سازگار با STP | نیاز به پشتیبانی دستگاه |
| MSTP | 802.1s | مقیاسپذیر، load-sharing بین VLANها | پیکربندی پیچیدهتر |
| PVST/RPVST+ | Cisco | کنترل هر-VLAN، انعطافپذیر | مصرف منابع (یک instance برای هر VLAN) |
۶. نمونههای پیکربندی (Cisco IOS)
تنظیم RSTP بهصورت global
configure terminal spanning-tree mode rapid-pvst end write memory
قرار دادن سوئیچ به عنوان Root Primary برای VLANهای خاص
configure terminal spanning-tree vlan 10 root primary spanning-tree vlan 20 root primary end
پیکربندی MST (نمونه)
configure terminal spanning-tree mode mst spanning-tree mst configuration name MST-region-1 revision 1 instance 1 vlan 10,20 instance 2 vlan 30,40 exit end write memory
تنظیم priority دستی برای انتخاب Root
configure terminal spanning-tree vlan 1 priority 4096 end
توصیه: پس از تغییر تنظیمات STP، خروجیهای `show spanning-tree` و `show spanning-tree summary` را بررسی کنید.
۷. عیبیابی و بهترین شیوهها
دستورهای مهم برای عیبیابی
show spanning-tree show spanning-tree vlan 1 show spanning-tree detail show spanning-tree mst configuration show spanning-tree root show interfaces status show logging debug spanning-tree events debug spanning-tree bpdu
مسائل رایج و راه حل
- Loop و FLOOD فریمها: بررسی پورتهای newly connected یا misconfigured، بررسی port-channel و LACP، خاموش کردن پورتهای مشکوک.
- Root اشتباه: اگر یک سوییچ edge با priority پایین به Root تبدیل شده است—priority را اصلاح کن یا از `spanning-tree vlan X root primary` استفاده کن.
- Convergence طولانی: از RSTP/rapid-pvst استفاده کن یا Forward Delay و Max Age را در شرایط کنترل شده تنظیم کن.
- Port flapping: بررسی لینک فیزیکی، duplex/mtu mismatch، و noisy interfaces.
- BPDU Guard / BPDU Filter: برای پورتهای edge از BPDU Guard استفاده کن تا دستگاههای غیرمجاز نتوانند BPDU ارسال کنند.
۸. مثال عملی و سناریوها
سناریو ۱ — اضافه شدن لینک جدید باعث ایجاد loop میشود
علائم: Flooding، CPU بالا در سوئیچ، تاخیر در شبکه.
گامهای پیشنهادی:
- با `show spanning-tree` وضعیت پورتها و نقشها را بررسی کن.
- پورتهایی که وارد حالت Forwarding شدهاند و انتظار نداشتی را مقایسه کن.
- برای پورتهای میزبان از PortFast و BPDU Guard استفاده کن.
سناریو ۲ — VLANهای مختلف نیاز به load-balancing دارند
راهکار: استفاده از MSTP و map کردن VLANها به instanceهای مختلف تا هر instance مسیر متفاوتی را فعال نگه دارد.
۹. جمعبندی
• STP برای جلوگیری از loop ضروری است — همیشه در طراحی شبکه redundancy را با کنترل loop همراه کن.
• RSTP و Rapid PVST برای convergence سریعتر توصیه میشوند.
• MSTP برای شبکههای بزرگ و نیاز به load-balancing بین VLANها مناسب است.
• تنظیم Root بهصورت intentional و فعالسازی ویژگیهای محافظتی (BPDU Guard, Root Guard, Loop Guard) از پایههای طراحی مقاوم است.
این صفحه یک مرجع آموزشی جامع برای STP و انواع آن است — مناسب مهندسان شبکه، دانشجویان و متخصصان امنیت.
منابع: IEEE 802.1D/802.1w/802.1s، مستندات Cisco — مثالها و دستورها برای اهداف آموزشی ارائه شدهاند.