پروتکل درخت پوشا (STP) یک پروتکل شبکه لایه 2 است که برای جلوگیری از دور در توپولوژی شبکه استفاده میشود. STP برای جلوگیری از مشکلاتی که هنگام تبادل دادهها در یک شبکه محلی (LAN) که حاوی مسیرهای اضافی است، ایجاد میشود. اگر جریان ترافیک به دقت نظارت و کنترل نشود، دادهها ممکن است به صورت یک حلقه گرفتار در اطراف بخشهای شبکه بچرخد و بر عملکرد تأثیر گذاشته و ترافیک را متوقف کنند.
هنگام اتصال بخشهای شبکه، معمولا شبکهها با مسیرهای اضافی پیکربندی میشوند. اگرچه افزونگی میتواند به محافظت در برابر حوادث کمک کند، اما ممکن است منجر به پل یا دور زدن سوئیچ شود. دور زدن زمانی اتفاق میافتد که دادهها در امتداد مسیرهای اضافی از منبع به مقصد حرکت میکنند و سپس در اطراف همان مسیرها میچرخند، گسترش مییابند و منجر به طوفان broadcast میشوند.
اینجا بخوانید: تفاوت افزونگی شبکه و انعطافپذیری شبکه چیست؟ (Redundancy و Resiliency)
STP میتواند به جلوگیری از حلقه زدن پل در شبکههای محلی که شامل پیوندهای اضافی هستند کمک کند. بدون STP، پیادهسازی افزونگی و اجتناب از حلقه شبکه دشوار خواهد بود. STP بر تمام پیوندهای شبکه نظارت کرده، اتصالات اضافی را شناسایی و پورتهایی که میتوانند منجر به حلقه زدن شوند را غیرفعال میکند.
شبکههای محلی اغلب به چند بخش شبکه تقسیم میشوند و از پلها برای اتصال هر جفت از بخشها استفاده میکنند. هر پیام که فریم نامیده میشود، قبل از ارسال به مقصد، از پل عبور میکند. پل تعیین میکند که آیا پیام برای مقصدی در همان بخش فرستنده است یا در بخش دیگری قرار دارد و سپس پیام را بر این اساس میفرستد. هنگامی که STP در حوزه استفاده شود، ممکن است از اصطلاح پل به عنوان سوئیچ شبکه نیز یاد شود.
پل به آدرس مقصد نگاه میکند و بر اساس اینکه هر یک از کامپیوترها در کدام بخش قرار دارند، دادهها را در مسیر درست از طریق پورت خروجی صحیح ارسال میکند. تقسیمبندی و پلسازی شبکه میتواند میزان رقابت برای مسیر شبکه را به نصف کاهش دهد (با فرض اینکه هر بخش تعداد کامپیوترهای یکسانی داشته باشد). در نتیجه، احتمال توقف شبکه بسیار کمتر است.
شبکه LAN تقسیمبندی شده اغلب با پلها و مسیرهای اضافی طراحی میشود تا اطمینان حاصل شود که ارتباطات میتوانند در صورت در دسترس نبودن لینک شبکه ادامه یابد. با این حال، این کار باعث میشود که شبکه در معرض دور بیشتری باشد، بنابراین باید سیستمی برای جلوگیری از این احتمال ایجاد شود، که آن استفاده از STP است.
هنگامی که STP فعال است، هر پل با ارسال یک پیام برای اولین بار به بخش های شبکه، میآموزد که کدام کامپیوترها در کدام بخش قرار دارند. از طریق این فرآیند، پل مکان کامپیوترها را کشف کرده و جزئیات را در جدولی ثبت میکند. هنگامی که پیامهای بعدی ارسال میشوند، پل از جدول استفاده میکند تا مشخص کند که آنها را به کدام بخش ارسال کند. فعال کردن پل برای یادگیری در مورد شبکه به عنوان پل شفاف (transparent bridging) شناخته میشود، فرآیند نیاز به یک مدیر برای راهاندازی پل زدن به صورت دستی را حذف میکند.
در شبکهای که شامل مسیرهای اضافی است، پلها باید به طور مستمر از توپولوژی شبکه آگاه باشند تا جریان ترافیک را کنترل کرده و از ایجاد حلقه جلوگیری کنند. برای انجام این کار، آنها واحدهای داده پروتکل پل (BPDUs) را از طریق یک LAN توسعه یافته که از یک پروتکل STP استفاده میکند، مبادله میکنند. BPDUها پیامهای دادهای هستند که اطلاعات شبکهای را که برای انجام عملیات STP استفاده میشود، در اختیار پلها قرار میدهند.
در قلب STP الگوریتم spanning tree قرار دارد که روی هر پل دارای STP فعال اجرا میشود. این الگوریتم به طور خاص برای جلوگیری از حلقههای پل در هنگام وجود مسیرهای اضافی طراحی شده است. از BPDUها برای شناسایی لینکهای اضافی و انتخاب بهترین مسیر داده برای ارسال پیامها استفاده میکند. این الگوریتم با تنظیم وضعیت پورت، ارسال بسته را نیز کنترل میکند.
حالتهای پورت STP چیست؟
وقتی STP روی پل شبکه فعال است، هر پورت برای کنترل ارسال فریم روی یکی از پنج حالت زیر تنظیم میشود:
- Disabled: پورت در عملیات ارسال فریم یا STP شرکت نمیکند.
- Blocking: پورت در ارسال فریم شرکت نمیکند و فریمهای دریافتی از بخش شبکه متصل را دور میاندازد. با این حال، پورت به گوش دادن و پردازش BPDUها ادامه میدهد.
- Listening: پورت از حالت Blocking، پورت به حالت Listening منتقل میشود. پورت فریمها را از بخش شبکه متصل حذف و یا از پورت دیگری ارسال میکند. با این حال، BPDUها را دریافت و آنها را برای پردازش به ماژول سوئیچ هدایت میکند.
- Learning: پورت از حالت Listening به حالت Learning منتقل میشود. به BPDUها گوش میدهد و پردازش میکند، اما فریمها را از بخش شبکه متصل شده دور میاندازد یا از پورت دیگری ارسال میکند. همچنین شروع به آپدیت جدول آدرس با اطلاعاتی که آموخته است میکند. علاوه بر این، فریمهای کاربر را پردازش میکند اما آنها را نمیفرستد.
- Forwarding: پورت از حالت Learning به حالت Forwarding میرود و شروع به ارسال فریمها در بخشهای شبکه میکند که شامل فریمهایی از بخش شبکه متصل و فریمهایی که از پورت دیگری ارسال میشوند است. پورت همچنین به دریافت و پردازش BPDUها ادامه میدهد و جدول آدرس همچنان بهروز میشود.
STP از حالت blocking در زمان نسبتاً کوتاهی به حالت forwarding منتقل میشود (معمولاً بین 15 تا 20 ثانیه برای هر حالت). هر پورت در حالت blocking شروع میشود. اگر disable باشد، پس از فعال شدن مستقیماً وارد حالت blocking میشود. STP حالتها را در بین پورتها متعادل میکند تا علیرغم ایجاد افزونگی، از ایجاد حلقه در پل جلوگیری کند.
حالت های STP چیست؟
برای درک حالتهای STP، به ابتدای STP باز گردید. پروتکل و الگوریتم درخت پوشای اصلی در سال 1985 توسط Radia Perlman زمانی که او در شرکت تجهیزات دیجیتال کار میکرد اختراع شد. پروتکلهای Snapping Tree بعداً توسط موسسه مهندسین برق و الکترونیک (IEEE) استاندارد شدند. از آن زمان، این پروتکل به طرق مختلفی تکامل یافته و تغییرات جدیدی معرفی شده است.
جدول زیر نمای کلی از رایجترین پروتکلهای STP را ارائه میدهد. با این حال، همه پلها و سوئیچها از همه این پروتکلها پشتیبانی نمیکنند. پروتکلهای الهامگرفته از درخت دیگری نیز وجود دارند که در اینجا لیست نشدهاند.
ستون استاندارد IEEE استانداردی را نشان میدهد که پروتکل در ابتدا بر اساس آن بنا شده است. IEEE معمولاً این استانداردها را سازماندهی مجدد میکند.
تعیین اینکه کدام استاندارد در حال حاضر دارای عملکرد STP است ممکن است دشوار باشد. به عنوان مثال، 802.1D در نسخه 802.1D-2004 بهروز شد که 802.1w را نیز در خود جای داده بود. پس از آن، استاندارد 802.1Q-2014 منتشر شد و بسیاری از عملکردهای مشخص شده در 801.1D را شامل شد.
ستون سوئیچ گزینهای را نشان میدهد که باید برای تعیین حالت پروتکل هنگام فعال کردن STP روی پل یا سوئیچ استفاده شود. برای فعال کردن STP، مدیر شبکه به دستگاه متصل میشود، وارد حالت پیکربندی global شده و دستور زیر اجرا میکند:
spanning-tree mode <protocol mode>
به عنوان مثال، برای فعال کردن پروتکل RSTP روی یک سوئیچ، مدیر دستور زیر را اجرا میکند:
spanning-tree mode rstp
علاوه بر فعال کردن STP، مدیر باید یک پل ریشه را برای کمک به عنوان نقطه مرجع STP مرکزی شبکه انتخاب کند. همچنین باید پورتهای ریشه و پورتهای تعیین شده را نیز شناسایی کند. پورت ریشه یک پورت پل است که فریمها را به پل ریشه ارسال میکند و پورت تعیین شده پورت پلی است که فریمها را از پل ریشه دور میکند.
آیا باید STP را فعال کنید؟
STP از حلقه زدن پل و جریان broadcast ناشی از آن جلوگیری میکند. پس از پیکربندی، STP به طور خودکار برخی از لینکهای اضافی را غیرفعال کرده و تعیین میکند که کدام لینکها فعال باقی بمانند. به این ترتیب، میتوان یک شبکه را با مسیرهای داده اضافی پیکربندی کرد که خدمات Failover را برای محافظت در برابر حوادث، بدون خطر حلقه زدن پل ارائه دهد.
STP دارای مزایای مهم زیر است:
- فنآوری اثبات شده
- پیادهسازی و نگهداری آسان
- پشتیبانی گسترده از پلها و سوئیچها
- افزونگی لینک را تسهیل میکند، درحالیکه به طور همزمان از حلقههای نامطلوب جلوگیری میکند.
- استفاده از پشتیبانگیری در صورت در دسترس نبودن مسیر داده اولیه
با وجود این مزایا، STP بدون چالش نیست:
- از آنجایی که مراکز داده از فناوریهای مجازیسازی بیشتری استفاده میکنند، STP ممکن است نتواند با افزایش تقاضای ورودی/خروجی مقابله کند.
- ظرفیت کامل شبکه هنگام استفاده از STP محقق نمیشود. حتی زمانی که چندین مسیر با هزینه مساوی در یک شبکه وجود دارد، تمام ترافیک در امتداد مسیر واحدی جریان دارد که توسط درخت پوشا تعریف شده است. این محدودیت ترافیکی به معنای مسدود شدن مسیرهای جایگزین و شاید مستقیمتر است.
حتی با وجود این چالشها، مزایای STP معمولاً از خطرات آن بیشتر است. اما اجرای STP باید با دقت برنامهریزی و به کار گرفته شود تا اطمینان حاصل شود که سطح خدمات لازم را ارائه میدهد. علاوه بر این، باید توجه شود که از کدام پروتکل درخت پوشا استفاده شود و همان پروتکل باید در سراسر شبکه پیادهسازی شود.
جایگزینهای پروتکل درخت پوشا
دو گزینه اصلی جایگزین برای STP عبارتند از: TRILL و SPB.
Radia Perlman، پروتکل TRILL را به عنوان راهی برای بهبود الگوریتم درخت پوشا توسعه داد. سپس پروتکل توسط کارگروه مهندسی اینترنت (IETF) استاندارد شد. TRILL از تکنیکهای مسیریابی شبکه لایه 3 برای ایجاد ابری از لینکها استفاده میکند که در گرههای پروتکل اینترنت به عنوان یک زیرشبکه IP تکی ظاهر میشوند.
TRILL از پروتکلهای مسیریابی کوتاهترین مسیر استفاده میکند و میتواند همزمان با STP استفاده شود.
مزیت اصلی TRILL این است که ظرفیت شبکه را آزاد میکند. مسیریابی کوتاهترین مسیر، کارایی را بهبود میبخشد و نسبت هزینه به سود را کاهش میدهد. مراکز دادهای که زیرساخت محاسبات ابری را اجرا میکنند ممکن است TRILL را انتخاب کنند زیرا در صورت خرابی سختافزار زمان بازیابی سریعتری نسبت به STP دارد.
SPB (802.1aq) توسط IEEE و IETF توسعه داده شد. SPB عملکرد تعویض برچسب چند پروتکلی (MPLS) را با عملکرد اترنت ترکیب میکند. SPB با STP سازگار است.
یک دیدگاه برای “پروتکل STP چیست و چگونه کار میکند؟”
Zizo
می گوید:ممنون از مطلب خوبتون