Routing آموزش CCNA

فصل سوم قسمت ششم: OSPF

حمیدرضا وطنی
نوشته شده توسط حمیدرضا وطنی

در این قسمت از آموزش CCNA به تعریف یکی از پروتکل های Link State به نام OSPF میپردازیم.

یاد آوری:

Distance Vector : هر روتر route های جدول مسیریابی خود را به صورت دوره ای فقط به روتر های همسایه خود یاد میدهد.اصطلاحا به Full Update ، Distance Vector گفته میشود.

Link State : هر روتر اطلاعات لینک های متصل به خود را به همه روتر های A.S فقط یک بار یاد میدهد.اصطلاحا به Partial Update ، Link State گفته میشود.

در full update بار اول یاد میدهد و هر ۳۰ دقیقه یک بار تکرار میکند.ولی partial update یک بار یاد میدهد و از آنجا به بعد فقط تغییرات را یاد میدهد.

در Route ، Distance Vector ها Advertise میشوند اما در Link State اطلاعات لینک ها Advertise میشوند.

اطلاعات لینک شامل موارد زیر است:

  • نوع لینک (Ethernet ، PPP ، HDLC ، …)
  • sub num/mask لینک
  • وضعیت لینک (up/down بودن)
  • point to point و یا point to multi point بودن لینک
  • پهنای باند لینک (cost لینک)
  • و ….

OSPF Over View :

عیب اصلی پروتکل های distance vector ، زمان همگرایی بالای (غیر قابل قبول) آن است و مهمترین مزیت پروتکل های link state زمان همگرایی پایین آنها است.زمان همگرایی پایین در ospf به واسطه نوع پروسه link state ایجاد میشود.در پروتکل های link state هر روتر کل توپولوژی شبکه را در دیتابیس خود دارد.زیرا دیدیم که در link state هر روتر اطلاعات لینک های خود را به کل A.S منتقل میکند.

با یاد آوری قضیه گراف ها در درس ساختمان داده ها،با استفاده از الگوریتم Dijkstra و ورودی ماتریس همسایگی در این الگوریتم،میتوانید از هر Node کوتاهترین مسیر تا به هر Node دیگری را بیابید.

در ospf نیز هر روتر ساختاری مشابه گراف و بسیار جزئی تر در دیتابیس خود دارد.لذا میتواند با اجرای الگوریتم Dijkstra (SPF) از خودش تا به هر subnet کوتاهترین مسیر را بیابد.

حسن این روش در این است که اگر تغییری در توپولوژی شبکه رخ دهد ، نوع تغییر بلافاصله advertise میشود و همه روتر ها دیتابیس خود را از وجود این تغییر update میکنند.لذا زمان همگرایی در ospf برابر است با اجرای مجدد الگوریتم spf روی دیتابیس جدید.

اما معایب osfp را میتوان به این صورت متذکر شد که حجم مصرفی بالای حافظه ناشی از نگهداری جدول دیتابیس و همچنین پروسه سنگین الگوریتم spf میتواند سر بارهایی باشد که به ازای کاهش زمان همگرایی به روتر ها اضافه شده است.

در ospf هر روتر ابتدا با روتر های همسایه اش (directly connected) تشکیل همسایگی میدهد (ospf neighborship) سپس هر روتر اطلاعات لینک های خود را به روتر های همسایه اش advertise میکند و روتر های همسایه نیز اطلاعات لینک های دریافتی را روی دیگر لینک ها flood مینماید تا اطلاعات لینک به کل A.S منتقل شود. به این ترتیب جدول دیتابیس هر روتر ایجاد میشود.                                   (ospf topology data base exchange) سپس هر روتر الگوریتم spf را روی جدول دیتابیس به وجود آمده اجرا مینماید تا کوتاهترین مسیر به هر subnet پیدا شود.کوتاهترین مسیر همانی است که باید در جدول مسیر یابی قرار بگیرد.(ospf building ip routing table)

نکته : در پروتکل های IGP کلا تشکیل همسایگی با روتر های همسایه است.

OSPF Neighborship :

در ابتدای پروسه ospf ، هر روتر با روترهای همسایه اش با دو هدف زیر تشکیل همسایگی میدهد:

۱) اطمینان از keep alive بودن روتر همسایه و ۲) اطمینان از سازگار بودن پارامترهای routing بین روتر های همسایه

نحوه تشکیل همسایگی:

به محض فعال کردن ospf روی اینترفیس های روتر ، روتر بسته های کوچکی به نام ospf hello packet به صورت دوره ای روی اینترفیس هایش advertise مینماید و به این ترتیب هر روتر از hello packet های دریافتی ، روتر های همسایه اش را شناسایی می کند.

آدرس مقصد بسته های ospf ، آدرس multi cast 224.0.0.5 است.یعنی چی ؟ یعنی اگر من بسته ای بهم برسد که مقصد بسته ۲۲۴٫۰٫۰٫۵ باشد، میفهمم روتر همسایه قصد تشکیل همسایگی از نوع ospf را دارد.

بعضی از پارامترهای ارسالی روی hello packet عبارتند از :

۱) لینک subnet num و ۲) لیک subnet mask و ۳) hello time (زمان دوره ای ارسال hello packet)

۴) dead interval و ۵) ospf area ID و ۶) authentication key و ۷) مقادیر stub area flag

اطمینان از keep alive بودن روتر های همسایه :

هر روتر انتظار دارد در زمان hello time از روتر های همسایه اش hello packet دریافت کند.عدم دریافت hello packet در زمان چند برابر hello time یا به عبارتی dead time به منزله fail بودن آن روتر همسایه است.در چنین شرایطی روتر هر اطلاعاتی (اطلاعات لینک های LSA) که از آن روتر همسایه قبلا یاد گرفته است را از جدول دیتابیس حذف مینماید و مجددا الگوریتم SPF را اجرا می نماید.

اطمینان از سازگار بودن پارامترهای ospf در روتر های همسایه:.

بعضی فیلدهای ذگر شده در hello packet مثل (read time , hello time) باید بین روتر های همسایه مطابقت داشته باشد.در غیر این صورت همسایگی تشکیل نمی شود ، که در صورت عدم ایجاد همسایگی با یک روتر اطلاعات لینک به آن روتر ارسال نخواهد شد.

Neighbor State (حالت همسایگی) :

هر روتر از زمان اجرای ospf روی اینترفیس ها تا تشکیل همسایگی کامل ، مراحل را طی میکند که هر یک از این مراحل تحت یک حالت همسایگی شناخته میشود.

  1. مرحله Initialize: در اولین مرحله اینترفیس های روتر وارد حالت initialize میشوند.بعد از این مرحله روتر مجاز به ارسال hello packet میباشد.یکی از فیلدهای ارسالی در hello packet روی یک لینک، لیست روتر های همسایه اش است که روی آن لینک دیده میشود.
  2. مرحله ۲way: اگر روتر از روتر همسایه اش hello packet ای دریافت کند که نام خود را در لیست همسایه های hello packet دریافتی ببیند، از حالت initialize به حالت ۲way تغییر میکند.تغییر حالت همسایگی روتر به ۲way دو معنی دارد. ۱)پارامتر های routing بین دو روتر سازگاری دارد. ۲)همسایه نیز من را دیده است.(نام من در لیست همسایه های بسته hello دریافتی وجود دارد)             نکته : هر روتر در لیست همسایه های بسته hello ارسالی روی یک لینک ، فقط لیست روتر های همسایه همان لینک را قرار میدهد.
  3. مرحله Full: تشکیل همسایگی ۲way بین دو روتر همسایه به منزله مجوز ارسال اطلاعات لینک بین روتر های همسایه است. یعنی بعد از آنکه دو همسایه به حالت ۲way میرسند ، اطلاعات لینک بین آن ها جابه جا میشود تا جایی که دیتابیس دو روتر دقیقا یکسان میشود.در این حالت همسایگی از حالت ۲way به حالت full تغییر میکند.به عبارت دیگر همسایگی full به منزله سازگار بودن دیتابیس بین دو روتر همسایه است.

ospf topology exchange :

جهت تشریح پروسه data base exchange شکل زیر را در نظر بگیرید:

فرض میکنیم که داخل کادر ، ospf کاملا synchronize شده است.اگر روتر و لینک جدیدی به نام R1 به یکی از روتر های داخل کادر متصل کنیم ثابت میکنیم چگونه R1 نسبت به توپولوژی کل شبکه A.S و همچنین R2 و بقیه روتر های ابر نسبت به وضعیت جدید روتر و لینک آگاه میشوند.بدین صورت پروسه انتقال دیتابیس را ثابت مینماییم.(عملا ثابت شده است که کارد synchronize چگونه ایجاد شده است)

انواع بسته ها در ospf:

۱) hello packet و ۲) DBD (data base description) و ۳) LSR (link state request) و ۴) LSU (link state update) و ۵)  ACK (acknowledge)

DBD : بعد از ایجاد همسایگی ۲way هر روتر خلاصه ای از اطلاعات دیتابیس خود را به روتر همسایه اش advertise میکند.خلاصه شامل subnet no لینک هایی است که روتر در دیتابیس اش وجود دارد لذا R2 اطلاعات subnet no لینک های کادر و R1 اطلاعات subnet no لینک های متصل به خودش را advertise میکند.

LSR : سپس هر روتر از اطلاعات DBD دریافتی متوجه میشود که چه اطلاعاتی را در دیتابیس خودش ندارد.با استفاده از ارسال LSR جزئیات لینک های مورد نیازش را درخواست میکند.

LSU : سپس روتر در پاسخ LSR جزئیات هر لینک درخواستی را در قالب LSA (link state advertise) آماده میکند. چند LSA را دریک بسته LSU قرار داده و به یک جا advertise میکند.

ACK : اطلاعات لینک در ospf به صورت Reliable ارسال می شود. به این معنی که روتر دریافت کننده LSU باید به ازای هر LSU مستقلا ACK ارسال کند.عدم دریافت ACK در مدت زمان معینی در روتر گیرنده به معنی ارسال مجدد LSU است.

برای درک بهتر این بسته ها یک مثال میزنم ، من و رفیقم هر دو سی دی فروشی داریم.هر دو میخواهیم ببینیم که در کیف خود(دیتابیس) چه فیلم هایی را داریم که طرف مقابل ندارد.چه جوری این اتفاق می افتد؟ هرکسی لیست فیلم هایش را دارد، من لیست فیلم هایم را به رفیقم و او هم لیست فیلم هایش را به من میدهد.لیست فیلم ها را نگاه میکنیم، من میگم فیلم ۱ را ندارم ، ۱۱ و ۱۲ و ۱۳ را ندارم ، من فیلم های نداشته ام را دونه دونه پیدا میکنم و همه را باهم جمع میکنم و به رفیقم میگویم.و بعد رفیقم فیلم های نداشته را یک جا برای من ارسال میکند و من هم تشکر میکنم.

تعریف Router ID:

هر روتر در ospf یک ID دارد که در دیتابیس با آن ID شناخته میشود.ID هر روتر بزرگترین آدرس IP یکی از اینترفیس های loop back روتر است.اگر روتر اینترفیس loop back نداشته باشد، بزرگترین آدرس ip یکی از اینترفیس های معمولی روتر ، ID آن روتر خواهد بود. Router ID در hello packet وجود دارد.

نکته ۱: Router ID آدرس ip نیست بلکه فقط یک عدد ۳۲ بیتی است که فرمت آن با آدرس ip مشابهت دارد.

نکته ۲: انتخاب Router ID رقابتی نیست،(non preemptive) بدین معنی که اگر بعدا اگر گزینه بهتری وجود داشته باشد، Router ID عوض نمی شود.

[تعداد رای:1]

درباره نویسنده

حمیدرضا وطنی

حمیدرضا وطنی

درج دیدگاه