تقریبا همه پروتکل های مسیریابی از جمله OSPF، وEIGRP قبل از ارسال هر گونه اطلاعات نسبت به شناسایی همسایه ها در هر لینک و ایجاد همسایگی اقدام می نمایند.  شناسایی و ایجاد همسایگی از طریق ارسال و دریافت دوره ای 

 بسته های کوچکی به نام hello انجام می پذیرد. به طور کلی هدف از ارسال و دریافت hello را می توان به صورت زیر برشمرد:

  1. شناسایی روترهای همسایه از روی hello دریافتی در هر لینک
  2. چک و مقایسه کردن پارامترهای پروتکل مسیریابی بین روترهای همسایه مانند hello time و dead time
  3. اطمینان از صحت عملکرد روترهای همسایه با دریافت دوره ای بسته hello و ارائه عکس العمل مناسب در صورت از دست رفتن روتر همسایه

بسته hello به آدرس مالتی کست 224.0.0.5 ارسال می گردد. بدین ترتیب اگر روی لینکی بیش از یک همسایه وجود داشه باشد، همه همسایه ها بسته hello را دریافت نموده و روتر را به عنوان همسایه شناسایی می کنند.

شرایط تشکیل همسایگی

همانطور که در دومین مورد از اهداف ارسال و دریافت hello اشاره شده است، در تشکیل همسایگی لازم است تا پارامترهایی بین روترهای همسایه چک شود و در صورت یکسان بودن و یا مطابقت داشتن آنها، همسایگی ایجاد گردد. بعضی از پارامترهایی که باید بین روترهای همسایه در OSPF یکسان باشد و یا مطابقت داشته باشد عبارتند از:

  • در یک Area قرار داشته باشند
  • hello time و dead time آنها یکسان باشد
  • دو روتر همسایه باید subnet و mask یکسانی داشته باشند
  • router-id تکراری نباشد
  • نوع Area یکسان باشد. منظور از نوع Area انواع Stuby Area است که در همین فصل به جزئیات آن می پردازیم
  • در صورت تنظیم رمز در احراز هویت OSPF، نوع رمز گذاری و باید بین روترهای همسایه یکی باشد

 حالت های همسایگی در OSPF

برای ایجاد همسایگی با روترهای همسایه، به ازاء هر همسایه حالت همسایگی وجود دارد که با عبور از هر مرحله در ایجاد همسایگی، حالت همسایگی نیز تغییر می کند. حالت همسایگی به مدیر شبکه کمک می کند تا در صورت عدم ایجاد همسایگی راحت تر رفع اشکال نماید و دلیل عدم ایجاد همسایگی را کشف نماید. حالت همسایگی با down شروع می شود. بدین معنی که در بازه مورد انتظار بسته hello از همسایه دریافت نشده است. به محض دریافت بسته hello از روتر همسایه، حالت همسایگی از down به init یا initialized تغییر می کند. حالت همسایگی initialized با یک همسایه بدین معنی است که بسته hello از آن همسایه دریافت شده است. یکی از فیلدهای بسته hello، neighbor-list یا لیست همسایه هایی است که روی آن لینک، hello از آنها دریافت شده است. اگر بسته hello از همسایه ای دریافت کنیم که در فیلد neighbor-list، نام روتر دریافت کننده hello وجود نداشته باشد، بدین معنی است که روتر همسایه بسته hello ارسالی روتر را دریافت نکرده است. اما چنانچه روتر همسایه تیز بسته hello ارسالی ما را دریافت کرده باشد، آنگاه دو طرف پارامترهای تشکیل همسایگی را که در بالا به آنها اشاره شده است، چک می کنند و در صورتی که این پارامترها بین روترهای همسایه یکسان بوده و یا مطابقت داشته باشد، همسایگی از حالت Init به حالت 2-way تغییر می کند. به عبارت دیگر وقتی حالت همسایگی با روتر همسایه به 2-way تغییر می کند که دو طرف همدیگر را شناسایی نموده اند و پارامترهای همسایگی نیز بین آنها مطابقت داشته باشد. همسایگی 2-way بین روترهای همسایه شروع پروسه انتقال اطلاعات بین روترهای همسایه است.

OSPF n1

 حالت های همسایگی در OSPF تا قبل از انتقال اطلاعات دیتابیس

حالت های فوق تنها حالت های همسایگی نیستند. از این مرحله به بعد نیز حالت های همسایگی دیگری تا تشکیل همسایگی کامل وجود دارد. اما با توجه به اینکه این حالت ها بعد از شروع انتقال اطلاعات اتفاق می افتد، آنها را در بخش بعد از همین فصل معرفی خواهیم نمود.

جدول زیر خلاصه ای از حالت های همسایگی را تا مرحله انتقال اطلاعات نشان می دهد.

توصیف  حالت همسایگی
بدین معنی است که در زمان dead time از این همسایه hello دریافت نشده است.  down
بدین معنی است که این روتر در حال ارسال hello به همسایه مورد نظر است. این حالت فقط وقتی معنی دارد که همسایگی دستی تعریف شده باشد که در شبکه های از نوع non-broadcast کاربرد دارد و در بخش انواع شبکه ها در ospf در همین فصل در مورد آنها صحبت خواهیم نمود attempt
حالت Init بدین معنی است که از این همسایه hello دریافت شده است اما همسایه هنوز از این روتر دریافت نکرده است و یا آنکه پارامترهای همسایگی مطابقت ندارد. اگر پارامترهای همسایگی حالت Init بدین معنی است که از این همسایه hello دریافت شده است اما همسایه هنوز از این روتر دریافت نکرده است و یا آنکه پارامترهای همسایگی مطابقت ندارد. اگر پارامترهای همسایگی مطابقت نداشته باشد، در این حالت به صورت دائمی باقی می ماند مطابقت نداشته باشد، در این حالت به صورت دائمی باقی می ماند init
این حالت همسایگی بدین معنی است که دو روتر همسایه همدیگر را شناسایی نموده اند و پارامترهای همسایگی نیز مطابقت دارد. 2way

حالت های همسایگی در OSPF تا قبل از انتقل اطلاعات دیتابیس

همانطور که در جدول فوق دیده می شود حالت همسایگی attempt نیز اضافه شده است که فقط وقتی کاربرد دارد که همسایه به صورت دستی تعریف شده باشد. در بخش انواع شبکه ها در OSPF مشاهده خواهیم نمود که در شبکه های از نوع non-broadcast حتما باید همسایگی به صورت دستی تعریف شود. در حالت همسایگی دستی بسته hello به آدرس unicast ارسال می گردد برخلاف معمول که بسته های hello به آدرس مالتی کست 224.0.0.5 ارسال می شود.

برای درک بهتر مواردی که تاکنون به آن اشاره شده است، به مثال زیر توجه کنید. در مثال زیر دو روتر IOU1 و IOU2 به شکل خیلی ساده و از طریق اینترفیس سریال به یکدیگر متصل هستند. دو دستور debug ip ospf adj و debug ip ospf hello روی روتر IOU1 وارد شده است تا هر گونه تغییرات همسایگی رصد شود. در خروجی این دو دستور حالت های همسایگی از init تا 2way نشان داده شده است.

OSPF n2

مانیتورینگ و رفع اشکال ایجاد همسایگی در OSPF

IOU1#debug ip ospf adj

IOU1#debug ip ospf hello

OSPF hello events debugging is on

!

*Aug 20 14:56:53.455: OSPF: Send hello to 224.0.0.5 area 0 on Serial2/0 from 10.1.1.1

*Aug 20 14:56:53.455: OSPF: Serial2/0: Interface state change to UP, new ospf state P2P

IOU1(config-if)#

*Aug 20 14:56:53.955: OSPF: Build router LSA for area 0, router ID 10.1.1.1, seq 0x80000005, process 1

IOU1(config-if)#

*Aug 20 14:57:02.739: OSPF: Send hello to 224.0.0.5 area 0 on Serial2/0 from 10.1.1.1

IOU1(config-if)#

*Aug 20 14:57:09.767: OSPF: Rcv hello from 10.1.1.2 area 0 from Serial2/0 10.1.1.2

*Aug 20 14:57:09.767: OSPF: Send immediate hello to nbr 10.1.1.2, src address 10.1.1.2, on Serial2/0

*Aug 20 14:57:09.767: OSPF: Send hello to 224.0.0.5 area 0 on Serial2/0 from 10.1.1.1

*Aug 20 14:57:09.767: OSPF: End of hello processing

*Aug 20 14:57:09.775: OSPF: Rcv DBD from 10.1.1.2 on Serial2/0 seq 0x26B4 opt 0x52 flag 0x7 len 32  mtu 1500 state INIT

*Aug 20 14:57:09.775: OSPF: 2 Way Communication to 10.1.1.2 on Serial2/0, state 2WAY

!!! ما بقی خروجی حذف شده است و در بخش بعد نشان داده می شود

مانیتورینگ و رفع اشکال ایجاد همسایگی در OSPF

حال در همین مثال روی اینترفیس s2/0 روتر IOU2 مقدار hello time را از 10 ثانیه به 5 ثانیه تغییر می دهیم و خروجی debug را در روتر IOU1 مشاهده می کنیم. خروجی نشان می دهد که مقدار dead time دریافت شده 5 ثانیه و dead time خود روتر 40 ثانیه است. همچنین مشاهده می شود که مقدار hello time دریافتی 5 ثانیه و hello time خود روتر 10 ثانیه است و این عدم مطابقت منجر به down شدن همسایگی می شود.

!!! IOU2

IOU2(config)#interface serial 2/0

IOU2(config-if)#ip ospf hello-interval 5

!

!!! IOU1

IOU1#

Aug 20 15:10:41.363: OSPF: Rcv hello from 10.1.1.2 area 0 from Serial2/0 10.1.1.2*

Aug 20 15:10:41.363: OSPF: Mismatched hello parameters from 10.1.1.2*

Aug 20 15:10:41.363: OSPF: Dead R 20 C 40, Hello R 5 C 10*

*Aug 20 15:10:41.699: OSPF: Send hello to 224.0.0.5 area 0 on Serial2/0 from 10.1.1.1

عدم ایجاد همسایگی در صورت یکسان نبودن hello time و dead time در OSPF

مقدار hello time و dead time روی اینترفیس های point-to-point و broadcast به صورت پیش فرض 10 ثانیه و 40 ثانیه و روی دیگر اینترفیس ها مانند non-broadcast و point-to-multipoint، 40 ثانیه و 120 ثانیه است. انواع اینترفیس ها در OSPF را در بخشی با همین عنوان و در همین فصل مورد بررسی قرار خواهیم داد اما نکته ای که در این قسمت به آن تاکید می شود لزوم یکسان بودن hello time و dead time در تشکیل همسایگی است. بدیهی است که یکسان نبودن نوع اینترفیس دو روتر همسایه نیز ممکن است منجر به عدم تشکیل همسایگی شود زیرا یکی نبودن نوع اینترفیس می تواند منشاء عدم تطابق hello time و dead time باشد، مگر آنکه در چنین شرایطی به صورت دستی مقادیر hello و hold تغییر داده شود. حال hello time و dead time را به حالت قبل بر می گردیم و تغییر جدیدی روی اینترفیس روتر IOU2 ایجاد می نماییم. در این تغییر مقدار MTU را از 1500 بایت به 1470 تغییر می دهیم. در چنین شرایطی، حالت همسایگی در حالت Exchange باقی می ماند. حالت همسایگی Exchange و دیگر حالت های همسایگی باقی مانده را در بخش بعد از همین فصل بررسی خواهیم کرد. در اینجا تاکید روی این نکته است که در صورت یکسان نبودن MTU در دو روتر همسایه، همسایگی تشکیل نخواهد شد. هر گاه حالت همسایگی روتری را Exstart و یا Exchange می بینید، دلیل آن عمدتا یکسان نبودن MTU و یا unique نبودن router-id است. ضمنا زمانی که روتر از طریق سوییچ به روترهای همسایه متصل شده باشد و MTU روتر با سوییچ یکسان نباشد، نیز حالت همسایگی در Exstart و یا Exchange باقی می ماند. در مثال زیر خروجی دستور show ip ospf neighbor و همچنین حالت همسایگی Exchange نشان داده شده است.

 

!!! IOU2

IOU2(config)#interface serial 2/0

IOU2(config-if)#ip mtu 1470

!

!!! IOU1

IOU1#

*Aug 20 15:17:24.291: OSPF: Rcv DBD from 10.1.1.2 on Serial2/0 seq 0x353 opt 0x52 flag 0x7 len 32  mtu 1470 state EXCHANGE

*Aug 20 15:17:24.291: OSPF: Nbr 10.1.1.2 has smaller interface MTU

!

IOU1#sh ip ospf neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface

10.1.1.2          0   EXCHANGE/  -    00:00:38    10.1.1.2        Serial2/0

نتیجه یکسان نبودن MTU در تشکیل همسایگی OSPF

عدم ایجاد همسایگی به دلیل یکسان نبودن هر یک از دیگر پارامترها مانند کلید احراز هویت را نیز به همین شیوه قابل شناسایی و کشف است. بهترین دستورات که برای رفع اشکال عدم ایجاد همسایگی در OSPF وجود دارد، مجددا در ذیل آمده است.

IOU1#sh ip ospf neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface

10.1.1.2          0   FULL/  -        00:00:33    10.1.1.2        Serial2/0

!

IOU1#debug ip ospf adj

OSPF adjacency events debugging is on

!

IOU1#debug ip ospf hello

دستورات مانیتورینگ و رفع اشکال همسایگی در OSPF

نوشتن دیدگاه


تصویر امنیتی
تصویر امنیتی جدید