نحوه پیکربندی و دستورات Spanning Tree

مقدمه

در شبکه‌های کامپیوتری، برای افزایش قابلیت اطمینان و دسترس‌پذیری، معمولاً بین سوئیچ‌ها بیش از یک مسیر ارتباطی ایجاد می‌شود. وجود این مسیرهای افزونه (Redundant Links) باعث می‌شود در صورت قطع شدن یکی از لینک‌ها، ارتباط شبکه از طریق مسیر دیگری برقرار بماند. با این حال، اگر این مسیرهای اضافی بدون کنترل رها شوند، ممکن است باعث ایجاد حلقه (Loop) در لایه دوم شبکه شوند که پیامدهایی مانند ارسال بی‌پایان فریم‌ها، افزایش ترافیک، ناپایداری جدول MAC و در نهایت از کار افتادن شبکه را به همراه خواهد داشت.

برای جلوگیری از این مشکل، پروتکل Spanning Tree Protocol (STP) طراحی شده است. این پروتکل با شناسایی مسیرهای تکراری و قرار دادن برخی از لینک‌ها در وضعیت غیرفعال (Blocking)، از ایجاد حلقه جلوگیری می‌کند. در صورت بروز خرابی در مسیر اصلی، STP به‌صورت خودکار یکی از لینک‌های غیرفعال را فعال کرده و ارتباط شبکه را بدون نیاز به دخالت مدیر شبکه برقرار می‌کند.

معرفی پروتکل Spanning Tree

Spanning Tree Protocol (STP) یک پروتکل استاندارد لایه دوم شبکه است که توسط مؤسسه IEEE با استاندارد 802.1D معرفی شده است. وظیفه اصلی این پروتکل، جلوگیری از ایجاد حلقه در شبکه‌های مبتنی بر سوئیچ است.

STP با انتخاب یک سوئیچ به عنوان Root Bridge و محاسبه بهترین مسیر بین سایر سوئیچ‌ها، یک ساختار درختی بدون حلقه (Loop-Free Topology) ایجاد می‌کند. لینک‌هایی که برای رسیدن به Root Bridge ضروری نیستند، به حالت Blocking منتقل می‌شوند تا از گردش بی‌پایان فریم‌ها جلوگیری شود. در صورت قطع شدن مسیر فعال، STP مسیر جایگزین را به‌صورت خودکار فعال می‌کند و ارتباط شبکه را حفظ می‌نماید.

اهمیت استفاده از STP در شبکه

استفاده از STP در شبکه‌های سوئیچینگ از اهمیت بسیار بالایی برخوردار است، زیرا بدون وجود این پروتکل، ایجاد لینک‌های افزونه می‌تواند باعث بروز مشکلات جدی در عملکرد شبکه شود. مهم‌ترین مزایای استفاده از STP عبارت‌اند از:

  • جلوگیری از ایجاد حلقه (Loop) در شبکه‌های لایه دوم.
  • جلوگیری از وقوع Broadcast Storm و افزایش بی‌رویه ترافیک شبکه.
  • جلوگیری از ناپایداری جدول MAC Address Table در سوئیچ‌ها.
  • افزایش پایداری و قابلیت اطمینان شبکه با استفاده از مسیرهای افزونه.
  • فعال‌سازی خودکار مسیرهای جایگزین در صورت خرابی لینک یا سوئیچ.
  • کاهش احتمال قطعی سرویس و افزایش دسترس‌پذیری (High Availability).
  • فراهم کردن بستری مناسب برای طراحی شبکه‌های بزرگ و دارای افزونگی.

به طور کلی، Spanning Tree Protocol یکی از مهم‌ترین پروتکل‌های لایه دوم محسوب می‌شود و آشنایی با نحوه عملکرد، پیکربندی و عیب‌یابی آن برای هر مدیر شبکه یا کارشناس زیرساخت ضروری است.

 

 

آشنایی با عملکرد Spanning Tree

پروتکل Spanning Tree Protocol (STP) با هدف جلوگیری از ایجاد حلقه (Loop) در شبکه‌های لایه دوم طراحی شده است. این پروتکل با بررسی توپولوژی شبکه، بهترین مسیرهای ارتباطی را انتخاب کرده و لینک‌های اضافی را که ممکن است باعث ایجاد حلقه شوند، به‌صورت موقت غیرفعال می‌کند. به این ترتیب، تنها یک مسیر فعال بین سوئیچ‌ها باقی می‌ماند و شبکه بدون ایجاد Loop به فعالیت خود ادامه می‌دهد.

STP به‌صورت مداوم وضعیت لینک‌ها و سوئیچ‌ها را پایش می‌کند. اگر یکی از لینک‌های فعال دچار مشکل شود، این پروتکل به‌طور خودکار یکی از لینک‌های غیرفعال را فعال کرده و مسیر ارتباطی را بازسازی می‌کند. این قابلیت باعث افزایش پایداری و دسترس‌پذیری شبکه می‌شود.

مفهوم Loop در شبکه

Loop یا حلقه زمانی ایجاد می‌شود که بین دو یا چند سوئیچ بیش از یک مسیر فعال وجود داشته باشد و هیچ مکانیزمی برای مدیریت این مسیرها در نظر گرفته نشده باشد. از آنجا که در لایه دوم شبکه فریم‌های اترنت دارای فیلدی برای محدود کردن تعداد دفعات عبور (مانند TTL در لایه سوم) نیستند، فریم‌ها ممکن است به‌صورت نامحدود در شبکه گردش کنند.

ایجاد Loop پیامدهای متعددی به همراه دارد که مهم‌ترین آن‌ها عبارت‌اند از:

  • ایجاد Broadcast Storm و اشغال پهنای باند شبکه.
  • دریافت چندین نسخه از یک فریم توسط مقصد (Duplicate Frames).
  • ناپایداری جدول آدرس‌های MAC در سوئیچ‌ها (MAC Address Table Instability).
  • افزایش بار پردازشی سوئیچ‌ها و کاهش عملکرد شبکه.
  • اختلال یا از دسترس خارج شدن سرویس‌های شبکه.

به همین دلیل، وجود مکانیزمی مانند STP برای جلوگیری از ایجاد حلقه در شبکه‌های سوئیچینگ ضروری است.

نحوه جلوگیری از ایجاد Loop

پروتکل STP با ایجاد یک توپولوژی منطقی بدون حلقه (Loop-Free Topology)، از وقوع Loop جلوگیری می‌کند. این پروتکل ابتدا یکی از سوئیچ‌ها را به عنوان Root Bridge انتخاب می‌کند و سپس کوتاه‌ترین مسیر هر سوئیچ به Root Bridge را محاسبه می‌کند.

پس از انجام این محاسبات، STP نقش هر پورت را مشخص می‌کند. پورت‌هایی که برای انتقال ترافیک ضروری هستند در حالت Forwarding قرار می‌گیرند و پورت‌هایی که وجود آن‌ها باعث ایجاد مسیرهای تکراری می‌شود، به حالت Blocking منتقل می‌شوند. در نتیجه، اگرچه لینک‌های افزونه از نظر فیزیکی همچنان متصل هستند، اما تا زمان نیاز هیچ ترافیکی از آن‌ها عبور نمی‌کند.

در صورت قطع شدن یکی از لینک‌های فعال، STP مجدداً توپولوژی شبکه را محاسبه کرده و یکی از پورت‌های مسدود شده را فعال می‌کند تا ارتباط شبکه بدون ایجاد حلقه ادامه یابد.

فرآیند انتخاب مسیر در STP

برای ایجاد یک توپولوژی بدون حلقه، STP مراحل زیر را انجام می‌دهد:

  1. انتخاب Root Bridge:
    تمام سوئیچ‌ها شناسه‌ای به نام Bridge ID (BID) دارند که از اولویت (Priority) و آدرس MAC تشکیل شده است. سوئیچی که کمترین Bridge ID را داشته باشد، به عنوان Root Bridge انتخاب می‌شود.
  2. انتخاب Root Port:
    هر سوئیچ (به‌جز Root Bridge) پورتی را که کمترین هزینه مسیر (Path Cost) تا Root Bridge را دارد، به عنوان Root Port انتخاب می‌کند. این پورت بهترین مسیر برای رسیدن به Root Bridge است.
  3. انتخاب Designated Port:
    در هر Segment شبکه، پورتی که بهترین مسیر را به Root Bridge ارائه دهد به عنوان Designated Port انتخاب شده و مسئول ارسال و دریافت ترافیک در آن Segment خواهد بود.
  4. مسدود کردن مسیرهای اضافی:
    پورت‌هایی که نه Root Port هستند و نه Designated Port، برای جلوگیری از ایجاد حلقه در حالت Blocking قرار می‌گیرند. این پورت‌ها تا زمانی که مسیر فعال دچار مشکل نشود، هیچ ترافیکی را عبور نمی‌دهند.

این فرآیند باعث می‌شود تمام سوئیچ‌ها دیدگاه یکسانی نسبت به توپولوژی شبکه داشته باشند و تنها یک مسیر فعال بین هر دو نقطه از شبکه وجود داشته باشد. در نتیجه، علاوه بر جلوگیری از ایجاد Loop، امکان استفاده از لینک‌های افزونه در شرایط خرابی نیز فراهم می‌شود.

 

 

 

انواع پروتکل‌های Spanning Tree

با گسترش شبکه‌های کامپیوتری و افزایش نیاز به سرعت، پایداری و مدیریت بهتر VLANها، نسخه‌های مختلفی از پروتکل Spanning Tree توسعه یافت. هر یک از این نسخه‌ها با هدف رفع محدودیت‌های نسخه‌های قبلی و بهبود عملکرد شبکه طراحی شده‌اند. مهم‌ترین انواع پروتکل‌های Spanning Tree عبارت‌اند از:

STP (IEEE 802.1D)

Spanning Tree Protocol (STP) اولین نسخه استاندارد این پروتکل است که توسط مؤسسه IEEE با استاندارد 802.1D معرفی شد. وظیفه اصلی این پروتکل جلوگیری از ایجاد حلقه در شبکه‌های لایه دوم است.

در STP، پس از ایجاد تغییر در توپولوژی شبکه (مانند قطع یا وصل شدن یک لینک)، سوئیچ‌ها باید مجدداً وضعیت شبکه را محاسبه کنند. این فرآیند که Convergence نام دارد، معمولاً بین 30 تا 50 ثانیه زمان می‌برد. در این مدت ممکن است ارتباط برخی از تجهیزات به‌طور موقت قطع شود.

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

ویژگی‌های STP:

  • استاندارد IEEE 802.1D
  • جلوگیری از ایجاد Loop
  • انتخاب Root Bridge و مسیرهای بهینه
  • زمان همگرایی نسبتاً زیاد (30 تا 50 ثانیه)
  • مناسب برای شبکه‌های کوچک و ساده

RSTP (IEEE 802.1w)

Rapid Spanning Tree Protocol (RSTP) نسخه بهبودیافته STP است که با استاندارد IEEE 802.1w معرفی شد. مهم‌ترین هدف این نسخه، کاهش زمان همگرایی شبکه پس از تغییر توپولوژی است.

در RSTP، مکانیزم‌های جدیدی برای تشخیص سریع تغییرات و فعال‌سازی مسیرهای جایگزین در نظر گرفته شده است. به همین دلیل، زمان همگرایی از چند ده ثانیه به حدود 1 تا 6 ثانیه کاهش یافته است.

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

ویژگی‌های RSTP:

  • استاندارد IEEE 802.1w
  • همگرایی بسیار سریع‌تر نسبت به STP
  • کاهش زمان قطعی شبکه
  • پشتیبانی از نقش‌های جدید مانند Alternate Port و Backup Port
  • سازگار با STP

MSTP (IEEE 802.1s)

Multiple Spanning Tree Protocol (MSTP) با استاندارد IEEE 802.1s برای شبکه‌هایی طراحی شده است که تعداد زیادی VLAN دارند.

در پروتکل STP یا RSTP، ممکن است برای هر VLAN یک درخت جداگانه ایجاد شود که این موضوع باعث افزایش مصرف منابع پردازشی سوئیچ‌ها می‌شود. MSTP این مشکل را با گروه‌بندی چند VLAN در یک MST Instance برطرف می‌کند.

در این روش، چندین VLAN می‌توانند از یک درخت مشترک استفاده کنند که باعث کاهش مصرف CPU و حافظه سوئیچ‌ها و همچنین ساده‌تر شدن مدیریت شبکه می‌شود.

ویژگی‌های MSTP:

  • استاندارد IEEE 802.1s
  • امکان گروه‌بندی چند VLAN در یک Instance
  • کاهش مصرف منابع سوئیچ
  • مناسب برای شبکه‌های بزرگ و سازمانی
  • پشتیبانی از همگرایی سریع مشابه RSTP

PVST و Rapid PVST

Per VLAN Spanning Tree (PVST) یک فناوری اختصاصی شرکت Cisco Systems است که برای هر VLAN یک نمونه مستقل از پروتکل STP اجرا می‌کند. به این ترتیب، هر VLAN دارای Root Bridge و توپولوژی مخصوص به خود خواهد بود.

این قابلیت امکان توزیع بار (Load Balancing) بین VLANهای مختلف را فراهم می‌کند. برای مثال، می‌توان یک سوئیچ را Root Bridge برای VLAN 10 و سوئیچ دیگری را Root Bridge برای VLAN 20 انتخاب کرد تا ترافیک بین لینک‌های مختلف تقسیم شود.

نسخه پیشرفته‌تر این فناوری Rapid PVST+ است که از مکانیزم RSTP برای هر VLAN استفاده می‌کند. در نتیجه، علاوه بر داشتن یک درخت مستقل برای هر VLAN، همگرایی نیز با سرعت بسیار بیشتری انجام می‌شود.

ویژگی‌های PVST و Rapid PVST:

  • فناوری اختصاصی Cisco
  • ایجاد یک نمونه مستقل STP برای هر VLAN
  • امکان انتخاب Root Bridge متفاوت برای VLANهای مختلف
  • توزیع بهتر ترافیک شبکه
  • در Rapid PVST+ همگرایی سریع مشابه RSTP انجام می‌شود.
  • مناسب برای شبکه‌های مبتنی بر تجهیزات Cisco

مقایسه انواع پروتکل‌های Spanning Tree

پروتکل استاندارد زمان همگرایی پشتیبانی از VLAN کاربرد
STP IEEE 802.1D 30 تا 50 ثانیه خیر شبکه‌های کوچک
RSTP IEEE 802.1w 1 تا 6 ثانیه خیر شبکه‌های متوسط و مدرن
MSTP IEEE 802.1s 1 تا 6 ثانیه بله (گروه‌بندی VLANها) شبکه‌های بزرگ و سازمانی
PVST اختصاصی Cisco 30 تا 50 ثانیه بله (برای هر VLAN) شبکه‌های Cisco
Rapid PVST+ اختصاصی Cisco 1 تا 6 ثانیه بله (برای هر VLAN) شبکه‌های Cisco با نیاز به همگرایی سریع

انتخاب نوع پروتکل Spanning Tree به اندازه شبکه، تعداد VLANها و تجهیزات مورد استفاده بستگی دارد. در شبکه‌های امروزی، RSTP به دلیل سرعت بالای همگرایی، گزینه مناسبی برای اکثر محیط‌ها محسوب می‌شود. در شبکه‌های بزرگ که تعداد VLANها زیاد است، MSTP به دلیل مدیریت بهینه منابع، انتخاب بهتری خواهد بود. همچنین، در محیط‌هایی که از تجهیزات Cisco استفاده می‌شود، Rapid PVST+ به دلیل ارائه یک نمونه مستقل از STP برای هر VLAN و سرعت بالای بازیابی شبکه، یکی از بهترین گزینه‌ها به شمار می‌رود.

 

 

مفاهیم و اصطلاحات مهم در Spanning Tree

برای درک نحوه عملکرد Spanning Tree Protocol (STP)، آشنایی با مفاهیم و اصطلاحات کلیدی آن ضروری است. STP با استفاده از این مفاهیم، بهترین مسیرهای ارتباطی را انتخاب کرده و از ایجاد حلقه در شبکه جلوگیری می‌کند. در ادامه، مهم‌ترین اصطلاحات این پروتکل معرفی شده‌اند.

Root Bridge

Root Bridge مهم‌ترین سوئیچ در ساختار Spanning Tree است. تمام محاسبات STP بر اساس این سوئیچ انجام می‌شود و سایر سوئیچ‌ها کوتاه‌ترین مسیر خود را نسبت به آن تعیین می‌کنند.

در ابتدای راه‌اندازی شبکه، تمامی سوئیچ‌ها خود را Root Bridge فرض می‌کنند و پیام‌های BPDU (Bridge Protocol Data Unit) را برای یکدیگر ارسال می‌کنند. پس از مقایسه اطلاعات موجود در این پیام‌ها، سوئیچی که کمترین Bridge ID را داشته باشد به عنوان Root Bridge انتخاب می‌شود.

ویژگی‌های Root Bridge عبارت‌اند از:

  • در کل شبکه تنها یک Root Bridge وجود دارد.
  • تمامی پورت‌های Root Bridge در وضعیت Designated Port قرار می‌گیرند.
  • Root Bridge مبنای محاسبه مسیرهای شبکه است.
  • بهتر است مدیر شبکه، سوئیچ مرکزی یا قدرتمندتر را به عنوان Root Bridge انتخاب کند.

Bridge ID (BID)

Bridge ID شناسه منحصربه‌فرد هر سوئیچ در فرآیند STP است. این شناسه برای انتخاب Root Bridge مورد استفاده قرار می‌گیرد.

Bridge ID از دو بخش اصلی تشکیل شده است:

  • Bridge Priority: مقدار اولویت سوئیچ که به‌صورت پیش‌فرض برابر 32768 است.
  • MAC Address: آدرس MAC اختصاصی سوئیچ.

اگر دو سوئیچ دارای Priority یکسان باشند، سوئیچی که آدرس MAC کوچک‌تری داشته باشد به عنوان Root Bridge انتخاب خواهد شد.

به طور کلی، هرچه مقدار Bridge ID کمتر باشد، احتمال انتخاب آن سوئیچ به عنوان Root Bridge بیشتر خواهد بود.

Root Port (RP)

Root Port پورتی است که در هر سوئیچ (به‌جز Root Bridge) کم‌هزینه‌ترین مسیر را به Root Bridge فراهم می‌کند.

هر سوئیچ تنها یک Root Port دارد و تمام ترافیک مربوط به رسیدن به Root Bridge از طریق این پورت ارسال می‌شود.

معیار انتخاب Root Port عبارت‌اند از:

  1. کمترین Path Cost
  2. کمترین Bridge ID همسایه
  3. کمترین Port ID (در صورت برابر بودن شرایط)

پورت Root Port همواره در وضعیت Forwarding قرار دارد.

Designated Port (DP)

Designated Port پورتی است که مسئول ارسال و دریافت ترافیک در یک Segment از شبکه است.

برای هر Segment شبکه فقط یک Designated Port انتخاب می‌شود. این پورت بهترین مسیر آن Segment به Root Bridge را ارائه می‌دهد و در وضعیت Forwarding قرار می‌گیرد.

در Root Bridge، تمامی پورت‌ها به صورت پیش‌فرض Designated Port هستند.

Alternate Port

Alternate Port مفهومی است که در RSTP معرفی شده است و به عنوان مسیر پشتیبان (Backup) برای Root Port عمل می‌کند.

اگر Root Port به هر دلیلی از دسترس خارج شود، Alternate Port بدون نیاز به طی کردن مراحل طولانی STP به سرعت فعال شده و جایگزین Root Port می‌شود.

مزایای Alternate Port عبارت‌اند از:

  • افزایش سرعت بازیابی شبکه
  • کاهش زمان Convergence
  • فراهم کردن مسیر جایگزین در زمان خرابی لینک

در STP کلاسیک چنین نقشی وجود ندارد و پورت‌های جایگزین در حالت Blocking باقی می‌مانند.

Port State

Port State وضعیت عملیاتی هر پورت در فرآیند STP را مشخص می‌کند. هر پورت بسته به نقش خود، در یکی از حالت‌های زیر قرار می‌گیرد.

1. Blocking

در این وضعیت، پورت هیچ فریم داده‌ای را ارسال یا دریافت نمی‌کند و تنها پیام‌های BPDU را پردازش می‌کند. هدف این حالت جلوگیری از ایجاد Loop است.

2. Listening

پورت شروع به تبادل پیام‌های BPDU می‌کند و در حال محاسبه توپولوژی شبکه است، اما هنوز ترافیک کاربران را عبور نمی‌دهد.

3. Learning

در این مرحله، پورت علاوه بر دریافت BPDU، شروع به یادگیری آدرس‌های MAC می‌کند، اما هنوز فریم‌های داده را ارسال نمی‌کند.

4. Forwarding

در این وضعیت، پورت به طور کامل فعال است و هم ترافیک کاربران و هم پیام‌های BPDU را ارسال و دریافت می‌کند.

5. Disabled

این وضعیت زمانی رخ می‌دهد که پورت به صورت دستی غیرفعال شده یا از نظر فیزیکی قطع باشد.

نکته: در RSTP، وضعیت‌های Blocking، Listening و Disabled در حالت Discarding ادغام شده‌اند تا فرآیند همگرایی سریع‌تر انجام شود.

Port Role

Port Role وظیفه هر پورت را در توپولوژی STP مشخص می‌کند. برخلاف Port State که وضعیت عملیاتی پورت را نشان می‌دهد، Port Role بیان می‌کند که پورت چه نقشی در ساختار شبکه بر عهده دارد.

مهم‌ترین نقش‌های پورت عبارت‌اند از:

Root Port (RP)

بهترین مسیر هر سوئیچ به سمت Root Bridge است و تنها یک نمونه از آن در هر سوئیچ وجود دارد.

Designated Port (DP)

پورتی که مسئول ارسال ترافیک در یک Segment شبکه است و بهترین مسیر آن Segment به Root Bridge را ارائه می‌دهد.

Alternate Port (AP)

مسیر جایگزین Root Port در RSTP است که در صورت خرابی لینک اصلی به سرعت فعال می‌شود.

Backup Port (BP)

این نقش نیز در RSTP تعریف شده است و زمانی استفاده می‌شود که دو پورت از یک سوئیچ به یک Segment مشترک متصل باشند. Backup Port تا زمان نیاز در حالت آماده‌به‌کار باقی می‌ماند و در شبکه‌های امروزی کمتر مشاهده می‌شود.

مفاهیمی مانند Root Bridge، Bridge ID، Root Port، Designated Port، Alternate Port، Port State و Port Role پایه و اساس عملکرد پروتکل STP را تشکیل می‌دهند. شناخت صحیح این اصطلاحات به مدیران شبکه کمک می‌کند تا فرآیند انتخاب مسیرها، جلوگیری از ایجاد حلقه و عیب‌یابی مشکلات مربوط به Spanning Tree را به‌درستی درک کرده و تنظیمات مناسبی را در شبکه اعمال کنند.

 

 

 

 

 

دستورات بررسی وضعیت Spanning Tree

پس از پیکربندی Spanning Tree Protocol (STP)، لازم است وضعیت عملکرد آن بررسی شود تا از صحت تنظیمات و عملکرد صحیح شبکه اطمینان حاصل گردد. سیستم‌عامل Cisco IOS دستورات متعددی را برای مشاهده وضعیت STP، بررسی Root Bridge، نقش پورت‌ها و وضعیت VLANها در اختیار مدیران شبکه قرار می‌دهد. آشنایی با این دستورات، فرآیند عیب‌یابی و مدیریت شبکه را بسیار ساده‌تر می‌کند.

نمایش وضعیت STP

اصلی‌ترین دستور برای مشاهده وضعیت Spanning Tree در سوئیچ‌های سیسکو، دستور زیر است:

Switch# show spanning-tree

این دستور اطلاعات کاملی از وضعیت STP را نمایش می‌دهد، از جمله:

  • نسخه فعال STP
  • شناسه Root Bridge
  • Bridge ID سوئیچ
  • نقش (Role) هر پورت
  • وضعیت (State) هر پورت
  • هزینه مسیر (Path Cost)
  • اولویت (Priority)
  • زمان‌بندی‌های STP مانند Hello Time، Forward Delay و Max Age

نمونه‌ای از خروجی این دستور:

Switch# show spanning-tree

VLAN0001
  Spanning tree enabled protocol rstp
  Root ID    Priority    4097
             Address     0019.e752.1000
             Cost        4
             Port        1 (GigabitEthernet0/1)

Bridge ID  Priority    32769
           Address     0023.5d88.2000

Interface           Role Sts Cost      Prio.Nbr Type
Gi0/1               Root FWD 4         128.1    P2p
Gi0/2               Desg FWD 4         128.2    P2p
Gi0/3               Altn BLK 4         128.3    P2p

در این خروجی می‌توان اطلاعات مهمی مانند Root Bridge، نقش پورت‌ها و وضعیت Forwarding یا Blocking را مشاهده کرد.

مشاهده Root Bridge

برای مشاهده اطلاعات مربوط به Root Bridge می‌توان از همان دستور زیر استفاده کرد:

Switch# show spanning-tree

در ابتدای خروجی، بخش Root ID اطلاعات Root Bridge را نمایش می‌دهد.

نمونه خروجی:

Root ID
 Priority    4097
 Address     0019.e752.1000
 Cost        4
 Port        1 (GigabitEthernet0/1)

این اطلاعات شامل موارد زیر است:

  • Priority: اولویت Root Bridge
  • MAC Address: آدرس MAC سوئیچ Root
  • Cost: هزینه مسیر تا Root Bridge
  • Port: پورتی که از طریق آن به Root Bridge متصل هستیم (Root Port)

اگر مقدار Bridge ID و Root ID یکسان باشند، به این معناست که همان سوئیچ، Root Bridge شبکه است.

بررسی وضعیت پورت‌ها

برای مشاهده وضعیت هر پورت در STP از دستور زیر استفاده می‌شود:

Switch# show spanning-tree interface gigabitethernet0/1

یا برای مشاهده وضعیت تمام پورت‌ها:

Switch# show spanning-tree

در خروجی این دستور اطلاعات زیر قابل مشاهده است:

  • نقش پورت (Root، Designated، Alternate)
  • وضعیت پورت (Forwarding، Blocking، Learning و …)
  • Path Cost
  • Port Priority
  • نوع لینک (Point-to-Point یا Shared)

نمونه خروجی:

Interface Gi0/1
 Role : Root
 State : Forwarding
 Cost : 4
 Port Priority : 128

مهم‌ترین وضعیت‌های پورت عبارت‌اند از:

وضعیت توضیح
Forwarding پورت فعال بوده و ترافیک شبکه را عبور می‌دهد.
Blocking پورت برای جلوگیری از ایجاد Loop مسدود شده است.
Learning پورت در حال یادگیری آدرس‌های MAC است.
Listening پورت در حال بررسی توپولوژی شبکه است.
Disabled پورت غیرفعال است.

همچنین نقش هر پورت نیز مشخص می‌شود:

  • Root Port
  • Designated Port
  • Alternate Port
  • Backup Port (در RSTP)

نمایش VLANهای فعال در STP

در سوئیچ‌هایی که از PVST+ یا Rapid PVST+ استفاده می‌کنند، برای هر VLAN یک نمونه مستقل از STP اجرا می‌شود. برای مشاهده وضعیت STP مربوط به تمامی VLANها از دستور زیر استفاده می‌شود:

Switch# show spanning-tree

برای مشاهده اطلاعات یک VLAN خاص نیز می‌توان از دستور زیر استفاده کرد:

Switch# show spanning-tree vlan 10

نمونه خروجی:

Switch# show spanning-tree vlan 10

VLAN0010
 Spanning tree enabled protocol rstp

 Root ID
  Priority    4106
  Address     0019.e752.1000

 Bridge ID
  Priority    32778
  Address     0023.5d88.2000

این دستور اطلاعات زیر را برای VLAN موردنظر نمایش می‌دهد:

  • وضعیت فعال بودن STP
  • نوع پروتکل (STP، RSTP یا PVST)
  • Root Bridge مربوط به همان VLAN
  • Bridge ID سوئیچ
  • وضعیت و نقش پورت‌های عضو VLAN
  • هزینه مسیر تا Root Bridge

این قابلیت به مدیر شبکه کمک می‌کند تا عملکرد STP را به‌صورت مجزا برای هر VLAN بررسی کرده و در صورت وجود مشکل، آن را سریع‌تر شناسایی و برطرف کند.

دستورات بررسی وضعیت STP نقش مهمی در مدیریت و عیب‌یابی شبکه دارند. دستور show spanning-tree مهم‌ترین ابزار برای مشاهده وضعیت کلی پروتکل است و اطلاعاتی مانند Root Bridge، نقش و وضعیت پورت‌ها، هزینه مسیر و تنظیمات هر VLAN را نمایش می‌دهد. با استفاده از این دستورات، مدیر شبکه می‌تواند از عملکرد صحیح STP اطمینان حاصل کرده، مشکلات احتمالی را شناسایی و توپولوژی شبکه را به‌صورت مؤثر مدیریت کند.

 

 

پیکربندی قابلیت‌های تکمیلی Spanning Tree

پروتکل Spanning Tree Protocol (STP) علاوه بر قابلیت اصلی خود برای جلوگیری از ایجاد حلقه در شبکه، امکانات تکمیلی متعددی را نیز در اختیار مدیران شبکه قرار می‌دهد. این قابلیت‌ها با هدف افزایش سرعت همگرایی، بهبود امنیت، جلوگیری از خطاهای ناشی از اتصال نادرست تجهیزات و افزایش پایداری شبکه طراحی شده‌اند.

در این بخش، مهم‌ترین قابلیت‌های تکمیلی STP و نحوه پیکربندی آن‌ها در تجهیزات Cisco بررسی می‌شود.

PortFast

PortFast قابلیتی است که باعث می‌شود پورت‌های متصل به تجهیزات انتهایی مانند رایانه، سرور، تلفن IP یا چاپگر، بدون طی کردن مراحل Listening و Learning مستقیماً وارد حالت Forwarding شوند.

در حالت عادی، STP برای جلوگیری از ایجاد Loop، قبل از فعال شدن هر پورت حدود ۳۰ ثانیه منتظر می‌ماند. این تأخیر ممکن است باعث شود تجهیزاتی مانند رایانه‌ها یا تلفن‌های IP در زمان روشن شدن، نتوانند به‌سرعت از سرویس‌هایی مانند DHCP استفاده کنند.

PortFast این مشکل را برطرف می‌کند و زمان برقراری ارتباط را به حداقل می‌رساند.

نکته مهم: PortFast فقط باید روی پورت‌هایی فعال شود که به تجهیزات انتهایی متصل هستند و هرگز نباید روی لینک بین دو سوئیچ فعال شود.

پیکربندی PortFast

ابتدا وارد تنظیمات اینترفیس شوید:

Switch(config)# interface GigabitEthernet0/10

سپس دستور زیر را اجرا کنید:

Switch(config-if)# spanning-tree portfast

برای بررسی وضعیت PortFast:

Switch# show spanning-tree interface GigabitEthernet0/10 detail

BPDU Guard

BPDU Guard یک قابلیت امنیتی است که معمولاً همراه با PortFast استفاده می‌شود.

اگر روی پورتی که PortFast روی آن فعال است، پیام BPDU دریافت شود، به این معناست که احتمالاً به جای یک رایانه، یک سوئیچ به آن پورت متصل شده است. در این شرایط، BPDU Guard برای جلوگیری از ایجاد Loop، پورت را به حالت Err-Disabled منتقل می‌کند.

این قابلیت از اتصال غیرمجاز سوئیچ‌ها به شبکه جلوگیری می‌کند.

پیکربندی BPDU Guard روی یک پورت

Switch(config)# interface GigabitEthernet0/10
Switch(config-if)# spanning-tree bpduguard enable

فعال‌سازی BPDU Guard به‌صورت سراسری

Switch(config)# spanning-tree portfast bpduguard default

در این حالت، BPDU Guard روی تمام پورت‌هایی که PortFast دارند فعال خواهد شد.

برای بررسی وضعیت:

Switch# show spanning-tree summary

Root Guard

در طراحی شبکه معمولاً تنها یک یا چند سوئیچ مشخص باید نقش Root Bridge را داشته باشند. اگر سوئیچ دیگری با Priority کمتر به شبکه متصل شود، ممکن است Root Bridge تغییر کند و توپولوژی شبکه دچار اختلال شود.

Root Guard از این اتفاق جلوگیری می‌کند.

اگر پورتی که Root Guard روی آن فعال شده است، پیام BPDU برتری دریافت کند، آن پورت وارد وضعیت Root Inconsistent می‌شود و تا زمان رفع مشکل هیچ ترافیکی را عبور نمی‌دهد.

پیکربندی Root Guard

Switch(config)# interface GigabitEthernet0/1
Switch(config-if)# spanning-tree guard root

برای مشاهده وضعیت:

Switch# show spanning-tree inconsistentports

Loop Guard

گاهی ممکن است به دلیل بروز خطا در شبکه، پیام‌های BPDU از یک لینک دریافت نشوند، اما لینک همچنان از نظر فیزیکی فعال باشد. در این شرایط STP ممکن است تصور کند مسیر آزاد شده و پورت را وارد حالت Forwarding کند که این موضوع می‌تواند باعث ایجاد Loop شود.

Loop Guard از چنین شرایطی جلوگیری می‌کند.

اگر BPDUها روی پورتی که باید آن‌ها را دریافت کند متوقف شوند، پورت وارد وضعیت Loop Inconsistent شده و تا زمان دریافت مجدد BPDU غیرفعال باقی می‌ماند.

پیکربندی Loop Guard

روی یک اینترفیس:

Switch(config)# interface GigabitEthernet0/2
Switch(config-if)# spanning-tree guard loop

یا به‌صورت سراسری:

Switch(config)# spanning-tree loopguard default

بررسی وضعیت:

Switch# show spanning-tree inconsistentports

BPDU Filter

BPDU Filter قابلیتی است که ارسال و دریافت پیام‌های BPDU را روی یک پورت متوقف می‌کند.

این ویژگی معمولاً در شرایط خاص و با دقت فراوان استفاده می‌شود؛ زیرا در صورت استفاده نادرست، STP دیگر قادر به تشخیص Loop نخواهد بود.

به همین دلیل، فعال‌سازی BPDU Filter تنها در سناریوهای خاص و با آگاهی کامل از پیامدهای آن توصیه می‌شود.

پیکربندی BPDU Filter روی یک پورت

Switch(config)# interface GigabitEthernet0/10
Switch(config-if)# spanning-tree bpdufilter enable

فعال‌سازی سراسری

Switch(config)# spanning-tree portfast bpdufilter default

هشدار: استفاده نادرست از BPDU Filter ممکن است باعث ایجاد حلقه در شبکه شود؛ بنابراین تنها در سناریوهای مشخص و پس از بررسی دقیق طراحی شبکه از آن استفاده کنید.

UplinkFast (در صورت نیاز)

UplinkFast یکی از قابلیت‌های نسخه کلاسیک STP (IEEE 802.1D) است که زمان بازیابی ارتباط را در صورت قطع شدن لینک بالادستی کاهش می‌دهد.

در STP معمولی، پس از قطع شدن لینک اصلی، فعال شدن مسیر جایگزین ممکن است تا ۳۰ ثانیه یا بیشتر طول بکشد. UplinkFast این زمان را به چند ثانیه کاهش می‌دهد.

پیکربندی UplinkFast

Switch(config)# spanning-tree uplinkfast

نکته: این قابلیت فقط در STP کلاسیک کاربرد دارد و در RSTP و MSTP دیگر نیازی به استفاده از آن نیست، زیرا این پروتکل‌ها به‌صورت ذاتی همگرایی سریعی دارند.

BackboneFast (در صورت نیاز)

BackboneFast نیز یکی دیگر از قابلیت‌های STP کلاسیک است که زمان تشخیص خرابی در لینک‌های غیرمستقیم (Indirect Link Failure) را کاهش می‌دهد.

در نسخه‌های اولیه STP، تشخیص برخی خرابی‌ها ممکن بود تا زمان پایان مقدار Max Age به تأخیر بیفتد. BackboneFast با استفاده از مکانیزم‌های اضافی، این تأخیر را کاهش داده و فرآیند همگرایی را سریع‌تر می‌کند.

پیکربندی BackboneFast

Switch(config)# spanning-tree backbonefast

نکته: همانند UplinkFast، در شبکه‌هایی که از RSTP یا MSTP استفاده می‌کنند، نیازی به فعال‌سازی BackboneFast نیست، زیرا این قابلیت‌ها در معماری پروتکل‌های جدید لحاظ شده‌اند.

بهترین روش‌ها (Best Practices)

برای استفاده صحیح از قابلیت‌های تکمیلی STP، رعایت نکات زیر توصیه می‌شود:

  • PortFast را فقط روی پورت‌های متصل به تجهیزات انتهایی فعال کنید.
  • BPDU Guard را روی تمام پورت‌های PortFast فعال کنید تا از اتصال غیرمجاز سوئیچ‌ها جلوگیری شود.
  • روی لینک‌هایی که نباید Root Bridge جدید معرفی کنند، از Root Guard استفاده کنید.
  • برای افزایش پایداری لینک‌های افزونه، Loop Guard را روی پورت‌های مناسب فعال کنید.
  • از BPDU Filter تنها در شرایط خاص و پس از بررسی کامل طراحی شبکه استفاده کنید.
  • در شبکه‌هایی که از RSTP یا MSTP استفاده می‌کنند، نیازی به استفاده از UplinkFast و BackboneFast نیست، زیرا این قابلیت‌ها به‌صورت ذاتی در این پروتکل‌ها پیاده‌سازی شده‌اند.

قابلیت‌های تکمیلی STP نقش مهمی در افزایش امنیت، پایداری و کارایی شبکه ایفا می‌کنند. استفاده صحیح از PortFast و BPDU Guard باعث کاهش زمان اتصال تجهیزات انتهایی و جلوگیری از ایجاد حلقه می‌شود. همچنین، Root Guard و Loop Guard از تغییرات ناخواسته در توپولوژی شبکه جلوگیری می‌کنند. در نهایت، هرچند UplinkFast و BackboneFast در شبکه‌های مبتنی بر STP کلاسیک مفید هستند، در طراحی‌های جدید که از RSTP یا MSTP استفاده می‌شود، معمولاً نیازی به پیکربندی آن‌ها وجود ندارد.

 

 

دستورات عیب‌یابی (Troubleshooting)

عیب‌یابی Spanning Tree Protocol (STP) یکی از مهم‌ترین مهارت‌های مدیران شبکه است. با وجود اینکه STP به‌صورت خودکار از ایجاد حلقه در شبکه جلوگیری می‌کند، اما پیکربندی نادرست، خرابی لینک‌ها، انتخاب نامناسب Root Bridge یا تغییرات مکرر در توپولوژی شبکه می‌تواند باعث کاهش کارایی یا حتی اختلال در عملکرد شبکه شود.

سیستم‌عامل Cisco IOS مجموعه‌ای از دستورات را برای بررسی وضعیت STP، تحلیل مشکلات و شناسایی علت بروز خطاها در اختیار مدیران شبکه قرار می‌دهد. در این بخش، مهم‌ترین روش‌های عیب‌یابی و دستورات مرتبط با آن‌ها معرفی می‌شوند.

بررسی خطاهای رایج

بیشتر مشکلات مربوط به STP به دلیل تغییرات ناخواسته در توپولوژی شبکه یا تنظیمات نادرست ایجاد می‌شوند. برخی از رایج‌ترین خطاها عبارت‌اند از:

1. انتخاب اشتباه Root Bridge

گاهی اوقات به دلیل تنظیم نبودن مقدار Priority، یک سوئیچ غیرمناسب به‌عنوان Root Bridge انتخاب می‌شود. این موضوع می‌تواند باعث افزایش هزینه مسیرها و کاهش کارایی شبکه شود.

برای بررسی Root Bridge از دستور زیر استفاده کنید:

Switch# show spanning-tree root

در خروجی این دستور می‌توان سوئیچ Root و هزینه مسیر تا آن را مشاهده کرد.

2. قرار گرفتن پورت در وضعیت Blocking

اگر یک پورت در وضعیت Blocking قرار گرفته باشد، ممکن است مدیر شبکه تصور کند لینک دچار مشکل شده است؛ در حالی که این رفتار طبیعی STP برای جلوگیری از ایجاد حلقه است.

برای بررسی وضعیت پورت‌ها:

Switch# show spanning-tree interface GigabitEthernet0/1

این دستور نقش و وضعیت پورت را نمایش می‌دهد.

3. قرار گرفتن پورت در حالت Err-Disabled

در صورتی که قابلیت BPDU Guard فعال باشد و روی یک پورت PortFast پیام BPDU دریافت شود، آن پورت به حالت Err-Disabled منتقل خواهد شد.

برای مشاهده وضعیت پورت‌ها:

Switch# show interfaces status

برای مشاهده علت Err-Disabled:

Switch# show errdisable recovery

4. تغییر مکرر Root Bridge

اگر Root Bridge به‌طور مداوم تغییر کند، توپولوژی شبکه نیز دائماً تغییر خواهد کرد که این موضوع باعث افزایش زمان همگرایی و ناپایداری شبکه می‌شود.

برای بررسی وضعیت Root Bridge:

Switch# show spanning-tree

تحلیل خروجی دستورات

یکی از مهم‌ترین مراحل عیب‌یابی، تحلیل صحیح خروجی دستورات STP است.

اصلی‌ترین دستور بررسی وضعیت STP عبارت است از:

Switch# show spanning-tree

در خروجی این دستور بخش‌های مهم زیر قابل مشاهده هستند:

Root ID

Root ID
 Priority    4097
 Address     0019.e752.1000
 Cost        4
 Port        1 (GigabitEthernet0/1)

این قسمت نشان می‌دهد:

  • Root Bridge چه سوئیچی است.
  • هزینه مسیر تا Root Bridge چقدر است.
  • ارتباط با Root Bridge از طریق کدام پورت برقرار شده است.

Bridge ID

Bridge ID
 Priority    32769
 Address     0023.5d88.2000

این قسمت اطلاعات مربوط به خود سوئیچ را نمایش می‌دهد.

اگر مقدار Bridge ID با Root ID یکسان باشد، یعنی همان سوئیچ نقش Root Bridge را بر عهده دارد.

وضعیت پورت‌ها

Interface        Role  Sts Cost
Gi0/1            Root  FWD 4
Gi0/2            Desg  FWD 4
Gi0/3            Altn  BLK 4

در این بخش اطلاعات زیر نمایش داده می‌شود:

  • Role: نقش پورت
  • State (Sts): وضعیت پورت
  • Cost: هزینه مسیر

وضعیت‌های متداول عبارت‌اند از:

  • FWD (Forwarding): پورت فعال است.
  • BLK (Blocking): پورت برای جلوگیری از Loop مسدود شده است.
  • DIS (Disabled): پورت غیرفعال است.

رفع مشکلات Loop

ایجاد حلقه در شبکه یکی از مهم‌ترین مشکلات لایه دوم است. در صورت بروز Loop معمولاً علائم زیر مشاهده می‌شود:

  • افزایش شدید ترافیک Broadcast
  • افزایش مصرف CPU سوئیچ
  • ناپایداری جدول MAC
  • کند شدن یا قطع ارتباط کاربران
  • تغییر مداوم وضعیت پورت‌ها

برای بررسی وضعیت کلی STP:

Switch# show spanning-tree

برای بررسی جدول MAC:

Switch# show mac address-table

اگر یک آدرس MAC به‌طور مداوم بین چند پورت جابه‌جا شود، احتمال وجود Loop بسیار زیاد است.

برای مشاهده وضعیت اینترفیس‌ها:

Switch# show interfaces

در صورت مشاهده تعداد زیاد Broadcast یا Multicast، احتمال وجود حلقه افزایش می‌یابد.

همچنین می‌توان وضعیت پورت‌هایی که توسط مکانیزم‌های حفاظتی STP مسدود شده‌اند را بررسی کرد:

Switch# show spanning-tree inconsistentports

در صورت فعال بودن قابلیت‌هایی مانند Root Guard یا Loop Guard، این دستور علت مسدود شدن پورت را نمایش می‌دهد.

بررسی وضعیت تغییر توپولوژی (Topology Change)

هر بار که لینک یا سوئیچی به شبکه اضافه یا از آن حذف شود، STP تغییر توپولوژی (Topology Change) را تشخیص می‌دهد و اطلاعات خود را به‌روزرسانی می‌کند.

تعداد زیاد تغییرات توپولوژی معمولاً نشان‌دهنده یکی از مشکلات زیر است:

  • قطع و وصل شدن مکرر یک لینک
  • خرابی کابل یا ماژول
  • ناپایداری یک سوئیچ
  • تنظیمات نادرست PortFast
  • ایجاد Loop

برای مشاهده اطلاعات مربوط به تغییر توپولوژی:

Switch# show spanning-tree detail

در خروجی این دستور اطلاعاتی مشابه زیر مشاهده می‌شود:

Number of topology changes 12
Time since last topology change 00:04:15
Occurred on GigabitEthernet0/2

این اطلاعات نشان می‌دهد:

  • چند بار تغییر توپولوژی رخ داده است.
  • آخرین تغییر چه زمانی اتفاق افتاده است.
  • تغییر از طریق کدام پورت ایجاد شده است.

اگر تعداد Topology Change به‌طور مداوم افزایش پیدا کند، باید وضعیت همان پورت و تجهیز متصل به آن بررسی شود.

استفاده از دستورات Debug

در برخی شرایط که با دستورات معمولی امکان تشخیص مشکل وجود ندارد، می‌توان از دستورات Debug استفاده کرد. این دستورات اطلاعات لحظه‌ای از عملکرد STP را نمایش می‌دهند.

برای مشاهده پیام‌های STP:

Switch# debug spanning-tree events

برای توقف فرآیند Debug:

Switch# undebug all

یا:

Switch# no debug all

توجه: دستورات Debug بار پردازشی قابل‌توجهی روی سوئیچ ایجاد می‌کنند؛ بنابراین بهتر است فقط در زمان عیب‌یابی و با احتیاط، به‌ویژه در شبکه‌های عملیاتی، از آن‌ها استفاده شوند.

بهترین روش‌های عیب‌یابی STP

برای کاهش زمان عیب‌یابی و جلوگیری از بروز مشکلات، رعایت نکات زیر توصیه می‌شود:

  • وضعیت Root Bridge را به‌صورت دوره‌ای بررسی کنید.
  • برای مشاهده تغییرات توپولوژی، از دستور show spanning-tree detail استفاده کنید.
  • فعال بودن PortFast را فقط روی پورت‌های متصل به تجهیزات انتهایی بررسی و تأیید کنید.
  • قابلیت BPDU Guard را روی پورت‌های PortFast فعال نگه دارید.
  • در صورت مشاهده تغییرات مکرر توپولوژی، کابل‌ها، ماژول‌ها و وضعیت لینک‌ها را بررسی کنید.
  • در شبکه‌های بزرگ، گزارش‌های مربوط به STP را به‌صورت دوره‌ای ثبت و تحلیل کنید.

 

عیب‌یابی صحیح STP نقش مهمی در حفظ پایداری شبکه‌های لایه دوم دارد. با استفاده از دستوراتی مانند show spanning-tree، show spanning-tree detail، show spanning-tree root و show spanning-tree inconsistentports می‌توان وضعیت پروتکل، نقش پورت‌ها، تغییرات توپولوژی و مشکلات احتمالی را بررسی کرد. همچنین، بهره‌گیری آگاهانه از دستورات Debug در شرایط خاص، به شناسایی سریع‌تر مشکلات کمک می‌کند و مدیر شبکه را در حفظ عملکرد پایدار و بدون حلقه شبکه یاری می‌دهد.

 

 

 

سناریوی عملی پیکربندی Spanning Tree

پس از آشنایی با مفاهیم، دستورات و قابلیت‌های مختلف Spanning Tree Protocol (STP)، بهترین روش برای درک عملکرد این پروتکل، پیاده‌سازی آن در یک سناریوی واقعی است. در این بخش، یک سناریوی عملی شامل طراحی توپولوژی، پیکربندی گام‌به‌گام و بررسی عملکرد STP ارائه می‌شود تا نحوه انتخاب Root Bridge، جلوگیری از ایجاد Loop و فعال شدن مسیرهای جایگزین به‌صورت عملی مشاهده شود.


طراحی توپولوژی

در این سناریو از سه سوئیچ سیسکو با نام‌های SW1، SW2 و SW3 استفاده می‌شود. این سه سوئیچ به گونه‌ای به یکدیگر متصل شده‌اند که یک مسیر حلقوی (Loop) تشکیل می‌شود.

                SW1
              /     \
             /       \
         Gi0/1       Gi0/2
           /           \
         SW2 --------- SW3
              Gi0/3

در این توپولوژی:

  • هر سه سوئیچ عضو VLAN 1 هستند.
  • بین سوئیچ‌ها سه لینک ارتباطی وجود دارد.
  • بدون استفاده از STP، این ساختار باعث ایجاد Loop خواهد شد.
  • هدف این سناریو، انتخاب SW1 به‌عنوان Root Bridge و جلوگیری از ایجاد حلقه است.

مرحله اول: بررسی وضعیت اولیه

پس از اتصال سوئیچ‌ها، ابتدا وضعیت فعلی STP را بررسی می‌کنیم.

روی هر سه سوئیچ دستور زیر را اجرا کنید:

Switch# show spanning-tree

در این مرحله ممکن است یکی از سوئیچ‌ها به‌صورت خودکار به عنوان Root Bridge انتخاب شده باشد.

برای مشاهده Root Bridge:

Switch# show spanning-tree root

اگر SW1 به‌عنوان Root Bridge انتخاب نشده باشد، در مرحله بعد آن را به‌صورت دستی تعیین می‌کنیم.

مرحله دوم: انتخاب Root Bridge

روی سوئیچ SW1 دستور زیر را اجرا کنید:

SW1(config)# spanning-tree vlan 1 root primary

یا می‌توان Priority را به‌صورت دستی تنظیم کرد:

SW1(config)# spanning-tree vlan 1 priority 4096

برای تعیین Root Bridge پشتیبان روی SW2:

SW2(config)# spanning-tree vlan 1 root secondary

اکنون دوباره وضعیت را بررسی کنید:

Switch# show spanning-tree

در خروجی باید مشاهده شود که SW1 به‌عنوان Root Bridge انتخاب شده است.

مرحله سوم: بررسی نقش پورت‌ها

اکنون نقش هر پورت را بررسی می‌کنیم.

Switch# show spanning-tree

در خروجی معمولاً وضعیت زیر مشاهده می‌شود:

  • تمامی پورت‌های SW1 در نقش Designated Port قرار دارند.
  • روی SW2 یک Root Port وجود دارد.
  • روی SW3 نیز یک Root Port مشاهده می‌شود.
  • یکی از لینک‌های اضافی در حالت Alternate یا Blocking قرار می‌گیرد.

نمونه خروجی:

Interface        Role  State
Gi0/1            Root  FWD
Gi0/2            Desg  FWD
Gi0/3            Altn  BLK

این وضعیت نشان می‌دهد که STP برای جلوگیری از ایجاد Loop یکی از مسیرها را مسدود کرده است.

مرحله چهارم: فعال‌سازی PortFast

فرض کنید پورت GigabitEthernet0/10 به یک رایانه متصل است.

ابتدا وارد تنظیمات پورت شوید:

SW1(config)# interface GigabitEthernet0/10

سپس PortFast را فعال کنید:

SW1(config-if)# spanning-tree portfast

برای افزایش امنیت نیز BPDU Guard را فعال کنید:

SW1(config-if)# spanning-tree bpduguard enable

وضعیت پورت را بررسی کنید:

Switch# show spanning-tree interface GigabitEthernet0/10 detail

مرحله پنجم: شبیه‌سازی خرابی لینک

برای مشاهده عملکرد STP هنگام قطع لینک، یکی از لینک‌های فعال را غیرفعال کنید.

برای مثال روی SW2:

SW2(config)# interface GigabitEthernet0/1
SW2(config-if)# shutdown

چند ثانیه بعد دستور زیر را اجرا کنید:

Switch# show spanning-tree

در این مرحله مشاهده خواهید کرد که:

  • پورتی که قبلاً در حالت Blocking یا Alternate قرار داشت، به حالت Forwarding تغییر می‌کند.
  • ارتباط شبکه بدون ایجاد Loop همچنان برقرار خواهد بود.

این رفتار نشان‌دهنده عملکرد صحیح STP در استفاده از مسیرهای افزونه است.

مرحله ششم: بررسی تغییر توپولوژی

پس از قطع یا وصل شدن لینک، تغییر توپولوژی توسط STP ثبت می‌شود.

برای مشاهده این تغییرات:

Switch# show spanning-tree detail

نمونه خروجی:

Number of topology changes 3
Time since last topology change 00:00:25
Occurred on GigabitEthernet0/1

این اطلاعات نشان می‌دهد:

  • چند بار توپولوژی تغییر کرده است.
  • آخرین تغییر چه زمانی رخ داده است.
  • تغییر از طریق کدام پورت ایجاد شده است.

مرحله هفتم: اعتبارسنجی تنظیمات

پس از پایان پیکربندی، لازم است تمامی تنظیمات بررسی شوند.

برای این منظور دستورات زیر را اجرا کنید:

بررسی وضعیت کلی STP:

Switch# show spanning-tree

بررسی Root Bridge:

Switch# show spanning-tree root

بررسی وضعیت یک پورت:

Switch# show spanning-tree interface GigabitEthernet0/1

بررسی تغییرات توپولوژی:

Switch# show spanning-tree detail

نتایج مورد انتظار

در پایان این سناریو باید نتایج زیر مشاهده شود:

  • سوئیچ SW1 به‌عنوان Root Bridge انتخاب شده است.
  • در هر سوئیچ تنها یک Root Port وجود دارد.
  • یکی از لینک‌های افزونه در حالت Blocking یا Alternate قرار گرفته است.
  • هیچ حلقه‌ای (Loop) در شبکه ایجاد نمی‌شود.
  • در صورت قطع لینک اصلی، مسیر جایگزین به‌صورت خودکار فعال می‌شود.
  • ارتباط بین سوئیچ‌ها بدون نیاز به دخالت مدیر شبکه حفظ می‌شود.
  • قابلیت PortFast روی پورت‌های متصل به تجهیزات انتهایی فعال است.
  • BPDU Guard از اتصال غیرمجاز سوئیچ‌ها به پورت‌های کاربران جلوگیری می‌کند.

پیاده‌سازی عملی STP بهترین راه برای درک نحوه عملکرد این پروتکل است. در این سناریو مشاهده شد که چگونه با انتخاب صحیح Root Bridge، تعیین نقش پورت‌ها و استفاده از قابلیت‌هایی مانند PortFast و BPDU Guard می‌توان شبکه‌ای پایدار، بدون حلقه و دارای مسیرهای افزونه ایجاد کرد. همچنین مشخص شد که STP در صورت بروز خرابی، به‌طور خودکار توپولوژی شبکه را بازسازی کرده و با فعال‌سازی مسیر جایگزین، از قطع ارتباط جلوگیری می‌کند. این ویژگی‌ها، STP را به یکی از مهم‌ترین پروتکل‌های لایه دوم در طراحی شبکه‌های سازمانی تبدیل کرده‌اند.

 

 

بهترین روش‌ها (Best Practices) در طراحی و پیاده‌سازی Spanning Tree

پیکربندی صحیح Spanning Tree Protocol (STP) تنها به فعال‌سازی این پروتکل محدود نمی‌شود، بلکه نحوه طراحی شبکه، انتخاب تجهیزات مناسب و استفاده صحیح از قابلیت‌های امنیتی آن نیز تأثیر مستقیمی بر پایداری و عملکرد شبکه دارد.

رعایت Best Practiceهای مربوط به STP باعث کاهش احتمال ایجاد Loop، افزایش سرعت همگرایی، جلوگیری از تغییرات ناخواسته توپولوژی و ساده‌تر شدن فرآیند عیب‌یابی شبکه می‌شود. در ادامه مهم‌ترین نکات پیشنهادی در طراحی و مدیریت STP بررسی می‌شوند.

انتخاب صحیح Root Bridge

Root Bridge مهم‌ترین عنصر در ساختار STP است، زیرا تمام محاسبات مسیرها بر اساس آن انجام می‌شود. انتخاب نامناسب Root Bridge می‌تواند باعث شود مسیرهای شبکه بهینه نباشند و ترافیک از مسیرهای طولانی‌تر عبور کند.

در حالت پیش‌فرض، سوئیچی که کمترین Bridge ID را داشته باشد به‌عنوان Root Bridge انتخاب می‌شود؛ اما در شبکه‌های سازمانی بهتر است این انتخاب توسط مدیر شبکه به‌صورت دستی انجام شود.

نکات مهم در انتخاب Root Bridge:

  • Root Bridge را روی سوئیچی انتخاب کنید که:
    • توان پردازشی بالاتری دارد.
    • در مرکز توپولوژی شبکه قرار دارد.
    • دارای لینک‌های پرسرعت و پایدار است.
    • از نظر فیزیکی و منطقی محل مناسبی در شبکه دارد.
  • از انتخاب سوئیچ‌های Access به‌عنوان Root Bridge جلوگیری کنید، زیرا این سوئیچ‌ها معمولاً برای اتصال کاربران طراحی شده‌اند.
  • برای افزایش پایداری، یک سوئیچ دیگر را به‌عنوان Root Bridge پشتیبان (Secondary Root) مشخص کنید.

نمونه تنظیم Root Bridge اصلی:

Switch(config)# spanning-tree vlan 1 root primary

نمونه تنظیم Root Bridge پشتیبان:

Switch(config)# spanning-tree vlan 1 root secondary

توصیه عملی:

در شبکه‌های دارای چندین VLAN بهتر است Root Bridge برای VLANهای مختلف توزیع شود تا از تمام ظرفیت لینک‌ها استفاده شود. برای مثال:

  • SW1 → Root Bridge برای VLAN 10
  • SW2 → Root Bridge برای VLAN 20

این روش باعث ایجاد Load Balancing در شبکه می‌شود.

استفاده از قابلیت‌های امنیتی STP

STP علاوه بر جلوگیری از Loop، دارای قابلیت‌های امنیتی مختلفی است که از تغییرات ناخواسته توپولوژی جلوگیری می‌کنند. استفاده صحیح از این قابلیت‌ها باعث افزایش امنیت شبکه و کاهش خطاهای انسانی می‌شود.

استفاده از PortFast

قابلیت PortFast باید روی پورت‌هایی فعال شود که به تجهیزات انتهایی مانند:

  • کامپیوترها
  • پرینترها
  • دوربین‌های تحت شبکه
  • تلفن‌های IP

متصل هستند.

مزیت PortFast:

  • کاهش زمان انتظار هنگام اتصال تجهیزات.
  • ورود سریع پورت به حالت Forwarding.
  • جلوگیری از تأخیر در دریافت آدرس IP از DHCP.

نمونه تنظیم:

Switch(config-if)# spanning-tree portfast

استفاده از BPDU Guard

یکی از مهم‌ترین قابلیت‌های امنیتی STP، BPDU Guard است.

فرض کنید یک کاربر بدون هماهنگی یک سوئیچ کوچک به شبکه متصل کند. این سوئیچ ممکن است باعث تغییر Root Bridge یا ایجاد Loop شود.

BPDU Guard با دریافت BPDU روی یک پورت کاربری، آن پورت را غیرفعال کرده و از آسیب به شبکه جلوگیری می‌کند.

فعال‌سازی:

Switch(config-if)# spanning-tree bpduguard enable

یا به‌صورت سراسری:

Switch(config)# spanning-tree portfast bpduguard default

استفاده از Root Guard

قابلیت Root Guard برای جلوگیری از انتخاب شدن سوئیچ‌های غیرمجاز به‌عنوان Root Bridge استفاده می‌شود.

این قابلیت معمولاً روی پورت‌هایی فعال می‌شود که به سمت شبکه‌های دیگر یا سوئیچ‌های Access قرار دارند.

در صورت دریافت BPDU با اولویت بهتر، پورت وارد حالت Root-Inconsistent می‌شود.

تنظیم:

Switch(config-if)# spanning-tree guard root

استفاده از Loop Guard

Loop Guard از ایجاد Loop در شرایطی جلوگیری می‌کند که دریافت پیام‌های BPDU به دلیل خرابی لینک یا مشکل یک‌طرفه ارتباطی متوقف شده باشد.

فعال‌سازی:

Switch(config-if)# spanning-tree guard loop

یا به‌صورت کلی:

Switch(config)# spanning-tree loopguard default

نکات طراحی شبکه با STP

طراحی مناسب توپولوژی شبکه تأثیر زیادی بر عملکرد STP دارد. رعایت اصول طراحی باعث می‌شود شبکه سریع‌تر، پایدارتر و قابل مدیریت‌تر باشد.

1. استفاده از پروتکل مناسب STP

انتخاب نسخه مناسب STP باید بر اساس اندازه و نیاز شبکه انجام شود.

  • شبکه‌های کوچک:
    • STP یا RSTP
  • شبکه‌های متوسط و بزرگ:
    • RSTP
  • شبکه‌های سازمانی با تعداد VLAN زیاد:
    • MSTP

در شبکه‌های Cisco معمولاً استفاده از Rapid PVST+ نیز گزینه مناسبی است.

2. استفاده از لینک‌های افزونه به‌صورت کنترل‌شده

وجود لینک‌های اضافی باعث افزایش دسترس‌پذیری شبکه می‌شود، اما باید تحت کنترل STP باشند.

نکات مهم:

  • از ایجاد اتصال‌های حلقوی بدون برنامه‌ریزی خودداری کنید.
  • مسیرهای افزونه را با طراحی مناسب ایجاد کنید.
  • قبل از اضافه کردن لینک جدید، تأثیر آن بر STP بررسی شود.

3. مستندسازی توپولوژی شبکه

مستندسازی صحیح به مدیر شبکه کمک می‌کند تا در زمان بروز مشکل سریع‌تر اقدام کند.

اطلاعاتی که بهتر است ثبت شوند:

  • Root Bridge هر VLAN
  • مسیرهای اصلی و پشتیبان
  • پورت‌های دارای PortFast
  • پورت‌های دارای Root Guard یا Loop Guard
  • ارتباط بین سوئیچ‌ها

4. استفاده از VLAN و STP به‌صورت هماهنگ

در شبکه‌هایی با تعداد VLAN زیاد، بهتر است STP و VLANها به‌صورت اصولی طراحی شوند.

برای مثال:

  • VLANهای کاربران روی یک Root Bridge مشخص
  • VLANهای سرورها روی Root Bridge دیگر

این کار باعث توزیع بهتر ترافیک و استفاده بهینه از لینک‌های شبکه می‌شود.

5. مانیتورینگ مداوم STP

وضعیت STP باید به‌صورت دوره‌ای بررسی شود تا مشکلات قبل از ایجاد اختلال شناسایی شوند.

دستورات کاربردی:

show spanning-tree
show spanning-tree detail
show spanning-tree root

مواردی که باید بررسی شوند:

  • تغییرات مکرر Root Bridge
  • افزایش تعداد Topology Change
  • پورت‌های Block شده غیرمنتظره
  • خطاهای BPDU

رعایت Best Practiceهای مربوط به Spanning Tree باعث می‌شود شبکه‌ای پایدار، امن و قابل اطمینان ایجاد شود. انتخاب صحیح Root Bridge، استفاده از قابلیت‌های امنیتی مانند BPDU Guard، Root Guard و Loop Guard و همچنین طراحی اصولی توپولوژی شبکه، از مهم‌ترین عوامل موفقیت در پیاده‌سازی STP هستند.

یک طراحی مناسب STP نه‌تنها از ایجاد Loop جلوگیری می‌کند، بلکه باعث استفاده بهتر از پهنای باند، کاهش زمان قطعی شبکه و افزایش قابلیت اطمینان زیرساخت شبکه خواهد شد.

 

 

 

جمع‌بندی

پروتکل Spanning Tree Protocol (STP) یکی از مهم‌ترین پروتکل‌های لایه دوم شبکه است که با هدف جلوگیری از ایجاد حلقه (Loop) در شبکه‌های مبتنی بر سوئیچ طراحی شده است. وجود لینک‌های افزونه بین سوئیچ‌ها اگرچه باعث افزایش دسترس‌پذیری و پایداری شبکه می‌شود، اما بدون مکانیزمی مانند STP می‌تواند باعث بروز مشکلاتی مانند Broadcast Storm، ناپایداری جدول MAC و کاهش شدید عملکرد شبکه شود.

در طول این آموزش، با مفاهیم اصلی STP، نحوه عملکرد آن، انواع مختلف این پروتکل و روش‌های پیکربندی آن در تجهیزات Cisco آشنا شدیم. فرآیند انتخاب Root Bridge، تعیین نقش پورت‌ها مانند Root Port و Designated Port و همچنین نحوه قرارگیری پورت‌های اضافی در حالت Blocking از مهم‌ترین بخش‌های عملکرد STP هستند که باعث ایجاد یک توپولوژی بدون حلقه در شبکه می‌شوند.

همچنین نسخه‌های مختلف Spanning Tree مانند STP، RSTP، MSTP و PVST/Rapid PVST+ بررسی شدند. هر کدام از این نسخه‌ها با هدف بهبود سرعت همگرایی، مدیریت بهتر VLANها و افزایش کارایی شبکه توسعه یافته‌اند. در شبکه‌های امروزی، استفاده از نسخه‌های سریع‌تر مانند RSTP و MSTP به دلیل کاهش زمان بازیابی و مدیریت بهتر منابع، بیشتر مورد استفاده قرار می‌گیرد.

در بخش پیکربندی، دستورات مهم Cisco IOS برای مدیریت STP شامل تنظیم Root Bridge، تغییر Priority، تنظیم Path Cost و Port Priority بررسی شد. همچنین قابلیت‌های تکمیلی مانند PortFast، BPDU Guard، Root Guard و Loop Guard معرفی شدند که نقش مهمی در افزایش امنیت، کاهش خطاهای انسانی و جلوگیری از تغییرات ناخواسته توپولوژی دارند.

از دیدگاه مدیریت شبکه، تنها فعال‌سازی STP کافی نیست؛ بلکه طراحی صحیح توپولوژی، انتخاب مناسب Root Bridge، مانیتورینگ مداوم وضعیت پورت‌ها و بررسی تغییرات توپولوژی از عوامل مهم در حفظ پایداری شبکه محسوب می‌شوند. استفاده از دستورات عیب‌یابی مانند:

show spanning-tree
show spanning-tree detail
show spanning-tree root

به مدیران شبکه کمک می‌کند تا مشکلات احتمالی را سریع‌تر شناسایی و برطرف کنند.

در نهایت می‌توان گفت که Spanning Tree Protocol یکی از پایه‌های اصلی طراحی شبکه‌های سوئیچینگ پایدار است. شناخت صحیح مفاهیم، پیکربندی اصولی و استفاده از قابلیت‌های امنیتی آن، امکان ایجاد شبکه‌ای قابل اعتماد، مقاوم در برابر خرابی‌ها و دارای عملکرد بهینه را فراهم می‌کند. به همین دلیل، تسلط بر STP یکی از مهارت‌های ضروری برای مدیران شبکه و متخصصان زیرساخت به شمار می‌رود.