Протокол кратчайшего пути (OSPF) - это протокол маршрутизации с выявлением маршрутов по состоянию связи, разработанный для сетей IP и основанный на алгоритме поиска кратчайшего пути (SPF). OSPF - это протокол внутренних шлюзов (IGP).
В сетях OSPF маршрутизаторы или системы из одной области поддерживают одну и ту же базу данных выявленных маршрутов, описывающую топологию области. Каждый маршрутизатор или система в области создает свою базу данных информации о состоянии каналов, которая состоит из объявлений маршрутов (LSAs), полученных от всех маршрутизаторов или систем в области, а также от LSA, генерирующихся самостоятельно. LSA - это пакет, содержащий сведения о соседях и оценку пути. Используя базы данных с выявлением маршрутов по состоянию связи, каждый маршрутизатор или сервер с помощью алгоритма поиска кратчайшего пути (SPF) строит остовное дерево путей, в котором корнем является сам маршрутизатор или сервер.
После того, как маршрутизаторы или серверы сети OSPF настраивают интерфейсы, они отправляют через интерфейсы OSPF пакеты Hello с помощью протокола приветствия Hello, для поиска соседей. Соседями являются маршрутизаторы или серверы, имеющие интерфейсы в общей сети. Затем они обмениваются собственными базами данных маршрутов для установления связи.
На следующем рисунке изображен процесс поиска соседей и установления связи между двумя системами в подсети 9.7.85.0. Каждая система имеет интерфейс OSPF в общей подсети 9.7.85.0 (интерфейс 9.7.85.1 для системы A и интерфейс 9.7.85.2 для системы B). Подсеть 9.7.85.0 входит в область 1.1.1.1.
После установления такого соответсвия каждый маршрутизатор и сервер периодически отправляет свои LSA соседям для обновления всех баз данных. Путем сравнения полученных LSA маршрутизаторы или серверы одной области отслеживают все изменения в топологии области и соответственно обновляют свои базы данных маршрутов.
В сетях OSPF с параллельным доступом, в которых есть не меньше двух присоединенных маршрутизаторов, отмеченный маршрутизатор и резервный отмеченный маршрутизатор выбираются с помощью протокола приветствия Hello. (Сеть с параллельным доступом - это сеть, в которой несколько устройств могут подключаться и обмениваться данными одновременно.)
Отмеченный маршрутизатор создает LSA для всей сети с параллельным доступом, передает их другим маршрутизаторам сети и определяет смежные маршрутизаторы. Все остальные маршрутизаторы сети являются смежными для отмеченного маршрутизатора. Отмеченный маршрутизатор уменьшает сетевой поток и размер базы данных маршрутов сети.
Резервный отмеченный маршрутизатор отличается от остальных только тем, что для него необходимо отдельно устанавливать смежность со всеми маршрутизаторами сети (включая отмеченный). Резервный отмеченный маршрутизатор становится основным, если предыдущий отмеченный маршрутизатор выходит из строя.
На Рисунке 1, подсеть 9.7.85.0 является коммутационной сетью. Таким образом, маршрутизаторы в подсети 9.7.85.0 выбирают основной и резервный отмеченные маршрутизаторы с помощью протокола приветствия. На данном примере, сервер A выбран основным отмеченным маршрутизатором, а сервер B - резервным.
В отличии от RIP, OSPF может работать внутри иерархии.Самой большой сущностью иерархии является автономная система. Автономная система - это группа сетей с общим администрированием и стратегией маршрутизации. Автономная система может быть разделена на области, соединенные между собой с помощью маршрутизаторов. Область состоит из группы смежных сетей и присоединенных хостов. Топология области является невидимой для сущностей вне области. Маршрутизаторы внутри области имеют одинаковые базы данных с информацией о состоянии каналов. Топология отдельных областей позволяет сократить потоки маршрутизации и уменьшить базу данных информации о состоянии каналов для каждой отдельной области.
Маршрутизатор, расположенный на границе областей OSPF и соединяющий эти области с сетевой магистралью, называется граничным маршрутизатором. Граничный маршрутизатор имеет несколько интерфейсов для нескольких областей и поддерживает отдельные базы данных информации о состоянии каналов для каждой области.
В следующем примере настроены две области (область 1.1.1.1 и область 2.2.2.2). Сервер B является граничным маршрутизатором с интерфейсом 9.7.85.2, подключенным к области 1.1.1.1, и интерфейсом 9.5.104.241, подключенным к области 2.2.2.2. Сервер B имеет две базы данных информации о состоянии каналов, по одной для каждой области. Сервер B устанавливает смежность между сервером A и маршрутизатором C в области 1.1.1.1 через интерфейс 9.7.85.2, и между сервером D в области 2.2.2.2 через интерфейс 9.5.104.241.
