🚀 OSPF چیست و چطور کار می‌کند؟OSPF (Open Shortest Path First) یکی از مهم‌ترین پروتکل‌های Dynamic Ro

🚀 OSPF چیست و چطور کار می‌کند؟OSPF (Open Shortest Path First) یکی از مهم‌ترین پروتکل‌های Dynamic Routing و از نوع Link-State هست که بیشتر توی شبکه‌های متوسط و بزرگ استفاده میشه.کار اصلی OSPF اینه که روترها بتونن به‌صورت خودکار مسیرهای شبکه رو یاد بگیرن، وضعیت لینک‌ها رو بفهمن و بر اساس اون بهترین مسیر رو برای رسیدن به مقصد انتخاب کنن؛ یعنی لازم نیست برای تک‌تک شبکه‌ها دستی Route بنویسیم، روترها خودشون اطلاعات رو با هم ردوبدل می‌کنن و Routing Table رو می‌سازن.🔥 OSPF بر چه اساسی مسیر رو انتخاب می‌کنه؟برخلاف RIP که بیشتر بر اساس تعداد Hop تصمیم می‌گیره، OSPF از مفهومی به اسم Cost استفاده می‌کنه.به‌صورت کلی:Bandwidth بیشتر → Cost کمتر → مسیر بهترمثلاً ممکنه یک مسیر فقط ۲ Hop داشته باشه ولی لینک‌های ضعیفی داشته باشه، در حالی که یک مسیر ۳ Hop از لینک‌های سریع‌تری عبور کنه؛ OSPF فقط تعداد Hop رو نگاه نمی‌کنه و بر اساس Cost مسیر مناسب رو انتخاب می‌کنه.🧠 الگوریتم SPF و DijkstraOSPF برای محاسبه بهترین مسیر از الگوریتم:SPF = Shortest Path Firstاستفاده می‌کنه که بر پایه الگوریتم Dijkstra هست.هر روتر اطلاعات مربوط به لینک‌ها و توپولوژی شبکه رو داخل دیتابیسی به اسم:LSDB = Link-State Databaseنگه می‌داره.بعد بر اساس اطلاعات LSDB، توپولوژی شبکه رو مثل یک نقشه برای خودش در نظر می‌گیره و بهترین مسیرها رو محاسبه می‌کنه.🤝 روترها چطور Neighbor میشن؟وقتی OSPF روی Interfaceها فعال میشه، روترها با استفاده از Hello Packet همدیگه رو پیدا می‌کنن.اگر پارامترهای مهم دو طرف با هم هماهنگ باشه، مثل:🔹 Area ID🔹 Hello/Dead Timer🔹 Network Type🔹 Authentication🔹 تنظیمات Interfaceروترها می‌تونن با هم OSPF Neighbor بشن.📦 Packetهای مهم OSPFOSPF برای برقراری ارتباط و تبادل اطلاعات از چند نوع Packet استفاده می‌کنه:🔹 Hello → پیدا کردن و نگه‌داشتن Neighborها🔹 DBD / Database Description → معرفی خلاصه اطلاعات LSDB🔹 LSR / Link-State Request → درخواست اطلاعاتی که روتر نداره🔹 LSU / Link-State Update → ارسال LSAها🔹 LSAck / Link-State Acknowledgment → تأیید دریافت LSAپس روند کلی رو میشه این‌طوری دید:Hello → Neighbor → Exchange اطلاعات → LSDB → SPF → Routing Table⚠️ Neighbor با Full شدن یکی نیست!این نکته خیلی مهمه.اینکه دو روتر Neighbor بشن الزاماً به معنی این نیست که حتماً Full Adjacency تشکیل دادن.بسته به نوع شبکه و نقش‌هایی مثل DR/BDR، نحوه تبادل اطلاعات می‌تونه متفاوت باشه.Stateهای مهم OSPF هم شامل این‌هاست:Down → Init → 2-Way → ExStart → Exchange → Loading → Fullمثلاً وقتی روتر Hello طرف مقابل رو دریافت می‌کنه ولی هنوز اسم خودش رو داخل Hello اون روتر نمی‌بینه، وارد Init میشه.وقتی دو طرف همدیگه رو داخل Hello ببینن، به 2-Way می‌رسن و در صورت نیاز وارد مراحل Exchange و Loading میشن تا در نهایت به Full برسن.🗺️ Area در OSPFوقتی شبکه خیلی بزرگ بشه، اگر همه روترها اطلاعات تمام لینک‌های شبکه رو نگه دارن، LSDB خیلی بزرگ میشه و محاسبات SPF هم سنگین‌تر میشه.برای حل این مشکل، OSPF شبکه رو به چند Area تقسیم می‌کنه.مهم‌ترین Area:🔵 Area 0بهش Backbone Area میگیم.در طراحی استاندارد OSPF، Areaهای دیگه باید از طریق Backbone به هم متصل بشن.مثلاً:Area 1 → Area 0 → Area 2این ساختار باعث میشه OSPF در شبکه‌های بزرگ مقیاس‌پذیرتر باشه.🖥️ انواع روتر در OSPF🔹 Internal Routerروتری که تمام Interfaceهای OSPF اون داخل یک Area قرار دارن.🔹 ABRArea Border Routerروتری که بین دو یا چند Area قرار داره.مثلاً:Area 1 ← R4 → Area 0در این حالت R4 یک ABR محسوب میشه.🔹 ASBRAutonomous System Boundary Routerروتری که Routeهای خارج از OSPF رو وارد OSPF می‌کنه.مثلاً Routeهایی که از:Static / BGP / RIPمیان و وارد OSPF میشن.📌 ABR و ASBR یکی نیستن.ABR مرز بین Areaهاست، ولی ASBR مرز بین OSPF و منابع Routing خارجی محسوب میشه.📢 LSA چیست؟LSA = Link-State AdvertisementLSAها اطلاعات مربوط به وضعیت لینک‌ها و توپولوژی رو بین روترهای OSPF منتقل می‌کنن.مهم‌ترین Typeها:🟢 Type 1 — Router LSAاطلاعات لینک‌ها و Interfaceهای یک روتر داخل Area خودش.🔵 Type 2 — Network LSAتوسط DR در شبکه‌های Multi-Access مثل Ethernet تولید میشه.🟡 Type 3 — Summary LSA@Netwo0rk