پروتکل Spanning Tree: جلوگیری از حلقه در شبکه‌های سوئیچ‌شده

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

پروتکل Spanning Treeانتخاب Root Bridgeحالت‌های پورت STP

~6 دقیقه مطالعه · آخرین به‌روزرسانی ۱۸ شهریور ۱۴۰۵

چرا لینک‌های افزونه هم ضروری و هم خطرناک هستند

اتصال سوئیچ‌ها، که پیش‌تر در این مجموعه بحث شد، با فقط یک لینک واحد بین آن‌ها یک نقطه شکست واحد ایجاد می‌کند — اگر آن لینک قطع شود، اتصال بین سوئیچ‌ها کاملاً از دست می‌رود. افزودن یک لینک دوم و افزونه این مسئله قابلیت‌اطمینان را حل می‌کند، اما یک مسئله جدی جدید معرفی می‌کند: یک Layer 2 Loop (حلقه لایه ۲).

چرا حلقه‌ها در لایه ۲ فاجعه‌بارند

برخلاف یک بسته IP، که شامل یک فیلد Time to Live (TTL) است که در نهایت منقضی می‌شود و یک بسته در حلقه را دور می‌ریزد، یک فریم اترنت چنین مکانیزمی ندارد. بدون پروتکل Spanning Tree، یک فریم پخش که وارد یک توپولوژی حلقه‌ای می‌شود به‌طور نامحدود می‌چرخد، و به‌طور مکرر از هر پورت سوئیچ تکثیر و دوباره سیلاب می‌شود.

پیشرفت طوفان پخش بدون STP:
۱. یک فریم پخش وارد حلقه می‌شود
۲. سوئیچ A آن را از همه پورت‌ها سیلاب می‌کند،
   شامل لینک افزونه به سوئیچ B
۳. سوئیچ B آن را دوباره از همه پورت‌ها سیلاب می‌کند،
   شامل بازگشت به‌سمت سوئیچ A
۴. این به‌طور نمایی تکرار می‌شود، و تمام
   پهنای باند موجود را در چند ثانیه مصرف می‌کند

پیامد اضافی: بی‌ثباتی جدول آدرس MAC،
چون همان آدرس MAC منبع به‌نظر می‌رسد از چند
پورت مختلف تقریباً هم‌زمان می‌رسد

این شرایط، به نام Broadcast Storm (طوفان پخش)، می‌تواند کل یک شبکه سوئیچ‌شده را در چند ثانیه پس از تشکیل یک حلقه کاملاً غیرقابل‌استفاده کند — که جلوگیری از حلقه را به یکی از حیاتی‌ترین عملکردهایی که هر شبکه لایه ۲ باید پیاده‌سازی کند تبدیل می‌کند.

پروتکل Spanning Tree چگونه این را حل می‌کند

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

گام اول: انتخاب یک Root Bridge

هر توپولوژی STP با انتخاب یک Root Bridge (بریج ریشه) واحد شروع می‌شود — نقطه مرجعی که هر سوئیچ دیگر بهترین مسیرش به‌سمت آن را محاسبه می‌کند.

انتخاب root bridge بر اساس Bridge ID است:
Bridge ID = اولویت (پیش‌فرض 32768) + آدرس MAC

سوئیچ با کمترین Bridge ID به
root bridge تبدیل می‌شود — اولویت کمتر
اول برنده می‌شود، و آدرس MAC هر تساوی اولویت را می‌شکند

-- تأثیرگذاری روی انتخاب root bridge با کاهش اولویت
Switch(config)# spanning-tree vlan 10 priority 4096

-- یک میان‌بر رایج که اولویت را به‌طور خودکار
-- کمتر از root فعلی تنظیم می‌کند
Switch(config)# spanning-tree vlan 10 root primary

تنظیم عمدی اولویت روی یک سوئیچ خاص و به‌خوبی‌موقعیت‌یافته، عمل استاندارد در شبکه‌های تولیدی است، چون رهاکردن کامل انتخاب root bridge به شانس (فقط بر اساس آدرس MAC) می‌تواند منجر به یک سوئیچ ضعیف‌موقعیت یا کم‌قدرت شود که root می‌شود، و مسیرهای ترافیک غیربهینه در سراسر شبکه ایجاد می‌کند.

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

وقتی root bridge برقرار شد، هر سوئیچ دیگر Root Port (پورت ریشه) خودش (بهترین مسیر واحد به‌سمت root، بر اساس هزینه مسیر تجمعی) و برای هر سگمنت شبکه، یک Designated Port (پورت تعیین‌شده) (بهترین مسیر رو‌به‌جلو از root برای آن سگمنت) را تعیین می‌کند. هر پورتی که نه root port است و نه designated port، یک Blocking Port (پورت مسدود) می‌شود — فیزیکاً متصل باقی می‌ماند اما ترافیک معمولی را فوروارد نمی‌کند، و حلقه را حذف می‌کند.

هزینه مسیر بر اساس سرعت لینک است:
10 Mbps:   هزینه 100
100 Mbps:  هزینه 19
1 Gbps:    هزینه 4
10 Gbps:   هزینه 2

یک سوئیچ root port خودش را با یافتن
مسیر به root bridge با کمترین هزینه
تجمعی کل در سراسر همه هاپ‌ها انتخاب می‌کند

حالت‌های پورت STP

یک پورت بلافاصله به فوروارد‌کردن ترافیک نمی‌پرد؛ از میان یک توالی حالت پیش می‌رود که برای جلوگیری از حلقه‌های موقت در طول همگرایی اولیه توپولوژی یا پس از یک تغییر طراحی شده‌اند.

Blocking:    فقط BPDU ها را دریافت می‌کند، ترافیک را فوروارد
             نمی‌کند یا آدرس‌های MAC را یاد نمی‌گیرد (تایمر حداکثر سن 20 ثانیه)
Listening:   شروع به مشارکت در محاسبات STP می‌کند،
             همچنان فوروارد یا یادگیری نمی‌کند (15 ثانیه)
Learning:    شروع به یادگیری آدرس‌های MAC می‌کند، همچنان
             ترافیک را فوروارد نمی‌کند (15 ثانیه)
Forwarding:  کاملاً عملیاتی، ترافیک را به‌طور معمول فوروارد می‌کند

زمان همگرایی کل در STP کلاسیک 802.1D:
تا 50 ثانیه — یک تأخیر قابل‌توجه دنیای واقعی

این زمان همگرایی کند یک محدودیت عملی بزرگ STP اصلی بود، که مستقیماً Rapid Spanning Tree Protocol (RSTP, 802.1w) سریع‌تر را که تقریباً به‌طور جهانی در شبکه‌های مدرن استفاده می‌شود انگیزه داد، که همگرایی را در چند ثانیه به‌جای ده‌ها ثانیه از طریق یک ماشین‌حالت اساساً بازبینی‌شده و مذاکره پیشگیرانه بین سوئیچ‌ها به دست می‌آورد.

تأیید عملیات Spanning Tree

Switch# show spanning-tree vlan 10

VLAN0010
  Spanning tree enabled protocol rstp
  Root ID    Priority    4096
             Address     0050.56aa.1111
             This bridge is the root

  Bridge ID  Priority    4096
             Address     0050.56aa.1111

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

این خروجی مستقیماً مفاهیم پوشش‌داده‌شده در بالا را تأیید می‌کند: root bridge را شناسایی می‌کند، اولویت خود این سوئیچ را نشان می‌دهد، و نقش هر پورت (Root، Desg برای تعیین‌شده، یا Altn برای جایگزین/مسدود) و حالت فعلی‌اش را فهرست می‌کند — مهم‌ترین دستور واحد برای تشخیص هر حلقه لایه ۲ مشکوک یا رفتار توپولوژی غیرمنتظره.

چرا درک STP ضروری است، نه اختیاری

Spanning Tree به‌طور پیش‌فرض به‌طور خودکار روی سوئیچ‌های سیسکو اجرا می‌شود، و بسیاری مدیران هرگز صراحتاً آن را پیکربندی نمی‌کنند — اما درک دقیق اینکه انتخاب root bridge، نقش‌های پورت، و حالت‌های پورت چگونه کار می‌کنند برای دو دلیل حیاتی ضروری است: طراحی درست توپولوژی‌های افزونه که به‌طور قابل‌پیش‌بینی failover می‌کنند، و تشخیص سریع مسائل اتصال متناوب و سخت-برای-بازتولید که وقتی STP به‌طور غیرمنتظره رفتار می‌کند رخ می‌دهند، مانند پس از اینکه یک سوئیچ نادرست‌پیکربندی‌شده یا معیوب به یک توپولوژی در غیر این صورت پایدار معرفی می‌شود.

نوشته و پژوهش‌شده توسط دکتر شاهین صیامی

مقالات مرتبط

ترجمه آدرس شبکه: اشتراک‌گذاری آدرس‌های IP عمومی

تأمین محدود آدرس‌های IPv4 عمومی باعث شد غیرممکن باشد هر دستگاه در سراسر جهان آدرس یکتای جهانی خودش را داشته باشد، و NAT این را با اجازه‌دادن به بسیاری دستگاه خصوصی برای اشتراک‌گذاری تعداد کمی آدرس عمومی حل کرد. این مقاله سه نوع اصلی NAT را توضیح می‌دهد، پیکربندی static NAT، dynamic NAT، و PAT روی یک روتر سیسکو را مرور می‌کند، و دستورات ضروری برای تأیید ترجمه‌های فعال را پوشش می‌دهد.

ادامه

لیست‌های کنترل دسترسی: فیلترکردن ترافیک روی روترهای سیسکو

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

ادامه

DHCP و DNS: آدرس‌دهی خودکار و تفکیک نام

پیکربندی دستی یک آدرس IP روی هر دستگاه مقیاس‌پذیر نیست، و به‌خاطرسپاری آدرس‌های IP عددی برای هر سرویس غیرعملی است، به همین دلیل DHCP و DNS به‌عنوان سرویس‌های پشتیبان ضروری در تقریباً هر شبکه‌ای وجود دارند. این مقاله توضیح می‌دهد DHCP چگونه به‌طور خودکار اطلاعات آدرس‌دهی IP را اختصاص می‌دهد، پیکربندی یک دستگاه سیسکو به‌عنوان یک سرور DHCP یا عامل رله را پوشش می‌دهد، و توضیح می‌دهد DNS چگونه نام‌های قابل‌فهم برای انسان را به آدرس‌های IP تبدیل می‌کند.

ادامه

مسیریابی بین-VLAN: اتصال VLAN ها با Router-on-a-Stick و SVI

VLAN ها دامنه‌های پخش را از یکدیگر در لایه ۲ ایزوله می‌کنند، اما اپلیکیشن‌های واقعی همچنان نیاز دارند دستگاه‌ها در VLAN های مختلف با یکدیگر ارتباط برقرار کنند، که نیازمند مسیریابی بین آن‌ها در لایه ۳ است. این مقاله رویکرد قدیمی router-on-a-stick با استفاده از زیراینترفیس‌ها، رویکرد مدرن‌تر و مقیاس‌پذیرتر Switch Virtual Interface روی سوئیچ‌های لایه ۳، و دستورات پیکربندی و تأیید ضروری برای هر دو را توضیح می‌دهد.

ادامه

EtherChannel: ترکیب چند لینک در یک اتصال منطقی واحد

به‌جای انتخاب بین افزونگی و پهنای باند، EtherChannel چند لینک فیزیکی را در یک اتصال منطقی واحد ترکیب می‌کند که هر دو را هم‌زمان فراهم می‌کند، بدون اینکه Spanning Tree هیچ‌کدام از لینک‌ها را مسدود کند. این مقاله توضیح می‌دهد EtherChannel چگونه پورت‌ها را با هم بسته‌بندی می‌کند، پروتکل‌های مذاکره PAgP و LACP مورد استفاده برای تشکیل امن یک بسته را مقایسه می‌کند، و دستورات پیکربندی و تأیید ضروری را پوشش می‌دهد.

ادامه

VLAN و ترانک: بخش‌بندی شبکه‌های سوئیچ‌شده

یک VLAN یک سوئیچ فیزیکی واحد را به چند دامنه پخش از نظر منطقی جداگانه تقسیم می‌کند، که ایزوله‌سازی ترافیک و انعطاف‌پذیری سازمانی را بدون سخت‌افزار اضافی امکان‌پذیر می‌کند. این مقاله توضیح می‌دهد یک VLAN واقعاً چیست، چگونه VLAN ها ساخته و پورت‌ها به آن‌ها اختصاص می‌یابند، لینک‌های ترانک چگونه ترافیک چند VLAN را روی یک اتصال فیزیکی واحد با استفاده از تگ‌گذاری 802.1Q حمل می‌کنند، و دستورات تأیید ضروری مورد استفاده برای تأیید پیکربندی درست را پوشش می‌دهد.

ادامه