**Open Shortest Path First** (**OSPF**) — насочувачки протокол за IP-мрежи што ја одржува целосната состојба на врските. Користи link-state алгоритам и спаѓа во групата на внатрешно насочувачки протоколи, оперирајќи во еден автономен систем. Определен е како OSPF-верзија 2 во RFC 2328 (1998) za IPv4. The updates for IPv6 are specified as OSPF Version 3 in RFC 5340 (2008).

OSPF е можеби најкористениот внатрешен протокол (Interior gateway protocol) големи мрежи на претпријатија. IS-IS, друг link-state насочувачки протокол, се почесто користи во мрежите на сервис услужниците. Најчесто користениот надворешен протокол е Border Gateway Protocol (BGP), основниот протокол со кој се поврзувани различните автономни системи на интернет.

Преглед
-------

OSPF е внатрешен протокол кои насочува IP пакети само во еден домен на насочување (Автономен систем). Собира информации за состојбата на врските од достапните насочувачи и конструира тополошка мапа на мрежата. Топологијата ја одредува насочувачката табела која се презентира на Интернет слојот кој ја прави одлуката за насочувањето заснована само на дестинациската IP-адреса внатре во IP пакетите. OSPF е дизајниран да поддржува маски со променлива големина (VLSM) или безкласно меѓудоменско насочување (Classless Inter-Domain Routing) и нивните адресни модели.

OSPF детектира промени во топологијата, како што се откажувања на врски и конвергира на нова насочувачка структура која е без циклуси за време од неколку секунди. Го пресметува дрвото со најмала тежина/патека за секоја рута користејќи метод заснован на алгоритмот на Дајкстра.
Полисите на OSPF за конструирање на насочувачката табела се водени од метрики за цена на врските кои се поврзани на секој од насочувачките интерфејси. Факторите на цената се претставуваат како бројчиња без мерна единица а можат да бидат: оддалеченоста на насочувачот (повратно време), мрежниот проток на врската, достапноста и надежноста на линкот. Ова овозможува динамички баланс на сообраќајот помеѓу рути со иста цена.
OSPF мрежата може да биде структирирана во насочувачки области за да се поедностави администрацијата и да се оптимизира сообраќајот и искористеноста на ресурсите. Областите се идентифицираат со 32 битни броеви, претставени во децимала нотација или нотација заснована на октети слична како таа на IPv4 адресите.
По конвенција, областа 0 (нула) или 0.0.0.0 го претставува јардото на OSPF мрежата. Идентификаторите на другите области се одбираат слободно. Често, администраторите ја одбираат IP-адресата на главниот насочувач во една област за идентификатор на таа област. Секоај додатна област мора да има директна или вирутелна врска кон областа на OSPF јадрото. Таквите врски се одржуваат преку поврзувачки насочувач познат како граничен (Area Border Router - ABR). ABR насочувачот одржува посебни бази со состојба на врските за секоја од областите кои ги опслужува и ги одржува сумарите рути за сите области во мрежата.
OSPF не користи TCP или UPD како транспортен протокол, но се енкапсулира директно во IP пакети со број на протокол 89. Ова е различно од другите насочувачки протоколи како RIP и BGP. OSPF самиот се грижи за детекција и исправка на грешки.

OSPF користи мултикаст адресирање за преплавување на врските во бродкаст доменот. За мрежи без бродкаст се користат специјални начини на конфигурација за да се забрза откривањето на соседи. Мултикаст IP пакетите на OSPF никогаш не преминуваат преку IP насочувачи (не преминуваат во друг бродкаст домен), тие не патуваат повеќе од еден скок. OSPF ги резервира мултикаст адресите 224.0.0.5 за IPv4 или FF02::5 за IPv6 (за сите SPF/link state насочувачи, познати како AllSPFRouters) и 224.0.0.6 за IPv4 или FF02::6 за IPv6 (за сите назначени насочувачи, AllDRouters), како што е специфицирано во RFC 2328 и RFC 5340.

За насочување на мултикаст IP сообраќај, OSPF го поддржува Мултикаст Најкратка Отворена Патека Прво (Multicast Open Shortest Path First, MOSPF) како што е дефиниран во RFC 1584. Ниту Cisco ни Juniper Networks го вклучуваат MOSPF во нивните OSPF имплементации. Наместо тоа се користи Мултикаст Независен од Протокол (Protocol Independent Multicast, PIM) заедно со OSPF или други внатрешни насочувачки протоколи.

Кога OSPF протоколот работи на IPv4, може да работи сигуно меѓу насочувачи, со опции да користи повеќе автентикациски методи со што ќе се дозволи само на доверливи насочувачи да учестуваат во насочувањето. OSPFv3, кој работи на IPv6, не поддржува автентикација од страна на самиот протокол. Наместо тоа се потпира на протоколот за сигурност на IPv6 (IPsec).

OSPF верзија 3 прави модификации на имплементацијата за IPv4 на протоколот. Освен за виртуелни врски, сите размени меѓу соседи користат ексклузивно IPv6 локално адресирање. IPv6 протоколот работи на ниво на врска, наместо на ниво на подмрежа. Сите информации за IP претставките треба да бидат тргнати од рекламирањата за состојба на врските што ги прави OSPF и од *Hello* пакетот за откривање на соседи, што го прави OSPFv3 всушност независен од останати протоколи. И покрај проширеното адресирање на 128-бита IPv6, идентификациите за областа и насочувачот сè уште се засновани на 32-битни вредности.

Врски на соседтсво
------------------

Насочувачите во еден бродкаст домен, или на двата краја на point-to-point комуникациска врска формираат *соседства* откако ќе се детектираат еден со друг. Оваа детекција настанува кога еден насочувач ќе се идентифицира себеси со *hello* OSPF пакет. Ова е наречено *дво-насочна состојба* и ја претставува наједноставната врска. Насочувачите на една Етернет или frame relay мрежа одбираат *назначен (designated) насочувач* (DR) и *заштитен назначен насочувач (backup designated)* (BDR) кои играат улога на разводник (hub) за да го намалат сообраќајот помеѓу насочувачите. OSPF користи и уникаст и мултикаст за праќање на "hello" пакети и обнови со состојбите на врските.

Како насочувачки протокол што работи со состојба на врските, OSPF воспоставува и одржува соседтсва со цел да разменува обнови за насочувањето со другите насочувачи. Табелата во која се запишани овие соседства е наречена база на соседства. Доколку OSPF е конфигуриран правилно, ќе се создадат врски на соседство само со насочувачи кои се директно поврзани. За да се формира врска меѓу 2 насочувача интерфејсите кои ја формираат врската треба да се во иста област. Генерално еден интерфејст се конфигурира да припаѓа само на една област, но може да се специфицира припадност на повеќе. Во втората област тој интерфејс мора да биде конфигуриран како секундарен.(Оваа симулација на состојби на соседство покажува како состојбата на соседите се менува од Долу (Down) до Целосна Соседност (Full Adjacency) со размена на Hello, DD, Request, Update, и Ack пакети).

Типови на области
-----------------

Еден OSPF домен е поделен во области кои се означени со 32 битни идентификатори. Најчесто овие идентификатори се пишуваат користејќи ја нотацијата на IPv4 адресите по октети. Секако тие не се IP и може да бидат дупликат не некоја таква адреса. Идентификаторите на област во OSPF имплементацијата за IPv6 (OSPFv3) исто така користи 32 битни идентификатори запишани со иста нотација. Голем број на OSPF имплементации при прикажувањето на идентификаторите на области ги прикажуваат во овој формат дури и да не биле така запишани. Некои областа запишана како 1 ја претставуваат како 0.0.0.1 додека други како 1.0.0.0.

Областите се логички групирања на домаќините и мрежите, вклучувајќи ги нивните насочувачи кои имаат интерфејси поврзани на било која од вклучените мрежи. Секоја област одржува посебна база за состојба на врските. Информациите во оваа база се сумаризираат према остантиот дел од мрежата поврзана на истиот насочувач. Така се овозможува топологијата на мрежата да не биде позната надвор од мрежата. Ова ја намалува и количината на сообраќај за насочување во рамките на еден автономен систем.

Дефинирани се повеќе специјални типови на области

### Област ’рбет

’Рбетната област (или позната како област 0) го формира јадрото на OSPF мрежата. Сите други области се поврзуваат за неа, насочувањето меѓу оласти се случува преку насочувачи поврзани на оваа област и до своите назначени области. Оваа област е логичката и физичката структура на 'OSPF доменот'.

’Рбетната област е одговорна за дистрибуција на насочувачките информации меѓу нербетните области. Оваа област мора да биде непрекината, иако не мора да значи физички непрекината. ’Рбетна врска може да се постави со конфигурација на виртуелни врски. Ваков пример имаме ако претпоставиме дека областа 0.0.0.1 има физичка поврзаност со 0.0.0.0. Областа 0.0.0.2 нема директна врска со ’рбетот, но има врска со 0.0.0.1. Областа 2 користи виртуелна врска преку *транзитивната* област 1 да се поврзи на ’рбетот. За една област да биде транзитивна мора да и е поставен транзит атрибутот и не може да биде стебло област во било кој случај.

### Област стебло

Област стебло е област која не добива рекламирања на рути кои се надворешни за автономниот систем и рутите од внатре во оласта се засноваат целосно на дефолтна рута. 
Постојат модификации на основниот концепт на област стебло наречени Не-толку-стеблести области. Уредите на Циско содржат и имплементации и за Тотално-стеблеста област.

### Не-толку-стеблеста област

Овој тип на област може да импортира рути надворешни за автономниот систем и да ги препраќа на други области, но не може да приме надворешни рути за автономниот систем од други области. НТС областите се проширувања на стеблестите области.

### Приватни екстензии

Неколку производители (Cisco, Juniper, Alcatel-Lucent, Huawei, Quagga), имплементираат екстензии на стеблестите и не-толку-стеблестите области. Иако не се покриени со RFC веќе се сметаат некои од нив за стандардни. 

#### Тотално стеблеста област

Оваа област е слична на стеблестата со додаток тоа што не дозволува пропаѓирање на сумарни рути, т.е. рутите кои доаѓаат од друга оласт е се сумаризираат. Единствен начин сообраќајот да биде насочен надвор од ваква област е ако излезе преку дефолтната рута. Вака се намалува бројот на одлуки кои треба да се направат и се штеди на ресурси.
### Транзитивна област

Транзитивна област е област која има два или повеќе OSPF гранични насочувачи и се користи за да го предава сообраќајот од една област до друга. Транзитивната област не е извор на овој сообраќај ниту пак одредиште.

Избор на патека
---------------

Основна метрика за насочување која се користи во OSPF е *цена на патека*. *Цената* не е еднаква на ни една стандардна вредност како што е брзина, за да може дизајнерот на мрежата да одбере метрика битна за неговиот дизајн. Во пракса, сепак се одбира брзината (проточноста/bandwidth) на интерфејсот кој ја адресира дадената рута. Но со зачестеното појавување на врски со брзини поголеми од 100 Mbit/s потребно е да се постават фактори за скалирање кои ќе бидат специфични за таа мрежа. Циско како предефенирани поставувања за метрика користи 10^8/проточност (со можност основната вредност 10^8 да може да се менува). Така врска со проточност од 100 Mbit/s ќе има цена од 1, врска од 10 Mbit/s ќе има цена 10 итн. Но за врски со поголема проточност од 100 Mbit/s цената би била помала од 1.

Метриките, сепак, можат директно да се споредуваат само ако се од исти тип. Се распознаваат четири различни метрики. Секогаш се претпочита рута од внатре на областа отколку надворешна рута, без разлика на метриката. Во опаѓачки редослед на претпочитање четирите типови се:

1. Интра-област
2. Интер-област
3. Надворешна Тип 1, која вклучува цена на надворешната патека и сума на интерните патеки до граничниот насочувач на автономниот систем ASBR (Autonomous System Boundary Router) кој ја рекламира таа рута
4. Надворешна Тип 2, чија цена ја соддржи само цената на надворешната патека

### Инженерство на сообраќај

OSPF-TE (Traffic engineering) е екстензија на OSPF која овозможува да се применува инженерство на сообраќај и да се користи и на мрежи кои не се засноваат на IP (RFC 3630). Повеќе информации за топологијата можат да се разменат со користење на нетранспарентни рекламирања за состојбата на врската (Link-state advertisement, LSA) кои се соддржат од елементи во форма Тип-Должина-Вредност (Type-Length-Value TLV). Овие екстензии овозможуваат OSPF-TE да се користи не само на IP туку и на оптички мрежи.

OSPF-TE се користи во GMPLS мрежи како средтсво да се опише топологијата преку која GMPLS патеките можат да се остварат. GMPLS користи соптсвени протоколи за воспоставување на патеки и за препраќање кои се користат откако се добие мапа на целосната мрежа.

Во Протоколот за резервација на ресурси (Resource Reservation Protocol, RSVP) OSPF-TE се користи за снимање и преплавување на резервациите за сигнален проток на RSVP во базата на податоци за состојба на врските.

### Други екстензии

RFC 3717 документира работи во оптичко насочување за IP кое се заснова на екстензии кои дефинираат ограничувања на OSPF и IS-IS.

OSPF типови на насочувачи
-------------------------

OSPF ги дефинира следните типови на насочувачи:

* Граничен насочувач на област (Area border router ABR)
* Граничен насочувач на автономен систем (Auotonomous system boundary router ASBR)
* Внатрешен насочувач (Internal router IR)
* ’Рбетен насочувач (Backbone router BR)

Типот на насочувачот е атрибут на OSPF процесот. Еден физички насочувач може да има еден или повеќе OSPF процеси. На пример, насочувач кој е поврзан на повеќе од една област и прима рути од BGP процес кој е поврзан на друг автономен систем е ABR и ASBR

Секој насочувач си има идентификатор, обично се запишува во точкасто децималниот формат како IP-адреса. Овој идентификатор мора постои во секоја OSPF инстанца што работи на тој насочувач. Ако не е експлицитно конфигуриран, највисоката логичка IP-адреса се зема за идентификатор на насочувачот.

Овие типови на насочувачи не треба да се помешаат со термините *назначен насочувач (designated router DR)* и *резерва назначен насочувач (backup designated router BDR)* кои се атриути на насочувачски интерфејс, не на самиот насочувач.

### Граничен насочувач на област (ABR)

ABR е насочувач кој поврзува една или повеќе области со главната r'бетна мрежа. Се смета за член на сите области со кои е поврзан. ABR одржува повеќе копии од базата за состојбата на врските во меморија, по една за секоја област на која е поврзан насочувачот.

### Граничен насочувач на автономен систем (ASBR)

ASBR е насочувач кој е поврзан на повеќе од еден насочувачки протокол и разменува насочувачки информации со насочувачи во други протоколи. Типично ASBR имаат и активен BGP, или користат статички рути, или обете. ASBR се користи за да се редистрибуираат рутите добиени од друг, надворешен автономен систем, добиени преку својот автономен систем. ASBR создава надворешни рекламирања за состојбата на врските (LSA - Link State Advertisment) за надворешни адреси и ги препраќа на сите области преку ABR. Насочувачите во другите области ги користат ABR како next-hop за пристап до надворешните адреси. Тогаш ABR ги препраќаат пакетите на ASBR кој ја рекламира таа надворешна адреса.

### Интерен насочувач

Интерен насочувач е тој што има OSPF врски на соседтсво со интерфејси во истата област. Сите интерфејсите на интерниот насочувач припаѓаат на иста област.

### ’Рбетен насочувач

’Рбетните насочувачи се оние поврзани на OSPF ’рбетот, без разлика дали тие се истовремено ABR или интерни насочувачи на ’рбетната област. ABR насочувач е секогаш ’рбетен насочувач.

Наводи
------

1. 1 2  Moy, J. (1998). [RFC 2328 „OSPF Version 2"] Проверете ја вредноста `|url=` (help). The Internet Society. OSPFv2. Посетено на 2007-09-28.
2. 1 2  
Coltun, R.; D. Ferguson, J Moy, A. Lindem (2008). [RFC 5340 „OSPF for IPv6"] Проверете ја вредноста `|url=` (help). The Internet Society. OSPFv3. Посетено на 2008-07-23.CS1-одржување: повеќе имиња: список на автори (link)
3. ↑  „RFC 2328 - OSPF Version 2". Tools.ietf.org. 1998-04-02. Посетено на 2011-11-30.
4. ↑  „RFC 5340 - OSPF for IPv6". Tools.ietf.org. Посетено на 2011-11-30.
5. ↑  RFC 1584, *Multicast Extensions to OSPF*, J. Moy, The Internet Society (March 1994)
6. ↑  Katz, D; D. Yeung (2003). [RFC 3630 „Traffic Engineering (TE) Extensions to OSPF Version 2"] Проверете ја вредноста `|url=` (help). The Internet Society. OSPF-TEextensions. Посетено на 2007-09-28.
7. ↑  Rajagopalan, B; J. Luciani & D. Awduche (2004). [RFC 3717 „IP over Optical Networks: A Framework"] Проверете ја вредноста `|url=` (help). Internet Engineering Task Force. OSPFoverOptical. Посетено на 2007-09-28.