OSPFv2
OSPF version 2 یک پروتکل مسیریابی است که در RFC 2328 توصیف شده است. OSPF یک IGP است. در مقایسه با RIP، OSPF میتواند پشتیبانی شبکه مقیاسپذیر و زمانهای همگرایی سریعتر را ارائه دهد. OSPF به طور گسترده در شبکههای بزرگ مانند ISP backbone و شبکههای سازمانی استفاده میشود.
پروتکل OSPF هم میتواند در VRF و هم در حالت multi instance استفاده شود. شما میتوانید OSPF را در VRF های جداگانه اجرا کنید یا instance های مختلفی از OSPF را استفاده نمایید. در این بخش ما از حالت ساده و پیشفرض برای تنظیم OSPF استفاده میکنیم.
OSPF Fundamentals
OSPF عمدتاً یک پروتکل مسیریابی link-state است. در مقابل پروتکلهای distance-vector، مانند RIP یا BGP، که در آن روترها مسیرهای موجود (یعنی route ها) را به یکدیگر توصیف میکنند، در پروتکلهای link-state روترها به جای آن وضعیت link های خود را به روترهای همسایه فوری خود توصیف میکنند.
هر روتر اطلاعات link-state خود را در پیامی به نام LSA توصیف میکند، که سپس از طریق فرآیندی به نام flooding به تمام روترهای دیگر در دامنه مسیریابی link-state منتشر میشود. بنابراین هر روتر یک LSDB از تمام پیامهای link-state میسازد. از این مجموعه LSA ها در LSDB، هر روتر میتواند سپس کوتاهترین مسیر به هر روتر دیگر را بر اساس یک metric مشترک، با استفاده از الگوریتمی مانند الگوریتم SPF (Shortest Path First) محاسبه کند.
با توصیف اتصال یک شبکه به این روش، از نظر روترها و link ها به جای مسیرها از طریق یک شبکه، یک پروتکل link-state میتواند از پهنای باند کمتر استفاده کند و سریعتر از سایر پروتکلها همگرا شود.
OSPF Mechanisms
OSPF طیف وسیعی از مکانیزمها را تعریف میکند که مربوط به تشخیص، توصیف و انتشار وضعیت از طریق یک شبکه است. این مکانیزمها تقریباً همه به تفصیل بیشتر در ادامه پوشش داده میشوند.
The Hello Protocol
پروتکل OSPF Hello به OSPF اجازه میدهد تا به سرعت تغییرات در دسترسی دو طرفه بین روترها روی یک link را تشخیص دهد. OSPF همچنین میتواند از سایر منابع اطلاعات دسترسی، مانند اطلاعات link-state ارائه شده توسط سختافزار، یا از طریق پروتکلهای اختصاصی دسترسی مانند BFD استفاده کند.
OSPF همچنین از پروتکل Hello برای انتشار وضعیت خاص بین روترهایی که یک link را به اشتراک میگذارند استفاده میکند.
LSAs
در قلب OSPF پیامهای LSA قرار دارند. علیرغم نام، برخی LSA ها به طور دقیق اطلاعات link-state را توصیف نمیکنند. LSA های رایج اطلاعاتی مانند روترها، شبکهها و route های خارجی را توصیف میکنند.
LSA Flooding
OSPF چندین مکانیزم مرتبط را تعریف میکند که برای مدیریت همگامسازی LSDB بین neighbor ها استفاده میشوند.
Areas
OSPF امکان تقسیم پروتکل به چندین area کوچکتر و مستقل link-state را فراهم میکند. هر area باید توسط یک ABR (Area Border Router) به یک backbone area مشترک متصل شود.
دستورات مهم OSPF
- router ospf
فرآیند OSPF را فعال میکند.
- ospf router-id A.B.C.D
Router-ID را برای فرآیند OSPF تنظیم میکند.
- network A.B.C.D/M area AREA
یک شبکه را به area مشخص شده اضافه میکند.
- ip ospf area AREA
اینترفیس را به area مشخص شده اضافه میکند.
- redistribute <kernel|connected|static|rip|isis|bgp|table>
Route های از پروتکل دیگر را در OSPF توزیع میکند.
- area AREA range A.B.C.D/M
Summarization را برای یک area تنظیم میکند.
- area AREA authentication [message-digest]
احراز هویت را برای یک area تنظیم میکند.
- ip ospf authentication [message-digest]
احراز هویت را برای اینترفیس تنظیم میکند.
- ip ospf message-digest-key KEY md5 PASSWORD
کلید MD5 را برای اینترفیس تنظیم میکند.
- default-information originate [always] [metric METRIC] [metric-type TYPE]
Default route را در OSPF advertise میکند.
Showing Information
- show ip ospf [vrf <NAME|all>] [json]
اطلاعات کلی OSPF و وضعیت و پیکربندی area را نمایش میدهد.
- show ip ospf interface [INTERFACE] [json]
وضعیت و پیکربندی اینترفیس OSPF مشخص شده را نمایش میدهد، یا تمام اینترفیسها اگر اینترفیسی داده نشود.
- show ip ospf neighbor [json]
اطلاعات neighbor های OSPF را نمایش میدهد.
- show ip ospf [vrf <NAME|all>] neighbor INTERFACE [json]
اطلاعات neighbor های OSPF روی اینترفیس مشخص شده را نمایش میدهد.
- show ip ospf [vrf <NAME|all>] neighbor A.B.C.D [detail] [json]
اطلاعات neighbor OSPF مشخص شده را نمایش میدهد. اگر
detailاستفاده شود، اطلاعات جزئیتر نمایش داده میشود.
- show ip ospf [vrf <NAME|all>] database [self-originate] [json]
خلاصه پایگاه داده OSPF را نمایش میدهد.
- show ip ospf [vrf <NAME|all>] database detail [LINK-STATE-ID] [adv-router A.B.C.D] [json]
اطلاعات جزئی درباره پایگاه داده link-state (LSDB) OSPF را نمایش میدهد.
Graceful Restart
- graceful-restart [grace-period (1-1800)]
Graceful Restart (RFC 3623) restarting support را پیکربندی میکند. وقتی فعال است، grace period پیشفرض 120 ثانیه است.
- graceful-restart helper enable [A.B.C.D]
Graceful Restart (RFC 3623) helper support را پیکربندی میکند.
- graceful-restart prepare ip ospf
یک graceful restart را برای تمام instance های OSPF پیکربندی شده با دستور “graceful-restart” آغاز میکند.
- debug ospf [(1-65535)] packet (hello|dd|ls-request|ls-update|ls-ack|all) (send|recv) [detail]
Dump بسته برای دیباگ.
- debug ospf [(1-65535)] event
اطلاعات دیباگ رویداد OSPF را نمایش میدهد.
- debug ospf [(1-65535)] lsa [aggregate|flooding|generate|install|refresh]
جزئیات دیباگ پیامهای Link-State را نمایش میدهد.
- show debugging ospf
نمایش اینکه کدام سطح debug OSPF فعال است.
Debugging OSPF
- debug ospf [(1-65535)] bfd
دیباگ برای رویدادهای BFD را فعال یا غیرفعال میکند.
سناریو ۱: پیکربندی پایه OSPF
در این روتر در اینترفیسهای ge0, ge1 پروتکل OSPF فعال شده است. همچنین فرض شده است که IP در اینترفیسها در بخش تنظیم IP در اینترفیس تنظیم شدهاند:

تنظیمات در soodar1
تنظیم OSPF
با دستور زیر OSPF در روتر فعال میشود:
soodar1(config)# router ospf
soodar1(config-router)# ospf router-id 222.1.1.1
soodar1(config-router)# end
soodar1#
برای اینکه با روترهای همسایه صحبت کند باید اینترفیسهایی که قرار است در آنها OSPF اجرا شود را مشخص کنیم یا اینکه شبکههایی (network) که قرار است OSPF در آن با بقیه صحبت کند مشخص کنیم.
نکته
دقت شود یکی از این دو تنظیم باید انجام شود یا تنظیم اینترفیس یا تنظیم شبکه.
نحوه تنظیم OSPF در اینترفیس
soodar1(config)# interface geX
soodar1(config-if)# ip ospf area Y
نحوه اضافه کردن network به OSPF
soodar1(config)# router ospf
soodar1(config-router)# network x.x.x.x/x area x
در اینجا ما قصد داریم OSPF با روترهای soodar2, soodar3 صحبت کند که هم میتوانیم اینترفیسهای ge0, ge1 را برای OSPF تنظیم کنیم و هم میتوانیم شبکههای 200.1.2.0/24, 200.1.3.0/24 در OSPF تنظیم کنیم. ما در این کارگاه در اینترفیس تنظیمات را انجام میدهیم:
soodar1(config)# interface ge0
soodar1(config-if)# ip ospf area 0
soodar1(config-if)# q
soodar1(config)# interface ge1
soodar1(config-if)# ip ospf area 0
توزیع route ها توسط OSPF
کلیه route هایی که توسط پروتکلهای دیگر (rip, bgp, static, connected, …) در سیستم اضافه شدهاند را میتوان در OSPF تبلیغ یا توزیع کرد که ما در اینجا شبکههای connected را در OSPF توزیع میکنیم:
soodar1(config)# router ospf
soodar1(config-router)# redistribute connected
تنظیمات در soodar2 و soodar3
soodar2(config)# router ospf
soodar2(config-router)# ospf router-id 222.2.2.2
soodar2(config-router)# redistribute connected
soodar2(config-router)# q
soodar2(config)# int ge0
soodar2(config-if)# ip ospf area 0
soodar2(config)# q
soodar2(config)# int ge1
soodar2(config-if)# ip ospf area 0
soodar3(config)# router ospf
soodar3(config-router)# ospf router-id 222.3.3.3
soodar3(config-router)# redistribute connected
soodar3(config-router)# q
soodar3(config)# int ge0
soodar3(config-if)# ip ospf area 0
soodar3(config)# q
soodar3(config)# int ge1
soodar3(config-if)# ip ospf area 0
پس از اعمال شدن تنظیمات کمی صبر میکنیم تا روترها با استفاده از پروتکل OSPF جدول Routing را تشکیل دهند. سپس با استفاده از دستور زیر جدول Routing که با استفاده از پروتکل OSPF تشکیل شده است را مشاهده میکنیم:
soodar1# sh ip ospf route
یا
soodar1# sh ip fib
بررسی neighbor ها:
soodar1# show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
222.2.2.2 1 Full/DR 00:00:35 200.1.2.2 ge0
222.3.3.3 1 Full/DR 00:00:35 200.1.3.3 ge1
بررسی database:
soodar1# show ip ospf database
OSPF Router with ID (222.1.1.1) (Process ID 0)
Router Link States (Area 0.0.0.0)
Link ID ADV Router Age Seq# Checksum Link count
222.1.1.1 222.1.1.1 1234 0x80000005 0x00a3b2 2
222.2.2.2 222.2.2.2 1235 0x80000004 0x00b4c3 2
222.3.3.3 222.3.3.3 1236 0x80000003 0x00c5d4 2
خاطر نشان
حال باید route بین شبکههای سه روتر برقرار باشد. برای مثال باید نود n4 آدرس 2.1.1.10 را پینگ کند. با قطع لینک ارتباطی بین soodar2, soodar1 مسیرها بهروزرسانی شوند و مجدداً ارتباط بین دو نود از مسیر جدید برقرار شود.
سناریو ۲: OSPF-MultiArea
اگر سناریویی دارید که در آن area های مختلفی دارید از روش زیر برای پیکربندی OSPF در حالت چند Area استفاده کنید. در شکل زیر روتر soodar1 در area 1، روتر soodar3 در area 3 قرار دارد و روتر soodar2 در area 0 به عنوان backbone در شبکه قرار گرفته است.

توجه
باید ابتدا یک area 0 (backbone) تشکیل دهید. در صورت استفاده از backbone به صورت پیشفرض همه شبکهها بین Area های مختلف distribute میشوند.
تنظیمات به شکل زیر باید انجام گیرد:
interface ge0
ip address 200.1.2.1/24
!
interface ge1
ip address 1.1.1.1/24
!
router ospf
ospf router-id 222.0.0.1
redistribute connected
network 1.1.1.0/24 area 1
network 200.1.2.0/24 area 0
interface ge0
ip address 200.1.2.2/24
!
interface ge1
ip address 200.2.3.2/24
!
router ospf
ospf router-id 222.0.0.2
redistribute connected
network 200.1.2.0/24 area 0
network 200.2.3.0/24 area 0
!
interface ge0
ip address 200.2.3.3/24
!
interface ge1
ip address 3.1.1.1/24
!
router ospf
ospf router-id 222.0.0.3
redistribute connected
network 3.1.1.0/24 area 3
network 200.2.3.0/24 area 0
بررسی ABR:
soodar2# show ip ospf border-routers
OSPF Process 0:
=============
Area 0.0.0.0:
=============
ABR: 222.0.0.1 (soodar1)
ABR: 222.0.0.3 (soodar3)
خاطر نشان
باید ارتباط بین 3.1.1.10 و 1.1.1.10 که در دو Area مختلف قرار دارند برقرار شود.
سناریو ۳: OSPF با احراز هویت MD5
در این سناریو، OSPF را با احراز هویت MD5 برای افزایش امنیت پیکربندی میکنیم. این سناریو برای شبکههای production که نیاز به امنیت دارند مناسب است.
پیکربندی روتر ۱
soodar1(config)# router ospf
soodar1(config-router)# ospf router-id 222.1.1.1
soodar1(config-router)# area 0.0.0.0 authentication message-digest
soodar1(config-router)# exit
soodar1(config)# interface ge0
soodar1(config-if)# ip ospf authentication message-digest
soodar1(config-if)# ip ospf message-digest-key 1 md5 ABCDEFGHIJK
soodar1(config-if)# exit
soodar1(config)# interface ge1
soodar1(config-if)# ip ospf authentication message-digest
soodar1(config-if)# ip ospf message-digest-key 1 md5 ABCDEFGHIJK
soodar1(config-if)# exit
پیکربندی روتر ۲
soodar2(config)# router ospf
soodar2(config-router)# ospf router-id 222.2.2.2
soodar2(config-router)# area 0.0.0.0 authentication message-digest
soodar2(config-router)# exit
soodar2(config)# interface ge0
soodar2(config-if)# ip ospf authentication message-digest
soodar2(config-if)# ip ospf message-digest-key 1 md5 ABCDEFGHIJK
soodar2(config-if)# exit
soodar2(config)# interface ge1
soodar2(config-if)# ip ospf authentication message-digest
soodar2(config-if)# ip ospf message-digest-key 1 md5 ABCDEFGHIJK
soodar2(config-if)# exit
نکات مهم:
area authentication: احراز هویت در سطح area تنظیم میشود
interface authentication: احراز هویت در سطح اینترفیس نیز باید تنظیم شود
message-digest-key: کلید MD5 باید در تمام اینترفیسهای یک area یکسان باشد
بررسی وضعیت:
soodar1# show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
222.2.2.2 1 Full/DR 00:00:35 200.1.2.2 ge0
سناریو ۴: OSPF ABR با Summarization
در این سناریو، یک روتر ABR را با قابلیت summarization پیکربندی میکنیم. این برای بهینهسازی routing table و کاهش تعداد route ها مفید است.
توپولوژی
Area 1 Area 0 (Backbone) Area 3
[Router1] ------------ [ABR Router] ------------ [Router3]
10.1.0.0/24 200.1.2.0/24 10.3.0.0/24
10.1.1.0/24 200.2.3.0/24 10.3.1.0/24
پیکربندی ABR Router
ABR(config)# router ospf
ABR(config-router)# ospf router-id 222.0.0.2
ABR(config-router)# redistribute connected
ABR(config-router)# network 200.1.2.0/24 area 0.0.0.0
ABR(config-router)# network 200.2.3.0/24 area 0.0.0.0
ABR(config-router)# area 0.0.0.0 range 10.1.0.0/16
ABR(config-router)# area 0.0.0.0 range 10.3.0.0/16
ABR(config-router)# area 0.0.0.0 authentication message-digest
ABR(config-router)# exit
ABR(config)# interface ge0
ABR(config-if)# ip address 200.1.2.2/24
ABR(config-if)# ip ospf authentication message-digest
ABR(config-if)# ip ospf message-digest-key 1 md5 ABCDEFGHIJK
ABR(config-if)# exit
ABR(config)# interface ge1
ABR(config-if)# ip address 200.2.3.2/24
ABR(config-if)# ip ospf authentication message-digest
ABR(config-if)# ip ospf message-digest-key 2 md5 XYZ12345
ABR(config-if)# exit
نکات مهم:
area range: برای summarization شبکهها در area استفاده میشود
authentication: احراز هویت در سطح area و interface
redistribute connected: توزیع شبکههای connected
بررسی summarization:
ABR# show ip ospf database summary
OSPF Router with ID (222.0.0.2) (Process ID 0)
Summary Net Link States (Area 0.0.0.0)
Link ID ADV Router Age Seq# Checksum
10.1.0.0 222.0.0.2 1234 0x80000001 0x00a1b2
10.3.0.0 222.0.0.2 1235 0x80000001 0x00b2c3
سناریو ۵: OSPF Stub Area
Stub Area یک area است که external route ها (Type-5 LSA) را دریافت نمیکند. در عوض، ABR یک default route به area ارسال میکند. این برای کاهش حجم LSDB و routing table در area های edge مفید است.
توپولوژی
Area 0 (Backbone) Area 1 (Stub)
[Router1] ------------ [ABR] ------------ [Router2]
| 10.1.1.0/24
| 10.1.2.0/24
پیکربندی ABR
ABR(config)# router ospf
ABR(config-router)# ospf router-id 222.0.0.1
ABR(config-router)# network 200.1.2.0/24 area 0.0.0.0
ABR(config-router)# network 200.1.3.0/24 area 1.0.0.0
ABR(config-router)# area 1.0.0.0 stub
ABR(config-router)# exit
ABR(config)# interface ge0
ABR(config-if)# ip address 200.1.2.1/24
ABR(config-if)# ip ospf area 0.0.0.0
ABR(config-if)# exit
ABR(config)# interface ge1
ABR(config-if)# ip address 200.1.3.1/24
ABR(config-if)# ip ospf area 1.0.0.0
ABR(config-if)# exit
پیکربندی Router در Stub Area
Router2(config)# router ospf
Router2(config-router)# ospf router-id 222.0.0.2
Router2(config-router)# network 200.1.3.0/24 area 1.0.0.0
Router2(config-router)# network 10.1.1.0/24 area 1.0.0.0
Router2(config-router)# network 10.1.2.0/24 area 1.0.0.0
Router2(config-router)# area 1.0.0.0 stub
Router2(config-router)# exit
Router2(config)# interface ge0
Router2(config-if)# ip address 200.1.3.2/24
Router2(config-if)# ip ospf area 1.0.0.0
Router2(config-if)# exit
Router2(config)# interface ge1
Router2(config-if)# ip address 10.1.1.1/24
Router2(config-if)# ip ospf area 1.0.0.0
Router2(config-if)# exit
نکات مهم:
area stub: باید در تمام روترهای area (شامل ABR) تنظیم شود
Default route: ABR به طور خودکار یک default route به area ارسال میکند
External routes: Type-5 LSA ها به area ارسال نمیشوند
بررسی:
Router2# show ip ospf route
Codes: K - kernel route, C - connected, S - static, R - RIP,
O - OSPF, I - IS-IS, B - BGP
O>* 0.0.0.0/0 [110/10] via 200.1.3.1, ge0, 00:05:23
O 10.1.1.0/24 [110/10] is directly connected, ge1
O 10.1.2.0/24 [110/10] is directly connected, ge2
O 200.1.2.0/24 [110/20] via 200.1.3.1, ge0, 00:05:23
سناریو ۶: OSPF Totally Stubby Area
Totally Stubby Area یک area است که نه external route ها (Type-5) و نه inter-area route ها (Type-3) را دریافت نمیکند. فقط یک default route از ABR دریافت میکند. این بیشترین کاهش را در routing table ایجاد میکند.
پیکربندی ABR
ABR(config)# router ospf
ABR(config-router)# ospf router-id 222.0.0.1
ABR(config-router)# network 200.1.2.0/24 area 0.0.0.0
ABR(config-router)# network 200.1.3.0/24 area 1.0.0.0
ABR(config-router)# area 1.0.0.0 stub no-summary
ABR(config-router)# exit
پیکربندی Router در Totally Stubby Area
Router2(config)# router ospf
Router2(config-router)# ospf router-id 222.0.0.2
Router2(config-router)# network 200.1.3.0/24 area 1.0.0.0
Router2(config-router)# network 10.1.1.0/24 area 1.0.0.0
Router2(config-router)# area 1.0.0.0 stub
Router2(config-router)# exit
تفاوت با Stub Area:
no-summary: فقط در ABR تنظیم میشود
Type-3 LSA: inter-area route ها نیز فیلتر میشوند
Routing table: کوچکترین routing table
بررسی:
Router2# show ip ospf route
Codes: K - kernel route, C - connected, S - static, R - RIP,
O - OSPF, I - IS-IS, B - BGP
O>* 0.0.0.0/0 [110/10] via 200.1.3.1, ge0, 00:05:23
O 10.1.1.0/24 [110/10] is directly connected, ge1
سناریو ۷: OSPF NSSA (Not-So-Stubby Area)
NSSA یک area است که میتواند external route ها را از ASBR محلی خود دریافت کند اما external route های از سایر area ها را دریافت نمیکند. این برای area هایی که نیاز به redistribute کردن route دارند اما نمیخواهند external route های دیگر را دریافت کنند، مفید است.
توپولوژی
Area 0 (Backbone) Area 2 (NSSA)
[Router1] ------------ [ABR] ------------ [ASBR] ------------ [External]
| | 192.168.1.0/24
| 10.2.1.0/24
پیکربندی ABR
ABR(config)# router ospf
ABR(config-router)# ospf router-id 222.0.0.1
ABR(config-router)# network 200.1.2.0/24 area 0.0.0.0
ABR(config-router)# network 200.1.4.0/24 area 2.0.0.0
ABR(config-router)# area 2.0.0.0 nssa
ABR(config-router)# exit
ABR(config)# interface ge0
ABR(config-if)# ip address 200.1.2.1/24
ABR(config-if)# ip ospf area 0.0.0.0
ABR(config-if)# exit
ABR(config)# interface ge1
ABR(config-if)# ip address 200.1.4.1/24
ABR(config-if)# ip ospf area 2.0.0.0
ABR(config-if)# exit
پیکربندی ASBR در NSSA
ASBR(config)# router ospf
ASBR(config-router)# ospf router-id 222.0.0.3
ASBR(config-router)# network 200.1.4.0/24 area 2.0.0.0
ASBR(config-router)# network 10.2.1.0/24 area 2.0.0.0
ASBR(config-router)# redistribute static
ASBR(config-router)# area 2.0.0.0 nssa
ASBR(config-router)# exit
ASBR(config)# interface ge0
ASBR(config-if)# ip address 200.1.4.2/24
ASBR(config-if)# ip ospf area 2.0.0.0
ASBR(config-if)# exit
ASBR(config)# interface ge1
ASBR(config-if)# ip address 10.2.1.1/24
ASBR(config-if)# ip ospf area 2.0.0.0
ASBR(config-if)# exit
ASBR(config)# interface ge2
ASBR(config-if)# ip address 192.168.1.1/24
ASBR(config-if)# exit
ASBR(config)# ip route 192.168.1.0/24 ge2
نکات مهم:
area nssa: باید در تمام روترهای area تنظیم شود
Type-7 LSA: ASBR در NSSA از Type-7 LSA استفاده میکند
Type-7 to Type-5: ABR Type-7 را به Type-5 تبدیل میکند
بررسی:
ASBR# show ip ospf database nssa-external
OSPF Router with ID (222.0.0.3) (Process ID 0)
Type-7 AS External Link States (Area 2.0.0.0)
Link ID ADV Router Age Seq# Checksum Tag
192.168.1.0 222.0.0.3 1234 0x80000001 0x00a1b2 0
سناریو ۸: OSPF با Cost و Bandwidth
در این سناریو، cost اینترفیسها را بر اساس bandwidth تنظیم میکنیم تا OSPF مسیر بهینه را انتخاب کند.
پیکربندی Reference Bandwidth
Router1(config)# router ospf
Router1(config-router)# ospf router-id 222.1.1.1
Router1(config-router)# auto-cost reference-bandwidth 100000
Router1(config-router)# exit
فرمول محاسبه Cost:
Cost = Reference Bandwidth / Interface Bandwidth
مثال:
Reference Bandwidth: 100,000 Mbps
Interface 1 Gbps: Cost = 100,000 / 1000 = 100
Interface 10 Gbps: Cost = 100,000 / 10000 = 10
تنظیم Cost دستی
Router1(config)# interface ge0
Router1(config-if)# ip address 200.1.2.1/24
Router1(config-if)# ip ospf cost 10
Router1(config-if)# ip ospf area 0.0.0.0
Router1(config-if)# exit
Router1(config)# interface ge1
Router1(config-if)# ip address 200.1.3.1/24
Router1(config-if)# ip ospf cost 100
Router1(config-if)# ip ospf area 0.0.0.0
Router1(config-if)# exit
بررسی Cost:
Router1# show ip ospf interface
ge0 is up, line protocol is up
Internet Address 200.1.2.1/24, Area 0.0.0.0
Router-ID 222.1.1.1, Network Type BROADCAST, Cost: 10
Transmit Delay is 1 sec, State DR, Priority 1
Designated Router (ID) 222.1.1.1, Interface Address 200.1.2.1
سناریو ۹: OSPF با Passive Interface
Passive interface برای اینترفیسهایی استفاده میشود که میخواهیم network آنها را در OSPF advertise کنیم اما نمیخواهیم OSPF adjacency روی آنها تشکیل شود.
پیکربندی
Router1(config)# router ospf
Router1(config-router)# ospf router-id 222.1.1.1
Router1(config-router)# network 10.1.1.0/24 area 0.0.0.0
Router1(config-router)# exit
Router1(config)# interface ge1
Router1(config-if)# ip address 10.1.1.1/24
Router1(config-if)# ip ospf passive
Router1(config-if)# exit
یا به صورت global:
Router1(config)# router ospf
Router1(config-router)# ospf router-id 222.1.1.1
Router1(config-router)# network 10.1.1.0/24 area 0.0.0.0
Router1(config-router)# passive-interface ge1
Router1(config-router)# exit
نکات:
Network advertise میشود: Network در LSDB وجود دارد
Adjacency تشکیل نمیشود: Hello packet ارسال نمیشود
مناسب برای: Loopback، اینترفیسهای کاربری که نباید OSPF neighbor شوند
سناریو ۱۰: OSPF با Route Filtering
در این سناریو، route filtering را با استفاده از distribute-list و route-map پیادهسازی میکنیم.
پیکربندی Route Filtering
Router1(config)# ip access-list standard OSPF-FILTER
Router1(config-acl)# permit 10.1.0.0 0.0.255.255
Router1(config-acl)# deny any
Router1(config-acl)# exit
Router1(config)# router ospf
Router1(config-router)# ospf router-id 222.1.1.1
Router1(config-router)# redistribute connected
Router1(config-router)# distribute-list OSPF-FILTER out connected
Router1(config-router)# exit
استفاده از route-map
Router1(config)# route-map OSPF-REDIST permit 10
Router1(config-route-map)# match ip address prefix-list ALLOWED-ROUTES
Router1(config-route-map)# set metric 100
Router1(config-route-map)# set metric-type type-1
Router1(config-route-map)# exit
Router1(config)# ip prefix-list ALLOWED-ROUTES permit 10.1.0.0/16 le 24
Router1(config)# ip prefix-list ALLOWED-ROUTES deny 0.0.0.0/0 le 32
Router1(config)# router ospf
Router1(config-router)# redistribute connected route-map OSPF-REDIST
Router1(config-router)# exit
نکات:
distribute-list: فیلتر کردن route های redistribute شده
route-map: کنترل دقیقتر با تنظیم metric و metric-type
prefix-list: فیلتر کردن دقیقتر با prefix length
سناریو ۱۱: OSPF با Virtual Link
Virtual Link برای اتصال area های جدا شده از backbone استفاده میشود. این زمانی مفید است که نمیتوانیم area را مستقیماً به area 0 متصل کنیم.
توپولوژی
Area 0 Area 1 Area 2
[R1] ----- [ABR1] ----- [ABR2] ----- [R3]
| |
| |
[R2] [R4]
پیکربندی Virtual Link
ABR1(config)# router ospf
ABR1(config-router)# ospf router-id 222.0.0.1
ABR1(config-router)# network 200.1.2.0/24 area 0.0.0.0
ABR1(config-router)# network 200.1.3.0/24 area 1.0.0.0
ABR1(config-router)# area 1.0.0.0 virtual-link 222.0.0.2
ABR1(config-router)# exit
ABR2(config)# router ospf
ABR2(config-router)# ospf router-id 222.0.0.2
ABR2(config-router)# network 200.1.3.0/24 area 1.0.0.0
ABR2(config-router)# network 200.2.4.0/24 area 2.0.0.0
ABR2(config-router)# area 1.0.0.0 virtual-link 222.0.0.1
ABR2(config-router)# exit
نکات مهم:
Router-ID: باید Router-ID طرف مقابل را مشخص کنیم
Transit Area: Virtual Link از طریق یک transit area (معمولاً area 1) عبور میکند
Authentication: میتوان احراز هویت را روی Virtual Link تنظیم کرد
بررسی:
ABR1# show ip ospf virtual-links
Virtual Link to router 222.0.0.2 is up
Run as demand circuit
DoNotAge LSA allowed.
Transit area 1.0.0.0, via interface ge1, Cost of using 10
Transmit Delay is 1 sec, State POINT_TO_POINT
سناریو ۱۲: OSPF با BFD Integration
BFD (Bidirectional Forwarding Detection) برای تشخیص سریعتر link failure استفاده میشود و به OSPF کمک میکند تا سریعتر همگرا شود.
پیکربندی BFD
Router1(config)# router ospf
Router1(config-router)# ospf router-id 222.1.1.1
Router1(config-router)# bfd
Router1(config-router)# exit
Router1(config)# interface ge0
Router1(config-if)# ip address 200.1.2.1/24
Router1(config-if)# ip ospf area 0.0.0.0
Router1(config-if)# bfd
Router1(config-if)# exit
نکات:
bfd: باید در router ospf و interface تنظیم شود
Fast convergence: BFD link failure را در میلیثانیه تشخیص میدهد
Lower overhead: از Hello protocol سبکتر است
بررسی:
Router1# show bfd neighbors
BFD Peers:
Address Interface State Time Multiplier
200.1.2.2 ge0 Up 00:00:03 3
خلاصه
OSPF یک پروتکل مسیریابی قدرتمند برای:
✅ شبکههای بزرگ و مقیاسپذیر مانند ISP backbone و شبکههای سازمانی
✅ همگرایی سریع در مقایسه با RIP
✅ پشتیبانی از Multi-Area با backbone area
✅ امنیت با احراز هویت MD5
✅ Summarization برای بهینهسازی routing table
✅ Graceful Restart برای کاهش downtime
با استفاده صحیح از OSPF میتوانید یک زیرساخت مسیریابی پایدار و کارآمد برای شبکه خود ایجاد کنید.