روتینگ پروتکل RIP
پروتکل RIP یکی از انواع Dynamic Routing Protocol ها هستش که از دسته Distance Vector هستش فقط قبل از اینکه بخوام راجع به اینموارد صحبت کنم باید یه Overview یی داشته باشیم از Dynamic Routing Protocol ها. اصلا چرا باید برم سراغ Dynamic Routing Protocol . مگه با استاتیک روت نتونستیم جدولهای روتینگمون رو کامل کنیم؟ چرا اینکارو کردیم فقط چندتا نکته وجود داره. یکی اینکه استاتیک روت نویسی کارِ سختیه و اینکه اگه بخوام مثلا ۴۰ تا خط روت روی ۵۰ تا روتر بنویسم کارِ آسونی نیس. هم زمانبر هستش و هم اینکه احتمال خطا بالا میره و نکته بعدی که خیلی مهمتر از سختی یا آسونی قضیه هستش بحثِ همگرایی روتینگ پروتکلها هستش.یعنی اگه مثلا یک روتی حذف بشه چطوری اون روت میخواد از جدولهای روتینگ برداشته بشه؟ اگه یک مسیری رو اضافه کنم چطور به جدول روتینگ اضافه میشه؟ و اینکه اگه مسیرهای زیادی داشته باشم چطور میخواد از بین همه مسیرها ، بهترین مسیر انتخاب بشه؟ پس در واقع Dynamic Routing Protocol ها بصورت داینامیک جدولهای روتینگ رو آپدیت میکنن.
مثلا توی این شکل فرض کنید که برای ارتباط بین روترهای R1 و R2 و R3 و R4 نتورکهای NET1 و NET2 و NET3 و NET4 و NET5 وجود دارن. اینوسط روتر R1 برای NET1 و NET2 اتصال Connected داره ولی برای NET3 و NET4 و NET5 باید بهش بگم که از روتر R2 باید بری. یا مثلا برای روتر R2 باید بهش بگم که برای NET1 باید بری به روتر R1 . باید به ترتیب بشینم این روتها رو بنویسم. اگه بصورت استاتیک اینکارو انجام بدم حالا به شکل نگاه کنید
فرض میگیریم که این لینک اتصال بین روتر R3 و R4 قطع شده. حالا چه اتفاقی میفته؟ من باید بصورت دستی بیام یکی یکی این روتها رو از جدول روتینگ پاک کنم.یعنی این بحثِ همگرا شدنِ تغییرات توی نتورک داره رخ میده و قراره ما نسبت به این تغییرات واکنش نشون بدیم.
توی این شکل دقت کنید. مثلا فرض کنید که یک لینک down میشه و مسیر جایگزین هم دارم. مثلا مسیر از روتر R3 به R5 به R4 . حالا باید بصورت دستی روت رو پاک کنم و روتِ جایگزین رو اضافه کنم یعنی همون مسیر جایگزین رو. خب اینا همش توی نتورک Down Time ایجاد میکنه. مدت زمانیکه نتورک نمیتونه پاسخگو باشه به کلاینتها رو باهاش مواجه میشه. رو همین حساب داینامیک روتینگ پروتکلها اومدن که این مسائل رو برامون حل کنن.
همونطور که مشخصه روترهای مختلف از حالِ همدیگه خبر ندارن. قراره که باهمدیگه صحبت کنن تا اینکه از حالِ هم باخبر بشن. یعنی روت ها رو میخوام بهمدیگه یاد بدن. پس در نهایت بعد از اینکه این روترها صحبتشون باهمدیگه تموم شد جدول روتینگشون ساخته میشه. اینوسط یه اصطلاحی هستش که میگیم روتینگ پروتکل باید Loop free باشه. یعنی Routing loop نباید داشته باشیم. حالا این خودش جای سوال داره که روتینگ لوپ چی هستش؟ ما قبلا توی بحثِ سوئیچینگ لوپ گفتیم که بحثهایی مثل Broadcast Storm یا Duplicate frame copy یا Mac table instability اینا مشکلاتِ سوئیچینگ لوپ یا بریجینگ لوپ هستن و ما همونجا گفته بودیم که توی روتینگ چون برادکست نداریم پس لوپ هم نداریم اما اینوسط چندتا نکته وجود داره. اونچیزیکه ما بعنوان Routing loop میشنویم هیچ ربطی به اون بحثهای برادکست نداره. Routing loop در واقع یک اصطلاح هستش. میگه مثلا اگه شما بسته هاتون رو توی نتورک بچرخونید و این بسته ها در نهایت به مقصد نرسه و یا بعبارتی شما بسته ها رو به مسیری روت کنید یا مسیریابی کنید که اون مسیر بسته های شمارو به مقصد نرسونه اونوقت به این میگن Routing loop .
مثلا توی این چرخه ای که اینجا ایجاد میشه توی نتورک فاندمنتال هستش که فیلدِ TTL میتونه اینجا مشکل رو حل کنه چون از هر روتری که رد میشه یدونه از TTL کم میکنه و در نهایت جایی که TTL صفر میشه اون بسته از شبکه دور ریخته میشه. پس وقتی میگیم روتینگ پروتکل باید Loop free باشه یعنی زمانی که روترها بهم صحبت کردن و به نتیجه رسیدن و جدولهای روتینگشون رو ساختن و مسیرهارو ایجاد کردن ، باید الان دیگه مسیرها طوری نباشه که اون مسیرها بسته ها رو به مقصد نرسونه. خب هر روتینگ پروتکلی برای خودش فیچِرهایی داره که بتونه جلوی Routing loop رو بگیره. جلوتر راجع به اینموارد صحبت میکنیم.
اگه بخوام یک Overview یِ کلی از روتینگ پروتکلها بهتون بدم میتونم بگم که روتینگ در حالت کلی میتونه به دو دسته استاتیک روتینگ و داینامیک روتینگ تقسیم بشه. راجع به استاتیک روتینگ توی مقاله قبلی کامل صحبت کردم اما میخوایم داینامیک روتینگ رو باز کنیم. قبل از اینکه بریم در مورد بحثهای داینامیک روتینگ صحبت کنیم باید دسته بندیهای اینروهم بشناسیم. قبل از هر چیزی من باید براتون یک مفهومی رو باز کنم به اسمِ AS یا Autonomous System.
به مجموعه دیوایسهایی که تحت مدیریت یکسان هستن میگن AS.
مثلا AS ِ بانکِ ملی. مثلا AS ِ شاتِل. مثلا AS ِ پارس آنلاین. بعدا توی دوره CCNP درباره AS ها دقیقتر صحبت میکنیم که مثلا این AS نامبرها خریداری میشن و بهم لینک هستن و خیلی مواردِ دیگه. پس در کل میتونم بگم که دو مدل روتینگ داریم. روتینگ بین این AS ها و روتینگِ داخلِ این AS ها. روتینگ داخلی مثلا شعبات باهمدیگه در ارتباطن. چرا اصلا به روتینگِ بین AS ها نیاز دارم؟ قبل از هر چیزی اینو بگم که به روتینگِ بین AS ها میگن EGP. حالا چرا باید بین AS ها روتینگ پروتکل رو ران کنم؟ چونکه در حالت کلی باید بگم که اینترنت یعنی همین. اینترنت مجموعه ای از AS های مختلفِ شاتل و پارس آنلاین و گوگل و یاهو و فیسبوک و مجموعه ای از AS های مختلف هستش که توسط روتینگ پروتکل BGP باهمدیگه ارتباط دارن و روت میشن. ضمنا یادتون باشه که اصلا از استاتیک روتینگ نمیشه تو سطح اینترنت کار کرد. همین الان توی روترهای اینترنت هر کدوم از روترهای اینترنت که دارن با BGP کار میکنن ، با احتسابِ Manual Summarization هایی که در نظر گرفته شده بیش از ۵۰۰ هزار خط روت وجود داره. این عددِ بالایی هستش و چیزی نیستش که بشه بصورت استاتیک و دستی مدیریتش کرد. پس BGP روتینگ پروتکلی هستش که میخواد مدیریت بین AS ها رو بر عهده بگیره. ما با BGP توی دوره CCNA کاری نداریم و توی دوره CCNP کامل درباره بحثهای مربوط به BGP صحبت میکنیم. اونچیزیکه ما میخوایم راجع بش صحبت کنیم بحثِ IGP هستش. یعنی در واقع ما میخوایم درباره یک روتینگ پروتکل داخلِ یک سازمان که مثلا میخواد بین شعباتش روتینگ راه بندازه صحبت کنیم. یعنی روتینگ پروتکلهایی که میخوان توی AS کار کنن. خودِ روتینگ پروتکلهای IGP به دو دسته کلی تقسیم میشن. پروتکلهای Distance Vector و پروتکلهای Link state . اصلی ترین پارامتر و معیارِ تفاوت بین روتینگ پروتکلهای Distance Vector و Link state توی اونچیزیه که Advertisement ها و آپدیتهایی که روترها به همدیگه ارسال میکنن ارسال میشه. توی روتینگ پروتکلهای Distance Vector اون چیزیکه ارسال میشه دقیقا خودِ مسیر هستش که ارسال میشه. خودِ مسیر رو روتر به همسایش یاد میده و همسایه قبول میکنه و ازش استفاده میکنه. توی روتینگ پروتکلهای Link state اینطوری نیست. روتر مسیر به همسایه یاد نمیده. میاد وضعیت لینکهای خودش رو به همسایه اعلام میکنه و همسایه خودش تصمیم میگیره که برای کدوم نتورکها از کدوم مسیرها استفاده کنه. جلوتر راجع به اینا خیلی کاملتر صحبت میکنیم. فعلا دارم یه Overview از چیزی میگم که جلوتر راجع بشون یاد میگیرید. فقط بدونید در روتینگ پروتکلهای Dostance Vector روتینگ پروتکل RIPv1 حذف شده و IGRP هم قدیمی هستش و روتینگ پروتکل Link state هم دوتا روتینگ پروتکل OSPF و IS-IS رو داره.
پروتکل IS-IS بخاطر پیچیدگیهایی که داره معمولا توی نتورکهای Enterprise یعنی کمپانی هایی که میخوان روتینگ داشته باشن استفاده نمیشه بخاطر یکسری موارد مثل Traffic Engineering و بقیه موارد که الان واقعا زوده بخوام راجع بش صحبت کنم. ولی بدونید IS-IS هنوز تو سطحِ Service Provider کاربرد داره. حالا سیسکو اومد از هردوتا خصوصیتهای خوبِ پروتکلهای Distance Vector و Link state استفاده کرد و روتینگ پروتکل EIGRP رو ایجاد کرد. ما EIGRP رو بعنوان یک روتینگ پروتکل Hybrid یی میشناسیم و جلوتر راجع بش صحبت میکنیم. اونچیزیکه ما توی دوره CCNA میخونیم از روتینگ پروتکلهای RIPv2 و OSPF و EIGRP مفاهیم و پیاده سازیشون هستش.
دنبال RIPv1 و IGRP نباشید چون دیگه کاربردی نداره.
حالا که یه Overview یی درباره کلیات مربوط به روتینگ پروتکلها یاد گرفتید بریم سراغ پروتکل RIP . یعنی در واقع میخوایم توی دسته DVها روتینگ پروتکل RIP رو باهم بشناسیم. فرض کنید چندین روتر بهمدیگه متصلن و قراره این روترها باهمدیگه صحبت کنن و جدولهای روتینگشون رو بسازن
درواقع باید بگم که قبل از اینکه روتر۱ و روتر۲ و روتر۳ اصلا روتینگی داشته باشن ، هر کدومشون اینرو قبول خواهند کرد که اطلاعات لینکهای متصل به خودشون رو میشناسن. یعنی اگه نتورکهای توی شکل به اینصورت هستش. مثلا نتورکهای X و Y و Z و O . روتر۱ نتورکِ X و Y رو میشناسه و روتر۲ نتورکِ Y و Z رو میشناسه و روتر۳ نتورکِ Z و O رو میشناسه بدون اینکه روتینگ پروتکلی بخواد کار کنه بینشون. حالا هر روتر جدول روتینگش رو تحتِ عنوانِ Routing Update روی همه پورتهاش ارسال میکنه. یعنی مثلا روتر۲ این ننورکهای Y و Z رو به روترهای ۳و ۱ هم یاد میده. پس اینوسط مثلا روتر ۳ که Z و O رو که خودش از قبل داشت توی جدول روتینگش ، حالا نتورکِ Y روهم میتونه با روتینگ پروتکل RIP یاد بگیره. در نهایت هر روتر به روترِ همسایش جدولِ روتینگش رو یاد میده ، حالا چی یاد میده؟ مجموعه اطلاعات خودش رو و اطلاعاتی که یاد گرفته رو یاد میده. اینروهم بدونید که روترها به روتینگ آپدیتهایی که روی اینترفیسهاشون میگیرن گوش میدن. چرا؟ چون میخوان همه مسیرها رو بسازن. این اتفاق بصورت دوره ای تکرار میشه. توی RIP هر ۳۰ ثانیه یکبار هر روتر اطلاعاتِ جدولِ روتینگش و نتورکهاش رو روی همه اینترفیسهاش به همه همسایه هاش اعلام میکنه ، حتی اگه تغییری توی نتورکش رخ نداده باشه. این بصورت دوره ای انجام میشه و هر روتری هر ۳۰ ثانیه یکبار درواقع داره جدولِ روتینگش رو مجدد بروز میکنه.
حالا میخوایم توی این شکل یکسری از مواردی رو که گفتیم بررسی کنیم و چند تا نکته وجود داره. دقت کنید که اونچیزیکه من بعنوانِ جدولِ روتینگ میگم درواقع جدولِ روتینگ نیست. روت هستش ولی جدولِ روتینگ نیست. جدولِ روتینگ داخلش درج شده که مثلا این روترِ من به چه اینترفیسی وصله و Next-Hop َم چیه و ازینجور موارد. اما اونچیزیکه روترِ R2 به روترِ R1 اعلام میکنه در واقع دوتا چیزه. نتورک و مِتریک. یعنی روترِ R2 به روتر R1 فقط میگه 172.30.21 و 172.30.22 و فقط نتورکش رو اعلام میکنه. پس این چجوری روت میسازه؟ جوابش سادست. روترِ R1 میگه من این آپدیتهایی که از روتر R2 دریافت کردم رو از روی کدوم اینترفیسم گرفتم؟ میبینه که داره از S0/0 میگیره. پس اگه بخواد به روتر R2 برسه اینترفیس خروجیش هم همین میشه. پس روترِ R1 میاد میگه برای این دوتا نتورکِ 172.30.21 و 172.30.22 اینترفیس خروجی من سریال S0/0 هستش. از طرفِ دیگه میگیم مگه این آپدیت نیست؟ آپدیتها بسته هستش. اونوقت Source IP پکتهاش چیه؟ میشه 172.30.1.2. پس روتر R1 میاد همینو بعنوان آدرس ip یِ روترِ بعدی یا NextHop درنظر میگیره و متریکی که بهش اعلام کرده رو میاد توی جدول روتینگ قرار میده. حالا باید راجع به متریک صحبت کنم. در واقع میتونم بگم زمانیکه یک روتر میاد برای یک نتورک از مسیرهای مختلف آپدیت میگیره. یعنی فرض کنید یک روتر دارم که این روتر سه تا مسیر داره.
این روترِ R1 طبق شکل سه تا مسیر داره که آخرش هر سه تا مسیر به NET میرسه. پس روترِ R1 روی هر سه تا مسیر از NET خبر داره. اگه بخواد بره به NET باید کدوم مسیر رو انتخاب کنه؟ تینجاست که میگیم این کاملا وابسته به پارامتری هستش به اسم مِتریک. همه روتینگ پروتکلها برای انتخاب بهترین مسیرشون میان به متریک نگاه میکنن و اون مسیری براشون بهترین مسیره که متریکِ کمتری داشته باشه. خب این خودش جای صحبت داره. نگاه کنید
فرض کنید که من مثلا میخوام برم شیراز و چندین مسیر جلوی پام هستش. میتونم با اتوبوس برم یا با هواپیما برم یا میتونم با قطار برم. ممکنه یکبار برای من بین این مسیرها هزینه مهم باشه بیام بررسی کنم که اگه با اتوبوس برم مثلا باید ۱۰۰ هزار تومن پول بدم و اگه با هواپیما برم باید یک میلیون تومن پول بدم و اگه با قطار برم مثلا باید ۴۰۰ هزار تومن پول بدم. حالا بین این سه تا پارامتر متریک باتوجه به کمتر بودن هزینه کدومش از همه کمتره؟ خب مشخصه که ۱۰۰ هزار تومن. پس مسیر اتوبوس برای من مسیر بهتری هستش. ولی ممکنه توی یک مثال دیگه زمانِ رسیدن مطرح باشه. بررسی کنم که مثلا اگه با اتوبوس برم ۱۲ ساعت طول میکشه و با هواپیما برم ۱ ساعت طول میکشه و با قطار برم مثلا ۶ ساعت طول میکشه. حالا بینِ اینا کدوم مسیر بهتره؟ اونی که متریکش کمتره یعنی مسیر هواپیما. نکته اینجاست که روتینگ پروتکلهای مختلف مثل RIP ، EIGRP ، OSPF ، همه این روتینگ پروتکلها معیارِ انتخابِ متریکشون باهم فرق میکنه ولی وقتی متریک رو انتخاب کردن مسیری که با متریکِ کمتر هستش براشون مسیرِ بهتره. حالا اگه روتری روی دو یا چند مسیر متریکِ یکشان دریافت کنه اوضاع چجوری میشه؟ مثلا همه رو با متریکِ ۵ دریافت کنه. اینجا یک کاری انجام میده به اسمِ لود بالانسینگ. پکتهایی که میخواد ارسال کنه رو روی هر کدوم از مسیرهاش ارسال میکنه و لود بالانسینگ انجاممیده و Share رو روی همه لینکهایی که روش متریکِ یکسان داره دریافت میکنه ، تقسیم میکنه. معیار انتخاب متریک رو توی روتینگ پروتکل RIP رو بهش میگن Hop Count . تعداد روتر مسیر. به شکل دقت کنید
اگه دارم به اینصورت کار میکنم و روترِ R1 داره از هر دوتا مسیرِ بالا و پایین آپدیت رو دریافت میکنه ، درواقع توی RIP هر روتری که Advertise میکنه متریکی که یاد گرفته رو ، حالا موظفه یدونه به متریکش اضافه بکنه. یعنی مثلا روترِ R7 اول با متریکِ ۱ اینرو Advertise میکنه. حالا روترِ R4 وقتی میخواد اینرو به روترِ R3 یاد بده اینرو با متریکِ ۲ یاد میده. مسیر پایین هم بهمین صورت. حالا روترِ R3 وقتی میخواد یاد بده با متریک ۳ یاد میده و روترِ R2 با متریکِ ۴ یاد میده مطابق شکل. یعنی در واقع روترِ R1 از بالا متریکِ ۴ رو داره و از مسیرِ پایین متریکِ ۳ رو داره پس مسیرِ پایین براش مسیرِ بهتری هستش و مسیرِ پایین رو توی جدولِ روتینگش قرار میده و خوبیش اینه که اگه مسیر پایین Faild بشه میتونه مسیر جایگزین که همون مسیرِ بالا باشه رو نگه داره و ازش استفاده کنه.
پس گفتیم که اونچیزیکه ارسال میشه فقط NetID و Metric هستش. RIPv1 فقط NetID ارسال میکنه و ما باهاش کاری نداریم.اما RIPv2 علاوه بر NetID میاد Subnet mask روهم ارسال میکنه. پس اونچیزایی که توی آپدیتها ارسال میشن NetworkID و Subnet mask و Metric هستش و هر روتر یدونه به این عددِ متریک اضافه میکنه. آدرسِ Source ip یش که اینترفیسِ خروجی هستش و Destination ip یِ آپدیت هایی که توی RIP ارسال میشه ، توی RIPv1 برادکست بود و ما باهاش کاری نداریم فقط برای داشتنِ اطلاعات گفتم بهتون و توی RIPv2 این آدرس مالتی کَست هستش. پس میشه گفت که RIPv2 کاراتر و با Performance ِ بالاتری میتونه اینکارها رو انجام بده.
از طرفِ دیگه بهتون گفتم که اینترفیسی که داره روش آپدیت گرفته میشه برای روتر بعنوانِ اینترفیسِ خروجی محسوب میشه و Source ip یِ این آپدیتها بعنوانِ Next hop address ِ این مسیر محسوب میشه و در نهایت هم روتر بین همه مسیرهایی که برای یک نتورک داره میاد کمترین متریک رو بعنوانِ بهترین مسیر انتخاب میکنه.
اینجا میخوایم چندتا پارامتر رو باهم یاد بگیریم.
یه نکته اینه که ماکزیمم متریک توی RIP میتونه ۱۶ تا باشه. یعنی از ۱۶ دیگه بدرد نمیخوره. یعنی شما تا ۱۵ تا روتر رو میتونید بهمدیگه وصل کنید. RIP تا ۱۵ تا روتر رو میتونه کار کنه و مسیریابی انجام بده و روی روتر ۱۶ می نمیتونه کار کنه. اینا نکات مهمی هستش. مثلا بدونید که RIP یک روتینگ پروتکل استاندارد هستش و روی روتهای غیرِ سیسکویی هم کار میکنه. اینم بدونید اگه توی نتورکی بیش از ۱۵ تا روتر دارید RIP بدردتون نمیخوره. حالا از طرفِ دیگه میخوام دوتا تایمر رو بهتون معرفی کنم. تایمرِ اول رو بهش میگن Hello time و اون مدت زمانی هستش که آپدیتها داره ارسال میشه که by default روی ۳۰ ثانیه هستش. اگه توی ارسال آپدیتها روترِ ۱ مثلا نتورکِ X رو داشته میفرستاده و الان دیگه نمیفرسته و روتر بعدی یعنی روترِ ۲ بجای اینکه اینرو از جدول روتینگش دربیاره ، میگه من مدت زمانِ Dead time رو که ۱۸۰ ثانیه هستش رو صبر میکنم و اگه تویِ این ۱۸۰ ثانیه هنوز این آپدیت رو برام نفرستادی اونوقت من این نتورکِ X رو از جدولِ روتینگم حذف میکنم.
به این مثال دقت کنید. اول از همه به این نتورکِ 172.16.3 در روترِ R2 دقت کنید. روترِ R2 این NetID و Subnet mask رو که 172.16.3.0/24 هستش بهمراه متریکِ ۱ رو روی هر دوتا اینترفیسش ارسال میکنه. حالا توی Step3 روترِ R3 میاد این نتورکِ 172.16.3.0 رو توی جدولِ روتینگش اضافه میکنه و میگه که الان من برای اینکه برم به نتورکِ 172.16.3.0 باید برم به S0/1 . حالا از کجا اینرو فهمید؟ چون آپدیت رو روی این اینترفیس گرفت. ازینورم میگه با برم سراغ 172.16.6.252 . اینو از کجا فهمید؟ چون Source ip یِ این آمدیتهای روترِ R2 این آدرس هستش. و ازونورم میگه متریکش ۱ هستش و اینروهم از توی Step2 متوجه شد که بهش اعلام شده بود. پس اولین کاری میکنه میاد این روت رو نگه میداره در Step3. همینطور روترِ R1 هم این نتورکِ 172.16.3.0M رو یاد میگیره. پس الان روترِ R1 و R3 نتورکِ 172.16.3.0 رو با متریکِ ۱ بلدن.حالا روترِ R3 میاد اینرو Advertise میکنه و حتی روترِ R1 هم میاد Advertise میکنه. روترِ R1 و R3 تنها کاری که انجام میدن میان یدونه به متریک اضافه میکنن که متریکش میشه ۲. الان به اینجا دقت کنید که روترِ R1 داره برای نتورکِ 172.16.3.0 داره با متریکِ ۲ میگیره و و از طرفِ روترِ R2 داره با متریکِ ۱ میگیره. خب مشخصه که این مسیر بسمت روترِ R2 براش مسیرِ بهتری هستش چون متریکش کمتره. اما اگه یروزی این مسیر بسمتِ روترِ R2 فِیلد بشه اونوقت ۳۰ ثانیه بعد چه اتفاقی میفته؟ میاد با متریک ۲ نتورکِ 172.16.3.0 رو یاد میگیره و مسیر رو عوض میکنه و متریکش رو ۲ قرار میده و از سمتِ اینترفیسِ S0/1 ارسال میکنه.
همونطوری که گفتیم روتینگ پروتکلها باید Loop free باشن. یعنی توی RIP که جزء دسته Distance Vector هستش Avoidance feature هایی هستش یا میشه گفت فیچِرهایی برای جلوگیری از ایجادِ Loop وجود داره که میخوایم یکی یکی به فیچِرهاش اشاره کنیم و بگیم که اگه این فیچِر نباشه عملا چه اتفاقی میفته. فیچِرِ اول که میخوام باهم ببینیم فیچِر Route Poisoning هستش. دقت کنید که ما گفتیم ماکزیمم تعداد روتری که میتونم با RIP داشته باشم ۱۵ تا هستش. حالا فرض کنید NET-X یی که در انتهای ۱۵ تا روتر یعنی وصله به روترِ پانزدهم قطع میشه. الان روترِ آخر یا پانزدهمی این نت رو توی ۳۰ ثانیه ارسال نمیکنه.قرار شد که چقدر طول بکشه که مثلا این روترِ چهاردهمی هم از جدولِ روتینگ پاکش کنه؟ ۱۸۰ ثانیه. و بعدش دیگه روترِ چهاردهم ارسالش نمیکنه این نتورک رو. دوباره روتر سیزدهم چقدر طول میکشه که پاکش کنه؟ ۱۸۰ ثانیه و بعدش دیگه این نتورک رو ارسال نمیکنه. یعنی اگه من ۱۵ تا روتر داشته باشم اونوقت توی بدترین شرایط ۱۵ تا ۱۸۰ ثانیه طول میکشه یعنی ۴۵ دقیقه ، تا آخرین روتر بفهمه که نتورکِ NET-X که چسبیده بود به روترِ پانزدهم قطع شده. خب این خیلی زمانِ زیادی هستش.دقیقا اگه این فیچِرِ Route Poisoning نبود اونوقت مشکلی که پیش میومد مشکلِ Long faild detection time بود. مدت زمان تشخیص خطا زمانی که روترها زیاد میشه واقعا زمان زیادی هستش. حالا برای اینکه این مشکل بشه میاد از Route Poisoning یا سمی کردن مسیر استفاده میکنه. توی این شکل روترِ R2 میاد میگه اگه اینجا یه نتورکی از من قطع شد ، بجای اینکه اونرو Advertise نکنم که روترِ بعدیم یعنی R1 بیاد ۱۸۰ ثانیه صبر کنه ، اونوقت میاد اونرو Advertise میکنه ولی با متریکِ ۱۶ میام Advertise میکنم. وقتی با متریکِ ۱۶ Advertise میکنه عملا داره بهش میگه Infinity یعنی همون Unreachable و نمیتونی به این نتورک دسترسی پیدا کنی. پس این روترِ R1 اینرو همون ۳۰ ثانیه اول متوجه میشه. یعنی الان مثلا ۱۵ تا ۳۰ ثانیه طول میکشه که آخرین روترم متوجه بشه که این نتورک قطع شده یعنی در مجموع میشه ۷ و نیم دقیقه. پس عملا Route Poisoning تونست زمانِ تشخیص خطا رو توی بدترین شرایط کاهش بده. حالا چرا میگم بدترین شرایط؟ چون ممکنه نتورکتون ۱۵ تا روتر بصورت پشتِ سرهم نداشته باشه و تعداد روترهاتون کمتر ازین باشه. ولی اگه توی بدترین شرایط ۱۵ تا روتر داشته باشید زمان تشخیص خطا رو از ۴۵ دقیقه بیاره روی ۷ و نیم دقیقه.
فیچِرِ دیگه ای که میخوایم یاد بگیریم فیچرِ Split Horizon هستش. به شکل بالا دقت کنید.فرض کنید من دوتا روتر دارم. روترِ۱ میاد NET رو توی ۳۰ ثانیه اول با متریکِ ۱ یاد میده به روترِ۲ یا اصطلاحا میگیم Advertise میکنه برای روترِ۲. پس الان روترِ۲ این آپدیت رو که از روترِ۱ دریافت کرده رو با متریکِ ۱ توی جدول روتینگش داره. حالا توی ۳۰ ثانیه بعدی فرض کنید که NET قطع میشه. حالا توی ۳۰ ثانیه دوم این روترِ۱ میاد موقعِ ارسال این NET رو با متریکِ ۱۶ برای روترِ۲ Advertise میکنه یا ارسال میکنه چون Route Poisoning هستش. حالا اگه ۳۰ ثانیه اولِ روترِ۲ سر برسه چه اتفاقی باید بیفته؟ یعنی تا الان روترِ۲ داشته دریافت میکرده حالا میخواد ارسال کنه به روترِ۱. روترِ۲ میگه الان وظیفم اینه که اینچیزیکه یاد گرفتم رو یدونه به متریکِش اضافه کنم و روی پورتهام Advertise کنم. یعنی الان توی ۳۰ اولِ روترِ۲ این روتر داره متریکِ ۲ رو برای روترِ۱ Advertise میکنه. پس روترِ۱ میاد متریکِ ۲ رو برای NET که از روترِ۲ دریافت کرده توی جدولِ روتینگش قرار میده. حالا روترِ۲ توی ۳۰ ثانیه دومش میاد اون متریکِ ۱۶ یی که از روترِ۱ دریافت کرده بود رو جایگزینِ متریکِ ۱ قبلیش میکنه. حالا روترِ۱ توی ۳۰ ثانیه سومش میاد یدونه به متریکِ ۲ یِ خودش اضافه میکنه و میزارتش ۳ و ارسال میکنه برای روترِ۲. حالا روترِ۲ توی ۳۰ ثانیه دوم خودش با متریکِ ۱۶ برای روترِ۱ ارسال میکنه و بعد روترِ۲ توی جدولِ روتینگش میاد متریک ۳ رو وقتی از روترِ۱ دریافت کرد توی جدول روتینگش بجای متریکِ ۱۶ قرار میده. حالا روترِ۱ میاد توی ۳۰ ثانیه دوم خودش که Advertise از روترِ۲ دریافت میکنه توی جدول روتینگش بجایِ متریک ۲ متریکِ ۱۶ رو قرار میده و همین روند برای ارسال و دریافت آپدیتهای هر دو روتر که روی یک لینک هستن تا جایی ادامه پیدا میکنه ، بتونن به Infinity که همون متریکِ ۱۶ هستش توافق کنن. فیچِرِ Split Horizon اومده این مشکل رو حل کرده. این فیچر توی اکثرِ روتینگ پروتکلها وجود داره.
فیچرِ Split Horizon میاد میگه زمانیکه یک روتی رو از یک روتری روی یک اینترفیس یاد میگیری حق نداری اونرو بهمون روتر دوباره یاد بدی. با توجه بهمون اسلاید شماره ۲۰ توضیح میدم. وقتی روترِ۱ میاد NET رو با متریکِ ۱ به روترِ۲ یاد میده اونوقت این روترِ۲ حق نداره دوباره NET رو به روترِ۱ یاد بده. دقت کنید که Split Horizon روی لینکها و نتورکهای Poison شده عمل نمیکنه. یعنی اگه مثلا روترِ۱ NET رو با متریکِ ۱۶ به روتر۲ یاد بده اونوقت روترِ۲ هم NET رو با متریکِ ۱۶ یاد میده به روترِ۱ و میخواد سریع توی کل نتورک با متریکِ ۱۶ توافق کنه.
فیچِرِ دیگه ای که میخوایم بررسیش کنیم فیچِرِ Hold Down Timer هستش.
فرض کنید توی این شکلِ اسلاید شماره ۲۴ به روترِ۳ NET با متریکِ ۱ یاد داده میشه و الان این روترهای R1 و R2 با متریکِ ۱ یاد میگیرن و توی جدولِ روتینگشون قرار میدن. حالا روترِ۱ میاد NET رو با متریکِ ۲ به روترِ۲ یاد میده و روترِ۲ هم با متریکِ ۲ به روترِ۱ یاد میده. حالا من میخوام فقط یکطرفش رو نگاه کنم. حالا اینوسط میاد NET قطع میشه. وقتی NET قطع میشه روترِ۳ میاد توی ۳۰ ثانیه دوم NET رو با متریک ۱۶ روی پورتهاش ارسال میکنه یا بهتره بگیم یاد میده. حالا این روترِ۱ میاد توی ۳۰ ثانیه دوم NET رو با متریکِ ۱۶ یاد میگیره ولی توی ۳۰ ثانیه اول اومد NET رو با متریک ۲ ارسالش کرد. حالا روترِ۱ میاد بجای متریک ۱ یی که توی ۳۰ ثانیه اول دریافت کرده بود و توی جدول روتینگش قرار داده بود میاد بجای ۱ متریکِ ۱۶ رو قرار میده توی جدولِ روتینگش. حالا روترِ۲ میاد از روترِ بالا یعنی روترِ۱ متریک ۲ رو یاد میگیره و از روترِ۳ میاد متریک ۱۶ رو یاد میگیره. حالا روترِ۲ میاد یدونه به متریکِ ۲ یِ خودش اضافه میکنه و میزارتش ۳ و میفرسته برای روترِ۳. اینجا Split Horizon نمیتونه جلوش رو بگیره چون این روترِ۲ به روترِ۳ میگه من اصلا NET رو از تو یاد نگرفتم من از روترِ۱ یاد گرفتم. پس این عملِ Count to infinity روی بیش از یک لینک هستش. Split Horizon توی یک لینک میتونست حلش کنه. پس الان روترِ۲ میتونه NET رو با متریکِ ۳ به روترِ۳ یاد بده. الان توی ۳۰ ثانیه بعدی روترِ۱ میاد NET رو با متریکِ ۱۶ به روترِ۲ یاد میده. یعنی روترِ۲ میاد متریکِ ۱۶ رو بجای متریکِ ۳ قرار میده ولی الان روترِ۳ متریکش رو توی جدول روتینگش ۳ قرار داده. پس توی ۳۰ ثانیه بعدی روترِ۳ میاد NET رو با متریکِ ۴ به روترِ بالایی یعنی روترِ ۱ یاد میده و روترِ۱ میاد متریکِ ۴ رو توی جدولِ روتینگش قرار میده. حالا روترِ۱ میاد NET رو با متریکِ ۵ برای روترِ ۲ ارسال میکنه یا بهتره بگیم یاد میده و همین روال بهمین صورت ادامه داره تا همه سره متریکِ ۱۶ توافق کنن.
حالا Hold Down Timer چطوری میتونه این مشکل رو حل کنه؟ Hold Down Timer میگه که اگه روتری بیاد نتورکی رو با متریک ۱۶ یاد بگیره. حالا تا اینجارو داشته باشید. توی شکل یادتونه که روترِ۲ داشت با متریکِ ۱۶ از روترِ۳ یاد میگرفت ولی داشت NET رو با متریکِ ۲ یاد میداد. حالا بریم ادامه درس. حالا میگه اگه روتری با متریکِ ۱۶ یاد بگیره سریعا نتورک رو میبره توی یک Count down یی یا شمارش معکوسِ ۱۸۰ ثانیه ایِ Hold Down Timer ، و هر روترِ دیگه ای مثلِ مثلا روترِ۱ اگه بخواد NET رو به روترِ۲ یاد بده اونوقت بهش میگه صبر کن ، من حرفت رو قبول نمیکنم تا زمانیکه این ۱۸۰ ثانیه تموم شه. پس عملا Hold Down Timer اجازه نمیده که وقتیکه یک روتری NET رو با متریکِ ۱۶ یاد گرفت بخواد با متریکِ دیگه ای NET رو یاد بگیره تا زمانیکه این Hold Down Timer بگذره و سپری بشه.
فیچِرِ دیگه ای که میخوایم یاد بگیریم فیچرِ Triggered Update یا Flash Update هستش. اگه یادتون باشه ما تونسته بودیم که با فیچرِ Route Poisoning زمانِ همگرایی رو از ۴۵ دقیقه به ۷ و نیم دقیقه کاهش بدیم.اما حالا این ۷ و نیم دقیقه هم زمانش زیاده. فیچرِ Triggered میگه اگه NET یی Faild شد صبر نکن تا ۳۰ ثانیت برسه و با متریکِ ۱۶ Advertise ِش کنی. همون لحظه فقط همون روت رو با متریک ۱۶ Advertise کن بده. حالا سره تایمِ خودت تو دوباره Advertise کن ولی همون لحظه یِ اول اینرو Advertise کن به هر روتری که یک NET یی رو با متریکِ ۱۶ یاد میگیره ، صبر نمیکنه ۳۰ ثانیه طول بکشه و بعد اونرو با متریک ۱۶ Advertise کنه. همون لحظه سریعا Advertise ِش میکنه. پس میتونم اینرو بگم که زمانِ تشخیصِ خطا توی نتورکِ شما عملا صفر ثانیه هستش. دقت کنید که زمانِ تشخیصِ خطا با زمانِ همگرایی فرق داره. چرا فرق داره؟ چون درسته که روترِ شما فهمید که NET مون Down شده اما همگرایی یعنی مسیرِ بعدی رو بتونه جایگزین کنه و دیدیم که مسیرِ بعدی رو جایگزین کردن لازمش گذروندنِ Hold Down Timer هستش. پس میتونم بگم که وقتی لینکتون Faild میشه زمانِ همگرایی شما حداقل باید این ۱۸۰ ثانیه یِ Hold Down Timer باشه. و نکته دیگه اینه که زمانیکه شما میاید لینک رو اضافه میکنید ، نه که Faild کنید بلکه یه لینکِ دیگه اضافه کنید اونوقت این دیگه Triggered Update نداره یا Route Poisoning نداره. روتر توی هر ۳۰ ثانیه میاد این آپدیتها رو Advertise میکنه. پس میتونه توی بدترین شرایط یعنی اگه تعداد روترتون توی نتورکِ RIP تون کمتر باشه حتما زمان همگرایی تون از این زمانهایی که میگم کوتاهتره ولی اگه توی بدترین شرایط ۱۵ تا روترتون رو پُر کرده باشید روترِ آخر حدود ۷ و نیم دقیقه احتمال داره طول بکشه تا نتورکی روکه اضافه میکنیم یاد بگیره ولی سه دقیقه طول میکشه تا نتورکی که هست رو پاک کنه و جایگزین براش داشته باشه. یعنی همون نتورکِ جایگزین رو بزاره. در کل اگه بخوام بهتون بگم بهرحال زمانِ سه دقیقه چهار دقیقه و ۷ و نیم دقیقه هم زمانِ کمی نیست ولی همینه. باید اینارو بدونید که زمانِ همگرایی روتینگ پروتکل RIP یه همچین عددهایی هستش و اگه براتون زمانِ همگرایی خیلی بیشتر ازین اهمیت داره باید برید سراغِ روتینگ پروتکلهای دیگه.
همونطور که قبلا گفتیم پروتکل RIP ورژنهای مختلفی داره. RIPv1 و RIPv2 . هرجفتشون روتینگ پروتکلِ Distance Vector هستن و ماکزیمم Hop Count شون ۱۵ هستش. RIPv1 رو بعنوانِ یک روتینگ پروتکلِ Classful میشناسیم ولی RIPv2 یه روتینگ پروتکلِ Classless هستش.یعنی چی؟ روتینگ پروتکلهایی که آپدیتهایی که ارسال میکنن بهمراهِ آپدیتها باهاش نتورک رو بهمراه Subnet mask ارسال میکنن بهشون میگیم روتینگ پروتکلهای Classless ولی اگه روتینگ پروتکلی فقط نتورک رو ارسال کنه بهش میگیم روتینگ پروتکل Classful. روتینگ پروتکل RIPv1 یک روتینگ پروتکل Classful هستش و Subnet mask رو ارسال نمیکنه. خب مشخصه که اگه Subnet mask توی آپدیتها ارسال نشه اونوقت نتورکی که رِنجِ ip یش یکسانه فقط Subnet mask ِش فرق داره اونوقت همشون بعنوان یک نتورک ارسال میشن مثل این مثال 192.168.1.0/24 یا 192.168.1.0/16 و یا 192.168.1.0/30 و فقط توی همچین روتینگ پروتکلهایی مثل همین RIPv1 نتورکهای VLSM هم ساپورت نمیشه در صورتیکه توی Classless علاوه بر نتورک میاد Subnet mask روهم ارسال میکنه اونوقت شما میتونید نتورکهای VLSM روهم توی طراحی نتورکتون بکار ببرید. روتینگ پروتکل RIPv1 بصورت Broadcast base کار میکنه یعنی Destination ip یِ آپدیتهایی که ارسال میکنه برادکست هستش یعنی ۴تا 255.255.255.255 و از طریِ دیگه RIPv2 برای ارسال آپدیتهاش از Destination ip یِ مالتی کستِ 224.0.0.9 استفاده میکنه. همین نشون میده که RIPv2 نسبت به RIPv1 عملا داره کارآمدتر کار میکنه.
شما توی RIPv1 نمیتونید Authentication داشته باشید ولی RIPv2 از MD5 Authentication استفاده میکنه. مثلا اگه شما سه تا روتر دارید و نمیخواید که روترِ چهارمی بیاد داخلِ نتورکتون و برای خودش آپدیت ارسال کنه و یکسری روتهای نامربوط توی نتورکتون بفرسته یا Gateway یِ اشتباهی بفرسته برای اینکه ترافیکها رو خودش دریافت کنه و برای جلوگیری ازینکار میتونید بینِ روترهاتون Authentication یا کلیدی تعریف کنید که با اون کلید Authentication انجام بشه و بعدش آپدیتی رد و بدل بشه. حتی با MD5 Authentication میتونید این Authentication رو بصورت Hash شده رد و بدل کنید و اینجوری حتی قابلیت کپچِر شدن رو نداره. از طرفِ دیگه RIPv1 شبکه های ناپیوسته رو ساپورت نمیکنه ولی RIPv2 ساپورت میکنه. من جلوتر راجع به Auto Summarization و بحثِ شبکه های ناپیوسته توضیح میدم.
به این شکل دقت کنید. یک فیچری داریم داخل روتینگ پروتکلها به اسم Auto Summarization. بعضی روتینگ پروتکلها داخلشون Enable هستش و بعضیهام Disable هستش. اول باید ببینیم که این فیچر چی هستش. این فیچر میگه روتر شما توی مرزِ شبکه سابنتی که داره Advertise میکنه رو به سابنتِ Classful Summery میکنه بعد میاد اونرو Advertise میکنه. یعنی اگه طراحی شما به اینصورت باشه : 172.16.1.0 و 172.16.2.0 و 10.10.10.0 ، اول باید مرزِ شبکه رو تعریف کنیم که اونجایی هستش که سابنتِ Classful از هم جدا میشه. حالا Classful ِش چیاست؟ اینه : 172.16.0.0 ، 172.16.0.0 و 10.0.0.0 . توی روترِ۱ چون سابنتِ Classful یکسانه مرزِ نتورک نیست و از روترِ۲ مرز مشخص میشه چون سابنتِ Classful عوض میشه و مرز رو با نقطه چین مشخص کردیم. Auto Summarization توی مرز کار میکنه پس روی روترِ۱ کاری نداره و روی روترِ۲ هستش که کار داره. به روترِ۱ نگاه کنید. میگه من با اُتو سامِری کاری ندارم و میام 172.16.1.0/24 رو Adv میکنم. اما روترِ R2 میگه چون من اینجا مرزِ نتورکم هستش یعنی قسمت نقطه چین ، میام 172.16.0.0 رو با 16/ اَدوِرتایز میکنم با سابنتِ Classful و نتورکِ 10.10.10.0/24 رو 10.0.0.0 رو 8/ میام Adv میکنم. فیچِرِ Auto Summarization فیچری هستش که عملا دیگه توی نتورکهای ما کاربرد نداره و اولین کاری که میکنیم اینه که باید از دستِ این فیچِر خلاص بشیم.
بعبارتی حالا باید مطلب رو باز کنم که شما توی روتینگ پروتکلهای Classful مثلِ IGRP و RIPv1 بصورت دیفالت اُتوسامِریزِیشِن Enable هستش و Disable هم نمیشه. توی روتینگ پروتکلهای RIPv2 و EIGRP بصورت دیفالت Enable هستش ولی اولین کاری که میکنیم اینه که Disable ِش کنیم. توی روتینگ پروتکل OSPF بصورت دیفالت Enable نیست. حالا میخوایم ببینیم که اتو سامریزیشن برای ما چه مشکلی میتونه توی بحثِ روتینگ ایجاد کنه. به شکل دقت کنید. توی این دیزاین اومدیم نتورکهای 10.10.0.0/24 و 10.10.1.0/24 و 10.10.2.0/24 و 10.10.3.0/24 رو سمتِ چپِ روترِ R1 گذاشتم. سمتِ راستِ روترِ R3 اومدم نتورکهای 10.11 با 24/ رو گذاشتم و وسط هم دوتا نتورک 172.16 با 30/ گذاشتم این نوع طراحی یعنی من دارم توی نتورکم بصورت VLSM کار میکنم. حالا ببینیم اگه Auto Summarization فعال بشه چه اتفاقی میفته؟ وقتی AuSu فعاله دوتا مرز دارم. یکی اونجایی هستش که از نتورکِ 172.16 جدا میشه روی روترِ R1 و جای دیگه هم که از نتورکِ 172.16 جدا میشه اما روی روترِ R3. وقتی میگیم شبکه ناپیوسته یعنی همین. یعنی دوتا سابنتِ Classful از یک نتورک میفته دو طرفِ یک سابنتِ Classful ِ دیگه. مثلِ نتورکِ 10.0.0.0 که دو طرفِ نتورکِ 172.16 هستش. الان توی همین شکل وقتی روترِ R3 میخواد به روترِ R2 بیاد Adv کنه نتورکهاش رو Summery میکنه و Adv میکنه. وقتی روترِ R1 میخواد Adv کنه نتورکهاش رو Summery میکنه و Adv میکنه. اگه برید جدول روتینگ روترِ R2 رو ببینید نمیدونه نتورکهای 10.10.0.0 و 10.10.1.0 و 10.11 اینا کجاست. پس چی میگه؟ میگه برای نتورکِ 10.0.0.0/8 من دوتا مسیر دارم. مسیرِ S0 و مسیرِ S1. هر جفتشم متریکاش یکسانه. حالا با متریک یکسان لود بالانسینگ صورت میگیره. یعنی یک بسته میفرسته روی S0 و یکی هم روی S1 . بعبارتی اگه شما از روترِ R2 بیاید ping کنید 10.11.11.0 رو یک پنگتون جواب میده و یکیش جواب نمیده. چرا؟ چون یکبار روت میشه بسمت روترِ R3 و جواب میده و یکبارم روت میشه بسمت روترِ R1 و جواب نمیده. خب این یه مشکله. روترِ R2 داره نتورک رو بصورتِ شکلِ پایین نگاه میکنه که این عملا بدردمون نمیخوره.
پس گفتم اولین کاری که میکنیم میریم و فیچر Auto Summarization رو Disable میکنیم. پس دقت کنید وقتی RIP رو فعال کردید باید ورژنش رو بزارید 2 و بعدش با دستورِ no auto summery این فیچر رو غیر فعال میکنیم.
درباره لود بالانسینگ هم صحبت کردم حالا از روی شکل ببینیم. اگه برای یک NET یی یک روتری دوتا آپدیت یا مسیر بگیره با متریکهای مساوی ، توی جدول روتینگش از هر دوتا استفاده خواهد کرد و لود بالانسینگ صورت میگیره و بسته های ترافیک بین دوتا لینکِ روترِ R1 تقسیم میشن.
توی بحثِ Configuration هم چندتا نکته وجود داره. نکته اول اینه که در کل باید دوتا کار انجام بدیم. یکی اینکه باید روتینگ پروتکل RIP رو توی سطحِ روترمون Enable کنیم ، دوم اینکه باید اینترفیسهای فعال رو توی RIP مشخص کنیم. به این شکل دقت کنید
میام توی محیطِ Global Configuration mode و با دستورِ router rip میام RIP رو فعال میکنم و اینرو روی همه روترهام میزنم. بعدش میخوام برم اینترفیسهام رو اکتیو کنم. حالا اینترفیسهامو اکتیو کنم یعنی چی؟ وقتی میگم یک اینترفیس اکتیو بشه یعنی ازش میخوام اینترفیسم سه تا کار انجام بده.
یکی اینه که ازش میخوام Routing Update رو روی همه اینترفیسهاش ارسال کنه. و دیگه ازش میخوام که روتینگ آپدیتها رو دریافت کنه و پروسس کنه و دیگه اینکه ازش میخوام نتورکِ خودش روهم Adv کنه. الان توی این شکل مثلا وقتی روی روترِ۱ هستم مشخصه که چرا باید دوتا اینترفیسهای سریالش فعال شن. چون اگه نشن این روترِ۱ Routing Update نمیفرسته ، پس چیزی به بقیه روترها یاد نمیده و روتینگ آپدیت هم نمیگیره ، پس عملا چیزی هم از بقیه روترها یاد نمیگیره. پس حتما باید دوتا اینترفیسِ روترِ۱ فعال باشن. حالا نکته اینه که آیا باید حتما اینترفیسِ F0 ِش هم فعال بشه؟ اینطرف که روتر نداره.آپدیت فرستادنش که بکارم نمیاد.اصلا روتری نیست که بخواد آپدیت بگیره. اصلا اونسمتش به سوئیچ وصله و کلاینتها وصلن به سوئیچ. اونور اصلا کسی نیست که برام آپدیت بفرسته. پس بنظر میرسه که نیازی نیست که این اینترفیسش رو فعال کنم. اما اشتباه نکنید و باید این اینترفیس فعال بشه. چرا باید فعال بشه؟ چون فقط ارسال و دریافت آپدیت که ملاک نیستش ، میگم باید نتورکِ خودش روهم Adv کنه و اگه این اینترفیسِ F0 رو فعال نکنم عملا روترهای دیگه NET1 رو نمیشناسن. خلاصه مطلبو بهتون بگم که شما زمانهایی که میخواید اینترفیسهارو Active کنید باید تمامی اینترفیسهاتون رو اکتیو کنید ت ی روتینگ پروتکل ، مگه اینکه مثلا شما میخواید از مسیرِ بالا پروتکل RIP رو ران کنید و از مسیرِ پایین یک روتینگ پروتکل دیگه رو ران کنید. اونموقع دیگه مثلا وقتی دارم از مسیرِ بالا RIP ران میکنم میام اینترفیسهای S0 و F0 رو توی RIP فعال میکنم و دیگه اینترفیسِ S1 رو فعال نمیکنم چون میخوام مثلا این اینترفیس رو توی OSPF فعال کنم. ولی تا زمانیکه نخواید بصورت ترکیبی از روتینگ پروتکلها استفاده کنید لازمه که همه اینترفیسهای اون روتر رو توی روتینگ پروتکلتون فعال کنید و معمولا هم بصورت ترکیبی استفاده نمیکنید ، چون روال بر اینه که دیزاینِ نتورک بصورتِ ساده و قابل درک باشه.
خب چطوری باید اینکارو انجام بدید؟ اینم یکم نکته داره. به این شکل دقت کنید
مثلا فرض کنید روترم چهارتا اینترفیس داره به اینصورت. خب تا اینجا فهمیدیم که باید همه اینترفیسهاش رو فعال کنیم. روش فعال کردنِ اینترفیس با دستورِ network هستش که بعد از نوشتن دستورِ network جلوش باید یک NetID معرفی کنید که این NetID باید Classful باشه. دقت کنید که شما با دستورِ network به روترتون نمیگید که چه چیزی زو Adv کنه ، با دستورِ network شما فقط اینترفیسهاتون رو اکتیو میکنید. حالا وقتی اینترفیس اکتیو شد میاد سابنتِ خودش رو Adv میکنه. یعنی توی این شکل اگه بخوام نتورکِ 192.168 رو اکتیو کنم باید بنویسم network 192.168.1.0 و network 192.168.2.0 و با این دوتا دستور میتونم این دوتا اینترفیسِ F0 و F1 رو اکتیو کنم. برای نتورکِ 10 هم باید بنویسم network 10.0.0.0 و عملا با همین یک خط دستور هر دوتا اینترفیسِ سریال فعال میشه. دقت کنید که گیج نشید. دستورِ network 10.0.0.0 معنیش این نیست که اینرو Adv کن. اگه برید توی جدولِ روتینگِ روترِ R2 نگاه کنید اینطوری نیست که بگه من نتورکِ 10.0.0.0 رو یاد گرفتم. نه. چنین چیزی نیست. میگه من 10.11.11.0 رو یاد گرفتم و 10.10.10.0 رو یاد گرفتم. پس این 10.0.0.0 چی بود؟ من با این به روتر گفتم که این اینترفیسهات باید فعال شه و وقتی فعال شد اونوقت خوده روتر میاد نتورکِ خودش رو Adv میکنه. پس اینرو دقت کنید که اشتباه نکنید.
به شکل دقت کنید که با دستور Router RIP اومدیم پروتکل RIP رو در Global mode فعال میکنیم. با دستور Version 2 ورژنش رو از یک به دو تغییر میدیم ، با دستورِ no auto-summary اولین کاری که میکنیم Auto Summarization رو میایم Disable میکنیم و در آخر با دستور network میایم اینترفیسهای فعال رو بهش معرفی میکنید. جلوی دستور network هم باید net-id بنویسید و net-id روهم باید بصورت Classful معرفی کنید و قبلا هم گفتم که اشتباه نکنید که دستورِ network معنیش Adv کردن نیست و معنیش اینه برو نگاه کن که کدوم اینترفیسها توی این نتورکِ Classful آی پیشون جا میگیره ، حالا بیا اون اینترفیسها رو اکتیو کن. پس با دستور network من فقط دارم اینترفیس رو اکتیوش میکنم. توی بحثِ مانیتورینگ هم دستورِ show ip route بهم جدولهای روتینگ رو نشون میده و show ip protocol دستورِ عمومی هستش که شما زمانیکه روتینگ پروتکل استفاده میکنید اونوقت این دستور خروجی های مختلف داره. یعنی وقتی شما روی روتری RIP رو ران میکنید دستورِ show ip protocols خروجی های مربوط به RIP رو به شما نشون میده و وقتی مثلا روی یک روتر OSPF رو ران میکنید خروجی های مربوط به OSPF رو نشون میده.
بریم بحثِ Configuration رو توی سناریو بهش بپردازیم.
توی این سناریو اومدم از نتورکهای مختلف استفاده کردم و در مجموع هفتا برادکست دامین یا هفتا نتورکِ مختلف دارم که اگه بخوام ارتباط بین همه اینا برقرار بشه لزوما باید روی هر روتر هفت خط روت داشته باشم. مثلا روی روترهای R1 و R3 و R4 دوخط روت دارم و باید پنج خط بصورت دستی بنویسم.روی روترهای R2 و R5 هم سه خط روت دارم و باید بصورت دستی چهار خط روت بنویسم. خب الان میخوایم داینامیک روتینگ پروتکلِ RIP رو ران کنیم و میخوایم خودمون این استاتیک روتها رو ننویسیم و این داینامیک روتینگ پروتکل خودش اینارو ایجاد کنه. خب توی این سناریو هیچ روتی رو ننوشتم و فقط اومدم برای هر اینترفیس ip سِت کردم و no shut کردم تا اینترفیسها up بشن و اگه روی تک تکِ روترها show ip route بگیریم میتونید فقط روتهای Connected رو ببینید.
در اسلایدهای زیر اول اومدیم کانفیگهای اولیه روترها رو قرار انجام دادیم و بعدش هم روتهای Connected به هر روتر رو بررسی کردیم.
حالا میایم توی روترِ R1 و تو محیط Global Configuration با دستورِ router rip میام RIP رو تو سطح Global فعال یا Enable میکنم. بعدش توی Configuration ِ خودِ رکتینگ پروتکل اولین کاری که میکنم اینه که ورژنِ RIP رو 2 قرار میدم و بعدش دستور no auto-summary رو میزنم تا Summarization رو Disable کنم و در آخر باید هردو اینترفیسِ روترِ R1 رو با دستورِ network فعال کنم. دستورِ network رو مینویسم و بعدش جلوش سابنتِ Classful اینترفیسهاش رو میدم. میزنم network 192.168.1.0 و بار دیگه این دستور رو میزنم network 172.16.0.0
حالا میرم سراغ روترِ R2 و هپین روال رو در پیش میگیرم
خب الان هر ۳۰ ثانیه این اطلاعات بین روترها ردوبدل میشه و نمیخوام چشم بسته بیاید و فقط این کانفیگها رو بزنید و تموم شه بره پیِ کارش. قبل از هر چیزی بگم که خیلی وقتها خیلیا میان روتینگ پروتکلشون رو ران میکنن و آخرشم میان از یه کامپیوتر یه کامپیوتر دیگه رو ping میکنن و تمام و خداحافظ و الان دیگه همه چیز درست کارمیکنه. یادتون باشه توی بحثهای روتینگ به هیچ عنوان ping کردن بین کلاینتها مطرح نیست.حالا چرا این موضوع اهمیت نداره زیاد؟ مثلا فرض کنید که من دوتا مسیر دارم. یه مسیرِ وایرلس دارم و یک مسیرِ MPLS هم بعنوان Backup دارم.حالا اینجا مسیرِ وایرلس بعنوانِ مسیرِ اصلیم هستش و مسیرِ بک آپم هم که سره جاشه. پس من هیچوقت پینگِ بین کلاینتهام رو از دست نمیدم ولی اگه مسیرِ وایرلسم قطع بشه هنوز کلاینتهام همدیگرو پینگ میکنن.خب درسته که کلاینتها همدیگرو پینگ میکنن ولی خب این مسیرِ درست نیست چون مسیر وایرلس قطع شده و داره از بکآپ استفاده میشه و چون مسیر وایرلس بعنوان مسیر اصلیم هستش خب این خودش اشکال محسوب میشه چون مسیرِ ارتباطی اصلیم قطع شده. پس با یک ping از یه کلاینت به یک کلاینت دیگه نمیشه نتیجه گرفت که همه چیز اوکیه. باید show ip route بگیرم و روتینگ پروتکل رو ببینم که مثلا داره همه چیش خوب کار میکنه یا نه.واسه همین قبل از اینکه بیام همه چیز رو فلّه ای ران کنم و کد بزنم و برم پیِ کارم گفتم که اینارو گفته باشم بهتون که سعی کنید روتینگ پروتکل رو بصورت تحلیلی یاد بگیرید. حالا من هنوز روی روترهای R3 و R4 و R5 هنوز هیچ روتینگ پروتکلی رو ران نکردم و بریم ببینیم که چه اتفاقی باید توی این سناریو بیفته.
الان روترِ R1 دوتا اینترفیسش فعال هستش و روترِ R2 هم سه تا اینترفیسش فعال هستش. حالا نتیجه چی میشه؟ روترِ R1 روی اینترفیسِ G0/1 خودش آپدیتهارو میفرسته و اینترفیسِ G0/0 هم که فعاله یعنی نتورکش Adv میشه. یعنی روترِ R1 نتورکِ 192.168.1.0 رو باید به روترِ R2 با روتینگ پروتکل RIP یاد بده یعنی الان روترِ R2 با RIP باید نتورکِ 192.168.1.0 رو بلد باشه. و از طرف دیگه روترِ R2 باید نتورکِ 10.10.10.0 رو و 10.10.11.0 رو با 30/ باید به روترِ R1 یاد بده و دقت کنید که هیچکدوم ازین نتورکهای روترهای دیگه نباید تو جدول روتینگِ روترِ R1 باشن چون با روتبنگ پروتکل RIP کانفیگ نشدن. حالا میام روی روترِ R1 میزنم show ip route
الان دقیقا نتورکهای 10.10.10.0 و 10.10.11.0 با 30/ رو داره نشون میده. دقت کنید که من توی روترِ R2 تو قسمت کانفیگِ RIP زده بودم network 10.0.0.0 ولی توی روترِ R1 دارم 10.10.10.0 و 10.10.11.0 رو میبینم و اصلا 10.0.0.0 رو نمیبینم. قبلا گفتم بهتون که دستورِ network فقط میاد اینترفیسها رو اکتیو میکنه و خودِ این اینترفیسها بعداز Activation میان سابنتِ خودشون رو ارسال میکنن.
حالا میام روی روترِ R2 یه show ip route میگیرم و اینجا باید با روتینگ پروتکل RIP نتورکِ 192.168.1.0 رو بلد باشه.
میبینید که بغیر از سه تا Connected یک خط روت رو با RIP یاد گرفته و داره میگه که برای نتورکِ 192.168.1.0 باید به کدوم ip برم. حالا این ip رو از کجا آورده؟ اون روتینگ آپدیتی که روترِ R1 فرستاده Source ip ش این بوده. اون روتینگ آپدیت رو روتر روی این اینترفیسِ G0/0 دریافت کرده پس میدونه که باید ازین اینترفیس خارج بشه. بعدا درباره 120 صحبت میکنم ولی این 1 رو که میبینید این متریک هستش. یعنی یک روتر اونورتر هستش. حالا اگه روی روترهای دیگه هم RIP رو ران کنم این 1 میشه 2 و روی بعدی میشه 3 . حالا بریم یکی یکی کارمون رو ادامه بدیم روی روترهای R3 و R4 و R5 هم RIP مکن رو ران کنیم.
الان انتظار دارم که بعد از ۳۰ ثانیه و ردوبدل کردن روتینگ آپدیتها بین روترها ، هر روتری تمام هفتا نتورک رو توی جدول روتینگ خودش روت داشته باشه. یسریش رو بصورت Connected داشته باشه و مابقی روهم با RIP یاد گرفته باشه.
میام روی روترِ R1 میزنم show ip route
میبینم که پنج تا مسیر رو با RIP یاد گرفته و اوندوتای دیگه رو بصورت Connceted وصله.
یسری رو با متریکِ 1 نشون میده و یسری روهم با متریک 2 نشون میده و نتورکِ 192.168.2.0 سه تا روتر اونورتر قرار داره نسبت به روترِ R1.یعنی روترهای R2 و R3 و R5.
حالا میریم سراغِ روترِ R2 و میبینم که این روتر برای نتورکِ 192.168.2.0 دوتا مسیر داره و هر دو مسیر متریکشون ۲ هستش یعنی متریک یکسانه و انتظار دارم روی هردوتا لود بالانسینگ انجام بده. پس یه show ip route میگیریم تا ببینیم اینکارو میکنه
اینجارو ببینید که داره میگه من برای نتورک 192.168.2.0 دوتا مسیر دارم. یکی از 10.10.10.2 و یکی هم از 10.10.11.2 و جفتشونم متریکشون ۲ هستش که نشون میده متریکشون یکسانه ، پس داره نشون میده که لود بالانسینگ داره صورت میگیره.
حالا که همه چیز اوکیه قطعا باید بتونم از کامپیوترِ 192.169.1.10 کامپیوترِ 192.168.2.10 رو ping کنم و میبینم که پینگش برقراره
انتظار دارم که بتونم trace کنم و تمام مسیر رو ببینم
دقت کنید چون دوتا مسیر با متریکِ یکسان داشتم یکبار hop رو 10.10.10.2 درنظر گرفته و یکبارم 10.10.11.2 و این یعنی یکبار از مسیرِ بالا رفته و یکبارم از مسیرِ پایین یعنی وقتی بسته به روترِ R2 میرسه عملا داره لود بالانسینگ صورت میگیره.
نویسنده : مهندس جواد هدایتی
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.