OSPF چیست؟ او اس پی اف چگونه کار می کند؟ پروتکل OSPF از دسته ی IGP(Interior Gateway Protocol) است، یعنی پروتکلی است که درون یک AS(Autonomous System) کار می کند. این پروتکل استاندارد RFC2328 است، یعنی همه ی تجهیزات می توانند از آن استفاده کنند. این پروتکل می تواند تغییرات را به سرعت در شبکه اعمال کند، همچنین قابلیت triggered update دارد یعنی پس از هر تغییر یک آپدیت جدید می فرستد و به همه خبر می دهد که این تغییر در Routing ما انجام شده است.
همچنین قابلیت periodic update دارد یعنی هر چند دقیقه یکبار هم یک آپدیت کلی ارسال می کند.(پیشفرض هر30دقیقه) پیغام هایی که OSPF ارسال می کند LSA(Link State Advertisement) نامیده می شوند، اما در برخی منابع نیز PDU(Protocol Data Unit) نامیده شده است. اگر تغییری در شبکه اتفاق بیافتد، در قالب پیغام های LSA اطلاع رسانی می شود. پیغام های LSA روی آدرس Multicast 224.0.0.5 ارسال می شود، یعنی درون فایروال باید این آدرس را برای OSPF باز بگذارید.
-------------------------------------------------
برای دسترسی به مجموعه بهترین دوره های آموزش شبکه های کامپیوتری ( مبانی شبکه ، نتورک پلاس ، مانیتورینگ و ... ) مقدماتی تا پیشرفته با ارائه گواهینامه و فیلم رایگان همین الان کلیک کن
--------------------------------------------------
هر روتر LSA دریافتی را پس از ذخیره کردن برای همسایه ها Forward می کند، منتها محدوده ی Forward درون همان Area است.روترها LSAها را درون LSDB(Link State Data Base) روی روتر ذخیره می کنند.(LSDBمعادل همان Topology Tableدرون EIGPR می باشد) درون LSDB الگوریتم Dijkstra's (یکی از الگوریتم های پیمایش گراف) بهترین مسیرها را برای مقصدهای مختلف بدست می آورد و این مسیرهای منتخب درون Routing Table قرار می گیرند.
هر روتر براساس موقعیت و مکان خودش، بهترین مسیر را از LSDB انتخاب می کند، بهترین مسیر برای همه ی روترها همیشه یکسان نیست بلکه براساس Position و شرایط آن روتر انتخاب می شود. بهترین مسیرها درون Routing Table قرار میگیرد که به آن Forwarding Database هم گفته می شود.
روتری که در OSPF شرکت می کند، اولین کاری که باید انجام دهد این است که اطلاعات همسایه ها را نگهداری کند. برای این کار قطعا یک Neighbor Data Base خواهد داشت.(که Adjacency Data Base هم نامیده می شود) بعد از شناختن همسایه هایی که روی آنها OSPF اجرا شده است و در حال ارسال و دریافت LSA هستند، LSDB و به تبع آن Routing Table هم تکمیل می شود. (هنگام T-Shoot در OSPF ابتدا باید دید که Neighborها را شناخته باشد)
OSPF از ساختار Area برای جلوگیری از بزرگ شدن LSDB استفاده می کند. تعداد روتر توصیه شده برای هر Area حداکثر 50 روتر می باشد. نمی شود گفت که OSPF برای مدیریت شبکه به دنبال ساختار Area رفته است، چراکه وقتی حجم LSDB بالا برود کار الگوریتم برای محاسبه دشوار می شود زیرا شبکه خیلی پیچیده شده و تغییرات زمان بر است که این مطلوب نیست.
علاوه براین LSDB یک سری attribute برای هر مسیر دارد که resource فراوانی را اشغال می کند، زیرا برای انتخاب بهترین مسیر این attribute روی RAM دستگاه قرار می گیرد و هنگام اعمال الگوریتم RAMوCPU فراوانی اشغال می شود.ساختار Area درون OSPF دو لایه ای است: لایه اول: Backbone Area ، لایه دوم: Regular Area.
Backbone که همان Area 0 می باشد در واقع هسته ی اصلی Routing Protocol ما است. (روترهای درون Area 0 باید از قدرت بالایی برخوردار باشند چراکه تمام ترافیک Routing شبکه باید از آن عبور کند) حداکثر تعداد روتر توصیه شده درون یک 50areaروتر می باشد) Area 0 هسته است اما نه هسته ی شبکه بلکه هسته ی Routing Protocol است، یعنی ترافیک سایر Routing protocol ها کاری با Area 0 ندارند.
Regular Area که Normal Area یا None-Backbone هم نامیده می شود سایر Areaها می باشند که فقط با Area 0 در ارتباط اند. یک Normal Area نمی تواند به صورت پیشفرض ترافیک سایر Normal Areaها را عبور دهد. هر Area یک LSDB منحصربه خود دارد که روی تمام روترهای عضو آن باید یکسان باشد.
LSDB یک Area با هیچ Area دیگری یکسان نیست. بین دو Area جزئیات تمام مسیرها ردوبدل نمی شود چون که به دردشان نمی خورد بلکه تنها اطلاعات بهترین مسیر مدنظر داده می شود. توصیه شده است که یک روتر حداکثر عضو سه Area باشد. برای هر روتر بسته به ویژگی ها و وظیفه ای که درون OSPF برعهده دارد نام های زیر در نظر گرفته می شوند:
برای ایجاد همسایگی روترها ابتدا روی آدرس Multicast پیغام Hello ارسال می کنند. درون این پیغام یک سری اطلاعات راجع به OSPF ارسال می شود. اولین شرط همسایگی این است که این دو روتر حتما درون یک Area باشند. درون یک Area وقتی یک روتر جدید اضافه می شود پس از ایجاد همسایگی، باید تمام LSDB این Area برای روتر جدید ارسال شود. اما گاهی ارتباط این همسایه ها P2P نیست و ممکن است چند روتر از یک Area مثلا به یک سوئیچ متصل باشند و Network Typeما Broadcast Domain باشد. نحوه ی رفتار OSPF نسبت به این دو نوع شبکه کاملا متفاوت خواهد بود:
در این ساختارها یک روتر به عنوان DR در نظر گرفته می شود، سایر روترهایی که درون این Broadcast Domain هستند، LSDB های خود را با DR درست می کنند. روتر DR یک نقش مرکزی دارد که آپدیت ها را از سایر روترها جمع آوری می کند و در اختیار روترهایی قرار می دهد که نیاز دارند.
یک روتر هم نقش BDR را برعهده می گیرد تا زمانی که DR از کار افتاد به عنوان جایگزین ادامه ی کار را برعهده گیرد. هدف از این مکانیزم بالابردن بازدهی شبکه است. سایر روترها که نه DR است و نه BDR هستند، در این ساختار DRouter نامیده می شوند. اگر یک روتر جدید به این سوئیچ متصل شود با سایر روترها همسایه می شود اما برای تکمیل LSDB خود فقط با DR کار دارد.محاسبه ی Metric در OSPF براساس هزینه است. هر چه BW(Band Weight) بیشتر باشد، هزینه پایین تر می آید.
به عبارت دیگر Metric بر این اساس انتخاب می شود که کدام مسیر Cost کمتری دارد. مسیری Cost کمتری دارد که BW بیشتری داشته باشد، یعنی ملاک اصلی انتخاب Metric در OSPF همان BW است. لینک سریال، اگر 56Kbps باشد، Cost آن 1785 است، اگر 64Kbps باشد، Cost آن 1562 است. اگر E1 باشد48 ، اگر Ethernetباشد 10 و اگر Fast Ethernet باشد 1 است.
در OSPF ما با پیغام های LSA سروکار داریم، LSA هم متدی دارد برای این که reliable باشد. هر LSA یک Sequence Number دارد که براساس آن Sequence Number جواب های Acknowledge ارسال می شود یعنی در LSA برای تشخیص جدیدترین آپدیت ها از Sequence Number استفاده می شود. همچنین هر LSA یک MaxAge دارد یعنی مدت زمانی که آن LSA معتبر خواهد بود که به صورت پیشفرض یک ساعت است اگر آپدیتی دریافت نکند، پس از 60 دقیقه آن LSA نامعتبر می شود. به صورت پیشفرض هر 30دقیقه یکبار OSPF کل LSDB ای که دارد را درون شبکه Deploy می کند.
یک پیغام به نام LSU(Link State Update) وجود دارد که آپدیت های Routing را ارسال می کند، هر LSU می تواند شامل چندین LSA باشد. وقتی که روتر یک LSU دریافت می کند ابتدا تک تک LSAهای درون آن را بررسی می کند که آیا این آپدیت ها را در LSDB خود دارد یا خیر، (مثلا فرستنده ی LSU می خواهد بگوید که به سمت شبکه ی 40.0.0.1 یک Route دارد) اگر روتر گیرنده ی LSU آن Route را نداشته باشد.
آن LSA (همان 40.0.0.1) را ذخیره کرده و یک Ack برای فرستنده ارسال کرده و سپس الگوریتم روی LSDB اجرا می شود تا Routing Table با توجه به آپدیت های جدید چیده شود. ممکن است پیش بیاید که یک LSU دریافت کنیم که آپدیت جدیدش برای LSA ای باشد که در LSDB ما از قبل موجود است
(مثلا روتر من 40.0.0.1 را از قبل دارد)، حال باید Sequence Number این LSA دریافتی با Sequence Number آن LSA ای که از قبل در LSDB ما موجود بوده مقایسه شود، اگر Sequence Number دریافتی بزرگتر باشد پس روتر آن را Add کرده و Ack را نیز می فرستد. اگر کوچکتر باشد پس روتر وقتی که می بیند بسته های قدیمی بدستش می رسد یک LSU از آن موارد ساخته و برای Source ای که LSU قدیمی را فرستاده بود، می فرستد تا LSU آن هم آپدیت شود.
پیغامی مثل Hello نیاز به Ack ندارد چون مداوم در بازه های زمانی ارسال می شود، اما وقتی LSU داریم حتما باید در جواب Ack بفرستیم.تمامی پنج Packet توی OSPF به صورت لایه سومی توسط بسته های IP ارسال می شوند یعنی OSPF از UDP و TCP استفاده نمی کند و مکانیزم خاص خود را دارد.شما یک Frame دارید که Header و trailer دارد، داخل Frame یک قسمتی به نام IP Header وجود دارد و درون آن Protocol ID Number مشخص شده است که مقدار آن 89 می باشد تا هر روتری که این بسته را گرفت بفهمد که OSPF است.
اما درون IP Packet پس از Header نوبت به فیلد دیتا می رسد:
شرط اول همسایگی، برابری Area ID است. همچنین مقدار MTU نیز در هر دو طرف لینک برای ایجاد همسایگی باید یکسان باشد. اگر مقدار Dead Interval برای Hello Packet روی دو روتر یکسان نباشد همسایگی برقرار نمی شود. همچنین AuType و رمز هم بین دو طرف باید یکسان باشد.
توصیه می شود همیشه ابتدا شبکه را اندازی کنیم و سپس به فکر Authentication باشیم. برای همسایگی فقط primary IP address در نظر گرفته می شود و خیلی از سرویس ها روی secondary IP address اجرا نمی شوند. معمولا از secondary IP address به عنوان یک نقش کلاینتی استفاده می شود. همچنین برای همسایگی Subnet Mask ها نیز باید یکی باشند.
هر روتر یک Router Priority دارد، که برای انتخاب DR و BDR در یک Broadcast Domain استفاده می شود. DRوBDR هم برای آپدیت کردن از Multicast استفاده می کنند اما نه از 224.0.0.5 بلکه از 224.0.0.6. پس ما باید در تنظیمات فایروال و ACL این IP را باز گذاشته باشیم. به عبارت دیگر ارتباط روترها با DR روی آدرس 224.0.0.6 است.
خلاصه ای از وضعیت LSA ها هر 30 دقیقه یکبار در شبکه ارسال می شود. تا هر روتری که دید Record خاصی را ندارد با LSR درخواست کند تا با LSU دریافت کند. وقتی که یک LSA مجددا دریافت می شود Life Time آن Refresh می شود. MaxAge برای هر LSA پیشفرض 60 دقیقه است، یعنی اگر پس از 60 دقیقه LSA ای Refresh نشود، آن LSA از درون LSDB حذف می شود.
قبلا گفتیم که برای پیدا کردن بروزترین LSA باید SeqNumber ها چک شود، اما اگر SeqNumber ها برابر باشد، باید CheckSum های آن ها مقایسه شود و آن LSA ای که عدد CheckSum بالاتری داشته باشد، بروزتر است. اگر CheckSum ها نیز یکی بود، Age Time بررسی می شود که کدام Age کمتری دارد. لازم به ذکر است که SeqNumber یک عدد 32 بیتی است و به صورت هگزادسیمال نمایش داده می شود.
به زبان ساده ، پروتکل OSPF یک پروتکل مسیریابی بسته های اطلاعاتی در شبکه های کامپیوتری است. در واقع این پروتکل یک راهکار برای جلوگیری از وارد کردن مسیرهای دستی توسط مدیر شبکه است و به عنوان یک پروتکل داینامیک روتینگ یا مسیریابی پویا یا خودکار شناخته می شود.
Computer Specialist and Cloud Engineer
a significant focus on Storage Virtualization, Replication, Software Defined Storage
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود