حلقه سوئیچینگ (Switching Loop) چیست؟

Switching loop
📅 22 خرداد 1405 📄 479 کلمه 🔗 منبع اصلی

چکیده

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

حلقه سوئیچینگ یا Bridge Loop چیست؟

وقتی در شبکه‌های کامپیوتری بین دو نقطه (Endpoint) بیش از یک مسیر در لایه ۲ وجود داشته باشد، پدیده‌ای به نام حلقه سوئیچینگ رخ می‌دهد؛ مثلاً وقتی دو سوئیچ با چندین کابل به هم وصل شوند یا دو پورت روی یک سوئیچ به یکدیگر متصل شوند. در این حالت، چون سوئیچ‌ها بسته‌های پخش (Broadcast) و چندپخشی (Multicast) را از تمام پورت‌های خود ارسال می‌کنند، این فریم‌ها در حلقه مدام چرخیده و شبکه با طوفان پخش (Broadcast Storm) مواجه می‌شود. از آنجا که هدر لایه ۲ فیلدی به نام زمان حیات (TTL) ندارد، فریمی که وارد چنین توپولوژی شود، تا ابد در شبکه می‌چرخد.

دلیل ایجاد حلقه‌های فیزیکی

وجود مسیرهای فیزیکی اضافی برای ایجاد افزونگی (Redundancy) و پایداری شبکه بسیار جذاب است؛ اما یک شبکه سوئیچی نباید حلقه داشته باشد. راه‌حل این مشکل آن است که حلقه‌های فیزیکی را حفظ کنیم، اما با استفاده از فناوری‌هایی مانند تجمیع لینک (Link Aggregation)، پل‌زنی کوتاه‌ترین مسیر (Shortest Path Bridging)، پروتکل درخت پوشا (Spanning Tree Protocol) یا TRILL، یک توپولوژی منطقی بدون حلقه روی سوئیچ‌ها بسازیم.

طوفان پخش (Broadcast Storm)

وقتی بسته‌های پخش در حلقه سوئیچینگ قرار می‌گیرند، وضعیت به سرعت به طوفان پخش تبدیل می‌شود. یک مثال ساده را در نظر بگیرید: سوئیچی با سه پورت A، B و C داریم. پورت A به یک دستگاه عادی وصل است، اما پورت‌های B و C با یک کابل به هم متصل شده‌اند (حلقه فیزیکی). سرعت تمام پورت‌ها یکسان و حالت آن‌ها Full Duplex است. وقتی یک فریم پخش از پورت A وارد سوئیچ می‌شود، به پورت‌های B و C ارسال می‌شود. این دو فریم از دو جهت در حلقه می‌چرخند و دوباره از پورت مقابل وارد سوئیچ می‌شوند. فریمی که از پورت B آمده به A و C، و فریمی که از پورت C آمده به A و B ارسال می‌شود. این چرخه بی‌پایان ادامه می‌یابد و فریم‌های پخش انباشته می‌شوند. در نهایت، پهنای باند خروجی اشباع شده، سوئیچ شروع به رها کردن فریم‌ها می‌کند و ارتباطات شبکه مختل می‌شود.

ناپایداری جدول MAC

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

ارسال چندباره فریم‌ها

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

نبود فیلد TTL در لایه ۲

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

جمع‌بندی

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