Открытый протокол, базирующийся на алгоритме поиска наикратчайшего пути (Open Shortest Path Fisrt - OSPF) является протоколом маршрутизации, разработанным для сетей IP рабочей группой Internet Engineering Task Force (IETF), занимающейся разработкой протоколов для внутрисистемных роутеров (interior gateway protocol - IGP). Рабочая группа была образована в 1988 г. для разработки протокола IGP, базирующегося на алгоритме "поиска наикратчайшего пути"(shortest path first - SPF), сцелью его использования в Internet, крупной международной сети, об'единяющей научно-исследовательские институты, правительственные учреждения, университеты и частные предприятия. Как и протокол IGRP (смотри Главу 24 "IGRP"),OSPF был разработан по той причине, что к середине 1980 гг. непригодность RIP для обслуживания крупных гетерогенных об'единенных систем стала все более очевидна(смотри Главу 23 "RIP").
ОSPF явился результатом научных исследований по нескольким направлениям, включающим:
(Информация о IS-IS дается в Главе 28 "Maршрутизация OSI").
Как видно из его названия, OSPF имеет две основных характеристики.Первая из них-это то, что протокол является открытым, т.е. его спецификация является общественным достоянием. Спецификация OSPFопубликована в форме Запроса для Комментария (RFC) 1247. Второй егоглавной характеристикой является то, что он базируется на алгоритмеSPF. Алгоритм SPF иногда называют алгоритмом Dijkstra по имени автора,который его разработал.
OSPF является протоколом маршрутизации с об'явлением состояния о канале(link-state). Это значит, что он требует отправки об'явлений о состоянии канала (link-state advertisement - LSA) во все роутеры,которые находятся в пределах одной и тойже иерархической области. Вoб'явления LSA протокола OSPF включается информация о подключенных интерфейсах, об использованных показателях и о других переменных. Помере накопления роутерами OSPF информации о состоянии канала,они используют алгоритм SPF для расчета наикратчайшего пути к каждомуузлу.
Являясь алгоритмом с об'явлением состояния канала, OSPF отличается от RIP и IGRP, которые являются протоколами маршрутизации с векторомрасстояния. Роутеры, использующие алгоритм вектора расстояния,отправляют всю или часть своей таблицы маршрутизации в сообщения о корректировке маршрутизации, но только своим соседям.
В отличие от RIP, OSPF может работать в пределах некоторой иерархической системы. Самым крупным об'ектом в этой иерархии являетсяавтономная система (Autonomous System - AS)AS является набором сетей, которые находятся под единым управлением и совместно используют общую стратегию маршрутизации. OSPF является протоколом маршрутизации внутри AS, хотяон и способен принимать маршруты из других AS и отправлять маршруты вдругие AS.
Любая AS может быть разделена на ряд областей (area).Область - это группасмежных сетей и подключенных к ним хостов.Роутеры, имеющие несколько интерфейсов, могут участвовать внескольких областях. Такие роутеры, которые называютсяроутерами границы областей (area border routers),поддерживают отдельные топологическиебазы данных для каждой области.
Топологическая база (topological database)данных фактически представляет собой общую картинусети по отношению к роутерам. Топологическая база данных содержитнабор LSA, полученных от всех роутеров, находящихся в одной области. Т.к. роутеры одной области коллективно пользуются однойи той же информацией, они имеют идентичные топологические базы данных.
Термин "домен" (domain) исользуется для описания части сети,в которойвсе роутери имеют идентичную топологическую базу данных. Термин"домен" часто используется вместо AS.
Топология области является невидимой для об'ектов, находящихся вне этойобласти. Путем хранения топологий областей отдельно, OSPF добивается меньшего трафика маршрутизации, чем трафик для случая, когда AS не разделена на области.
Разделение на области приводит к образованию двух различных типов маршрутизации OSPF, которые зависят от того, находятся ли источник ипункт назначения в одной и той же или разных областях. Маршрутизациявнутри области имеет место в том случае, когда источник и пункт назначения находятся в одной области; маршрутизация между областями -когда они находятся в разных областях.
Стержневая часть OSPF (backbone) отвечает за распределение маршрутнойинформации между областями. Она включает в себя все роутерыграницы области, сети, которые не принадлежат полностью како-либо изобластей, и подключенные к ним роутеры. На Рис. 25-1 представленпример об'единенной сети с несколькими областями.
На этом рисунке роутеры 4, 5, 6, 10, 11 и 12 образуют стержень.Если хост Н1 Области 3 захочет отправитьпакет хосту Н2 Области 2, то пакет отправляетсяв роутер 13, который продвигает его в роутер 12, который всвою очередь отправляет его в роутер 11. Роутер 11продвигает пакет вдоль стержня к роутеру 10 границы области,который отправляет пакет через два внутренних роутера этой области (роутеры 9 и 7) до тех пор, пока он не будет продвинутк хосту Н2.
Сам стержень представляет собой одну из областей OSPF, поэтому все стержневые роутеры используют те же процедуры и алгоритмыподдержания маршрутной информации в пределах стержневой области, которые используются любым другим роутером. Топология стержневойчасти невидима для всех внутренних роутеров точно также, кактопологии отдельных областей невидимы для стержневой части.
Область может быть определена таким образом, что стержневая часть небудет смежной с ней. В этом случае связность стержневой части должнабыть восстановлена через виртуальные соединения. Виртуальные соединенияформируются между любыми роутерами стержневой области, которые совместно используют какую-либо связь с любой из нестержневых областей; они функционируют так, как если бы они были непосредственными связями.
Граничные роутеры AS, использующие OSPF, узнают о внешнихроутерах через протоколы внешних роутеров (EGPs), таких, какExterior Gateway Protocol (EGP) илиBorder Gateway Protocol (BGP),или через информацию о конфигурации (информация об этих протоколахдается соответственно вГлаве 26 "EGP" иГлаве 27 "BGP").
Алгоритм маршрутизации SPF является основой для операций OSPF. Когдана какой-нибудь роутер SPF подается питание, он инициилизирует свои структуры данных о протоколе маршрутизации, а затем ожидает индикации от протоколов низшего уровня о том, что его интерфейсфыработоспособны.
После получения подтверждения о работоспособности своих интерфейсовроутер использует приветственный протокол (hello protocol) OSPF,чтобы приобрести соседей (neighbor). Соседи - это роутеры синтерфейсами с общей сетью. Описываемый роутер отправляет своимсоседям приветственные пакеты и получает от них такие же пакеты. Помимо оказания помощи в приобретении соседей, приветственные пакетытакже действуют как подтверждение дееспособности, позволяя другимроутерам узнавать о том, что другие роутери все еще функционируют.
В сетях с множественным доступом (multi-access networks)(сетях, поддержиающих более одного роутера),протокол Hello выбирает назначенныйроутер (designated router) и дублирующий назначенный роутер. Назначеный роутер, помимо других функций, отвечаетза генерацию LSA для всей сети с множественным доступом. Назначенныероутеры позволяют уменьшить сетевой трафик и об'ем топологическойбазы данных.
Если базы данных о состоянии канала двух роутеров являются синхронными, то говорят, что эти роутеры смежные (adjacent). Всетях с множественным доступом назначенные роутеры определяют,какие роутеры должны стать смежными. Топологические базы данныхсинхронизируются между парами смежных роутеров. Смежности управляют распределением пакетов протокола маршрутизации. Эти пакеты отправляются и принимаются только на смежности.
Каждый роутер периодическив отправляет какое-нибудь LSA. LSAтакже отправляются в том случае, когда изменяется состояние какого-нибудь роутера. LSA включает в себя информацию о смежностяхроутера. При сравнении установленных смежностей с состояниемканала быстро обнаруживаются отказавшие роутеры, и топологиясети изменяется сооответствующим образом. Из топологической базы данных, генерируемых LSA, каждый роутер рассчитывает деревонаикратчайшего пути, корнем которого является он сам. В свою очередьдерево наикратчайшего пути выдает маршрутную таблицу.
Все пакеты OSPF начинаются с 24-байтового заголовка, как показанона Рис. 25-2.
Первое поле в заголовке OSPF - это номер версии OSPF (version number).Номер версии обозначает конкретную используемую реализацию OSPF.
За номером версии идет поле типа (type). Существует 5 типов пакетаOSPF:
Каждое LSA в пакете корректировки состояния канала содержит тип поля.Существуют 4 типа LSA:
За полем типа заголовка пакета OSPF идет поле длины пакета (packetlength). Это поле обеспечивает длину пакета вместе с заголовком OSPFв байтах.
Поле идентификатора роутера (router ID) идентифицирует источникпакета.
Поле идентификатора области (area ID) идентифицирует область, к которойпринадлежит данный пакет. Все пакеты OSPF связаны с одной отдельной областью.
Стандартное поле контрольной суммы IP (checksum) проверяет содержимоевсего пакета для выявления потенциальных повреждений, имевших место притранзите.
За полем контрольной суммы идет поле типа удостоверения (authenticationtype). Примером типа удостоверения является "простой пароль".Все обмены протокола OSPF проводятся с установлением достоверности. Типудостоверения устанавливается по принципу "отдельный для каждойобласти".
За полем типа удостоверения идет поле удостоверения (authentication).Это поле длиной 64 бита и содержит информацию удостоверения.
В числе дополнительных характеристик OSRF - равные затраты, многотрактовая маршрутизация (multipath routing)и маршрутизация, базирующаяся на запросахтипа услуг высшего уровня (type of service - TOS).Базирующаяся на TOS маршрутизация поддерживает те протоколы высшего уровня, которые могутназначать конкретные типы услуг. Например, какая-нибудь прикладная программа может включить требование о том, что определенная информация является срочной. Если OSPF имеет в своем распоряжении каналы с высоким приоритетом, то они могут быть использованы для транспортировки срочных дейтаграмм.
OSPF обеспечивает один или более показателей. Если используется толькоодин показатель, то он считается произвольным, и TOS не обеспечивается.Если используется более одного показателя, то TOS обеспечиваетсяфакультативно путем использования отдельного показателя (и следовательно, отдельной маршрутной таблицы) для каждой из 8 комбинаций, образованной тремя битами IP TOS: битом задержки (delay),производительности (throughput) и надежности (reliability).Например,если биты IP TOS задают небольшую задержку, низкую производительностьи высокую надежность, то OSPF вычисляет маршруты во все пункты назначения, базируясь на этом обозначении TOS.
Маски подсети IP включаются в каждый об'явленный пункт назначения,что позволяет использовать маски подсети переменной длины(variable-length subnet masks).С помощью масок подсети переменной длины сеть IPможет быть разбита на несколько подсетей разной величины. Это обеспечивает администраторам сетей дополнительную гибкость при выборе конфигурации сети.