Установяването на съседства(Neighbor Adjacencies) в OSPF протича в няколко стъпки. Изобразено като схема процесът би изглеждал така :

ospf2

1.Down State. При това състояние рутерът все още не е получил Hello пакети и продължава да изпраща, докато не получи ответен пакет.

2.Init State. Когато получи първият Hello пакет от своя съсед рутерът преминава в това състояние. Когато в приетия Hello пакет рутерът види своят Router ID, той преминава в 2-way State.

3.2-way State. Това състояние означава че между рутерите е установена двупосочна връзка и всяка страна е изпратила и получила ответен Hello пакет. В това състояние рутерите решават дали да установят съседство. Също така при Multiaccess Broadcast мрежовите архитектури, като Ethernet, се избира DR(Designated Router) и BDR(Backup Designated Router).

4.ExStart. След избора на DR и BDR се преминава в това състояние, където се установяват Master - Slave отношенията между рутерите. Рутерът с по-голям Router ID става Master и инициализира обменът на маршрутна информация.

5.Exchange. Когато преминат към състояние Exchange,рутерите обменят DBD(Database Descriptor packets), които съдържат актуалната информация топологията. Всеки DBD пакет има пореден номер(sequence number), който може да бъде инкрементиран само от Master, и се потвърждава от Slave рутера. Съдържанието на полученият DBD се сравнява с LSDB на локалният рутер.

6.Loading.В зависимост от информацията получена впосредством DBD, рутерите изграждат мрежовата топология. При несъответствия в топологията, рутерите изпращат запитвания(Link State Request) относно липсващ маршрут и получават съответно отговори(Link State Update). Всички LSU(Link State Update) пакети биват потвърждавани изрично.

7.Full. В това състояние рутерите имат напълно синхронизирани топологии и установени пълни съседства. Това е нормалното състояние на рутерите при правилно конфигуриран OSPF процес(освен в Broadcast мрежите, където може да са и в 2WAY състояние).

###Условия необходими за установяване на съседства и избор на DR и BDR.###

За да бъде установено съседство между два рутера са необходими следните условия:

1.Area ID между двата рутера трябва да е еднакъв. Например не може да имате съседтво между рутер с конфигуриран Area0, и такъв конфигуриран с Area1 за една и съща мрежа. Естествено рутерите също трябва да са в една подмрежа(subnet).

2.Автентикация. Паролата за автентикация между два рутера в един сегмент трябва да е еднаква. Не може да имате конфигурирана една парола от едната страна, и друга от другата страна.

3.Hello и Dead таймери. OSPF обменя периодични Hello пакети във всеки мрежов сегмент. Те се използват като keepalive механизъм, т.е за да проверят дали съседът отговаря. Ако не получи ответен Hello пакет за определено време(Dead Interval), рутерът смята че съседът го няма и обявява маршрута за невалиден. При Cisco устройствата таймерите по подразбиране са - 10 секунди Hello timer, 40 секунди Dead timer за Broadcast и Point-To-Point мрежите, и 30 секунди Hello interval и 120 секунди Dead interval за всички останали типове мрежи. За да се установи съседство между два рутера тези интервали трябва да съвпадат.

Тези таймери могат да бъдат манипулирани с командите :

ip ospf hello-interval <seconds>

и

ip ospf dead-interval <seconds>

Внимание! При промяна на таймерите(интервали) се уверете че те са еднакви между два съседни рутера. В противен случай няма да се установи съседство между тях.

###Избор на DR и BDR###

При избора на DR и BDR от решаващо значение са следните условия:

1.Рутер с най-висок приоритет(priority) на OSPF процес ще бъде избран за DR. По подразбиране всички рутери имат приоритет от 1.

2.Ако приоритетите съвпадат, рутерът с най-висок Router ID ще бъде избран.

3.Ако не е изрично настроен, за Router ID се приема най-високият IP адрес от Loopback. Ако такъв не е конфигуриран се приема най-високият IP адрес от активните интерфейси на рутера.

Следващият рутер с най-високи от тези показатели бива избран за BDR. Както виждате процесът на избор до голяма степен е автоматичен, но се препоръчва да използваме ръчно настроен приоритет, или Router ID за да наложим избора на DR и BDR.

Приоритета и Router ID може да настроим със следните команди:

ip ospf priority <number-value>

Където може да бъде число от 1 до 255

и

R1(config-router)#router-id ?

A.B.C.D OSPF router-id in IP address format

R1(config-router)#router-id 1.1.1.1

###Детайли около избора на DR и BDR###

Има случаи когато може би ще се чудите защо определен рутер не е избран за DR. Ето някои факти които ще ви изяснят нещата:

  • Ако рутер с по-висок OSPF приоритет се включи веднага след избора, той няма да бъде избран за DR или BDR, докато не отпадне някой от вече избраните.

  • Ако DR отпадне, BDR става новият DR и се провежда избор за нов BDR.

  • Ако новият DR отпадне а предишният DR се появи отново, той пак ще бъде избран за DR а текущият BDR ще си остане същият.

###Каква е целта на изборите на DR и BDR?###

Една от причините за избирането на DR и BDR е за да се намали служебният трафик в мрежата. При Broadcast мрежите всеки рутер установява пълно съседство(Full State) с DR и BDR. Със всички други той е в 2-Way State понеже с тях не обменя маршрути. Всички обикновени рутери изпращат ъпдейти към мултикаст адрес 224.0.0.6(Всички DR и BDR) и съответно DR препраща обновлението към 224.0.0.5(Всички други рутери). Така няма нужда всички рутери да си обменят информация всеки със всеки, и се спестява значителен служебен трафик. Работата на BDR е периодично да проверява дали DR отговаря, и ако не получи отговор той приема че е DR и поема неговата роля.

Целият този замисъл за DR и BDR е единствено полезен в Broadcast мрежите като Ethernet. При Point-to-point няма нужда от избор, понеже там има само по 1 рутер на края на връзката.

###Примери за избор на DR и BDR###

example1

В горната примерна топология всеки IP адрес на рутер отговаря на името му. Например Router5 е с IP адрес 192.168.0.5. Причината за избора на Router6 за BDR тук е това че Router7 е включен по-късно към топологията.

example11

Както се вижда всички рутери имат установени пълни съседства само със DR и BDR, със всеки друг те са във състояние 2WAY.

При евентуален нов избор Router7 би трябва да бъде новият BDR. Във долната снимка съм ресетнал OSPF процеса с командата: clear ip ospf process.

example2

Ето и съседствата отново погледнати през Router5:

example22

Както виждате Router7 е избран за BDR.

###Примери при Point-To-Point връзки###

p2p

p2p2

Виждате че при State не е изписано DR или BDR, следователно няма избрани такива.

Край на Въведение в OSPF.Част - 2.

В следващата част ще разгледаме значението на областите, видове рутери и типовете LSA в OSPF.