پیاده سازی کامل سناریو RSTP
حالا که با مفاهیم STP آشنا شدید وقت این رسیده که در مورد RSTP صحبت کنیم. تو مقاله مربوط به STP درباره انواع STP با هم صحبت کردیم و دیدیم که مشکلاتی که هر ورژن میتونه داشته باشه چه چیزی هستش و اون چیزی که ما با هم نگاه کردیم ابتدا استاندارد 802.1D بود اما اون چیزی که به صورت دیفالت در سیسکو استفاده میشه PVST بود.اما همچنان زمان همگرایی ما توی PVST بالا بود و RSTP اومده که این زمان رو برای ما کم کنه.
در واقع می تونم بگم که اون نسخه ای که به عنوان استاندارد ارائه شده 802.1w هستش و اون چیزی که توی سیسکو استفاده میشه RPVST هستش.
بخواهیم اگه اشارهای داشته باشیم به انواع پور ترول هایی که اینجا وجود داره باید به این صورت بگم که چی میشه که باعث میشه که آر اس تی پی به نسبت اس تی پی یا سی اس تی زمان همگرایی بهتری داشته باشه در واقع باید بگیم اولین نکته اینجاست که bpduیی بی پی دیوی که هر دو تا ورژن استفاده می کنند یکسان و تفاوتش در اینه که فیلد ورژن ورژن دو میخوره پس ساختار bpdu تغییر نکرده و این زمان همگرایی مناسب رو مدیون bpdu نیست مدیون نقش رول پورتهایی که وجود داره هستش و از طرف دیگه مدیون روشی که برای انتخاب RP و DP وجود داره هستش. حالا این یعنی چی؟ ببینید شما در RSTP , چهار تا رول پورت دارید
Root port
Designated port
Alternate port
Backup port
مفاهیم این چهارتا رول پورت رو شما قبلا در STP یاد گرفتید
Root port :
روت پورت میشه نزدیکترین اینترفیس توی سوئیچ به RB بر اساس اون Cost یی که داره دریافت میشه.
DP در واقع میشه نزدیک ترین اینترفیسی هر سگمنت مربوط به نزدیکترین سوئیچی که به RB هست.
این دوتا Alternate port و Backup port تازه اضافه شدند و شما در دوره CCNP بیشتر راجع به CST میخونید.
در واقع اون PVST پلاس رو اومدن فیچرهای بهش اضافه کردن که این فیچرها ها باعث بشه که زمان همگرایی بهتر بشه البته قبل از اینکه بخواهیم بریم سراغ ورژن دیگه ای به اسم RSTP .اون فیچر ها اینا بودن مثل Uplinkfast یا Backbonefast یا Portfast. عملاً میتونیم اینجا صحبت کنیم که از اون فیچر هام داره اینجا برای بهبود زمان همگرایی استفاده می شود.
Alternate port :
این یعنی اینکه اگه سوئیچ من غیر از روت پورتی که داره گزینه مناسب دیگه ای هم داشته باشه که می تونه به عنوان Alternate port انتخاب بشه رو انتخاب میکنه و به محض اینکه روت پورت قطع میشه Alternate port تبدیل میشه به روت پورت. پس اینجوری زمان همگرایی داره بهتر میشه یعنی همش داره روش های بهتر و بروز تر ارائه میشه جهت بالا بردن پرفورمنس بهتر.
پس Alternate port ها در واقع میشن Alternate Root port ها. همینطور در مورد Backup port ها همین اتفاق میفته. توی هر سگمنت اگه من DP دارم و پورتی دارم که بلاک هستش ولی میتونه به عنوان بک آپ پورت باشه و اگه DP ی من قطع بشه عملاً اونو به عنوان بک آپ پورت درنظر میگیره. پس خود پورت رول هایی که وجود داره باعث میشه که زمان همگرایی تا حدودی بهتر بشه. به علاوه اینکه Port state ها هم بهمون کمک میکنن.
شما توی استاندارد 802.1d چی داشتید؟ Blocking و Listening و Learning و Forwarding . عملاً میتونم بگم اینجا شما Discarding دارید. یعنی عملاً اومده state وضعیت Blocking و Listening رو با هم ترکیب کرده و بعد Learning و Forwarding رو قرار داده. چرا اینکارو کرده؟ پس Listening چی میشه؟ قبلاً یادتونه که توی Listening چه اتفاقی می افتاد؟ bpdu میفرستاد و دریافت میکرد و نقشها پیدا میشدن و عملاً داشت کار میکرد برای همگرایی.
حالا باید بگیم که همگرایی شما توی RSTP اصلا احتیاجی به پروسه Listening نداره و به نحو دیگه ای انجام میشه که جلوتر راجع بهش صحبت می کنم. پس نقشهای ما در اینجا Discarding و Learning و Forwarding هستش.
قبلا گفتم که RSTP و STP با هم سازگار هستن چرا چون فرمت bpdu ی جفتشون یکیه فقط فیلد ورژنش ۲ سِت میشه. اگه من سوئیچی دارم که تنظیم شده که روی RSTP کار کنه و یه سوئیچی هم دارم که داره با STP کار میکنه این دوتا میتونم با هم دیگه کار کنن.
توی STP ی معمولی یا CST میگفتیم که اول همه bpdu می فرستادن تا زمانی که RB پیدا بشه و حالا وقتی روت بریج پیدا میشد فقط روت بریج بود که bpdu می فرستاد و بقیه فقط وظیفه فوروارد کردن این bpdu رو به عهده داشتن. اما توی RSTP همه سوئیچ ها توی زمان Hello تایم که ۲ ثانیه هستش bpdu میفرستن چه bpdu بگیرن و چه bpdu نگیرن. پس میشه گفت که هر سوئیچی هرجای شبکه نقش اکتیو توی نگهداری توپولوژی رو میتونه داشته باشه.
نکته دیگه اینکه اگه سه تا bpdu پشت سرهم نرسه به یک سوئیچی ، یعنی سه تا دو ثانیه در مجموع ۶ ثانیه اون همسایه از نظر اون سوئیچ down فرض می شه. down بودن همسایه در اینجا سه تا Hello تایم یعنی ۶ ثانیه هستش و اینو باید مقایسه کنیم با Max Age یی که ۲۰ ثانیه طول میکشه توی 802.1D. پس این نکته دیگه میبینید که باعث میشه زمان همگرایی در RSTP نسبت به STP سریعتر باشه.
حالا سوای بحث رول پورتها توی RSTP بحث Port type هم درنظر گرفته شده.
پورت تایپ جریانش چیه؟ به این صورته که پورت های شما یا میتونن edge پورت باشن یا میتونن Point to Point پورت باشن. اینجا دقت کنید میگه اگه اینترفیس های یک سوئیچ وصل بشه به کلاینت های انتهایی این اینترفیس از نوع edge پورت هستش. حالا اگه اینترفیس یک سوئیچ وصل بشه به یک سوئیچ دیگه اونوقت این اینترفیس از نوع Point to Point پورت هستش. حالا زمانیکه اینترفیس از نوع edge پورت هستش میاد چیکار میکنه؟ میاد روش PortFast رو فعال می کنه. یعنی سریع این تبدیل میشه به پورتی که باید سریع up بشه.خب bpdugaurd چی میشه؟اصلا نگرانی نداره.
به محض اینکه یکی از کلاینت ها بخواد روی یک اینترفیسی bpdu بشنوه اون نقش edge پورتیش رو ازش میگیرم و بهش نقش point to point پورتی میدم. پس اینجوری خیلی خوبه دیگه چون لازم نیست که من برم تک تک ببینم که کدوم رو باید PortFast فعال کنم یا نکنم. خودش میاد نگاه میکنه و میگه من یه اینترفیسی که up هست bpdu نمیگیرم و میفهمه که این edge پورت هستش و سریعاً PortFast رو روش فعال میکنه و اگه bpdu میگیرم وصلش می کنم به یه سوئیچ دیگه میزارمش رو حالت پوینت تو پوینت. توی پوینت تو پوینت حالا میخوایم باهم ببینیم که چطوری مکانیزم ارسال پروپوزال و دریافت Agreement میتونه نقش State یا وضعیت Listening رو حذف کنه. یعنی عملاً به جای اینکه بره تو فاز لیسنینگ و نقش پورتاش رو به دست بیاره این کار را از طریق پروپوزال و اگریمنت انجام میده.
توی این شکل ببینیم که چه جوری داره اتفاق میفته.ببینید RB توی نتورک انتخاب میشه.مثلا SW1 شده RB و بمحض اینکه RB انتخاب شد اینوسط RB میاد چیکار میکنه؟ RB میاد پروپوزال میفرسته روی همه اینترفیسهای non edge ش یعنی اون اینترفیسهای point to point ش.یعنی اون اینترفیسهایی که وصل به سوئیچهای دیگست نه اون اینترفیسهایی که به کلاینتها وصله. میاد پروپوزال میفرسته پس این ۱ میشه ارسال پروپوزال. حالا چه پیشنهادی میده؟پیشنهاد میکنه به طرف مقابل که مثلا من اینترفیسم میخوام DP باشه.
بمحض اینکه یه سوئیچ پروپوزال دریافت میکنه از سوئیچ بالا دستیش اول میره تو فاز Synchronization. این چیکار میکنه؟ میاد همه اینترفیسهای non edge ش رو یعنی اون اینترفیسهایی که به سوئیچهای دیگه وصلن رو بلاک میکنه مثل SW2 پورت ۲ برای اینکه میخوهد توی این فاصله Loop ایجاد نشه.خودش رو بعبارتی Isolated میکنه یعنی ایزوله میکنه از سایر نتورک و به این میگن Synchronization پس اینجا وارد مرحله ۲ یعنی فاز Synchronization میشه و اینترفیس شماره ۱ سوئیچ SW1 بلاک نمیشه چون edge port هستش و اینترفیس ۲ از SW2 بلاک میشه چون non edge port هستش یا همون point to point port هستش.
پس اینترفیسهای non edge رو بلاک میکنه و نگاه میکنه به cost یی که داره دریافت میکنه روی اون پروپوزال و میبینه که آیا الان باید من Agreement بدم یا نباید بدم.بعد اینجا میاد چیکار میکنه؟ تو مرحله ۴ میاد Agreement ارسال میکنه و بمحض اینکه Agreement ارسال میکنه اینترفیس SW1 میشه DP و اینترفیس ۳ از SW2 یعنی اینترفیس که بسمت SW1 هستش میشه RP . پس عملا توی این ارتباط با ارسال پروپوزال و Agreement این اتفاق میفته.بعدش چه اتفاقی میفته؟ حالا تو فاز بعدی اینترفیس شماره ۲ از SW2 از حالت بلاک در میاد و خودش شروع میکنه پروپوزال می فرسته به بسمت لایه پایین تره متروک یعنی سوئیچ SW3 که مرحله ۶ رو شامل میشه که داره میگه من حالا میخوام DP بشم و از طرف دیگه Agreement دریافت میکنه و وقتیکه Agreement دریافت میکنه این اینترفیسهاش DP میشه و Up میشه یعنی SW2.
یعنی میتونم بگم این فاز دقیقا بصورت لایه ای مثل موج توی کل متروک من پخش میشه.از بالا از SW1 ببینید که داره پروپوزال دریافت میشه توی Synchronization ِ اول اینترفیسها بلاک میشه و Agreement میدم و تکلیف این SW1 معلوم میشه و بعد میرم فاز بعدی و حالا SW1 پروپوزال میده به SW2 و SW3 و Agreement دریافت میکنه از این دوتا سوئیچ و این دوتا سوئیچ می رن تو فاز Synchronization و اینترفیسهاشون رو بلاک میکنن و تکلیف رو مشخص میکنن و میرن تو فاز بعدی. خب نکته ای که اینجا وجود داره اینه که وقتی من پروپوزال ارسال میکنم اونوقت Agreement دریافت نکنم. یعنی چی که Agreement دریافت نکنم؟
یعنی یا اون اینترفیس ، اینترفیسی هستش که نباید DP بشه یا اون اینترفیس ، اینترفیسی هستش که مثلا به سوئیچ وصله که اون سوئیچ داره با CST کار میکنه و اصلا مکانیزم پروپوزال و Agreement رو نمیفهمه.یعنی الان من میخوام دو چیز رو بررسی کنم.چه اتفاقی برای اون لینک ها میفته و چه اتفاقی برای اون دوتا سوئیچ میفته که با همدیگه سازگار هستن ولی با همدیگه یکسان نیستن یعنی یکیش RSTP هستش و اون یکی CST هستش و دارن باهم کار میکنن رخ بده؟
توی چنین شرایطی که وقتی سوئیچ پروپوزال میفرسته و Agreement نمیگیره میره تو فاز همگرایی عادی یعنی طی کردن مراحل Listening و بقیه فازها. خب مگه ما نمیگیم که همگرایی سریعتره؟ اینکه دوباره رفت تو فاز CST که. خب مثلا فاز Listening این CST خودش ۱۵ ثانیه طول می کشه و بقیه فازها روهم طول میده. خب اون اینترفیسهای که باید up بشن سریعا با ارسال Agreement آپ میشن.
این فاز برای اینترفیسهایی انجام میشه که یا CST هستن که تو اینحالت اصلا سوئیچتون پروپوزال و Agreement نمیفهمه یا اینترفیس باید down بمونه ، خب اینترفیسی که باید down بمونه براش چه فرقی میکنه که ۳۰ ثانیه بعد down بمونه یا همین الان down بمونه. پس برای همینه که همگرایی سریعتره.اون اینترفیسهایی که باید فوروارد بشن با مکانیزم پروپوزال و Agreement سریعا فوروارد میشن و اون اینترفیسهایی که باید فوروارد نشن و down بمونن یا باید CST کار کنن دیگه تفاوتی نمیکنه برای من که بخواد چقدر طول بکشه.
برای بحث Configuration تنها کاری که لازمه انجام بدیم اینه که توی Global mode با دستور spanning-tree mode بیایم مودِش رو روی rapid-pvst سِت کنیم و اگرم میخواید برگردید بحالت pvst میتونید بزنید spanning-tree mode pvst. پس میتونید بین rapid-pvst و pvst انتخاب داشته باشید. توی دوره CCNP درباره این موارد بیشتر و عمیقتر صحبت میکنیم.یعنی میشه با کامندهای دیباگ نشون داد که ارسال و دریافت این پروپوزال ها و Agreement ها به چه صورتی هستش و فازهای همگرایی چجوری هستن.
حالا میریم تا اینمورد رو کانفیگ کنیم
الان روی هر کدوم ازین سوئیچها من show spanning-tree رو ببینم مثلا SW3 میبینیم که مودش ieee هستش و هنوز من اینو بصورت RSTP کانفیگش نکردم و برای اینکار میام داخل مودِ کانفیگِ هر کدوم ازین سوئیچها دستور spanning-tree mode rapid-pvst رو میزنم. البته اول توی SW3 این کانفیگ رو انجام میدم. حالا توی SW4 هم همین کانفیگ رو انجام میدم.
spanning-tree mode rapid-pvst
و توی SW5 همین کانفیگ رو انجام میدیم.
خب بعداز اینکه همگرایی صورت میگیره من میتونم روی هر کدوم از سوئیچها یه show spanning-tree بگیرم مثلا در SW4 و میبینید که در قسمت زیر vlan پروتکل رو زده rstp
حالا در SW5 هم یه show spanning-tree میگیرم و ببینید که در ردیف Interface یه قسمتی هستش که نوشته Type و داره تایپ رو p2p نشون میده و این یعنی point to point . یعنی این وصله به اینترفیس یک سوئیچِ دیگه. از طرف دیگه Fa0/2 بعنوان Alternate این Fa0/1 هستش. یعنی انتظار دارم بمحض اینکه لینک اصلی قطع میشه این لینک Fa0/2 رو جایگزین کنه و چون rapid هستش باید سریع این کارو انجام بده. حالا من میام لینک Fa0/1 سوئیچ SW5 رو قطع میکنم و بمحض قطع کردن میبینید که سریعا Fa0/2 جایگزین میشه و از حالت بلاک در میاد و up میشه.
اگه این میخواست PVST کار کنه الان چیزی حدود ۳۰ تا ۵۰ ثانیه طول میکشید تا این جایگزین شدن اتفاق بیفته ولی چون RSTP داره کار میکنه اصلا زمان نبرد و بمحض اینکه Root port ش قطع شد اونوقت Alternate Root port ش رو جایگزین کرد.خب میبینید که زمان همگرایی هم عملا خیلی داره بهینه تر توی RSTP بهش نگاه میشه. خب حالا یدونه کلاینت به سوئیچ SW4 وصل میکنم و ببینیم که زمان همگرائیش ۳۰ ثانیه طول میکشه؟ نه. بمحض اینکه یه مدت زمان کوتاهی رو میزاره و میبینید که پورت سوئیچی که وصله به کلاینت چقدر زود سبز میشه و سوئیچ میبینه که روی این اینترفیسش bpdu دریافت نمیکنه اونرو سریعا up میکنه. پس این زمان هم خیلی سریعتر از اون زمانی بود که توی PVST میخواست بره تو فاز Listening و فاز Learning و ۳۰ ثانیه طول میکشه تا در نهایت این اینترفیسِ من up بشه.
پیاده سازی کامل سناریوی EtherChannel
نویسنده : مهندس جواد هدایتی
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.