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 را نمایش می‌دهد.

اطلاعات جزئی درباره پایگاه داده link-state (LSDB) OSPF را نمایش می‌دهد.

show ip ospf route [json]

جدول مسیریابی OSPF را که توسط آخرین محاسبه SPF تعیین شده است، نمایش می‌دهد.

show ip ospf [vrf <NAME|all>] border-routers [json]

لیست خلاصه روترهای مرزی ABR و ASBR را که از طریق OSPFv2 Type-3 (Summary LSA) و Type-4 (Summary ASBR LSA) یاد گرفته شده‌اند، نمایش می‌دهد.

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 در اینترفیس تنظیم شده‌اند:

3node

تنظیمات در 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 در شبکه قرار گرفته است.

Ospf-area2

توجه

باید ابتدا یک 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

نکات مهم:

  1. area authentication: احراز هویت در سطح area تنظیم می‌شود

  2. interface authentication: احراز هویت در سطح اینترفیس نیز باید تنظیم شود

  3. 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

نکات مهم:

  1. area range: برای summarization شبکه‌ها در area استفاده می‌شود

  2. authentication: احراز هویت در سطح area و interface

  3. 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

نکات مهم:

  1. area stub: باید در تمام روترهای area (شامل ABR) تنظیم شود

  2. Default route: ABR به طور خودکار یک default route به area ارسال می‌کند

  3. 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

نکات مهم:

  1. area nssa: باید در تمام روترهای area تنظیم شود

  2. Type-7 LSA: ASBR در NSSA از Type-7 LSA استفاده می‌کند

  3. 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

نکات:

  1. Network advertise می‌شود: Network در LSDB وجود دارد

  2. Adjacency تشکیل نمی‌شود: Hello packet ارسال نمی‌شود

  3. مناسب برای: 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

نکات:

  1. distribute-list: فیلتر کردن route های redistribute شده

  2. route-map: کنترل دقیق‌تر با تنظیم metric و metric-type

  3. prefix-list: فیلتر کردن دقیق‌تر با prefix length

سناریو ۱۲: 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

نکات:

  1. bfd: باید در router ospf و interface تنظیم شود

  2. Fast convergence: BFD link failure را در میلی‌ثانیه تشخیص می‌دهد

  3. 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 می‌توانید یک زیرساخت مسیریابی پایدار و کارآمد برای شبکه خود ایجاد کنید.