پروتکل قدرتمند و پرطرفدار OSPF یا Open Shortest Path First، پروتکلی Link State و Open Standard است که در RFC 2328 شرح داده شده است. اين پروتکل برای پيدا کردن Neighbor (همسايه) – یا در واقع روترهای متصل به خود – از Hello Message استفاده ميکند. پیام Hello به آدرس Multicast 224.0.0.5 (AllSPFRouters) ارسال میگردد اگر در رسانه ای خاص Multicast قابل استفاده نباشد، از Unicast استفاده میکند (در اين حالت آدرس همسايه بايد از قبل تنظيم شده باشد).

پس از ارتباط همسایگی، اگر در مدت زمان مشخصی پيام سلام از همسايه دريافت نشود، به قطع شدن پی ميبريم. همسايه ها اطلاعات دسترسی خود به شبکه ها (لينک ها) را در اختيار هم قرار داده و Routing Database را بر اساس الگوريتم SPF يا Shortest Path First که بر اساس الگوريتم Dijkstra است ايجاد ميکنند. هر روتر نسخه ای از آن Database را درون خود داشته و بر اساس آن Routing Table خود را میسازد.
مبنای الگوريتم SPF بر پايه الگوريتم ریاضی است که توسط Edsger – Wybe – Dijkstra ارائه شده که با ايجاد Topology Table به ازای يک Area کار خود را انجام می دهد. هر روتر دارای زاويه ديد و Perspective خود از شبکه بوده و شبکه را بصورت درختی ميبيند که خود در راس آن قرار دارد و مسیرها را بصورت گراف پردازش میکند.
به ازای هر تغيير در شبکه، LSA ارسال شده و در Area به همه ارسال ميشود (LSA ،Flood ميشود) و نهایتا پس از هر تغییر Topology Table دوباره از سر ساخته ميشود.
مشخصات کلی OSPF :
RFC 2328
IP Protocol 89
Multicast Address
AllSPFRouters: 224.0.0.5
AllDRouters: 224.0.0.6
Classless supported – VLSM
Summarization: Auto-Summary (IANA Classful) and Manual
Administrative Distance = 110
Authentication supported
Partial updates supported

نقش Designated Router و BDR

اگر OSPF روی شبکه Multi-Access (مثل Ethernet يا FDDI) فعال شود، بخاطر تعدد در میزان ارتباطات بین همسایگان، يک روتر مامور ايجاد ارتباط با همه همسايگان خواهد شد که به آن Designated Router يا DR ميگوييم (به ازای هر لینک).
DR از طريق Hello Packet شناسايي و انتخاب مي شود که اين انتخاب ميتواند Dynamic يا بصورت Manual (از طريق تنظيمات) صورت گيرد. DR تنها در شبکه های Multi-access مورد استفاده قرار ميگيرد و دليل آن Inter-Mesh و تعدد روابط همسايگی (به ميزان (n-1)n/2) است که برای جلوگیری از مشکلات حاصل از افزايش تعداد Neighbor Relationship و پيچيدگی پروتکل طرح شده است.
BDR يا Backup Designated Router، نقش Backup برای DR را ايفا ميکند. هيچ عملکردی در شبکه ندارد مگر گوش دادن به ارتباط همسايگان با DR و تنها وقتی که DR در کار نباشد به DR مبدل ميشود. در واقع همسايگان با DR و BDR خود را Sync کرده و Adjacency انجام میدهند و به وضعیت FULL درميايند.
همسايگان برای ارتباط با DR و BDR از آدرس 224.0.0.6 (AllDRouters) استفاده ميکنند. بعد از برقراری ارتباط بین همسایگان روترها يکی از اين سه وضعيت را خواهند داشت:
· DR
· BDR
· DROTHER


انتخاب DR و BDR

بالاترين آدرس IP در هر سگمنت بعنوان DR انتخاب مي شود. در صورتيکه Loopback IP روی روتر تنظيم شده باشد از آن IP بعنوان Router ID يا RID برای شرکت در انتخابات استفاده ميشود و بالاترين RID (از نظر عددی) در انتخابات (Election) بعنوان BDR برگزيده می شود.
پس از انتخاب BDR در صورتيکه DR در شبکه نباشد، BDR به DR مبدل شده و روتر ديگری بعنوانBDR انتخاب میشود (همان مراحل بالا تکرار میشوند) و از آن پس، DR در Hello Packet به همسايه ها معرفی میگردد.
برای انتخاب بصورت Manual از اولويت (Priority) استفاده ميکنيم. اولويت هر روتر بصورت پيش فرض "يک" است. (Default Priority=1) اولويت يک روتر از صفر تا 255 قابل تنظيم است که اگر صفر باشد هيچ وقت آن روتر نمی تواند نقش DR را بعهده گيرد. اولويت در Interface يک روتر تنظيم ميشود. هر روتری که اولويت بالاتری دارد DR و اولویت بعدی BDR ميشود. در صورت برابری اولويت، بالاترين RID انتخاب مي گردد.
اگر روتری با اولويت بالاتر از DR به شبکه عضو شود هيچ اتفاقی رخ نداده و DR نمی شود (از آنجا که انتخابات قبلا صورت گرفته است) مگر آنکه DR قطع شده، BDR به DR تبديل شود. در این صورت روتر جديد شانس BDR شدن را خواهد داشت.
DR و BDR مامور ايجاد Adjacency با همسايگان هستند. هدف از وجود DR، دريافت LSA و پخش LSA بين همسايگان ها درون شبکه Multi-access است.


OSPF در چند Area

يکی از تفاوت های بارز اين پروتکل با پروتکل های Distance Vector اختصاص و تفکيک ناحيه ها توسط Area است. در واقع Topology Database هر ناحيه منحصر به خود بوده و بار CPU و Memory روتر ها را کمتر ميشود و هر autonomous به تعدادی ناحيه تبديل ميشود.
مشکلات OSPF در يک Area:
· الگوريتم SPF مکررا اجرا ميشود از آنجا که هر تغيير موجب اين امر ميشود، هر چه Area بزرگتر باشد تغييرات بيشتر شده در نتيجه محاسبه مجدد الگوريتم به کررات صورت ميگيرد.
· هر چه شبکه بزرگتر باشد Routing Table بزرگتر خواهد بود، حافظه بيشتری اشغال ميکند و Lookup کندتر ميشود.
· اندازه و سايز Topological Database بزرگتر شده و مديريت آن سختر ميشود. هر 30 دقيقه نيز بايد بصورت کامل بين روتر ها ردوبدل شود.
با در نظر گرفتن مشکلات فوق CPU روتر ها بیشتر مشغول شده، حافظه کاهش ميابد و نهایتا منجر به کند شدن شبکه میگردد. راه حل تفکيک شبکه به Area های مختلف است.


نقش روتر در Area

· Internal Router (روتر داخلی): تمام Interface های اين روتر درون يک ناحيه است و درنتيجه از تمام Subnet های ناحيه خود مطلع است و در topology database خود تنها اطلاعات Area خود را داراست.
· Backbone Router: در طراحی OSPF تمام Area ها توسط ناحيه Backbone به هم متصل ميشوند. روتری که در اين ناحيه است Backbone Router بوده خود ميتواند يک Internal، ABR و يا ASBR باشد.
· ABR: مسئول ارتباط دو يا چند Area است. Topology database اين روتر شامل تمام نواحی است که به آن متصل است و LSA ها را بين Area ها ردوبدل ميکند. (Area Border Router)
· ASBR: برای ارتباط با دنيای بيرون از OSPF (اينترنت يا يک Routing Protocol ديگر يا …) بايد از OSPF خارج شويم. هر روتری که پروتکلی و يا Route خارجی را به OSPF معرفی کند (در واقع Redistribute کند)، ASBR خوانده ميشود. (Autonomous Boundary Router)


انواع LSA

در OSPF از انواع مختلفی از LSA (Link State Advertisement) برخورداريم:
· Router Link (Type 1): هر روتر توسط اين LSA وضعيت Link های خود را به Area خود اطلاع ميدهد که شامل لينک و Cost آن ميباشد.
· Network Link (Type 2): اين LSA توسط DR در سطح Area پخش ميشود و ليست تمام روترهايي است که برايشان DR است بعلاوه لينکهايشان.
· Network Summary Link (Type 3): توسط ABR ايجاد شده و شامل مسير ها و آدرس هايی است که از طريق ABR در خارج از ناحيه قابل دسترس است.
· AS External ASBR Summary Link (Type 4): از ABR به ASBR ارسال ميشود و حاوی Metric است. درواقع همان Network Summary است با اين تفاوت که گيرنده ASBR است.
· External Link (Type 5): توسط ASBR به تمام autonomous ارسال ميگردد و مسير به شبکه خارجی را عنوان ميکند. از اين طريق Default Route ها نيز برای AS اعلام ميگردند.
· NSSA External (Type 7): يک ASBR در ناحيه NSSA اين LSA را منتشر ميکند از آنجا که تنها در داخل ناحيه خود اين LSA اعلام ميشود، توسط ABR بعنوان Type 5 به بقيه اعلام ميگردد.
Type Code
Description
1
Router LSA
2
Network LSA
3
Network Summary LSA
4
ASBR Summary LSA
5
AS External LSA
6
Group Membership LSA
7
NSSA External LSA
8
External Attributes LSA
9
Opaque LSA (link-local scope)
10
Opaque LSA (area-local scope)
11
Opaque LSA (AS scope)



انواع Area

1. Stub Area: اين ناحيه به اطلاعات External LSA (type 5) نيازی ندارد زيرا به هر حال برای خروج از ناحيه دست به دامان ABR خود ميشود. پس مسير هميشه بدين گونه است و از طريق يک روتر خارج ميشود. نکته و هدف از استفاده از اين Area، Performance است. از آنجا که LSA 5 را قبول نميکند پس LSA 4 نيز در اين ناحيه بی معنی است و توسط ABR، Filter می شود. هدف صرفه جوئی در Resource ها و Memory است. که البته Stub area محدوديت های خود را نيز دارد:
· هيچ ASBR ی در ناحيه نمی توان داشت. (و مسلما هيچ Redistribution و External Route)
· Virtual Link در اين Area مجاز نيست (نه در ناحيه و نه بصورت Transit)
· می توان چند ABR در اين ناحيه داشت اما از آنجا که بهترين مسير به ASBR را نميتوان در اين ناحيه فهميد، تفاوتی در انتخاب ABR برای رسيدن به ASBR وجود ندارد.
· تمام روتر ها (در Hello Message) بيت E خود را صفر ست ميکنند (علامت Stub) و با روتری با E Flag برابر با يک، ارتباطی برقرار نمی کنند.
2. Totally Stubby Area: اگر فيلتر کردن LSA 5 موجب بهبود کارايي روتر ميشود، در اين نوع از ناحيه حتی LSA 3 نيز Block ميشود. اين نوع Area توسط Cisco ارائه شده تا تنها با تزريق يک Default Route توسط ABR روتر ها تمام بسته هايي که مقصدشان داخل ناحيه نيست را به ABR بفرستند.
3. Not So Stubby Area: يک ناحيه Stub است که بنا به دلايلی اقدام به Redistribution ميکند. (مثلا ارتباط با ISP) LSA 7 در داخل ناحيه منتشر ميکند. برای اعلام به نواحی ديگر به ABR ميرسد. توسط ABR، اگر P bit آن LSA صفر باشد، Block ميشود و اگر P Bit آن يک باشد به صورت مبدل شده به LSA 5 به بيرون از ناحيه اعلام ميگردد.
4. Backbone Area: اين ناحيه بنام Area 0 مطرح ميگردد و تمام نواحی از طريق اين ناحيه به هم متصل ميگردند. تمام LSA ها در اين ناحيه مجازند غير از نوع 7.
5. Standard Ordinary Area: اين Area به Backbone وصل است و Stub نيست.


نواحی و LSA مجاز

Area Type
1&2
3&4
5
7
Backbone (area 0)
Yes
Yes
Yes
No
Non-backbone, non-stub
Yes
Yes
Yes
No
Stub
Yes
Yes
No
No
Totally stubby
Yes
No*
No
No
Not-so-stubby
Yes
Yes
No
Yes
*به جز یک Route که در واقع همان Default Route شبکه است.

برای Download نسخه کامل متن بفرم PDF به لینک زیر مراجعه کنید: