آموزشآموزش شبکه به زبان ساده

درس ۴۷ از ۹۹، شبکه و اینترنت، حدود ۱۳ دقیقه خواندن

STP: جلوگیری از حلقه در شبکه

جواب کوتاه

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

چند معنی یک کلمه

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

چهار کلمه

  • حلقه (loop)وقتی میان دو سوییچ بیش از یک راه باشد و راه‌ها دایره بسازند.
  • طوفان پخش (broadcast storm)پیام همگانی که در حلقه بی پایان می‌چرخد و تکثیر می‌شود تا شبکه پر شود.
  • سوییچ ریشه (root bridge)سوییچی که همه راهشان را تا او حساب می‌کنند؛ مثل ریش‌سفید محله.
  • BPDUیادداشت کوتاهی که سوییچ‌ها برای هم می‌فرستند تا بدانند کی ریشه است و راه تا او چقدر می‌ارزد.

چرا کابل اضافه

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

با یک کابل، شبکه به همان یک کابل بند است.
با کابل اضافه، اگر یکی قطع شود راه دیگری هست؛ ولی حالا کابل‌ها یک حلقه ساخته‌اند.

طوفان پخش

قاعده‌ی محله این است: هر کس خبری شنید، آن را به همه‌ی همسایه‌ها می‌گوید جز کسی که از او شنیده. سوییچ هم با پیام همگانی همین کار را می‌کند (درس سوییچ). حالا ببینید در حلقه چه می‌شود:

۱. رایانه‌ای پشت سوییچ ۱ یک پیام همگانی می‌فرستد. سوییچ ۱ آن را به ۲ و ۳ می‌دهد: دو نسخه.
۲. سوییچ ۲ نسخه‌اش را به ۳ می‌دهد و سوییچ ۳ نسخه‌اش را به ۲. هر کدام از جایی جز جای آمدنش بیرون می‌رود.
۳. هر دو نسخه به سوییچ ۱ برمی‌گردند و او دوباره پخششان می‌کند. خبر تاریخ انقضا ندارد؛ این دور تمامی ندارد.

خبر محله بالاخره کهنه می‌شود و کسی تکرارش نمی‌کند؛ ولی فریم لایه ۲ هیچ خانه‌ای برای تاریخ انقضا ندارد (چیزی مثل TTL در بسته‌ی IP). پس نسخه‌ها همیشه می‌چرخند، هر پیام همگانی تازه هم به آن‌ها اضافه می‌شود، کابل‌ها پر می‌شوند و سوییچ فریم دور می‌ریزد. به این طوفان پخش می‌گویند. یک دردسر دیگر هم هست: سوییچ یک فریم را از دو پورت می‌گیرد و جای فرستنده را اشتباه یاد می‌گیرد (جدول مک به هم می‌ریزد).

انتخاب ریشه

STP راه را نمی‌بُرد؛ کابل‌ها همه سر جایشان می‌مانند. به‌جایش از حلقه یک درخت می‌سازد: از هر سوییچ فقط یک راه تا یک سوییچ مرکزی. قدم اول انتخاب همین سوییچ مرکزی است، مثل محله‌ای که ریش‌سفیدی انتخاب می‌کند.

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

اولویت پیش‌فرض ۳۲٬۷۶۸ است. پس اگر کسی دست به آن نزند، ریشه را نشانی مک تعیین می‌کند و ممکن است ریشه همان سوییچ کهنه‌ی گوشه‌ی انبار شود. برای همین مدیر شبکه معمولا اولویت سوییچ اصلی را کمتر می‌کند تا خودش ریشه شود. اولویت فقط با گام‌های ۴٬۰۹۶ عوض می‌شود.

ارزان‌ترین راه

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

سرعت کابلهزینه در STP قدیمهزینه در RSTP
۱۰ مگابیت۱۰۰۲٬۰۰۰٬۰۰۰
۱۰۰ مگابیت۱۹۲۰۰٬۰۰۰
۱ گیگابیت۴۲۰٬۰۰۰
۱۰ گیگابیت۲۲٬۰۰۰

هر سوییچ هزینه‌ای را که همسایه‌اش تا ریشه دارد می‌گیرد و هزینه‌ی کابل خودش را رویش می‌گذارد. مثلا اگر سوییچ ۳ با یک کابل ۱ گیگابیتی مستقیم به ریشه وصل باشد، راهش ۴ می‌ارزد؛ اگر از راه سوییچ ۱ برود، ۴ به اضافه‌ی ۴، یعنی ۸. پس راه مستقیم را نگه می‌دارد. اگر دو راه برابر بودند، شناسه‌ی کوچک‌تر برنده است.

سوییچ‌ها این‌ها را از کجا می‌دانند؟ از BPDU: یادداشت کوتاهی که پیش‌فرض هر ۲ ثانیه برای هم می‌فرستند و در آن می‌گویند ریشه کیست و راهشان تا ریشه چقدر می‌ارزد.

سه نقش پورت

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

روی کابل ۱ به ۳ هزینه‌ی هر دو سر تا ریشه برابر است (۴)، پس شناسه‌ی کوچک‌تر، یعنی سوییچ ۱، سر تعیین‌شده را می‌گیرد و سر سوییچ ۳ بسته می‌شود. حلقه دیگر نیست. پورت بسته مثل کوچه‌ای است که تابلوی «راه ذخیره» دارد: خبر از آن رد نمی‌شود و نه داده‌ای می‌فرستد و نه داده‌ای می‌گیرد، ولی یادداشت‌های BPDU را هنوز می‌شنود.

وقتی کابلی قطع شد

این همان جایی است که کابل اضافه به کار می‌آید:

پیش از خرابی: کابل ۲ به ۳ کار می‌کند و راه ۱ به ۳ بسته است، ولی آماده.
کابل ۲ به ۳ قطع شد: پورت بسته باز می‌شود و سوییچ ۳ از راه سوییچ ۱ به ریشه می‌رسد.

پس STP هر دو خواسته را با هم می‌دهد: در روز عادی حلقه نیست، و روز خرابی راه یدک آماده است. این باز شدن در STP قدیم ممکن است ۳۰ تا ۵۰ ثانیه طول بکشد؛ در نسخه‌ی تازه‌تر، RSTP، معمولا چند ثانیه.

۳۰ ثانیه صبر

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

در «گوش دادن»، پورت فقط BPDUها را می‌خواند. در «یاد گرفتن»، هنوز فریم نمی‌فرستد ولی نشانی‌های مک را یاد می‌گیرد. هر کدام پیش‌فرض ۱۵ ثانیه است، پس حدود ۳۰ ثانیه طول می‌کشد. حالت پنجمی هم هست: «خاموش»، وقتی مدیر شبکه پورت را خاموش کرده است.

RSTP و پورت لبه

STP را رادیا پرلمن در ۱۹۸۵ ساخت و در ۱۹۹۰ با نام 802.1D استاندارد شد. در ۲۰۰۱ نسخه‌ی تندترش آمد: RSTP (Rapid STP، با نام 802.1w). کارش همان است، ولی تندتر:

  1. به‌جای پنج حالت، سه حالت دارد: کنار گذاشتن (Discarding)، یاد گرفتن و فرستادن.
  2. دو نقش تازه دارد: Alternate، راه دیگری به ریشه که آماده است، و Backup، راه یدک به همان کابلی که پورت دیگری به آن وصل است. پس وقتی راه اصلی قطع شود، جانشین از پیش معلوم است.
  3. اگر سه بار پیاپی (۳ × ۲ ثانیه) از ریشه خبری نرسد، می‌فهمد ریشه رفته است؛ و اگر کابل خودش قطع شود، در چند میلی‌ثانیه.
  4. با سوییچ‌های قدیمی که فقط STP بلدند هم کار می‌کند.

پورت لبه (در بعضی سوییچ‌ها با نام PortFast): پورتی که پشتش سوییچ دیگری نیست، مثلا یک رایانه یا چاپگر. چنین پورتی یکراست به «فرستادن» می‌رود و آن ۳۰ ثانیه را صبر نمی‌کند. اگر روزی از آن BPDU برسد، یعنی سوییچی وصل شده، و دیگر پورت لبه نیست.

یک نکته‌ی نام: RSTP را با RTSP، که برای پخش ویدیوی دوربین‌هاست، یکی نگیرید. امروز STP و RSTP و نسخه‌ی چند VLANی‌اش، MSTP، همه در استاندارد 802.1Q آمده‌اند، که برچسب VLAN را هم در درس ترانک دیدید.

سه اشتباه

  • «کابل اضافه میان سوییچ‌ها همیشه شبکه را مطمئن‌تر می‌کند.»بی STP، کابل اضافه حلقه می‌سازد و یک پیام همگانی شبکه را می‌خواباند.
  • «پورت بسته یعنی کابل خراب است.»پورت بسته سالم است و یادداشت‌های BPDU را می‌شنود؛ فقط داده نمی‌برد تا روزی که لازم شود.
  • «سوییچ ریشه تندترین یا تازه‌ترین سوییچ است.»ریشه سوییچی با کوچک‌ترین شناسه است. اگر کسی اولویت را عوض نکند، ممکن است قدیمی‌ترین سوییچ ریشه شود.

جمع‌بندی. آنچه از این درس با خودتان می‌برید.

  • کابل اضافه میان سوییچ‌ها برای اطمینان خوب است، ولی حلقه می‌سازد.
  • در حلقه، پیام همگانی بی پایان می‌چرخد، چون فریم لایه ۲ تاریخ انقضا ندارد: طوفان پخش.
  • STP کوچک‌ترین شناسه (اولویت + مک) را ریشه می‌کند؛ اولویت پیش‌فرض ۳۲٬۷۶۸.
  • هر سوییچ ارزان‌ترین راه تا ریشه را نگه می‌دارد؛ هزینه از سرعت کابل است.
  • پورت‌ها: ریشه، تعیین‌شده، بسته. پورت بسته اگر راه اصلی قطع شود باز می‌شود.
  • در STP پورت تازه حدود ۳۰ ثانیه صبر می‌کند؛ RSTP و پورت لبه این را کوتاه می‌کنند.

خودتان را بسنجید

۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخر آزمون فقط کارنامه را می‌بینید: چند درست، چند نادرست.

خودتان را بسنجید

۱۵ پرسش

  • هر بار پرسش‌ها و ترتیب گزینه‌ها تازه است.
  • تا آخر، درست یا نادرست بودن جواب‌ها گفته نمی‌شود؛ می‌توانید برگردید و جوابی را عوض کنید.
  • آخرش کارنامه می‌گیرید: چند پرسش درست و چند نادرست.
  • هر وقت بستید، دوباره که باز کنید از همان‌جا ادامه می‌دهید.

فصل‌های این درس

درس بعد