Открытый протокол, базирующийся на алгоритме поиска наикратчайшего пути (Open Shortest Path Fisrt – OSPF) является протоколом маршрутизации, разработанным для сетей IP рабочей группой Internet Engineering Task Force (IETF), занимающейся разработкой протоколов для внутрисистемных роутеров (interior gateway protocol – IGP).
Как видно из его названия, OSPF имеет две основных характеристики. Первая из них-это то, что протокол является открытым, т.е. его спецификация является общественным достоянием. Второй его главной характеристикой является то, что он базируется на алгоритме 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) отвечает за распределение маршрутной информации между областями. Она включает в себя все роутеры границы области, сети, которые не принадлежат полностью како-либо из областей, и подключенные к ним роутеры. На Рис 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), или через конфигурацию.
Алгоритм SPF
Алгоритм маршрутизации SPF является основой для операций OSPF. Когда на какой-нибудь роутер SPF подается питание, он инициилизирует свои структуры данных о протоколе маршрутизации, а затем ожидает индикации от протоколов низшего уровня о том, что его интерфейсфы работоспособны.
После получения подтверждения о работоспособности своих интерфейсов роутер использует приветственный протокол (hello protocol) OSPF, чтобы приобрести соседей (neighbor). Соседи – это роутеры с интерфейсами с общей сетью. Описываемый роутер отправляет своим соседям приветственные пакеты и получает от них такие же пакеты. Помимо оказания помощи в приобретении соседей, приветственные пакеты также действуют как подтверждение дееспособности, позволяя другим роутерам узнавать о том, что другие роутери все еще функционируют.
В сетях с множественным доступом (multi-access networks) (сетях, поддержиающих более одного роутера), протокол Hello выбирает назначенный роутер (designated router) и дублирующий назначенный роутер. Назначеный роутер, помимо других функций, отвечает за генерацию LSA для всей сети с множественным доступом. Назначенные роутеры позволяют уменьшить сетевой трафик и об’ем топологической базы данных.
Если базы данных о состоянии канала двух роутеров являются синхронными, то говорят, что эти роутеры смежные (adjacent). В сетях с множественным доступом назначенные роутеры определяют, какие роутеры должны стать смежными. Топологические базы данных синхронизируются между парами смежных роутеров. Смежности управляют распределением пакетов протокола маршрутизации. Эти пакеты отправляются и принимаются только на смежности.
Каждый роутер периодическив отправляет какое-нибудь LSA. LSA также отправляются в том случае, когда изменяется состояние какого- нибудь роутера. LSA включает в себя информацию о смежностях роутера. При сравнении установленных смежностей с состоянием канала быстро обнаруживаются отказавшие роутеры, и топология сети изменяется сооответствующим образом. Из топологической базы данных, генерируемых LSA, каждый роутер рассчитывает дерево наикратчайшего пути, корнем которого является он сам. В свою очередь дерево наикратчайшего пути выдает маршрутную таблицу.
Формат пакета
Все пакеты OSPF начинаются с 24-байтового заголовка, как показано на Рис 2
Первое поле в заголовке OSPF – это номер версии OSPF (version number). Номер версии обозначает конкретную используемую реализацию OSPF.
За номером версии идет поле типа (type). Существует 5 типов пакета OSPF:
- Hello – Отправляется через регулярные интервалы времени для установления и поддержания соседских взаимоотношений.
- Database Description – Описание базы данных. Описывает содержимое базы данных; обмен этими пакетами производится при инициализации смежности.
- Link-State Request – Запрос о состоянии канала. Запрашивает части топологической базы данных соседа. Обмен этими пакетами производится после того, как какой-нибудь роутер обнаруживает, (путем проверки пакетов описания базы данных), что часть его топологической базы данных устарела.
- Link-State Update – Корректировка состояния канала. Отвечает на пакеты запроса о состоянии канала. Эти пакеты также используются для регулярного распределения LSA. В одном пакете могут быть включены несколько LSA.
- Link-State Acknowledgement- Подтверждение состояния канала. Подтверждает пакеты корректировки состояния канала. Пакеты корректировки состояния канала должны быть четко подтверждены, что является гарантией надежности процесса лавинной адресации пакетов корректировки состояния канала через какую-нибудь область.
Каждое LSA в пакете корректировки состояния канала содержит тип поля. Существуют 4 типа LSA:
- Router links advertisements (RLA) – Об’явления о каналах роутера. Описывают собранные данные о состоянии каналов роутера, связывающих его с конкретной областью. Любой роутер отправляет RLA для каждой области, к которой он принадлежит. RLA направляются лавинной адресацией через всю область, но они не отправляются за ее пределы.
- Network links advertisements (NLA) – Об’явления о сетевых каналах. Отправляются назначенными роутерами. Они описывают все роутеры, которые подключены к сети с множественным доступом, и отправляются лавинной адресацией через область, содержащую данную сеть с множественным доступом.
- Summary links advertisements (SLA) – Суммарные об’явления о каналах. Суммирует маршруты к пунктам назначения, находящимся вне какой-либо области, но в пределах данной AS. Они генерируются роутерами границы области, и отправляются лавинной адресацией через данную область. В стержневую область посылаются об’явления только о внутриобластных роутерах. В других областях рекламируются как внутриобластные, так и межобластные маршруты.
- AS external links advertisements – Об’явления о внешних каналах AS. Описывают какой-либо маршрут к одному из пунктов назначения, который является внешним для данного AS. Об’явления о внешних каналах AS вырабатываются граничными роутерами AS. Этот тип об’явлений является единственным типом об’явлений, которые продвигаются во всех направлениях данной AS; все другие об’явления продвигаются только в пределах конкретных областей.
За полем типа заголовка пакета OSPF идет поле длины пакета (packet length). Это поле обеспечивает длину пакета вместе с заголовком OSPF в байтах.
Поле идентификатора роутера (router ID) идентифицирует источник пакета.
Поле идентификатора области (area ID) идентифицирует область, к которой принадлежит данный пакет. Все пакеты OSPF связаны с одной отдельной областью.
Стандартное поле контрольной суммы IP (checksum) проверяет содержимое всего пакета для выявления потенциальных повреждений, имевших место при транзите.
За полем контрольной суммы идет поле типа удостоверения (authentication type). Примером типа удостоверения является “простой пароль”. Все обмены протокола OSPF проводятся с установлением достоверности. Тип удостоверения устанавливается по принципу “отдельный для каждой области”.
За полем типа удостоверения идет поле удостоверения (authentication). Это поле длиной 64 бита и содержит информацию удостоверения.
Конфигурация OSPF
Для того, чтобы настроить OSPF необходимо выполнить следующие шаги:
- Включить OSPF (обязательно)
- Определить интерфейсы на которых OSPF будет работать (обязательно).
- Настроить параметры OSPF на интерфейсах (необязательно)
Пример:
interface ethernet 1
ip address 192.168.1.1 255.255.255.0
!
router ospf 1
network 192.168.0.0 0.0.255.255 area 1
В этом примере мы включили OSPF роутинг с помощью команды router ospf 1. Эта команда перебросит вас в режим конфигурации протокола маршрутизации OSPF. Далее с помощью команды network 192.168.0.0 0.0.255.255 area 1 мы определили интерфейс на котором будет работать OSPF и номер зоны (area) для этого интерфейса. Поскольку в адресном диапазоне 192.168.0.0/16 находиться только один интерфейс ethernet 1, то на этом интерфейсе начинает работать протокол OSPF.
Источник: www.ciscolab.ru