عملکرد OSPF (OSPF Operation) – روز 14
نحوه تصمیمگیری یک روتر برای ارسال بستهها بهصورت پیشفرض
قبل از این مقاله بهتره “پیکربندی مسیریابی استاتیک (Static and Default Route Configuration)” رو مطالعه کنید، در این مطلب در خصوص دو موضوع اصلی نحوه تصمیمگیری یک روتر برای ارسال بستهها بهصورت پیشفرض و پیکربندی و تأیید OSPF تکناحیهای (Single-Area OSPFv2) صحبت خواهیم کرد. همچین عملکرد پایهای OSPF را در OSPFv2 برای مسیریابی در IPv4 و OSPFv3 برای مسیریابی در IPv6 بررسی میکنیم. هرچند که هر دو نسخه اصول اساسی یکسانی دارند، اما در جزئیات متفاوت هستند.
در پست بعدی با جزئیات بیشتری در خصوص، پیکربندی OSPF صحبت خواهیم کرد و در این پست نگاه کوتاهی به عملکرد پایهای OSPF خواهیم داشت.
عملکرد OSPF در یک ناحیه (Single-Area OSPF Operation)
گروه مهندسی اینترنت (IETF) پروتکل OSPF را بهعنوان پروتکل مسیریابی داخلی (IGP) توصیهشده انتخاب کرد.
- OSPF جایگزین IS-IS شد.
- در سال 1998، OSPFv2 در RFC 2328 منتشر شد.
- برای مشاهده متن اصلی RFC، به آدرس زیر مراجعه کنید: http://www.ietf.org/rfc/rfc2328
در نرمافزارهای Cisco IOS، پروتکل OSPF نسبت به RIP ترجیح داده میشود، زیرا مقدار Administrative Distance (AD) آن برابر با 110
است، درحالیکه AD مربوط به RIP برابر 120
است.
فرمت پیام OSPF (OSPF Message Format)
دادههای OSPF در داخل یک بسته کپسوله (Encapsulate) میشوند. این بخش داده شامل یکی از پنج نوع بسته OSPF است. شکل زیر کپسولهسازی یک پیام OSPF در یک فریم اترنت را نشان میدهد.
ساختار هدر OSPF:
- هدر OSPF در هر بسته OSPF وجود دارد، بدون توجه به نوع آن.
- هدر OSPF درون یک بسته IP قرار میگیرد.
- در هدر IP:
- مقدار فیلد پروتکل برابر
89
است (که نشاندهنده OSPF است). - آدرس مقصد معمولاً یکی از آدرسهای چندپخشی (Multicast)
224.0.0.5
یا224.0.0.6
است.
- مقدار فیلد پروتکل برابر
- اگر بسته OSPF در فریم اترنت کپسوله شده باشد، آدرس MAC مقصد نیز یک آدرس Multicast خواهد بود:
01-00-5E-00-00-05 01-00-5E-00-00-06
انواع بستههای OSPF (OSPF Packet Types)
هر یک از پنج نوع بسته OSPF در فرآیند مسیریابی نقش خاصی دارند:
- Hello
- بستههای Hello برای برقراری و نگهداری همسایگی (Adjacency) بین روترهای OSPF استفاده میشوند.
- DBD (Database Description)
- بستههای DBD (توصیف پایگاه داده) شامل فهرست خلاصهای از پایگاه داده لینکاستیت (LSDB) روتر فرستنده هستند.
- روتر گیرنده از این بستهها برای بررسی اطلاعات پایگاه داده لینکاستیت خود استفاده میکند.
- LSR (Link State Request)
- روتر گیرنده میتواند اطلاعات بیشتری درباره هر ورودی در پایگاه داده لینکاستیت (LSDB) درخواست کند.
- برای این کار، از بسته LSR استفاده میشود.
- LSU (Link State Update)
- بستههای LSU به روترهای OSPF ارسال شده و اطلاعات جدید را اعلام میکنند.
- این بستهها شامل 11 نوع آگهی لینکاستیت (LSA) هستند.
- LSAck (Link State Acknowledgment)
- هنگام دریافت یک LSU، روتر یک پیام تأیید (LSAck) ارسال میکند تا دریافت موفقیتآمیز بسته را اعلام کند.
برقراری همسایگی در OSPF (Neighbor Establishment in OSPF)
روترهای OSPF برای برقراری همسایگی (Adjacency)، بستههای Hello را با یکدیگر مبادله میکنند. شکل زیر هدر بسته OSPF و بسته Hello را نمایش میدهد.
هدر بسته OSPF و بسته Hello (OSPF Packet Header and Hello Packet)
فیلدهای مهم در بستههای OSPF:
- Type: نوع بسته OSPF:
- Hello (Type 1)
- Database Description (DBD) (Type 2)
- Link State Request (LSR) (Type 3)
- Link State Update (LSU) (Type 4)
- Link State Acknowledgment (LSAck) (Type 5)
- Router ID: شناسه (ID) روتر فرستنده.
- Area ID: ناحیهای که بسته از آن ارسال شده است.
- Network Mask: ماسک زیرشبکه اینترفیس فرستنده.
- Hello Interval: تعداد ثانیههایی که بین ارسال بستههای Hello فاصله است.
- Router Priority: در انتخابات DR/BDR استفاده میشود.
- Designated Router (DR): شناسه (ID) روتر انتخابشده به عنوان DR (در صورت وجود).
- Backup Designated Router (BDR): شناسه (ID) روتر BDR (در صورت وجود).
- List of Neighbors: شناسه (ID) روترهای همسایه OSPF.
وظایف بستههای Hello
بستههای Hello برای انجام کارهای زیر استفاده میشوند:
- کشف روترهای OSPF و برقراری همسایگی (Neighbor Adjacency).
- اعلان پارامترهایی که دو روتر باید روی آنها توافق کنند تا همسایه شوند.
- انتخاب DR و BDR در شبکههای چندپخشی (Multicast) مانند اترنت و Frame Relay.
شرایط لازم برای برقراری همسایگی در OSPF
هنگامی که یک بسته Hello دریافت شود، روتر متوجه میشود که یک روتر OSPF دیگر در این لینک وجود دارد.
سپس، OSPF همسایگی را با آن روتر برقرار میکند.
دو روتر OSPF برای برقراری همسایگی باید مقادیر زیر را مطابقت دهند:
- Hello Interval
- Dead Interval
- Network Type
- Area ID
مراحل برقراری همسایگی
- هر دو اینترفیس باید در یک شبکه قرار داشته باشند، از جمله استفاده از یک ماسک زیرشبکه یکسان.
- همسایگی کامل (Full Adjacency) زمانی برقرار میشود که روترها پایگاه داده لینکاستیت (LSDB) خود را همگامسازی کنند.
- بستههای Hello بهطور پیشفرض به آدرس چندپخشی
224.0.0.5 (ALLSPFRouters)
ارسال میشوند.- در لینکهای چندپخشی (Multicast) و Point-to-Point: هر 10 ثانیه.
- در لینکهای چندپخشی غیراستاندارد (NBMA) مانند Frame Relay و ATM: هر 30 ثانیه.
- مقدار Dead Interval معمولاً 4 برابر Hello Interval است.
آگهیهای وضعیت لینک (Link-State Advertisements – LSAs)
بستههای LSU (Link State Update) برای بهروزرسانی مسیریابی OSPF استفاده میشوند. یک بسته LSU میتواند شامل 11 نوع LSA باشد.
انواع LSAs در بستههای LSU (LSUs Contain LSAs)
نوع | نام بسته | توضیحات |
---|---|---|
1 | Hello | کشف همسایگان و ایجاد روابط همسایگی. |
2 | DBD (Database Description) | بررسی همگامسازی پایگاه داده بین روترها. |
3 | LSR (Link State Request) | درخواست اطلاعات خاص از رکوردهای وضعیت لینک. |
4 | LSU (Link State Update) | ارسال رکوردهای وضعیت لینک بهطور خاص درخواستشده. |
5 | LSAck (Link State Acknowledgment) | تأیید دریافت سایر بستهها. |
- مخففهای LSA و LSU معمولاً به جای یکدیگر استفاده میشوند.
- یک بسته LSU شامل یک یا چند LSA است.
انواع LSAs در OSPF:
LSA Type | توضیحات |
---|---|
1 | Router LSA |
2 | Network LSA |
3 یا 4 | Summary LSA |
5 | Autonomous System External LSA |
6 | Multicast OSPF LSA |
7 | Defined for Not-So-Stubby Areas (NSSA LSA) |
8 | External Attributes LSA برای پروتکل BGP |
9، 10، 11 | Opaque LSAs |
LSAها اطلاعاتی را برای مسیریابی OSPF ارائه میدهند.
DR و BDR در OSPF (OSPF DR and BDR)
در شبکههای چندپخشی (Multiaccess Networks)، OSPF با دو چالش اصلی در انتشار LSAها مواجه است:
- ایجاد همسایگیهای متعدد (هر روتر باید با هر روتر دیگر ارتباط برقرار کند).
- افزایش حجم انتشار LSAها که باعث ایجاد ترافیک زیاد میشود.
راهکار OSPF برای کاهش این مشکلات:
- انتخاب DR (Designated Router) و BDR (Backup Designated Router)
- DR مسئول بهروزرسانی سایر روترهای OSPF در صورت تغییر در شبکه است.
- BDR وضعیت DR را نظارت میکند و در صورت خرابی DR، جایگزین آن میشود.
- روترهایی که DR یا BDR نیستند، بهعنوان DROTHER شناخته میشوند.
- DROTHERها روترهایی هستند که نه DR و نه BDR هستند.
الگوریتم OSPF (OSPF Algorithm)
- هر روتر در OSPF، یک پایگاه داده لینک-استیت (LSDB) را نگه میدارد که شامل LSAهای دریافتشده از سایر روترها است.
- پس از دریافت LSAها و ساخت پایگاه داده لینکاستیت محلی، OSPF از الگوریتم کوتاهترین مسیر دایکسترا (SPF) استفاده میکند تا یک درخت SPF ایجاد کند.
- الگوریتم SPF مجموع هزینههای مسیرها را از مبدا تا مقصد محاسبه میکند.
- درخت SPF برای تکمیل جدول مسیریابی و یافتن بهترین مسیرها استفاده میشود.
مثال از محاسبه SPF:
در شکل بالا:
- هزینه مسیر R2 به R3 برابر 27 است:
- (20 + 5 + 2 = 27)
- این مقدار 27 برای تمام روترها اعمال نمیشود.
- هر روتر هزینه مخصوص خود را برای رسیدن به مقصد محاسبه میکند.
- SPF در هر روتر بهطور مستقل اجرا میشود.
جدول درخت SPF برای R1
مقصد | کوتاهترین مسیر | هزینه |
---|---|---|
LAN R2 | R1 → R2 | 22 |
LAN R3 | R1 → R3 | 7 |
LAN R4 | R1 → R4 | 2 |
LAN R5 | R1 → R3 → R4 → R5 | 27 |
هر روتر میتواند جدول مشابهی را برای خود محاسبه کند.
شکل بالا نحوه محاسبه مسیر کوتاهتر از LAN متصل به R2 به LAN متصل به R3 را نشان میدهد. مسیر بهینه برابر است با:
R2 → R1 (20) + R1 → R3 (5) + R3 → LAN (2) = 27
فرآیند مسیریابی لینکاستیت (Link-State Routing Process)
مراحل ایجاد توپولوژی OSPF:
- هر روتر درباره لینکهای خود و شبکههای مستقیماً متصل یاد میگیرد.
- با تشخیص یک آدرس لایه 3 روی اینترفیس انجام میشود.
- برقراری همسایگی (Adjacency) بین روترها با تبادل بستههای Hello.
- ساخت بستههای وضعیت لینک (LSP) برای هر لینک متصل:
- شامل اطلاعات مربوط به همسایهها مانند Router ID، نوع لینک و پهنای باند.
- انتشار (Flooding) LSP به تمام همسایهها:
- همسایهها LSPهای دریافتی را ذخیره میکنند و آنها را به همسایههای خود ارسال میکنند.
- فرآیند ادامه پیدا میکند تا تمام روترهای ناحیه OSPF این اطلاعات را دریافت کنند.
- ایجاد نقشه کامل توپولوژی و محاسبه مسیرهای بهینه:
- OSPF با استفاده از الگوریتم SPF بهترین مسیر را به هر مقصد تعیین میکند.
- همه روترها نقشه مشترکی از توپولوژی دارند، اما هر روتر مسیر بهینه را از دیدگاه خود مشخص میکند.
مقایسه OSPFv2 و OSPFv3
- OSPFv3 برای IPv6 در سال 1999 در RFC 2740 منتشر شد.
- در سال 2008، OSPFv3 در RFC 5340 بهروزرسانی شد، اما همچنان بهعنوان OSPF برای IPv6 شناخته میشود.
ویژگیهای OSPFv3
- عملکرد OSPFv3 مشابه OSPFv2 است، اما از IPv6 برای انتقال داده استفاده میکند.
- با همتایان OSPFv3 ارتباط برقرار کرده و مسیرهای IPv6 را تبلیغ (Advertise) میکند.
- الگوریتم SPF همچنان برای تعیین بهترین مسیرها استفاده میشود.
- فرآیند OSPFv3 مستقل از OSPFv2 اجرا میشود و دارای جداول همسایگی، توپولوژی و مسیریابی جداگانه است.
شباهتهای OSPFv2 و OSPFv3
OSPFv3 همانند OSPFv2 عمل میکند. جدول زیر ویژگیهای مشترک بین OSPFv2 و OSPFv3 را نشان میدهد.
جدول شباهتهای OSPFv2 و OSPFv3
ویژگی (Feature) | OSPFv2 و OSPFv3 |
---|---|
لینک استیت (Link State) | بله |
الگوریتم مسیریابی (Routing Algorithm) | SPF |
متریک (Metric) | Cost |
ساختار ناحیه (Area Hierarchy) | از سلسلهمراتب دو سطحی ناحیه پشتیبانی میکند |
انواع بستهها (Packet Types) | از بستههای Hello، DBD، LSR، LSU و LSAck استفاده میکند |
کشف همسایگی (Neighbor Discovery) | از بستههای Hello برای کشف و برقراری همسایگی استفاده میکند |
بهروزرسانی پایگاه داده لینکاستیت (LSDB Updates) | همگامسازی ورودیهای LSDB بین همسایگان |
انتخاب DR و BDR | از همان عملکرد و فرآیند انتخاب استفاده میکند |
شناسه روتر (Router ID) | از شناسه 32 بیتی استفاده میکند و فرآیند انتخاب آن مشابه OSPFv2 است |
تفاوتهای OSPFv2 و OSPFv3
جدول زیر تفاوتهای اصلی بین OSPFv2 و OSPFv3 را نشان میدهد.
جدول تفاوتهای OSPFv2 و OSPFv3
ویژگی (Feature) | OSPFv2 | OSPFv3 |
---|---|---|
تبلیغ (Advertising) | شبکههای IPv4 | پیشوندهای IPv6 |
آدرس مبدا (Source Address) | آدرس منبع IPv4 | آدرس لینک-محلی IPv6 |
آدرس مقصد (Destination Address) | انتخاب از بین:– آدرس یکتای همسایه IPv4– 224.0.0.5 (همه روترهای OSPF)– 224.0.0.6 (روترهای DR و BDR) | انتخاب از بین:– آدرس لینک-محلی همسایه IPv6– FF02::5 (همه روترهای OSPFv3)– FF02::6 (روترهای DR و BDR) |
تبلیغ شبکهها (Advertising Networks) | با استفاده از دستور network در تنظیمات روتر |
با استفاده از دستور ipv6 ospf area در تنظیمات اینترفیس |
مسیریابی یونیکست (IP Unicast Routing) | فعالسازی مسیریابی یونیکست در IPv4 بهطور پیشفرض | نیاز به پیکربندی دستی با دستور ipv6 unicast-routing |
احراز هویت (Authentication) | متن ساده (Plain Text) و MD5 | IPsec |
عملکرد OSPF چندناحیهای (Multiarea OSPF Operation)
OSPF تکناحیهای (Single-Area OSPF) برای شبکههای کوچک که تعداد لینکها محدود است، به خوبی کار میکند. اما در نظر بگیرید که یک شبکه OSPF تکناحیهای با 900 روتر و چندین هزار زیرشبکه داشته باشیم. در این شرایط، OSPF تکناحیهای با مشکلات زیر مواجه میشود:
مشکلات OSPF تکناحیهای
- افزایش حجم جداول مسیریابی:
- OSPF بهطور پیشفرض بهروزرسانیهای مسیریابی را خلاصه نمیکند.
- افزایش حجم پایگاه داده لینک-استیت (LSDB):
- هر روتر باید اطلاعات تمام لینکهای فعال را در ناحیه مسیریابی ذخیره کند.
- حتی اگر آن روتر فقط از برخی لینکها استفاده کند، باز هم باید کل LSDB را حفظ کند.
- محاسبات مکرر الگوریتم SPF:
- در شبکههای بزرگ، تغییرات LSDB باعث میشود که روترها محاسبات SPF را چندین بار اجرا کنند.
- اجرای مکرر SPF میتواند بار پردازشی بالایی روی پردازندههای روتر ایجاد کند.
طراحی OSPF چندناحیهای (Multiarea OSPF Design)
برای حل این مشکلات، OSPF از طراحی سلسلهمراتبی (Hierarchical Design) با استفاده از چندین ناحیه (Area) استفاده میکند.
- OSPF چندناحیهای برای استقرار در شبکههای بزرگ بهکار میرود تا پردازش و مصرف حافظه کاهش یابد.
- در این روش، LSDB بزرگ به چندین LSDB کوچکتر تقسیم میشود.
قوانین طراحی OSPF چندناحیهای:
- تمام اینترفیسهای یک روتر باید در یک ناحیه یکسان قرار گیرند.
- هر ناحیه باید بهصورت پیوسته (Contiguous) باشد.
انواع روترها در OSPF چندناحیهای
- روترهای داخلی (Internal Routers):
- تمام اینترفیسها در یک ناحیه قرار دارند.
- روترهای مرزی ناحیه (ABR – Area Border Routers):
- دارای اینترفیسهایی در ناحیه ستون فقرات (Backbone) و حداقل یک ناحیه دیگر هستند.
- روترهای خارج از ناحیه (ASBR – Autonomous System Boundary Routers):
- دارای حداقل یک اینترفیس متصل به شبکهای خارج از OSPF هستند.
- مثلاً به BGP یا یک مسیر استاتیک متصل باشند.
شکل زیر نمونهای از طراحی OSPF چندناحیهای
این شکل یک طراحی OSPF چندناحیهای را نشان میدهد که دارای دو ناحیه (Area 1 و Area 2) متصل به ناحیه ستون فقرات (Area 0) است.
جدول اصطلاحات طراحی OSPF چندناحیهای
اصطلاح | توضیحات |
---|---|
روتر مرزی ناحیه (ABR) | یک روتر OSPF که دارای اینترفیسهایی در ناحیه ستون فقرات و حداقل یک ناحیه دیگر است. |
روتر ستون فقرات (Backbone Router) | یک روتر متصل به ناحیه ستون فقرات (همچنین شامل ABRها میشود). |
روتر داخلی (Internal Router) | روتری که فقط در یک ناحیه فعالیت میکند (بهجز ستون فقرات). |
روتر مرزی سیستم مستقل (ASBR) | روتری که دارای حداقل یک اینترفیس متصل به یک شبکه خارجی (مانند BGP یا EIGRP) است. |
بهبود عملکرد OSPF چندناحیهای (Multiarea OSPF Improves Performance)
- در OSPF چندناحیهای، تمام نواحی به ناحیه ستون فقرات (Area 0) متصل میشوند.
- مسیریابی بین نواحی از طریق روترهای ABR انجام میشود.
- بهروزرسانیهای مسیریابی فقط درون هر ناحیه اجرا میشوند، بنابراین تغییرات در یک ناحیه باعث اجرای مجدد SPF در سایر نواحی نمیشود.
مزایای OSPF چندناحیهای
- کاهش حجم LSDB در هر ناحیه
- حافظه کمتری مصرف میشود.
- کاهش بار پردازشی پردازنده (CPU Overhead)
- محاسبات SPF فقط روی ناحیهای که تغییر داشته اجرا میشود.
- تعداد روترهایی که نیاز به اجرای مجدد SPF دارند، کاهش مییابد.
- کاهش ترافیک LSA در شبکه
- بهروزرسانیهای LSA فقط در داخل ناحیه خود ارسال میشوند.
- نیاز به پهنای باند برای انتشار LSAها بین نواحی کاهش مییابد.