همانطور که عنوان شد، به صورت پیش فرض به ازای هر broadcast domain یا هر VLAN یک root bridge در درخت STP خواهیم داشت. اما روشهای مختلفی برای اجرای این پروتکل وجود دارد. در این مبحث میخواهیم به بررسی انواع پروتکل spanning tree بپردازیم.
CST 802.1D
پیش تر، در سوئیچ ها، روش پیش فرض CST یا Common Spanning Tree بوده است. در حال حاضر این ورژن مورد استفاده نیست. در این روش که استفاده از آن بیش از یک دهه کنار گذاشته شده است، یک root bridge برای تمام VLANها میشود. پس از استفاده از این روش، به سرعت مشخص گردید این روش بایستی ارتقاع داده شود و به ازای هر VLAN یک root bridge نیاز است.
PVST 802.1Q و PVST+
اگر به ازای هر VLAN یکبار spanning-tree را راهاندازی کنیم به آن PVST میگوییم. اگر در لینکی که encapsulation اش براساس ISL باشد، امکان اجرای CST و PVST با یکدیگر وجود ندارد. اما، PVST+ بین سوئیچهایی که CST را اجرا کرده و گروهی دیگر که PVST را اجرا کرده اند، امکان فهم اطلاعات بین طرفین را ایجاد میکند.
تنظیمات PVST در مباحث قبل به تفصیل خدماتتان ارائه گردید.
MST 802.1S
در روش MST، به جای مفهوم VLAN از instance استفاده میکنیم و root bridge به ازای آن مشخص میشود. به مجموعهای از VLANها یک instance گفته میشود.
علت استفاده از این روش زیاد شدن تعداد VLAN هاست که بار محاسباتی سوئیچ را بسیار زیاد خواهد کرد. به طور معمول، در شبکهها، تعداد VLANها به عدد 100 نزدیک هم نمیشود. اما، این تعداد در شبکه هایی مانند دیتاسنترهای بزرگ، شبکههای زیرساختی ارائه دهنده سرویس مانند مخابرات و …، کاملا متداول است.
وقتی بخواهیم spanning tree mode را به حالت MST ببریم باید دستگاه تنظیم شود تا به صورت MST کار کند.
زمانی که فقط مود سوئیچ را MST تعیین کنیم، اما تنظیمی انجام نشده باشد، همه VLANها بروی instance 0 قرار میگیرند. با وجود یک instance که تمام VLANها را در خود جا داده، فقط یک root bridge خواهیم داشت، که همان CST است.
برای انجام تنظیمات باید وارد محیط تنظیم MST شوید.
در این mode جایی است که instance ها تنظیم میشود. برای اینکه MST کار کند باید دو مورد اضافهتر تنظیم شود. یکی از این موارد name است. این نام باید بین تمام سوئیچهایی که MST کار میکنند باید یکسان باشد.
مورد دوم revision است. به ازای هر مجموعه تغییر در سوئیچ بایستی یک عدد به revision اضافه شود. این عمل به صورت دستی انجام میشود. این عدد بین 0 تا 65535 قابل تنظیم است.
نکته: حداکثر تعداد 16 instance میتوان ساخت.
تمام سوئیچهایی که میخواهند MST کار کنند باید تنظیمات مربوط به MST اشان یکسان باشد. بعنوان مثال یک سوئیچ نمیتواند VLAN های 1 و 2 و 3 اش در instance 1 باشند و سوئیچ دیگر instance 1 اش VLAN های دیگر داشته باشد.
برای تنظیم instance ها از دستور زیر استفاده میشود.
زمانیکه دستورات ثبت میشوند، در حالت pending اجرا میمانند. دستور show pending هم تغییرات انجام شده را نمایش میدهد.
برای اعمال تنظیمات نیاز به دستور exit داریم.
در MST تنظیمات کمی متفاوت است اما نیازی به حفظ کردن آنها نیست چون دقیقا مشابه تنظیمات VLAN است. فقط کافی است به جای VLAN از MST INSTANCE استفاده شود.
موارد تقسیم کردن VLAN ها در instance ها به مهندسی شبکه داخلی مان بستگی دارد.
لیست کامل دستورات MST به شرح جدول زیر است.
Rapid Spanning-tree – RSTP – 802.1 W
برای کاهش وقفههای طولانی تعیین وضعیت پورت (30 تا 50 ثانیه) در STP، RSTP معرفی شد. موارد STP و RSTP شباهت های زیادی دارند به غیر از تفاوتهایی که در زیر به شرح آنها پرداخته میشود.
Hello Time در هر دو پروتکل 2 ثانیه است.
Hold Down Time یا همان Max age در STP 20 ثانیه و در RSTP 6 ثانیه است.
تغییر وضعیت پورتها در دو پروتکل متفاوت است.
انواع Port Roleها
- Root port
- Designated port
- Edge port
- Alternate port
- Backup port
انواع ارتباطات در RSTP
- Point to point: ارتباطی که بین سوئیچهاست
- Shared: ارتباطی که بین سوئیچ و یک محیط half-duplex مانند hub متصل است.
- Edge: پورتی که به کامپیوتر متصل است.
روش RSTP سرعت را برای لینک های shared نمیتواند کم کند. زمان همگرایی یا Convergence time در RSTP برای لینک های shared همان ماکزیمم 50 ثانیه است.
این روش، در لینک های Edge مانند portfast کار میکند. به عبارت دیگر، اگر mode، RSTP شود و پورت portfast شود حالت edge بوجود آمده است.
به صورت دستی نیز میتوان modeهای interfaceها را تغییر داد.
در RSTP سوئیچها در پورتهای point to point با همدیگر مذاکره میکنند.
نحوه مذاکره سوئیچها در RSTP mode
پیش از انتخاب root bridge، تمام سوئیچها اقدام به ارسال BPDU با بیت فعال شده proposal میکنند. پس از مقایسه BDPUها، BPUD برتر به عنوان root bridge انتخاب میشود.
بروی پورتهای point to point سوئیچی که root bridge شده است پیغامی با عنوان proposal مبنی بر شروع مذاکره و محاسبه درخت ارسال میکند.
پس از دریافت proposal، سوئیچ غیر root، تمام پورتهای دیگر -غیر از edge port- را غیرفعال (block) میکند. اگر سوئیچ غیر root که سوئیچ دیگری را به عنوان root پذیرفته، پورت rootی از قبل داشته باشد، آن پورت را از حالت root خارج کرده و پورت جدید که BPDU بهتر را از آن دریافت کرده به عنوان root در نظر میگیرد. سپس برای سوئیچ ارسال کننده proposal، پاسخ agreement خود را ارسال میکند و وضعیت پورتی که از روی آن agreement را ارسال کرده، را به حالت forward تثبیت میکند.
پورتی که مذاکرات در آنها به اتمام میرسد و وضعیت فعال یا غیرفعال بودنشان مشخص میشود sync شده اند.
در مرحله بعدی، سوئیچی که پورت متصل به root bridge اش به حالت sync برسد، برای سوئیچ های دیگر از روی پورتهایی که تا پیش از این به حالت discarding بودند، proposal ارسال میکند. و این فرآیند تا sync شدن تمام پورتهای آخرین سوئیچ درخت ادامه خواهد داشت.
تصمیمگیری فعال و غیرفعال بودن پورتها، به صورت مرحله به مرحله است. در ابتدا و پس از مشخص شدن root bridge، تمام سوئیچهای غیر root، پورتهایشان را به حالت غیرفعال در میآورند. سپس، مرحله به مرحله، تمام پورتها بایستی sync شوند.
این مذاکرات باعث میشود RSTP نیازی به مرحله listening نداشته باشد. اسم Disable و Block تغییر یافته و به Discard تبدیل شده است.
در پروتکل RSTP اگر دو لینک به یک شبکه shared متصل باشد و یکی از این لینکها قطع شود، بدون تاخیر لینک دوم را به حالت forward میرود. به این لینک دوم backup port گفته میشود. این وضعیت همانند uplink fast است. به این لینک در ارتباط point to point، alternate port و در محیط shared، backup port گفته میشود.