Spanning Tree چیست و دستورات تنظیم آن

مقدمه

Spanning Tree چیست و دستورات تنظیم آن

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

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

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

 

 

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

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

در شبکه‌هایی که برای افزایش پایداری و قابلیت اطمینان از مسیرهای ارتباطی اضافی (Redundant Links) استفاده می‌شود، احتمال ایجاد حلقه وجود دارد. وجود حلقه باعث می‌شود فریم‌های اترنت به‌طور مداوم در شبکه گردش کنند و مشکلاتی مانند طوفان برودکست (Broadcast Storm)، ارسال چندباره فریم‌ها، ناپایداری جدول آدرس‌های MAC و کاهش شدید عملکرد شبکه ایجاد شود.

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

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

امروزه علاوه بر نسخه استاندارد STP، نسخه‌های پیشرفته‌تری مانند RSTP (Rapid Spanning Tree Protocol) و MSTP (Multiple Spanning Tree Protocol) نیز توسعه یافته‌اند که زمان همگرایی (Convergence Time) را کاهش داده و عملکرد شبکه را بهبود می‌بخشند.

 

 

ضرورت استفاده از Spanning Tree در شبکه

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

ایجاد حلقه در شبکه یکی از مهم‌ترین مشکلات شبکه‌های سوئیچ‌شده است. از آنجا که فریم‌های اترنت دارای مکانیزمی برای محدود کردن تعداد دفعات گردش در شبکه نیستند، در صورت وجود حلقه، فریم‌ها بارها و بارها بین سوئیچ‌ها جابه‌جا می‌شوند. این موضوع باعث بروز مشکلات متعددی می‌شود که از مهم‌ترین آن‌ها می‌توان به موارد زیر اشاره کرد:

  • ایجاد طوفان برودکست (Broadcast Storm): بسته‌های Broadcast به‌طور مداوم در شبکه منتشر شده و بخش زیادی از پهنای باند را اشغال می‌کنند.
  • دریافت چندباره فریم‌ها (Duplicate Frames): یک فریم ممکن است از مسیرهای مختلف به مقصد برسد و باعث پردازش تکراری اطلاعات شود.
  • ناپایداری جدول آدرس‌های MAC: سوئیچ‌ها به دلیل دریافت یک آدرس MAC از چندین پورت مختلف، نمی‌توانند محل صحیح دستگاه‌ها را تشخیص دهند و جدول MAC به‌طور مداوم تغییر می‌کند.
  • کاهش کارایی شبکه: افزایش ترافیک غیرضروری موجب کاهش سرعت، افزایش تأخیر و حتی از کار افتادن شبکه می‌شود.

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

یکی دیگر از مزایای مهم STP، حفظ افزونگی شبکه است. اگر یکی از لینک‌های فعال به هر دلیلی قطع شود، پروتکل به‌صورت خودکار یکی از لینک‌های مسدودشده را فعال می‌کند تا ارتباط شبکه بدون نیاز به تنظیمات دستی ادامه یابد. این ویژگی موجب افزایش پایداری (Stability)، دسترس‌پذیری (Availability) و قابلیت اطمینان (Reliability) شبکه می‌شود.

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

 

 

نحوه عملکرد پروتکل Spanning Tree

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

مراحل عملکرد پروتکل STP به شرح زیر است:

1. انتخاب Root Bridge

اولین مرحله در عملکرد STP، انتخاب یک سوئیچ به‌عنوان Root Bridge است. تمامی سوئیچ‌های شبکه در ابتدا پیام‌های BPDU را برای یکدیگر ارسال می‌کنند و سوئیچی که کمترین مقدار Bridge ID (BID) را داشته باشد، به‌عنوان Root Bridge انتخاب می‌شود.

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

  • Bridge Priority (اولویت سوئیچ)
  • MAC Address سوئیچ

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

2. انتخاب Root Port

پس از مشخص شدن Root Bridge، هر سوئیچ غیر از Root Bridge باید بهترین مسیر برای رسیدن به آن را انتخاب کند. پورتی که کمترین هزینه مسیر (Path Cost) را تا Root Bridge داشته باشد، به‌عنوان Root Port انتخاب می‌شود.

اگر دو مسیر هزینه یکسانی داشته باشند، STP با استفاده از معیارهایی مانند Bridge ID و Port ID بهترین مسیر را انتخاب می‌کند.

3. انتخاب Designated Port

در هر بخش (Segment) از شبکه، یک پورت به‌عنوان Designated Port انتخاب می‌شود. این پورت مسئول ارسال و دریافت فریم‌ها در آن بخش از شبکه است و در حالت Forwarding قرار می‌گیرد. انتخاب این پورت بر اساس کمترین هزینه مسیر تا Root Bridge انجام می‌شود.

4. مسدود کردن مسیرهای اضافی

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

5. واکنش به تغییرات شبکه

اگر یکی از لینک‌های فعال قطع شود یا سوئیچ جدیدی به شبکه اضافه شود، STP دوباره وضعیت شبکه را بررسی می‌کند. در این شرایط، پروتکل ممکن است یکی از پورت‌های مسدودشده را فعال کند تا ارتباط بین سوئیچ‌ها برقرار بماند. این فرآیند همگرایی (Convergence) نام دارد.

وضعیت (State) پورت‌ها در STP

پورت‌های STP در هنگام راه‌اندازی و تغییر توپولوژی، از چندین وضعیت عبور می‌کنند:

  • Blocking: پورت فقط پیام‌های BPDU را دریافت می‌کند و هیچ داده‌ای را ارسال یا دریافت نمی‌کند.
  • Listening: پورت اطلاعات مربوط به توپولوژی شبکه را بررسی می‌کند، اما هنوز داده‌ای منتقل نمی‌کند.
  • Learning: پورت شروع به یادگیری آدرس‌های MAC می‌کند، اما همچنان فریم‌های داده را ارسال نمی‌کند.
  • Forwarding: پورت به‌طور کامل فعال است و داده‌ها را ارسال و دریافت می‌کند.
  • Disabled: پورت غیرفعال بوده و در فرآیند STP شرکت نمی‌کند.

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

 

 

 

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

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

1. STP (Spanning Tree Protocol)

STP نسخه اولیه پروتکل Spanning Tree است که بر اساس استاندارد IEEE 802.1D طراحی شده است. وظیفه اصلی این پروتکل جلوگیری از ایجاد حلقه در شبکه‌های مبتنی بر سوئیچ است. STP با انتخاب یک Root Bridge و مسدود کردن مسیرهای اضافی، یک توپولوژی منطقی بدون حلقه ایجاد می‌کند.

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

ویژگی‌های STP:

  • مبتنی بر استاندارد IEEE 802.1D
  • جلوگیری از ایجاد حلقه در شبکه
  • مناسب برای شبکه‌های کوچک و ساده
  • زمان همگرایی نسبتاً زیاد

2. RSTP (Rapid Spanning Tree Protocol)

RSTP نسخه بهبودیافته STP است که با استاندارد IEEE 802.1w معرفی شد. مهم‌ترین هدف این نسخه، کاهش زمان همگرایی و افزایش سرعت بازیابی شبکه پس از بروز خرابی است.

در RSTP، زمان همگرایی معمولاً به کمتر از یک ثانیه تا چند ثانیه کاهش یافته است. همچنین این پروتکل از مکانیزم‌های جدیدی برای تعیین وضعیت پورت‌ها و برقراری سریع‌تر ارتباط استفاده می‌کند.

ویژگی‌های RSTP:

  • مبتنی بر استاندارد IEEE 802.1w
  • همگرایی بسیار سریع‌تر نسبت به STP
  • کاهش زمان قطعی شبکه هنگام خرابی لینک
  • سازگار با STP

3. MSTP (Multiple Spanning Tree Protocol)

MSTP که بر اساس استاندارد IEEE 802.1s توسعه یافته است، امکان ایجاد چندین نمونه (Instance) از Spanning Tree را در یک شبکه فراهم می‌کند.

در شبکه‌هایی که از VLAN استفاده می‌شود، اجرای یک Spanning Tree مستقل برای هر VLAN باعث افزایش مصرف منابع سوئیچ می‌شود. MSTP این مشکل را با گروه‌بندی چند VLAN در یک نمونه Spanning Tree برطرف می‌کند. به این ترتیب، تعداد پردازش‌ها کاهش یافته و عملکرد شبکه بهبود پیدا می‌کند.

ویژگی‌های MSTP:

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

4. PVST (Per VLAN Spanning Tree)

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

این ویژگی باعث می‌شود مدیر شبکه بتواند مسیرهای متفاوتی را برای VLANهای مختلف انتخاب کرده و توازن بار (Load Balancing) بهتری در شبکه ایجاد کند. البته اجرای یک STP جداگانه برای هر VLAN باعث افزایش مصرف پردازنده و حافظه سوئیچ می‌شود.

ویژگی‌های PVST:

  • فناوری اختصاصی Cisco
  • یک نمونه STP برای هر VLAN
  • امکان انتخاب Root Bridge مستقل برای هر VLAN
  • مناسب برای شبکه‌های مبتنی بر تجهیزات Cisco

5. Rapid PVST+

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

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

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

  • فناوری اختصاصی Cisco
  • اجرای یک نمونه RSTP برای هر VLAN
  • همگرایی بسیار سریع
  • مناسب برای شبکه‌های بزرگ دارای VLANهای متعدد

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

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

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

 

مزایا و معایب Spanning Tree

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

مزایای Spanning Tree

1. جلوگیری از ایجاد حلقه (Loop Prevention)
مهم‌ترین مزیت STP جلوگیری از ایجاد حلقه در شبکه است. این پروتکل با شناسایی مسیرهای اضافی و قرار دادن آن‌ها در حالت Blocking، از گردش بی‌پایان فریم‌ها در شبکه جلوگیری می‌کند.

2. افزایش پایداری و قابلیت اطمینان شبکه
STP با حفظ لینک‌های افزونه (Redundant Links)، امکان استفاده از مسیرهای جایگزین را در زمان خرابی لینک اصلی فراهم می‌کند. در نتیجه، در صورت بروز مشکل در یکی از مسیرها، ارتباط شبکه با حداقل اختلال ادامه خواهد یافت.

3. جلوگیری از طوفان برودکست (Broadcast Storm)
وجود حلقه در شبکه می‌تواند باعث انتشار بی‌وقفه بسته‌های Broadcast شود که به آن Broadcast Storm گفته می‌شود. STP با حذف حلقه‌ها از بروز این مشکل جلوگیری کرده و عملکرد طبیعی شبکه را حفظ می‌کند.

4. جلوگیری از ناپایداری جدول آدرس‌های MAC
در شبکه‌های دارای حلقه، سوئیچ‌ها ممکن است یک آدرس MAC را از چندین پورت مختلف دریافت کنند که باعث تغییر مداوم جدول MAC می‌شود. STP با حذف حلقه‌ها، از بروز این ناپایداری جلوگیری می‌کند.

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

6. سازگاری با اکثر تجهیزات شبکه
از آنجا که STP یک استاندارد بین‌المللی (IEEE 802.1D) است، اکثر تجهیزات شبکه از تولیدکنندگان مختلف از آن پشتیبانی می‌کنند و می‌توان از آن در محیط‌های گوناگون استفاده کرد.

معایب Spanning Tree

1. زمان همگرایی نسبتاً زیاد در STP
در نسخه استاندارد STP، پس از تغییر توپولوژی شبکه یا قطع شدن یک لینک، ممکن است بین 30 تا 50 ثانیه زمان لازم باشد تا شبکه به حالت پایدار برسد. این تأخیر می‌تواند برای برنامه‌های حساس به زمان مناسب نباشد.

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

3. پیچیدگی در شبکه‌های بزرگ
در شبکه‌های گسترده و دارای تعداد زیادی سوئیچ و VLAN، طراحی، پیکربندی و عیب‌یابی STP می‌تواند پیچیده باشد و نیاز به دانش و تجربه کافی داشته باشد.

4. احتمال انتخاب نامناسب Root Bridge
اگر اولویت (Priority) سوئیچ‌ها به‌درستی تنظیم نشود، ممکن است سوئیچی با توان پردازشی کمتر یا موقعیت نامناسب به‌عنوان Root Bridge انتخاب شود که این موضوع می‌تواند بر عملکرد کلی شبکه تأثیر منفی بگذارد.

5. وابستگی به پیکربندی صحیح
عملکرد مناسب STP به تنظیم صحیح پارامترهایی مانند Bridge Priority، Path Cost و ویژگی‌هایی مانند PortFast و BPDU Guard بستگی دارد. پیکربندی نادرست ممکن است باعث کاهش کارایی یا ایجاد اختلال در شبکه شود.

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

 

 

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

پس از آشنایی با نحوه عملکرد پروتکل Spanning Tree Protocol (STP)، مرحله بعدی پیکربندی و مدیریت این پروتکل بر روی سوئیچ‌ها است. در تجهیزات شرکت Cisco، دستورات مختلفی برای فعال‌سازی، مشاهده وضعیت، تعیین Root Bridge و افزایش امنیت و پایداری STP وجود دارد. در ادامه، مهم‌ترین دستورات پیکربندی این پروتکل به همراه توضیح و نمونه دستور ارائه شده است.

1. فعال‌سازی Spanning Tree

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

Switch(config)# spanning-tree mode rapid-pvst

این دستور، پروتکل Rapid PVST+ را فعال می‌کند که نسبت به STP استاندارد، سرعت همگرایی بسیار بیشتری دارد.

همچنین برای استفاده از سایر حالت‌ها می‌توان از دستورات زیر استفاده کرد:

Switch(config)# spanning-tree mode pvst
Switch(config)# spanning-tree mode mst

2. مشاهده وضعیت Spanning Tree

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

Switch# show spanning-tree

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

Switch# show spanning-tree vlan 10

این دستور اطلاعاتی مانند Root Bridge، Bridge ID، وضعیت پورت‌ها، هزینه مسیر (Path Cost) و نقش هر پورت را نمایش می‌دهد.

3. تنظیم Root Bridge

بهترین روش برای انتخاب Root Bridge، تعیین دستی آن توسط مدیر شبکه است. این کار باعث می‌شود سوئیچ مناسب به‌عنوان مرکز درخت انتخاب شود.

برای تعیین سوئیچ به‌عنوان Root Bridge اصلی:

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

برای تعیین سوئیچ پشتیبان (Secondary Root):

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

در این حالت، اگر Root Bridge اصلی از دسترس خارج شود، سوئیچ ثانویه به‌عنوان Root Bridge انتخاب خواهد شد.

4. تنظیم اولویت (Priority)

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

نمونه دستور:

Switch(config)# spanning-tree vlan 10 priority 4096

مقدار پیش‌فرض Priority برابر 32768 است و باید در مضرب‌های 4096 تنظیم شود.

5. تنظیم هزینه (Port Cost)

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

نمونه دستور:

Switch(config-if)# spanning-tree cost 20

هرچه مقدار Cost کمتر باشد، احتمال انتخاب آن مسیر توسط STP بیشتر خواهد بود.

6. تنظیم PortFast

ویژگی PortFast برای پورت‌هایی استفاده می‌شود که مستقیماً به دستگاه‌های انتهایی مانند رایانه، چاپگر یا سرور متصل هستند.

فعال‌سازی PortFast:

Switch(config-if)# spanning-tree portfast

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

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

7. تنظیم BPDU Guard

BPDU Guard یکی از قابلیت‌های امنیتی STP است که از اتصال غیرمجاز سوئیچ‌ها به پورت‌های دارای PortFast جلوگیری می‌کند.

فعال‌سازی روی یک پورت:

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

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

Switch(config)# spanning-tree portfast bpduguard default

در صورتی که روی این پورت‌ها پیام BPDU دریافت شود، پورت به حالت Err-Disabled منتقل خواهد شد تا از ایجاد حلقه جلوگیری شود.

8. تنظیم Root Guard

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

فعال‌سازی:

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

اگر از سمت این پورت پیام BPDU با اولویت بالاتر دریافت شود، پورت وارد وضعیت Root-Inconsistent شده و تا برطرف شدن مشکل، ترافیک را عبور نخواهد داد.

9. تنظیم Loop Guard

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

فعال‌سازی روی یک پورت:

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

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

Switch(config)# spanning-tree loopguard default

در صورت قطع دریافت BPDU، پورت وارد وضعیت Loop-Inconsistent می‌شود و از ایجاد حلقه در شبکه جلوگیری خواهد شد.

پیکربندی صحیح پروتکل STP نقش مهمی در افزایش پایداری، امنیت و کارایی شبکه دارد. مدیر شبکه با استفاده از دستوراتی مانند show spanning-tree، تنظیم Root Bridge، تغییر Priority و Cost، و همچنین فعال‌سازی قابلیت‌های امنیتی مانند PortFast، BPDU Guard، Root Guard و Loop Guard می‌تواند از ایجاد حلقه جلوگیری کرده و عملکرد شبکه را بهینه کند. رعایت این تنظیمات، به‌ویژه در شبکه‌های سازمانی و دارای چندین سوئیچ، موجب افزایش قابلیت اطمینان و کاهش احتمال بروز اختلال در ارتباطات خواهد شد.

 

 

 

دستورات عیب‌یابی و بررسی عملکرد Spanning Tree

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

1. مشاهده وضعیت کلی Spanning Tree

رایج‌ترین دستور برای بررسی وضعیت STP، دستور زیر است:

Switch# show spanning-tree

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

  • Root Bridge فعلی
  • Bridge ID سوئیچ
  • وضعیت هر پورت (Forwarding، Blocking و …)
  • نقش هر پورت (Root Port، Designated Port و …)
  • هزینه مسیر (Path Cost)
  • نسخه پروتکل STP مورد استفاده

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

2. بررسی وضعیت STP برای یک VLAN خاص

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

Switch# show spanning-tree vlan 10

این دستور تنها اطلاعات مربوط به VLAN شماره 10 را نمایش می‌دهد و برای عیب‌یابی شبکه‌های دارای چندین VLAN بسیار کاربردی است.

3. بررسی نقش و وضعیت پورت‌ها

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

Switch# show spanning-tree interface gigabitethernet0/1

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

  • وضعیت پورت
  • نقش پورت
  • هزینه مسیر
  • تعداد پیام‌های BPDU ارسال و دریافت‌شده
  • وضعیت قابلیت‌هایی مانند PortFast و BPDU Guard

خواهد بود.

4. مشاهده اطلاعات Root Bridge

برای اطمینان از انتخاب صحیح Root Bridge می‌توان از خروجی دستور زیر استفاده کرد:

Switch# show spanning-tree root

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

5. بررسی وضعیت اینترفیس‌ها

گاهی مشکل STP به دلیل خرابی فیزیکی لینک یا غیرفعال بودن پورت است. برای بررسی وضعیت اینترفیس‌ها از دستور زیر استفاده می‌شود:

Switch# show interfaces status

این دستور وضعیت تمامی پورت‌ها، سرعت، Duplex و وضعیت اتصال آن‌ها را نمایش می‌دهد.

6. بررسی تنظیمات PortFast و BPDU Guard

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

Switch# show spanning-tree summary

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

  • نوع پروتکل STP
  • فعال یا غیرفعال بودن PortFast
  • وضعیت BPDU Guard
  • وضعیت Loop Guard
  • تعداد نمونه‌های STP فعال

7. بررسی پورت‌های غیرفعال (Err-Disabled)

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

Switch# show interfaces status err-disabled

در صورت نیاز نیز می‌توان وضعیت خطا را بررسی کرد:

Switch# show errdisable recovery

8. مشاهده پیام‌های ثبت‌شده (Log)

برای بررسی رویدادهای مربوط به STP و تغییرات توپولوژی شبکه، دستور زیر استفاده می‌شود:

Switch# show logging

این دستور پیام‌هایی مانند تغییر Root Bridge، فعال یا غیرفعال شدن پورت‌ها و رخدادهای امنیتی را نمایش می‌دهد و در تشخیص علت مشکلات بسیار مفید است.

9. بررسی جدول آدرس‌های MAC

یکی از نشانه‌های وجود حلقه، تغییر مداوم محل ثبت آدرس‌های MAC است. برای بررسی این جدول از دستور زیر استفاده می‌شود:

Switch# show mac address-table

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

نکات مهم در عیب‌یابی STP

هنگام عیب‌یابی پروتکل Spanning Tree، رعایت نکات زیر اهمیت زیادی دارد:

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

دستورات عیب‌یابی و بررسی عملکرد STP ابزارهای ضروری برای مدیریت شبکه‌های سوئیچ‌شده هستند. با استفاده از دستوراتی مانند show spanning-tree، show spanning-tree vlan، show interfaces status و show logging، مدیر شبکه می‌تواند وضعیت پروتکل را به‌صورت دقیق بررسی کرده، مشکلات احتمالی را شناسایی و از ایجاد حلقه یا اختلال در ارتباطات جلوگیری کند. استفاده منظم از این دستورات موجب افزایش پایداری، امنیت و کارایی شبکه خواهد شد.

 

 

بهترین روش‌ها (Best Practices) در پیکربندی STP

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

1. تعیین دستی Root Bridge

یکی از مهم‌ترین اقدامات در پیکربندی STP، تعیین دستی Root Bridge است. در صورتی که این کار انجام نشود، سوئیچ‌ها بر اساس مقدار Bridge ID به‌صورت خودکار Root Bridge را انتخاب می‌کنند که ممکن است باعث انتخاب یک سوئیچ نامناسب شود.

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

نمونه دستور:

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

و برای سوئیچ پشتیبان:

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

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

2. استفاده از نسخه‌های جدیدتر STP

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

نمونه دستور:

Switch(config)# spanning-tree mode rapid-pvst

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

3. فعال‌سازی PortFast روی پورت‌های کاربران

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

نمونه دستور:

Switch(config-if)# spanning-tree portfast

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

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

4. استفاده از BPDU Guard برای افزایش امنیت

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

نمونه دستور:

Switch(config)# spanning-tree portfast bpduguard default

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

5. استفاده از Root Guard و Loop Guard

برای افزایش امنیت و جلوگیری از تغییرات ناخواسته در توپولوژی شبکه، استفاده از قابلیت‌های زیر توصیه می‌شود:

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

دستور:

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

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

دستور:

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

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

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

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

  • سوئیچ Root Bridge
  • مسیرهای اصلی و پشتیبان
  • تنظیمات Priority
  • VLANهای فعال
  • پورت‌های دارای PortFast یا قابلیت‌های امنیتی

7. بررسی دوره‌ای وضعیت STP

مدیر شبکه باید به‌صورت منظم وضعیت STP را بررسی کند تا از عملکرد صحیح آن اطمینان حاصل شود.

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

Switch# show spanning-tree
Switch# show spanning-tree summary
Switch# show spanning-tree root

این بررسی‌ها می‌توانند مشکلاتی مانند تغییرات مکرر Root Bridge، خطاهای پورت‌ها یا وجود حلقه‌های احتمالی را شناسایی کنند.

8. استفاده از VLAN و طراحی مناسب شبکه

در شبکه‌های بزرگ بهتر است STP همراه با طراحی صحیح VLAN استفاده شود. با استفاده از روش‌هایی مانند MSTP یا Rapid PVST+ می‌توان مسیرهای شبکه را بهتر مدیریت کرد و از ظرفیت لینک‌ها به شکل مؤثرتری استفاده نمود.

رعایت بهترین روش‌ها در پیکربندی STP باعث افزایش امنیت، کاهش احتمال ایجاد حلقه و بهبود عملکرد شبکه می‌شود. انتخاب صحیح Root Bridge، استفاده از نسخه‌های سریع‌تر STP، فعال‌سازی قابلیت‌های امنیتی مانند BPDU Guard و Root Guard، و بررسی منظم وضعیت شبکه از مهم‌ترین اقداماتی هستند که یک مدیر شبکه باید برای داشتن یک زیرساخت پایدار و قابل اعتماد انجام دهد.

 

 

جمع‌بندی

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

در این تحقیق، ابتدا با مفهوم و ضرورت استفاده از Spanning Tree آشنا شدیم و نحوه عملکرد آن شامل انتخاب Root Bridge، تعیین نقش پورت‌ها و ایجاد مسیر منطقی بدون حلقه بررسی شد. همچنین انواع مختلف این پروتکل مانند STP، RSTP، MSTP، PVST و Rapid PVST+ معرفی شدند که هرکدام برای شرایط و نیازهای مختلف شبکه طراحی شده‌اند.

همچنین دستورات مهم پیکربندی و مدیریت STP در تجهیزات شبکه بررسی شد. تنظیم Root Bridge، تغییر اولویت سوئیچ‌ها، فعال‌سازی PortFast، استفاده از BPDU Guard، Root Guard و Loop Guard از جمله تنظیماتی هستند که به مدیر شبکه کمک می‌کنند تا یک شبکه پایدار، امن و قابل کنترل ایجاد کند.

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

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