OSPF چیست؟ آموزش کامل OSPF از صفر تا پیشرفته

آموزش جامع OSPF؛ از مفاهیم پایه تا پیادهسازی حرفهای
در دنیای شبکههای کامپیوتری، انتخاب یک پروتکل مسیریابی مناسب تأثیر مستقیمی بر سرعت، پایداری و مقیاسپذیری شبکه دارد. هرچه شبکه بزرگتر و پیچیدهتر شود، مدیریت مسیرها بهصورت دستی دشوارتر شده و احتمال بروز خطا افزایش مییابد. به همین دلیل پروتکلهای مسیریابی پویا (Dynamic Routing Protocols) توسعه یافتهاند تا روترها بتوانند بهترین مسیر را بهصورت خودکار شناسایی و در صورت تغییر توپولوژی، مسیرهای جدید را بدون دخالت مدیر شبکه انتخاب کنند.یکی از قدرتمندترین و پرکاربردترین این پروتکلها، OSPF است.
امروزه OSPF بهعنوان استانداردی باز (Open Standard) در بسیاری از شبکههای سازمانی، مراکز داده، ارائهدهندگان خدمات اینترنت (ISP) و حتی زیرساختهای ابری مورد استفاده قرار میگیرد. دلیل محبوبیت OSPF سرعت بالای همگرایی (Fast Convergence)، دقت در انتخاب مسیر، مقیاسپذیری بسیار مناسب و امکان طراحی شبکههای چندناحیهای (Multi Area) است.
اگر تاکنون با شبکههای سیسکو یا سایر تجهیزات Enterprise کار کرده باشید، احتمالاً بارها نام OSPF را شنیدهاید. اما دانستن دستورات پیکربندی بهتنهایی کافی نیست؛ برای طراحی یک شبکه پایدار باید بدانید این پروتکل چگونه فکر میکند، چگونه اطلاعات را بین روترها مبادله میکند و چگونه بهترین مسیر را انتخاب میکند.
در این مقاله بهصورت کاملاً تخصصی و در عین حال قابل فهم، ابتدا مفاهیم پایه OSPF را بررسی میکنیم و سپس در بخشهای بعدی وارد مباحث پیشرفتهای مانند Areaها، روترهای ABR و ASBR، مکانیزم انتخاب DR و BDR، انواع LSA و طراحی حرفهای شبکههای OSPF خواهیم شد.
چیست OSPF
قبل از ورود به جزئیات فنی، بهتر است ابتدا با ماهیت این پروتکل آشنا شویم تا درک بهتری از عملکرد بخشهای مختلف آن داشته باشیم.
OSPF مخفف عبارت Open Shortest Path First است و یکی از مهمترین پروتکلهای مسیریابی داخلی (IGP یا Interior Gateway Protocol) محسوب میشود. این پروتکل بر پایه الگوریتم Link-State طراحی شده و برخلاف پروتکلهایی مانند RIP که تنها تعداد Hop را ملاک قرار میدهند، برای انتخاب بهترین مسیر از مجموعهای از اطلاعات دقیق درباره وضعیت لینکهای شبکه استفاده میکند.
ویژگی مهم OSPF این است که بهجای ارسال مداوم جدول کامل مسیریابی، تنها تغییرات ایجادشده در توپولوژی شبکه را منتشر میکند. این ویژگی باعث کاهش مصرف پهنای باند، افزایش سرعت همگرایی و بهبود عملکرد شبکه میشود.
یکی دیگر از مزایای مهم OSPF متنباز بودن آن است. به همین دلیل تقریباً تمامی تولیدکنندگان تجهیزات شبکه مانند Cisco، Juniper، MikroTik، Huawei، Arista و بسیاری از برندهای دیگر از آن پشتیبانی میکنند.
ویژگیهای مهم OSPF
پیش از بررسی نحوه عملکرد، بهتر است مهمترین قابلیتهای این پروتکل را مرور کنیم.
- استاندارد باز (Open Standard)
- مناسب برای شبکههای بزرگ
- همگرایی بسیار سریع
- استفاده از الگوریتم SPF
- پشتیبانی از VLSM و CIDR
- امکان طراحی Multi Area
- پشتیبانی از Load Balancing
- کاهش مصرف پهنای باند
- جلوگیری از ایجاد Loop
- قابلیت احراز هویت بین روترها
ترکیب این ویژگیها باعث شده است OSPF یکی از محبوبترین پروتکلهای مسیریابی در شبکههای Enterprise باشد.
OSPF چگونه کار میکند؟
برای درک صحیح OSPF باید بدانیم که این پروتکل دقیقاً چه اطلاعاتی را بین روترها مبادله میکند و چگونه مسیرها را محاسبه میکند.
برخلاف پروتکلهای Distance Vector که تنها فاصله تا مقصد را بین همسایهها تبادل میکنند، OSPF ابتدا نقشهای کامل از توپولوژی شبکه تهیه میکند. هر روتر اطلاعات لینکهای خود را برای سایر روترها ارسال میکند و در نهایت همه روترها یک پایگاه داده یکسان از وضعیت شبکه در اختیار خواهند داشت.
این پایگاه داده با نام Link State Database (LSDB) شناخته میشود.
پس از تکمیل LSDB، هر روتر بهصورت مستقل الگوریتم SPF را اجرا میکند و بهترین مسیرها را محاسبه میکند. بنابراین هیچ روتر منتظر تصمیم روتر دیگر نمیماند و همین موضوع یکی از دلایل سرعت بالای OSPF است.
بهصورت خلاصه، فرآیند عملکرد OSPF شامل مراحل زیر است:
- کشف همسایهها
- ایجاد ارتباط Adjacency
- تبادل اطلاعات لینکها
- تشکیل پایگاه داده LSDB
- اجرای الگوریتم SPF
- ایجاد جدول مسیریابی
تمام این مراحل معمولاً در مدتزمان بسیار کوتاهی انجام میشوند.
الگوریتم SPF در OSPF
قلب تپنده OSPF الگوریتمی به نام Shortest Path First یا همان الگوریتم دایکسترا (Dijkstra) است.
این الگوریتم وظیفه دارد کوتاهترین و بهینهترین مسیر را از دید هر روتر محاسبه کند. برخلاف تصور بسیاری از افراد، کوتاهترین مسیر الزاماً مسیری نیست که تعداد روترهای کمتری داشته باشد.
در OSPF معیار اصلی انتخاب مسیر، Cost است.
هر لینک دارای یک مقدار Cost است که معمولاً بر اساس سرعت Interface محاسبه میشود. هرچه سرعت لینک بیشتر باشد، مقدار Cost کمتر خواهد بود و احتمال انتخاب آن مسیر افزایش پیدا میکند.
برای مثال فرض کنید دو مسیر بین Router A و Router B وجود دارد:
- مسیر اول شامل سه لینک 10Gbps است.
- مسیر دوم شامل تنها یک لینک 100Mbps است.
اگرچه مسیر دوم تعداد Hop کمتری دارد، اما OSPF معمولاً مسیر اول را انتخاب میکند؛ زیرا مجموع Cost آن کمتر است.
این موضوع نشان میدهد که OSPF تنها به تعداد روترها توجه نمیکند، بلکه کیفیت لینکها را نیز در نظر میگیرد.
فرمول محاسبه Cost
بهصورت پیشفرض در بسیاری از تجهیزات سیسکو، مقدار Cost از رابطه زیر محاسبه میشود:
Cost = Reference Bandwidth / Interface Bandwidth
Router ID در OSPF
یکی از مهمترین مفاهیم در OSPF، شناسه هر روتر یا Router ID است.
هر روتر باید یک شناسه منحصربهفرد داشته باشد تا سایر روترها بتوانند آن را شناسایی کنند. اگر دو روتر دارای Router ID یکسان باشند، فرآیند همسایگی دچار مشکل خواهد شد.
ترتیب انتخاب Router ID معمولاً به شکل زیر است:
- مقدار تنظیمشده توسط مدیر شبکه
- بالاترین IP موجود روی Loopback Interface
- بالاترین IP موجود روی Interfaceهای فعال
به همین دلیل توصیه میشود همیشه یک Loopback Interface ایجاد کرده و Router ID را بهصورت دستی تعیین کنید تا در صورت تغییر Interfaceهای فیزیکی، شناسه روتر ثابت باقی بماند.
همسایهها (Neighbors) در OSPF
اولین قدم برای عملکرد صحیح OSPF، شناسایی روترهای همسایه است.
روترها از طریق بستههای Hello Packet یکدیگر را پیدا میکنند. این بستهها در بازههای زمانی مشخص ارسال میشوند و شامل اطلاعات مهمی مانند Router ID، Area ID، تایمرها و پارامترهای مختلف هستند.
اگر تنظیمات دو روتر با یکدیگر سازگار باشد، ارتباط همسایگی (Neighbor Relationship) تشکیل میشود.
برخی از پارامترهایی که باید در دو سمت یکسان باشند عبارتاند از:
- Area ID
- Hello Interval
- Dead Interval
- Authentication
- Network Type
- Subnet
در صورت متفاوت بودن هر یک از این موارد، ارتباط همسایگی برقرار نخواهد شد.
Adjacency در OSPF
بسیاری از افراد تصور میکنند Neighbor و Adjacency یک مفهوم هستند، در حالی که این دو مرحله با یکدیگر تفاوت دارند.
Neighbor به این معناست که دو روتر یکدیگر را شناسایی کردهاند؛ اما هنوز اطلاعات کامل توپولوژی را تبادل نکردهاند.
Adjacency مرحلهای پیشرفتهتر است که در آن دو روتر پایگاه داده Link State خود را با یکدیگر همگامسازی (Synchronization) میکنند.
پس از ایجاد Adjacency، اطلاعات LSA بین روترها رد و بدل شده و هر دو روتر دارای LSDB یکسان خواهند شد.
به همین دلیل، تشکیل Adjacency یکی از مهمترین مراحل عملکرد OSPF محسوب میشود؛ زیرا بدون آن، روتر قادر به محاسبه مسیرهای صحیح نخواهد بود.
معماری Area در OSPF؛ چرا تقسیمبندی شبکه اهمیت دارد؟
هرچه شبکه بزرگتر شود، تعداد روترها، لینکها و اطلاعات مسیریابی نیز افزایش پیدا میکند. اگر تمام روترها در یک ناحیه قرار بگیرند، حجم پایگاه داده OSPF (LSDB) بهمرور زمان بسیار زیاد میشود و هر تغییر کوچک در شبکه باعث میشود همه روترها دوباره الگوریتم SPF را اجرا کنند. این موضوع علاوه بر افزایش مصرف پردازنده، حافظه و پهنای باند، سرعت همگرایی شبکه را نیز کاهش میدهد.
برای حل این مشکل، OSPF از مفهوم Area استفاده میکند. تقسیم شبکه به چندین Area باعث میشود هر روتر تنها اطلاعات مربوط به ناحیه خود را نگهداری کند و تغییرات شبکه فقط در همان Area منتشر شوند. در نتیجه، شبکه مقیاسپذیرتر، پایدارتر و سریعتر خواهد بود.
به همین دلیل، طراحی صحیح Areaها یکی از مهمترین اصول در پیادهسازی OSPF در شبکههای سازمانی است.
Area در OSPF چیست؟
Area یک محدوده منطقی از روترها است که همگی اطلاعات Link-State خود را با یکدیگر به اشتراک میگذارند. هر Area دارای پایگاه داده LSDB مستقل است و روترهای داخل آن فقط اطلاعات همان Area را بهطور کامل در اختیار دارند.
زمانی که یک تغییر در توپولوژی رخ میدهد، مانند قطع شدن یک لینک یا اضافه شدن یک روتر جدید، این تغییر فقط در همان Area منتشر میشود و سایر Areaها تحت تأثیر قرار نمیگیرند.
به بیان ساده، Areaها مانند اتاقهای جداگانه یک ساختمان هستند. اتفاقاتی که در یک اتاق رخ میدهد، لزوماً باعث ایجاد آشفتگی در تمام ساختمان نخواهد شد.
مزایای استفاده از Area در OSPF عبارتاند از:
- کاهش حجم LSDB
- کاهش بار پردازشی الگوریتم SPF
- افزایش سرعت Convergence
- کاهش ترافیک LSA
- مدیریت سادهتر شبکه
- افزایش مقیاسپذیری
Backbone Area (Area 0)
Backbone Area که با نام Area 0 شناخته میشود، مهمترین Area در OSPF است.
تمام Areaهای دیگر باید بهصورت مستقیم یا غیرمستقیم به Area 0 متصل شوند. در واقع Area 0 ستون فقرات شبکه OSPF محسوب میشود و تمامی اطلاعات بین Areaهای مختلف از طریق آن منتقل میشوند.
اگر شبکهای چندین Area داشته باشد اما ارتباط یکی از Areaها با Area 0 قطع شود، آن Area قادر به تبادل مسیر با سایر Areaها نخواهد بود.
به همین دلیل، هنگام طراحی شبکه همیشه توصیه میشود Area 0 در مرکز توپولوژی قرار گیرد.
ویژگیهای Area 0
- هسته اصلی OSPF
- محل عبور مسیرهای بین Areaها
- اتصال تمام Areaهای دیگر
- بیشترین اهمیت در طراحی شبکه
Standard Area
Standard Area همان Area پیشفرض در OSPF است.
این نوع Area هیچ محدودیتی برای دریافت یا ارسال LSAها ندارد و تمامی انواع LSA موردنیاز را دریافت میکند.
در شبکههایی که محدودیت منابع سختافزاری وجود ندارد، معمولاً از Standard Area استفاده میشود.
ویژگیها:
- دریافت تمام Routeها
- دریافت تمام LSAهای مجاز
- مناسب برای شبکههای کوچک و متوسط
Stub Area
گاهی اوقات نیازی نیست یک Area از تمام Routeهای خارجی مطلع باشد.
برای مثال، تصور کنید یک شعبه کوچک سازمان تنها از طریق یک لینک به دفتر مرکزی متصل است و تمام ترافیک خروجی آن از همان لینک عبور میکند. در چنین شرایطی دریافت هزاران Route خارجی فقط باعث اشغال حافظه و پردازنده خواهد شد.
با Stub Area، روترها Routeهای خارجی (External Routes) را دریافت نمیکنند و بهجای آن تنها یک Default Route دریافت میکنند.
مزایا:
- کاهش حجم جدول مسیریابی
- کاهش حجم LSDB
- افزایش سرعت پردازش
- کاهش مصرف RAM
محدودیت:
- وجود ASBR در Stub Area مجاز نیست.
Totally Stubby Area
Totally Stubby Area نسخه بهینهتر Stub Area است.
علاوه بر حذف Routeهای خارجی، بسیاری از Routeهای بین Areaها نیز وارد این Area نمیشوند و تنها یک Default Route به آن ارسال میشود.
در نتیجه حجم جدول Routing به حداقل ممکن میرسد.
ویژگیها:
- تنها Default Route دریافت میشود.
- حجم Routing Table بسیار کوچک است.
- مناسب برای شعبات کوچک
نکته مهم:
Totally Stubby Area یک قابلیت اختصاصی Cisco است و در استاندارد رسمی OSPF وجود ندارد.
NSSA (Not So Stubby Area)
گاهی لازم است یک Area هم Stub باشد و هم بتواند Routeهای خارجی را وارد شبکه کند.
برای این منظور از NSSA استفاده میشود.
فرض کنید در یک شعبه سازمان یک روتر به اینترنت متصل است و باید Route پیشفرض یا Routeهای Static را وارد OSPF کند.
از آنجایی که در Stub Area وجود ASBR مجاز نیست، راهکار استفاده از NSSA خواهد بود.
در NSSA:
- Routeهای خارجی از خارج دریافت نمیشوند.
- اما خود Area میتواند Route خارجی تولید کند.
- این Routeها با LSA Type 7 منتشر میشوند.
- در ABR، LSA Type 7 به Type 5 تبدیل میشود.
Totally NSSA
Totally NSSA ترکیبی از ویژگیهای NSSA و Totally Stubby Area است.
در این نوع Area:
- Routeهای خارجی حذف میشوند.
- Routeهای بین Areaها حذف میشوند.
- فقط Default Route دریافت میشود.
- همچنان امکان معرفی Route خارجی از داخل Area وجود دارد.
این نوع Area نیز معمولاً در تجهیزات Cisco پیادهسازی میشود.
ABR چیست؟
در یک شبکه چندناحیهای، نیاز به روترهایی وجود دارد که بتوانند اطلاعات را بین Areaهای مختلف منتقل کنند.
به این روترها ABR گفته میشود.
یک ABR حداقل به دو Area متصل است که یکی از آنها باید Area 0 باشد.
وظایف ABR:
- اتصال چندین Area
- خلاصهسازی Routeها
- ارسال LSA Type 3
- کاهش حجم LSDB
- انتقال اطلاعات بین Areaها
ASBR چیست؟
گاهی لازم است Routeهای خارج از OSPF وارد این پروتکل شوند.
برای مثال:
- Static Route
- Default Route
- RIP
- EIGRP
- BGP
روتری که این مسیرها را وارد OSPF میکند، ASBR نام دارد.
به عبارت دیگر، ASBR مرز بین OSPF و سایر پروتکلهای مسیریابی است.
وظایف ASBR:
- Redistribution
- ایجاد LSA Type 5
- وارد کردن Routeهای خارجی
Virtual Link در OSPF
در طراحی استاندارد، تمام Areaها باید به Area 0 متصل باشند. اما در برخی شرایط، مانند توسعه تدریجی شبکه یا محدودیتهای فیزیکی، ممکن است یک Area ارتباط مستقیمی با Backbone نداشته باشد.
در چنین شرایطی از Virtual Link استفاده میشود.
Virtual Link یک اتصال منطقی است که از طریق یک Area ترانزیت (Transit Area) ایجاد میشود تا ارتباط Area موردنظر با Area 0 برقرار شود.
موارد استفاده از Virtual Link
- اتصال موقت Area به Backbone
- رفع مشکلات طراحی قدیمی
- مهاجرت شبکه بدون ایجاد وقفه
نکته مهم
هرچند Virtual Link راهکاری کاربردی است، اما استفاده مداوم از آن توصیه نمیشود؛ زیرا باعث افزایش پیچیدگی طراحی و دشوارتر شدن عیبیابی میشود. بهترین روش، طراحی صحیح توپولوژی از ابتدا و اتصال مستقیم تمام Areaها به Area 0 است.
DR و BDR در OSPF؛ کاهش ترافیک و افزایش کارایی شبکه
یکی از مهمترین قابلیتهای OSPF در شبکههای چنددسترسی (Multi-Access)، مکانیزم انتخاب DR و BDR است. بسیاری از مهندسان شبکه در ابتدای یادگیری OSPF تصور میکنند تمام روترها مستقیماً با یکدیگر همسایه کامل (Full Adjacency) تشکیل میدهند؛ اما در عمل، چنین رویکردی در شبکههای بزرگ باعث افزایش شدید ترافیک کنترلی و مصرف منابع میشود.
به همین دلیل OSPF در برخی از انواع شبکهها، دو روتر ویژه با نامهای Designated Router (DR) و Backup Designated Router (BDR) انتخاب میکند. این دو روتر نقش هماهنگکننده را بر عهده دارند و باعث میشوند فرآیند تبادل اطلاعات مسیریابی با کمترین سربار انجام شود.
DR در OSPF چیست؟
قبل از بررسی فرآیند انتخاب، ابتدا باید بدانیم DR دقیقاً چه وظیفهای بر عهده دارد.
DR یا Designated Router روتری است که در شبکههای Broadcast و NBMA بهعنوان نماینده سایر روترها انتخاب میشود. این روتر مسئول دریافت، مدیریت و توزیع بسیاری از اطلاعات Link-State در آن Segment است.
بهجای اینکه هر روتر با تمام روترهای دیگر ارتباط Full برقرار کند، همه روترها اطلاعات خود را به DR ارسال میکنند و DR این اطلاعات را برای سایر اعضای شبکه منتشر میکند.
این روش باعث کاهش چشمگیر تعداد ارتباطات و در نتیجه کاهش مصرف پردازنده، حافظه و پهنای باند میشود.
چرا OSPF به DR نیاز دارد؟
فرض کنید در یک شبکه Ethernet، پنج روتر قرار دارند.
اگر هیچ مکانیزم خاصی وجود نداشته باشد، هر روتر باید با چهار روتر دیگر Adjacency برقرار کند.
۵ Routers -> 5 * 4/2 = 10
۱۰ Routers -> 10 * 9 /2 = 45
همانطور که مشاهده میشود، تعداد ارتباطات بهصورت تصاعدی افزایش پیدا میکند.
OSPF برای جلوگیری از این مشکل، DR را معرفی کرده است.
در این حالت:
- تمام روترها فقط با DR ارتباط Full برقرار میکنند.
- DR اطلاعات را بین همه توزیع میکند.
- تعداد ارتباطات بهشدت کاهش پیدا میکند.
پس از انتخاب DR، تمام روترهای موجود در شبکه اطلاعات Link-State خود را ابتدا برای DR ارسال میکنند.
سپس DR این اطلاعات را بررسی کرده و آنها را برای سایر روترها منتشر میکند.
در این ساختار، روترها دیگر نیازی ندارند مستقیماً با یکدیگر اطلاعات را مبادله کنند.
اگر DR از مدار خارج شود چه اتفاقی میافتد؟
بدون وجود مکانیزم جایگزین، تمام روترها مجبور میشوند دوباره فرآیند انتخاب DR را انجام دهند که این موضوع باعث افزایش زمان Convergence خواهد شد.
برای جلوگیری از این مشکل، OSPF یک روتر دوم با نام Backup Designated Router (BDR) انتخاب میکند.
BDR همیشه آماده است تا در صورت خرابی DR، بدون نیاز به انتخابات مجدد، مسئولیت را بر عهده بگیرد.
مزایای استفاده از BDR:
- کاهش زمان بازیابی
- جلوگیری از قطعی شبکه
- افزایش پایداری
- کاهش زمان Convergence
فرآیند انتخاب DR و BDR
انتخاب DR و BDR کاملاً خودکار انجام میشود و بر اساس معیارهای مشخصی صورت میگیرد.
ترتیب انتخاب به شکل زیر است:
- بیشترین مقدار OSPF Priority
- در صورت مساوی بودن Priority، بالاترین Router ID
بنابراین Priority مهمترین معیار انتخاب است.
اگر Priority در OSPF برابر با صفر باشد
یکی از نکات مهم در OSPF این است که اگر Priority یک Interface برابر صفر باشد، آن روتر هرگز در انتخابات DR و BDR شرکت نخواهد کرد.
اما همچنان میتواند بهعنوان یک روتر معمولی (DROTHER) فعالیت کند.
این قابلیت زمانی مفید است که نخواهیم یک روتر با منابع محدود نقش DR را بر عهده بگیرد.
آیا همیشه DR انتخاب میشود؟
پاسخ منفی است.
انتخاب DR تنها در برخی از انواع شبکهها انجام میشود.
این موضوع به Network Type بستگی دارد.
انواع Network Type در OSPF
یکی از مهمترین پارامترهای OSPF، نوع شبکه است که رفتار پروتکل را در کشف همسایهها، تشکیل Adjacency و انتخاب DR/BDR تعیین میکند.
Broadcast Network
رایجترین نوع شبکه در OSPF است.
نمونهها:
- Ethernet
- VLAN
- Switch LAN
ویژگیها:
- ارسال Hello به صورت Multicast
- انتخاب DR
- انتخاب BDR
- Full Adjacency با DR
Point-to-Point
در این نوع شبکه تنها دو روتر وجود دارند.
مانند:
- لینک PPP
- لینک Serial
- ارتباط مستقیم بین دو Router
ویژگیها:
- DR وجود ندارد.
- BDR وجود ندارد.
- هر دو روتر مستقیماً Full Adjacency تشکیل میدهند.
این سادهترین نوع پیادهسازی OSPF محسوب میشود.
Point-to-Multipoint
در این نوع توپولوژی، یک روتر با چندین روتر دیگر ارتباط دارد، اما هر لینک بهصورت مستقل در نظر گرفته میشود.
ویژگیها:
- بدون DR
- بدون BDR
- مناسب برخی شبکههای WAN
NBMA (Non-Broadcast Multi-Access)
نمونهها:
- Frame Relay
- ATM
- برخی شبکههای MPLS قدیمی
ویژگیها:
- Broadcast وجود ندارد.
- Neighbor باید دستی تعریف شود.
- DR انتخاب میشود.
- BDR انتخاب میشود.
حالتهای همسایگی (Neighbor States)
در OSPF فرآیند تشکیل همسایگی در چند مرحله انجام میشود و هر مرحله نشاندهنده وضعیت خاصی از ارتباط بین دو روتر است.
مراحل اصلی عبارتاند از:
- Down
- Init
- Two-Way
- ExStart
- Exchange
- Loading
- Full
Down
هیچ Hello Packet از همسایه دریافت نشده است.
Init
روتر اولین Hello را دریافت کرده اما هنوز ارتباط دوطرفه برقرار نشده است.
Two-Way
هر دو روتر یکدیگر را شناسایی کردهاند.
در شبکههای Broadcast، اکثر روترها در همین وضعیت باقی میمانند و فقط با DR و BDR وارد مراحل بعدی میشوند.
ExStart
دو روتر درباره Master و Slave بودن مذاکره میکنند.
Exchange
اطلاعات Database Description بین روترها رد و بدل میشود.
Loading
روترها LSAهای موردنیاز را درخواست و دریافت میکنند.
Full
همه اطلاعات همگام شدهاند.
Adjacency کامل تشکیل شده است.
نقش DR در ارسال LSA
یکی از وظایف مهم DR مدیریت انتشار برخی از LSAها است.
در شبکههای Broadcast:
- روترها ابتدا اطلاعات خود را برای DR ارسال میکنند.
- DR آنها را برای سایر روترها منتشر میکند.
- BDR نیز همزمان این اطلاعات را دریافت و نگهداری میکند تا در صورت خرابی DR بلافاصله جایگزین شود.
این مکانیزم باعث کاهش قابل توجه تعداد بستههای Link-State در شبکه میشود.
نکات مهم OSPF در DR و BDR
- DR لزوماً قویترین روتر شبکه نیست؛ بلکه بر اساس Priority و Router ID انتخاب میشود.
- تغییر Priority پس از پایان انتخابات، DR فعلی را تغییر نمیدهد. برای برگزاری انتخابات مجدد معمولاً باید فرآیند همسایگی ریست شود.
- در شبکههای Point-to-Point هیچ نیازی به DR و BDR وجود ندارد.
- در شبکههای Ethernet تقریباً همیشه DR و BDR انتخاب میشوند.
- BDR تا زمان خرابی DR هیچ وظیفه فعالی در مدیریت شبکه ندارد، اما اطلاعات را همگام نگه میدارد تا در صورت نیاز فوراً جایگزین شود.
LSA در OSPF؛ قلب تپنده تبادل اطلاعات مسیریابی
تا اینجای مقاله با مفاهیم پایه OSPF، نحوه تشکیل همسایگی، معماری Areaها و مکانیزم انتخاب DR و BDR آشنا شدیم. اما هنوز به مهمترین سؤال پاسخ ندادهایم؛ روترها دقیقاً چه اطلاعاتی را با یکدیگر تبادل میکنند؟
پاسخ این سؤال، LSA یا Link-State Advertisement است.
در واقع، اگر OSPF را به بدن انسان تشبیه کنیم، الگوریتم SPF مغز آن است و LSA خون جاری در رگهای آن محسوب میشود. تمام اطلاعات مربوط به لینکها، روترها، شبکهها و مسیرهای بین Areaها از طریق LSAها در شبکه منتشر میشوند. بدون LSA، هیچ روتری نمیتواند نقشهای از توپولوژی شبکه ایجاد کند و در نتیجه قادر به محاسبه بهترین مسیر نخواهد بود.
LSA چیست؟
LSA (Link-State Advertisement) بستهای اطلاعاتی است که روترهای OSPF برای معرفی وضعیت لینکهای خود، شبکههای متصل و اطلاعات مسیریابی تولید میکنند.
هر زمان تغییری در شبکه رخ دهد، مانند:
- قطع شدن یک لینک
- اضافه شدن یک روتر
- تغییر Cost یک Interface
- فعال یا غیرفعال شدن یک مسیر
روتر مربوطه یک LSA جدید تولید میکند و آن را در شبکه منتشر میکند.
این فرآیند Flooding نام دارد.
تمام روترهای داخل همان Area این LSA را دریافت کرده، پایگاه داده LSDB خود را بهروزرسانی میکنند و سپس دوباره الگوریتم SPF را اجرا میکنند تا بهترین مسیرهای جدید محاسبه شوند.
Flooding در OSPF
یکی از مهمترین ویژگیهای OSPF، انتشار کنترلشده LSAها است.
برخلاف پروتکل RIP که جدول مسیریابی را هر ۳۰ ثانیه ارسال میکند، OSPF فقط هنگام تغییر توپولوژی، LSA جدید تولید میکند.
مزایای این روش:
- کاهش مصرف پهنای باند
- همگرایی سریعتر
- کاهش پردازش CPU
- افزایش مقیاسپذیری
نکته مهم این است که هر LSA دارای شماره نسخه (Sequence Number) است. روترها همواره جدیدترین نسخه را نگه میدارند و از ایجاد حلقه در فرآیند انتشار جلوگیری میشود.
Link-State Database (LSDB)
تمام LSAهای دریافتی در پایگاه دادهای به نام Link-State Database (LSDB) ذخیره میشوند.
LSDB در واقع نقشه کامل توپولوژی یک Area است.
نکته بسیار مهم این است که:
- تمام روترهای داخل یک Area باید LSDB یکسانی داشته باشند.
- هر Area دارای LSDB مستقل است.
- الگوریتم SPF بر اساس LSDB اجرا میشود.
اگر LSDB دو روتر با یکدیگر متفاوت باشد، مسیرهای محاسبهشده نیز متفاوت خواهند بود و این موضوع میتواند منجر به بروز مشکلات مسیریابی شود.
LSA Type 1 (Router LSA)
Router LSA چیست؟
LSA Type 1 که با نام Router LSA شناخته میشود، اولین و مهمترین نوع LSA در OSPF است.
هر روتر داخل یک Area، یک Router LSA تولید میکند و اطلاعات مربوط به Interfaceها، لینکها، Cost و همسایههای خود را در آن قرار میدهد.
این LSA فقط در همان Area منتشر میشود و هرگز از مرز Area عبور نمیکند
اطلاعات موجود در Router LSA
یک LSA Type 1 معمولاً شامل اطلاعات زیر است:
- Router ID
- Interfaceهای فعال
- Cost هر لینک
- نوع لینک
- وضعیت لینک
- همسایههای متصل
به کمک این اطلاعات، سایر روترها میتوانند ساختار شبکه را بهدرستی شناسایی کنند.
LSA Type 2 (Network LSA)
Network LSA چیست؟
زمانی که در یک شبکه Broadcast، DR انتخاب میشود، وظیفه جدیدی نیز به آن داده میشود.
DR یک LSA Type 2 تولید میکند.
هدف این LSA معرفی شبکه مشترک و تمام روترهای متصل به آن است.
به همین دلیل، تنها DR مجاز به تولید LSA Type 2 است.
چرا Type 2 لازم است؟
فرض کنید ده روتر به یک سوئیچ متصل هستند.
اگر هر روتر بخواهد اطلاعات تمام روترهای دیگر را در Router LSA خود قرار دهد، حجم LSDB بسیار زیاد خواهد شد.
به همین دلیل DR یک Network LSA ایجاد میکند و اعلام میکند:
“این شبکه شامل این روترها است.”
در نتیجه اطلاعات بهشکل بسیار بهینهتری ذخیره میشوند.
LSA Type 3 (Summary LSA)
Summary LSA چیست؟
فرض کنید شبکه دارای چندین Area باشد.
در این حالت، روترهای Area 1 نباید تمام جزئیات توپولوژی Area 2 را بدانند؛ زیرا این موضوع باعث افزایش شدید حجم LSDB خواهد شد.
در اینجا ABR وارد عمل میشود.
ABR اطلاعات شبکههای Areaهای دیگر را خلاصه کرده و در قالب LSA Type 3 به سایر Areaها ارسال میکند.
به همین دلیل این LSA را Summary LSA نیز مینامند.
ارتباط LSAها با الگوریتم SPF
تمام LSAهایی که در LSDB ذخیره میشوند، ورودی اصلی الگوریتم Shortest Path First هستند.
فرآیند بهصورت زیر انجام میشود:
- روتر LSA دریافت میکند.
- LSDB بهروزرسانی میشود.
- الگوریتم SPF اجرا میشود.
- کوتاهترین مسیرها محاسبه میشوند.
- Routing Table بهروزرسانی میشود.
این چرخه بارها در طول عمر شبکه تکرار میشود و باعث میشود OSPF همواره جدیدترین و بهینهترین مسیرها را در اختیار داشته باشد.
نکات کلیدی درباره LSAها
- هر تغییر در وضعیت لینکها باعث تولید LSA جدید میشود.
- تمام روترهای داخل یک Area باید LSDB یکسانی داشته باشند.
- LSA Type 1 توسط تمام روترها تولید میشود.
- LSA Type 2 فقط توسط DR تولید میشود.
- LSA Type 3 توسط ABR برای انتقال اطلاعات بین Areaها تولید میشود.
- الگوریتم SPF تنها بر اساس اطلاعات موجود در LSDB مسیرها را محاسبه میکند.
- یکی از دلایل سرعت بالای OSPF، استفاده از LSAها و انتشار هوشمندانه آنها است.
نتیجهگیری
پروتکل OSPF یکی از قدرتمندترین و پرکاربردترین پروتکلهای مسیریابی در شبکههای امروزی است که به دلیل سرعت همگرایی بالا، مقیاسپذیری مناسب و استفاده از الگوریتم Link-State، جایگاه ویژهای در شبکههای سازمانی و زیرساختهای بزرگ دارد.
در این مقاله با ساختار داخلی OSPF آشنا شدیم و بررسی کردیم که چگونه روترها با استفاده از اطلاعات Link-State، پایگاه داده LSDB را ایجاد کرده و به کمک الگوریتم SPF بهترین مسیرهای ممکن را انتخاب میکنند. همچنین اهمیت طراحی صحیح Areaها، نقش حیاتی Area 0، وظایف ABR و ASBR، مکانیزم انتخاب DR و BDR و نحوه عملکرد LSAهای Type 1، Type 2 و Type 3 را بررسی کردیم.
درک صحیح این مفاهیم باعث میشود فقط به حفظ کردن دستورات پیکربندی OSPF محدود نشوید، بلکه بتوانید رفتار واقعی این پروتکل را در شرایط مختلف تحلیل کنید، مشکلات شبکه را سریعتر عیبیابی کنید و طراحیهای حرفهایتر و بهینهتری انجام دهید.
یک متخصص شبکه زمانی میتواند از تمام قابلیتهای OSPF استفاده کند که علاوه بر نحوه فعالسازی آن، منطق پشت پرده این پروتکل را نیز بهخوبی بشناسد. شناخت دقیق LSAها، Areaها، فرآیند Neighbor Formation و محاسبه مسیرها، پایهای مهم برای ورود به مباحث پیشرفتهتر مانند Redistribution، Route Summarization، OSPF Security و طراحی شبکههای Enterprise است.
اگر در مسیر یادگیری شبکه هستید، پیشنهاد میکنیم این مقاله را ذخیره کنید و در زمان پیادهسازی یا عیبیابی OSPF دوباره به آن مراجعه کنید. همچنین خوشحال میشویم تجربههای خود درباره کار با OSPF، چالشهایی که در تنظیمات آن داشتهاید یا سؤالات تخصصی خود را در بخش دیدگاهها با ما و سایر علاقهمندان شبکه به اشتراک بگذارید.