برای مشاهده مفیدترین ارسال در این موضوع اینجا کلیک کنید

نمایش نتایج: از شماره 1 تا 1 از مجموع 1
Like Tree2نفر پسندیدند
  • 2 ارسال توسط ناصر آرام نژاد

موضوع: پروتکل مسیریابی eigrp

  1. #1
    مدیر بازنشسته
    تاریخ عضویت
    2011 June
    محل سکونت
    تهران
    سن
    36
    ارسال ها
    37
    تشکر
    11
    تشکر شده 66 بار در 26 پست


    1 امتياز مثبت از 1 راي
    آيا اين پست براي شما سودمند بود؟ بله | خیر

    پروتکل مسیریابی eigrp

    پیشنیاز : آشنایی با IOS

    پروتکل های مسیر یابی در همه روتر ها استفاده میشوند و وظیفه شناسایی و ارتباط نتورک های مختلف را در یک شبکه متشکل از چندین نتورک، بر عهده دارد. از جمله این پروتکل ها میتوان به IS-IS,RIP,EIGRP,OSPF,BGP اشاره کرد که من در این مقاله سعی میکنیم EIGRP رو توضیح بدم.

    اين پروتكل در واقع بهترين پروتكل مسيريابي هست. بسيار ساده از نظر config كه از اين نظر با RIP قابل مقايسه هست. ولي بسيار غني و پر از گزينه ها و امكانات مختلف كه از اين نظر اگه از OSPF بهتر نباشه چيزي ازش كم نداره.

    در واقع تنها نكته منفي در اين پروتكل انحصاري بودنش هست و اینکه فقط تجهيزات سيسكو ميتونن از اين پروتكل استفاده كنن.البته ظاهراً بعضي از شركت ها براي خريد لايسنس استفاده از اين پروتكل اقدام كردن.
    پروتكل EIGRP همون پروتكل IGRP هست كه ارتقاء داده شده و در واقع جايگزين پروتكل IGRP محسوب ميشه که دیگه تو IOS دیده نمیشه.

    EIGRP = Enhanced Interior Gateway Routing Protocol


    اما مفاهيم:

    در پروتكل هاي مسيريابي مختلف از مقادير مختلفي براي محاسبه بهترين مسير و هزينه مسير استفاده مي شود كه پيچيده ترين انها كه شامل يك فرمول بسيار پيچيده و طولاني است در EIGRP استفاده مي شود. البته خبر خوب اين هست كه به دليل ثابت بودن بيشتر اين موارد و يا صفر بودن بيشتر اين مقادير به صورت پيشفرض اين فرمول به صورت بسيار ساده تر استفاده مي شود.


    BW= 10^7/(real line bandwidth)
    DELAY=(real line delay) / 10
    Metric= 256x(BW+DELAY)


    اون فرمول پیچیده که گفتم اینه :

    metric = [K1 * BW+ (K2 *BW) / (256 - load) + K3 * DELAY] * [K5 / (reliability + K4)]


    عدد حاصل كه با عنوان Metric شناخته مي شه همان مقداری هست كه مسيرها بر اساس كمتر بودن اون عدد به يكديگر ترجيح داده ميشوند.


    Unequal Cost Load Balancing

    یکی از مزایای EIGRP نسبت به پروتکل های دیگه مثل OSPF داشتن Unequal Cost Load Balancing هست.بعضی از پروتکل های دیگه مثل OSPF از Equal Cost Load Balancing فقط پشتیبانی می کنند. یعنی فقط وقتی میتونن از 2 مسیر به عنوان یک مسیر واحد استفاده کنند که Metric اون 2 مسیر کاملاً یکسان باشه.
    این به این معنیه که اگه ما برای رسیدن به یک مقصد 2 مسیر مختلف داشته باشیم، که Metric متفاوت داشته باشند، مثلا یکی ار مسیر های ما یک خط T1 باشه (1.544 Mbps ) و مسیر دیگرمون Fiber Optic باشه (که مسلماً سرعت فیبر بسیار بیشتر از T1 هست) میتونیم برای ارسال دیتا به مقصد همزمان از هر 2 مسیر استفاده کنیم به طوری که با استفاده از دستور Variance در EIGRP کافیه بهش بگیم که میزان اختلاف مسیر ها در بدترین شرایط چقدر هست و اون خودش میاد این قضیه رو که چند تا بسته روی فیبر بفرسته و چند تا روی T1 بفرسته تا در نهایت این 2 مسیر مثل یک کانال واحد عمل کنند رو تعیین میکنه و به بهترین شکل ممکن انجام میده.

    مثلاً اگه پهنای باند یکی از 2 مسیر 2 برابر اون یکی مسیر باشه میاد به ازای هر 1 پکت که توی مسیر با پهنای باند کمتر میفرسته، 2 پکت توی مسیر با پهنای باند بیشتر میفرسته تا وقتی به انتها میرسند ترتیبشون درست باشه.

    خب، نحوه راه اندازی اولیه این پروتکل قدرتمند رو میگیم و بعد مفاهیمش رو ادامه میدیم.

    برای روشن کردنش :

    R1(config)#router EIGRP 1
    R1(config-router)#


    اون عدد 1 که بعد از EIGRP امده به AS یا همون Autonomous System معروفه. یک AS درواقع یک منطقه هست که توسط یک پروتکل خاص مسیر یابی میشه و توسط یک سازمان کنترل میشه. به این معنی که ما برای اینکه روتر هامون بتونن با هم ارتباط همسایگی تشکیل بدن توسط EIGRP ، باید همه درون یک AS قرار داشته باشند و این عدد برای همه باید یکسان باشه. البته تو OSPF هم یک همچین عددی واسه راه انداختنش هست ولی اون AS نیست و به Process ID معروفه و اصلاً نیازی نیست که برای همه روتر های OSPF درون یک Area خاص یکسان باشه.

    بعد ار روشن کردن EIGRP میتونیم interface هایی که میخوایم تبلیغ کنیم و روی همون اینترفیس ها اون تبلیغ رو بفرستیم رو معرفی می کنیم:

    R1(config)# int fa/0/0
    R1(config-if)#ip address 192.168.10.10 255.255.255.0
    R1(config-if)#exit
    R1(config)#int serial 0/0
    R1(config-if)#ip address 10.10.12.2 255.255.0.0
    R1(config-if)#exit
    R1(config)#router EIGRP 1
    R1(Config-router)#network 192.168.10.10 0.0.0.0
    R1(config-router)#network 10.10.0.0 0.0.255.255
    R1(config-router)#no auto-summary

    خب تو خط اول کد تا خط 6 ما اومدیم به 2 تا از اینترفیس هامون IP اختصاص دادیم . خط 7 اومدیم EIGRP رو راه انداختیم با AS شماره 1.
    اما خط 8 : دستور Network که باید معرف حضورتون باشه اما اون 0.0.0.0 که بعد از اون ادرس هست چیه؟ در واقع ما چون فقط داریم با هم دستوری 1 اینترفیس رو معرفی می کنیم میتونیم مثل RIP عمل کنیم و فقط بنویسیم Network 192.168.10.10 . و این بخشی از ساده بودن EIGRP هست. در عین حال میتونیم برای معرفی چندین Network به صورت همزمان از اون Wildcard Mask استفاده کنیم.
    به اون 0.0.0.0 میگیم Wildcard Mask که دقیقاً بر عکس subnet mask هست. یعنی اگه ما تو subnet mask هر جایی که 1 میگذاشتیم به معنی این بود که این NetID ماست و نباید تغییر کنه و هرجایی که 0 میگذاشتیم به این معنی بود که این Host ID ماست، اینجا هرجا که 0 بود یعنی نمیتونه تغییر کنه و هرجا که 1 بود یعنی میتونه.


    SubnetMask  : 255.255.255.0 ====  wildcardMask : 0.0.0.255


    البته این قضیه اشتباه نشه: شما نمیتونید هیچوقت subnet mask رو بجای wildcard mask و یا برعکسش رو استفاده کنید. هرکدوم جای خودشون فقط میتونن استفاده میشن.

    وقتی ما میگیم 0.0.0.0 192.168.10.10 یعنی دقیقاً منظورمون همین اینترفیسی هست که IPش هست 192.168.10.10 . و وقتی میگیم 0.0.255.255 10.10.0.0 یعنی منظور ما همه اینترفیس هایی هست که با 10.10. شروع میشن. در واقع با این دستور داریم اینترفیس هامون رو یکجا معرفی میکنیم و اگه ما یک اینترفیس دیگه داشتیم که آدرسش بود 10.10.15.120 با همون دستور network این اینترفیس هم انتخاب و شامل میشد.

    و اما خط آخر باعث میشه که ما بتونیم بصورت classless عمل کنیم. چون بصورت پیشفرض همه IP ها به صورت class-full تبلیغ میشن و این بعضی مواقع ممکن هست که برای ما مشکل ساز بشه .( مثلاً چه مواقعی؟ )

    ادامه مفاهیم :

    همه پروتکل ها برای اینکه بهترین مسیر رو انتخاب کنن، میاد از نوعی الگوریتم استفاده میکنن که معمولاً زمان و هزینه پردازشی زیادی در بر دارند. مثلاً پروتکل OSPF برای اینکه بیاد بهترین مسیر رو پبدا کنه میاد از الگوریتم SPF که دایجکسترا اونو ارائه کرده استفاده میکنه که یک الگوریتم بسیار سنگین و زمانبر هست. البته SPF همیشه اجرا نمیشه. بلکه فقط 1 بار اجرا میشه و بعد از پبدا شدن بهترین مسیر، اون مسیر در جدول Topology table ذخیره میشه و درصورت از کار افتادن اون مسیر باید دوباره OSPF بیاد برای پیدا کردن بهترین مسیر جایگرین از SPF استفاده کنه.

    اما پروتکل EIGRP از SPF استفاده نمیکنه. بجاش از الگوریتم خود سیسکو به نام DUAL یا
    Diffusing Update Algorithm استفاده میکنه که بسیار سریع و از نظر پردازشی کم هزینه هست. با اینحال EIGRP کمی جلوتر هم رفته و از Backup route هم پشتیبانی میکنه. یعنی از DUAL برای پیدا کردن 2 تا از بهترین مسیرها استفاده میکنه و بهترین مسیر رو به عنوان مسیر پیشفرض و دومی رو به عنوان مسیر پشتیبان قرار میده تا بعد از از کار افتادن مسیر پیشفرش، بجای صرف زمان برای پیدا کردن دوباره بهترین مسیر، خیلی سریع از مسیر جایگرینی که توی جدول topology table دخیره کرده استفاده کنه. EIGRP تنها پروتکلی هست که از Backup Route پشتیبانی میکنه .

    Feasible Distance :

    این واژه یک عبارت برای تعریف میزان فاصله روتر تا مقصد نهاییش هست. به این معنی که اگه من
    R1 باشم و بخوام به یک شبکه ای دسترسی داشته باشم که بعد از روتر R2 که همسایه من هست قرار داره و R2 مستقیم به اون شبکه متصل هست، Feasible Distance مربوط به Router R1 تا شبکه مقصد برابر هزینه ارتباط من تا روتر همسایه + هزینه ازتباط روتر همسایه تا شبکه مقصد هست.



    بنابراین اگه
    R1 بخواد به شبکه 10.1.2.0/24 که پایین شکل بالا هست دسترسی داشته باشه هم میتونه از راه ارتباط با روتر R3 اینکارو انجام بده هم از راه روتر R4 اما باید بر اساس اندازه Metric اونها و مقایسه Feasible Distance اونها و Advertised Distance اونها که دربارش صحبت می کنیم بهترین مسیر رو انتخاب کنه.

    حالا فرض میکنم متریک مسیر بین
    R3 تا شبکه 10.1.2.0/24 باشه 10 و هزینه مسیر R1 تا R3 هم باشه 600. در این صورت FD یا همون Feasible Distance بین R1 و شبکه 10.1.2.0/24 برابر 600+10 یعنی 610 خواهد بود.

    اما Advertised Distance:
    این عدد هم برابر با همون FD هست وقتی که هزینه ارتباط با روتر همسایه رو ازش کم کنیم. یعنی 610 منهای 600 که برابر 10 خواهد بود.

    برای اینکه بهتر متوجه بشید یک مثال دیگه می زنیم:


    تو شکل بالا فرض میکنیم روتر R1 میخواد به شبکه 10.1.1.0/24 دسترسی داشته باشه و FD و AD اون مسیر رو پبدا کنه. FD برابر میشه با 500+500+10 یعنی 1010 و AD یا همون Advertised Distance برابر میشه با همون FD منهای هزینه ارتباط با اولین هاپ.
    یعنی 500+10 =510.
    اما برای روتر R2 این اعداد چی میتونه باشه؟ FD=510 و AD=10

    میریم سر 2 مفهوم دیگه که خیلی مهم و کاربردی هستند:

    Successor و Feasible Successor :

    اول از همه باید مفهوم ابن 2 عبارت رو بگیم. Successor به مسیر اصلی گفته میشه ( که در واقع بهترین مسیر برای رسیدن به مقصد مورد نظر ماست. و Feasible Successor مسیر Backup ماست و اگه یکوقتی مسیر Successor ما از بین بره روتر ما میاد مسیر پیشفرضش رو روی Feasible Successor تنظیم میکنه تا وقتی که مسیر Successor به حالت اولیه خودش برگرده. تو شکل زیر بهتر متوجه میشید :


    ببینید مبدأ ما هست روتر R1 و مقصد ما هم همون شبکه 10.1.1.0/24 هست. همونطور که می بینید ما میتونیم با استفاده از 2 مسیر به مقصد برسیم. هم از راه R4 و هم از راه R2.
    همونطور که مشخص هست FD مسیر R4 هست 510 و AD اون هست 10.
    اما FD مسیر R2 هست 1010 و AD اون هست 510.
    بنابراین مسیر پیشفرض ما و Successor ما میشه R4. اما این دلیل نمیشه که مسیر R2 به عنوان مسیر Backup شناخته بشه چون انتخاب شدن مسیر Backup یک شرط داره و اونم این هست که : مسیری به عنوان Backup انتخاب میشه که AD اون مسیر کمتر از FD مسیر Successor یا همون اصلی باشه.

    البته نکته دیگه ای که هست اینه که می میتونیم تو EIGRP از هر 2 مسیر برای انتقال دیتا به این ترتیب که اگه AD و FD هر 2 مسیر برابر بود بصورت Equal Cost Load Balancing و اگه FD و AD اونها مثل شکل بالا متفاوت بود با استفاده از دستور variance به صورت Unequal Cost Load Balancing استفاده کنیم و ترافیک شبکه رو توزیع کنیم.

    Active Route: وقتی این عبارت استفاده میشه که ما مسیری برای رسیدن به مقصد نداشته باشیم و برای رسیدن به مقصدمون هی الگوریتم DUAL رو اجرا کنیم و بالاخره پیداش کنیم.

    Passive Route: وقتی استفاده میشه که ما از الگوریتم DUAL استفاده نکنیم و برای رسیدن به مقصدمون توی Topology Table خودمون مسیری برای رسیدن به مقصد قبلاً پیدا کرده باشیم.و اونوفت میگیم داریم از Passive route استفاده می کنیم. همونطور که حدس زدید شاید، passive route همیشه بهتر از Active route هست.

    نحوه کار با دستور Variance در EIGRP :

    همونطور که بالاتر چند بار اشاره شد این دستور به منظور استفاده از 2 مسیر با پهنای باند نا مساوی به کار میره ( Unequal Cost Load Balancing ) و یکی از ویژگی های انحصاری این پروتکل هست که هیچ پروتکل دیگه ای از اون پشتیبانی نمیکنه.

    فرض میکنیم که ما 2 تا روتر داریم که این 2 تا روتر با 2 تا کابل Serial به هم وصل شدن. یعنی 1 ارتباط سریال اضافی هست بینشون. تو حالت پیشفرض برای محاسبه Metric اونها از Delay و Bandwidth استفاده میشه. و از اونجایی که Bandwidth و Delay یک عدد ثابت هست برای کابل سریال و اگه کسی به صورا دستی اونو تغییر نده خودش به صورت پیشفرض برای همه یکسان و معادل 1544 kb هست برای bandwidth و delay هم همینطور یک عدد ثابت هست ، این 2 کابل اوتوماتیک میان به دلیل برابر بودن Metric شون هر 2 تا successor می شن و یک سیستم Equal Load Balancing ایجاد میکنن.

    پس Equal Load Balancing تو EIGRP به صورت Automatic وقتی که Metric دو مسیر یکسان باشه اجرا میشه.
    برای دیدن این قضیه با نوشتن دستور زیر میتونیم بررسی کنیم که Metric مسیر ها چقدر هست و چند تا Successor داریم و غیره..



    R1#show ip eigrp topology






    که خروجی این دستور به ما میگه این روتر ما چه نتورک هایی رو میشناسه و برای رسیدن به هر نتورک چند مسیر میبینه و چند Successor برای رسیدن به هر نتورک وجود داره و کدوم مسیر Successor هست.

    همونطور که تو شکل بالا که خروجی دستور show ip eigrp topology هست میبینید نتورک اول ما ( اولین P از بالا) یعنی 172.20.3.128/25 ، 2 تا successor داره یعنی 2مسیر برای رسیدن به اون نتورک از روتر ما هست که Metric اونها کاملاً برابر هست. اون 2 سطر زیر که کمی از سمت چپ فاصله دارند مسیر ها و IP اون روتر که مارو به اون نتورک هدایت میکنه رو نشون میده. درون پرانتز 2 عدد وجود داره. (30720/28160) که میبینید کاملاً برابر هستن برای هر دو مسیر. عدد سمت چپ یعنی 30720 Metric اون مسیر رو نشون میده و عدد دوم 28160 داره Advertised Distance اون مسیر رو نشون میده.

    و از اونجا که متریک اون 2 تا برابر هستند ما هر 2 مسیر رو به عنوان successor شناختیم و Equal load balancing اجرا شده.

    اما نتورک پایینترش یعنی 10.69.0.0/24 که همونطور که میبینید 2 مسیر داریم اما 1 successor. دلیل این هم اینه که Metric اونها برابر نیست. پس اونی که متریک کمتری داره میشه Successor و اونی که متریک بیشتری داره ( با رعایت شرط کمتر بودن Advertised Distance مسیر دوم از Feasible Distance مسیر اصلی ) میشه Feasible Successor و اینجا هیچگونه استفاده ای از مسیر دوم نمیشه تا وقتی که مسیر اولیه و Successor ما به یک دلیلی از کار بیفته . حالا برای اینکه بتونیم از مسیر Backup هم استفاده کنیم میایم با استفاده از دستور واریانس و یک محاسبه سر انگشتی یک عددی رو بهش میگیم تا اون بفهمه که چند تا پکت تو مسیر Successor بفرسته و چند تا تو مسیر دوم که بصورت زیر محاسبه میشه:

    فرض میکنیم همون نتورک 10.69.0.0/24 رو میخوایم براش Unequal load balancing راه بندازیم. اول به متریک اونها نگاه میکنیم. میبینیم که اختلافشون خیلی کمه اما برابر نیستن. عددی که باید بدست بیاریم اینه که به صورت کاملاً بدبینانه مسیر دوم چند برابر بد تر از مسیر اول هست ( یعنی متریک مسیر دوم چند برابر بزرگتر از متریک مسیر اصلی ما هست ) به عنوان مثال اگه متریک مسیر successor باشه 150 و متریک مسیر دوم باشه 450 عدد ما چند میشه؟ 450/150 که میشه 3.

    اما اگه اولی باشه 150 و دومی باشه 200 چطور؟ 200/150 میشه 1.33333 که همیشه عدد بدست اومده رو باید به کران بالا رند کرد. یعنی 1.333 رو ما باید 2 در نظر بگیریم.

    تو مثال ما هم همینطور. ازونجایی که مسیری که متریکش کمتر هست همون Successor ما هست میایم متریک مسیر Backup یا دومی رو بر متریک مسیر successor تقسیم میکنیم و در صورت اعشاری شدن به کران بالا رندش میکنیم. یعنی 158720/156160 = 1.01 که ما اینو 2 در نظر میگیریم.

    اما از این عدد چطوری استفاده کنیم؟

    R1(config)#router eigrp 1
    R1(config-router)#variance ?
    (1-128)
    R1(config-router)#variance 2
    R1(config-router)#


    خب میبینید که ما میتونیم از 1 تا 128 به دستور variance عدد تخصیص بدیم. یعنی ما میتونیم از یک مسیری که 128 برابر بدتر از مسیر اصلی ماست به عنوان مسیر کمکی استفاده کنیم که در واقع اگه نکنیم خیلی بهتر هست.

    اگه عدد 1 بدیم یعنی گفتین این 2 مسیر کاملاً متریک برابر دارند و در واقع همون Equal Load Balancing هست.
    اما از کجا بفهمیم که unequal load balancing ما داره کار میکنه. تو دستور show ip eigrp topology میشه دید که اگه برای یک نتورک 2 مسیر successor وجود داشت خب پس این 2 تا دارن equal load balancing انجام میدن. اما وقتی متریکشون فرق داشته باشه و ما با واریانس تنظیمش کنیم، تو این جدول topology ، هیچ چیزی تغییر نمیکنه. برای فهمیدنش 2 راه هست. اول استفاده از show ip route که 2 مسیر رو زیر نتورک هدف ما به ما نشون خواهد داد.
    دوم استفاده از Traceroute

    مثلاً ما روی روتر اولی هستیم و برای رسیدن به روتر دومی 2 مسیر با متریک متفاوت داریم که روشون با variance اومدیم Unequal load balancing راه انداختیم. میایم این کارو میکنیم.( این روش ها برای equal load balancing هم جواب میده )

    R1#traceroute 10.69.0.1
    172.20.3.2 2ms
    172.20.10.2


    که نشون میده ما برای رسیدن به روتر 10.69.0.1 از 2 مسیر عبور کردیم.

    موضوعات مشابه:
    ویرایش توسط ناصر آرام نژاد : 8th September 2011 در ساعت 12:16 PM
    Hossein و معصومه اویسی این را میپسندند

 

 

کاربران برچسب خورده در این موضوع

کلمات کلیدی این موضوع

علاقه مندی ها (Bookmarks)

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  


Powered by vBulletin
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.6.0
Persian Language By Ustmb.ir
این انجمن کاملا مستقل بوده و هیچ ارتباطی با دانشگاه علوم و فنون مازندران و مسئولان آن ندارد..این انجمن و تمامی محتوای تولید شده در آن توسط دانشجویان فعلی و فارغ التحصیل ادوار گذشته این دانشگاه برای استفاده دانشجویان جدید این دانشگاه و جامعه دانشگاهی کشور فراهم شده است.لطفا برای اطلاعات بیشتر در رابطه با ماهیت انجمن با مدیریت انجمن ارتباط برقرار کنید
ساعت 12:49 PM بر حسب GMT +4 می باشد.