Теория протокола OSPF. Протокол OSPF Принцип работы ospf

OSPF (англ. Open Shortest Path First) — протокол динамической маршрутизации, основанный на технологии отслеживания состояния канала (link-state technology) и использующий для нахождения кратчайшего пути Алгоритм Дейкстры (Dijkstra’s algorithm).

Для бизнеса использование данного протокола дает следующие преимущества:

    Отказоустойчивость. В случаи выхода из строя любого из маршрутизаторов, обмен информацией мгновенно переключается на другой маршрут, что предотвращает простои в работе.

    Экономия. Связь между узлами надежно резервируется, а изменение структуры не требует больших трудозатрат. Таким образом не нужно содержать много персонала, который будет обслуживать систему.

    Снижение рисков. Использование данной технологии значительно снижает риски простоя, а также риск зависимости функционирования системы от обслуживающего персонала.

Для того чтобы понять принцип работы OSPF как протокола динамической маршрутизации, рассмотрим следующую конкретную схему.

Например, есть следующая структура:

3 различных офиса, шлюзами у которых являются маршрутизаторы Router 1, Router 2, Router 3. Между офисами происходит обмен информацией, но происходит это через промежуточный узел с целью сделать невозможным отслеживание факта связи этих офисов.

В качестве промежуточных узлов используется 2 маршрутизатора, расположенных в разных локациях: высокопроизводительный и более дорогой Router5, c широким каналом интернет и более дешевый Router 6 использующий дешевый канал интернет. Соответственно по умолчанию связь между всеми тремя филиалами должна происходить через Router5, если этот роутер выходит из строя - весь трафик в кратчайшее время переключается на Router 6, в случаи если оба промежуточных роутера вышли из строя – связь между филиалами осуществляется на прямую, поскольку простой в работе для данной компании важнее безопасности. В качестве роутеров используются CISCO 881 k9.

Для реализации заданной схемы построим между всеми узлами сети защищенные туннели IPSEC, через которые построим GRE туннели, это делается для того, чтобы шифровать весь трафик проходящий через туннель и в тоже время использовать для управления трафиком не политики IpSEC, а таблицы маршрутизации роутеров. Далее нам необходимо направить трафик так, как того требует условия задачи, для этого каждому сегменту маршрута присваивается стоимость и трафик пойдет по пути наименьшей стоимости. Логическая схема реализации представлена на рисунке ниже.


Рисунок 1 - Схема работы с зашифрованной базой данных


Техническая реализация OSPF на CISCO Router выглядит следующим образом (предполагается что туннели уже построены):

Активация и настройка протокола выполняется в режиме глобального конфигурирования:

router ospf 1 (активация протокола и присвоение идентификатора)

router-id 192.168.1.254 (задание ID роутера, используется адрес его интерфейса)

area 1 authentication message-digest (настройка аутентификации type 2 для зоны 1, пароль задается на интерфейсах)

network 192.168.1.0 0.0.0.255 area 1 (задание сетей для анонсирования)

Аналогичные операции выполняются на других роутерах и в результате каждый роутер будет передавать информацию о своих сетях другому. Таким образом в конечном итоге каждый маршрутизатор будет видеть любую сеть через любой из созданных туннелей.

interface Tunnel0 (заходим на интерфейс)

ip ospf authentication message-digest (задаем аутентификацию)

ip ospf message-digest-key 1 md5 Fkjf8i39fdks84l9 (вводим ключ аутентификации для нашей зоны)

ip ospf cost 5 (указываем стоимость прохождения трафика через указанный интерфейс)

ip ospf hello-interval 1 (указываем минимальный интервал обмена Hello пакетами, это позволяет минимизировать время обнаружения роутера)

ip ospf dead-interval 5 (указываем время в течении которого маршрут будет считаться мертвый, если от него не получено ответа)

ip ospf mtu-ignore (отключаем проверку MTU)

Аналогичные действия выполним на других интерфейсах с указанием соответствующей стоимости (значение cost, как указано на схеме).

В результате получим систему, которая обменивается трафиком согласно условия задачи:

  • По умолчанию трафик между офисами пойдет по кратчайшему пути через Router5, стоимость маршрута будет 5+5=10
  • Если Router5 не доступен, трафик пойдет через Router6, цена маршрута будет 10+10=20
  • Если оба промежуточных узла выйдут из строя трафик пойдет прямо по туннелям между узлами, стоимость маршрута составит 25

Таким образом благодаря использованию динамической маршрутизации на базе OSPF мы получили

OSPF (Open Shortest Path First) – дословно переводится как «Сперва открытый короткий путь» - надежный протокол внутренней маршрутизации с учетом состояния каналов (Interior gateway protocol, IGP ). Как правило, данный протокол маршрутизации начинает использоваться тогда, когда протокола RIP уже не хватает по причине усложнения сети и необходимости в её легком масштабировании.

OSPF наиболее широко используемый протокол внутренней маршрутизации. Когда идёт речь о внутренней маршрутизации, то это означает, что связь между маршрутизаторами устанавливается в одном домене маршрутизации, или в одной автономной системе. Представьте компанию среднего масштаба с несколькими зданиями и различными департаментами, каждое из которых связано с другим с помощью канала связи, которые дублируются с целью увеличения надежности. Все здания являются частью одной автономной системы. Однако при использовании OSPF, появляется понятие «площадка», «зона» (Area), которое позволяет сильнее сегментировать сеть, к примеру, разделение по «зонам» для каждого отдельного департамента.

Для понимания необходимости данных «зон» при проектировании сети, необходимо понять, как OSPF работает. Есть несколько понятий, связанных с этим протоколом, которые не встречаются в других протоколах и являются уникальными:

  • Router ID: Уникальный 32-х битный номер, назначенный каждому маршрутизатору. Как правило, это сетевой адрес с интерфейса маршрутизатора, обладающий самым большим значением. Часто для этих целей используется loopback интерфейс маршрутизатора.
  • Маршрутизаторы-соседи: Два маршрутизатора с каналом связи между ними, могут посылать друг другу сообщения.
  • Соседство: Двухсторонние отношения между маршрутизаторами-соседями. Соседи не обязательно формируют между собой соседство.
  • LSA: Link State Advertisement – сообщение о состоянии канала между маршрутизаторами.
  • Hello сообщения: С помощью этих сообщений маршрутизаторы определяют соседей и формируют LSA
  • Area (Зона): Некая иерархия, набор маршрутизаторов, которые обмениваются LSA с остальными в одной и той же зоне. Зоны ограничивают LSA и стимулируют агрегацию роутеров.

OSPF – протокол маршрутизации с проверкой состояния каналов. Представьте себе карту сети – для того, чтобы ее сформировать, OSPF совершает следующие действия:

  1. Сперва, когда протокол только запустился на маршрутизаторе, он начинает посылать hello-пакеты для нахождения соседей и выбора DR (designated router, назначенный маршрутизатор). Эти пакеты включают в себя информацию о соседях и состоянии каналов. К примеру, OSPF может определить соединение типа «точка-точка», и после этого в протоколе данное соединение «поднимается», т.е. становится активным. Если же это распределенное соединение, маршрутизатор дожидается выбора DR перед тем как пометить канал активным.
  2. Существует возможность изменить Priority ID для, что позволит быть уверенным в том, что DR-ом станет самый мощный и производительный маршрутизатор. В противном случае, победит маршрутизатор с самым большим IP-адресом. Ключевая идея DR и BDR (Backup DR) , заключается в том, что они являются единственными устройствами, генерирующими LSA и они обязаны обмениваться базами данных состояния каналов с другими маршрутизаторами в подсети. Таким образом, все не-DR маршрутизаторы формируют соседство с DR. Весь смысл подобного дизайна в поддержании масштабируемости сети. Очевидно, что единственный способ убедиться в том, что все маршрутизаторы оперируют одной и той же информацией о состоянии сети – синхронизировать БД между ними. В противном случае, если бы в сети было 35 маршрутизаторов, и требовалось бы добавить еще одно устройство, появилась бы необходимость в установлении 35 процессов соседства. Когда база централизована (т.е существует центральный, выбранный маршрутизатор - DR) данный процесс упрощается на несколько порядков.
  3. Обмен базами данных – крайне важная часть процесса по установлению соседства, после того как маршрутизаторы обменялись hello-пакетами. При отсутствии синхронизированных баз данных могут появиться ошибки, такие как петли маршрутизации и т.д. Третья часть установления соседства – обмен LSA. Это понятие будет разобрано в следующей статье, главное, что необходимо знать – нулевая зона (Area 0) особенная, и при наличии нескольких зон, все они должны быть соединены с Area 0. Так же это называется магистральной зоной.

Типы маршрутизаторов OSPF

Разберем различные типы маршрутизаторов при использовании протокола OSPF:

  • ABR
  • Area Border Router – маршрутизатор внутри нулевой зоны, через который идет связь с остальными зонами

  • DR, BDR
  • Designated Router, Backup Designated Router – этот тип маршрутизаторов обсуждался выше, это основной и резервирующий маршрутизаторы, которые ответственны за базу данных маршрутизаторов в сети. Они получают и посылают обновления через Multicast остальным маршрутизаторам в сети.

  • ASBR
  • Autonomous System Boundary Router – этот тип маршрутизаторов соединяет одну или несколько автономных систем для осуществления возможного обмена маршрутами между ними.

Подведем итоги

  • OSPF является быстро сходящимся протоколом внутренней маршрутизации с контролем состояния каналов
  • Процесс соседства формируется между соседними маршрутизаторами через DR и BDR, используя LSA
  • Зоны в данном протоколе маршрутизации используются для ограничения LSA и суммирования маршрутов. Все зоны подключаются к магистральной зоне.

Полезна ли Вам эта статья?

Пожалуйста, расскажите почему?

Нам жаль, что статья не была полезна для вас:(Пожалуйста, если не затруднит, укажите по какой причине? Мы будем очень благодарны за подробный ответ. Спасибо, что помогаете нам стать лучше!

OSPF (Open Shortest Path First) – протокол динамической маршрутизации, основанный на технологии отслеживания состояния канала (link-state technology) и использующий для нахождения кратчайшего пути алгоритм Дейкстры.

Последняя версия протокола представлена в RFC 2328. OSPF представляет собой протокол внутреннего шлюза (Interior Gateway Protocol – IGP), распространяет информацию о доступных маршрутах между маршрутизирующими устройствами (маршрутизаторами) одной автономной системы.

OSPF предлагает решение следующих задач:

    увеличение скорости сходимости сети (т.е. одинаковое понимание текущей сетевой топологии всеми маршрутизаторами) по сравнению с протоколом RIP;

    поддержка сетевых масок переменной длины (VLSM, применяются в бессклассовой IP-адресации);

    достижимость сети;

    оптимальное использование пропускной способности сети;

    определение кратчайшего маршрута.

Терминология протокола OSPF

Объявление о состоянии канала (Link-State Advertisement, LSA) – объявление описывает все каналы маршрутизатора, все интерфейсы и состояние каналов.

Состояние канала (Link state) – состояние канала между двумя маршрутизаторами; обновления происходят при помощи пакетов LSA.

Метрика (metric) – условный показатель "стоимости" пересылки данных по каналу;

Автономная система (Autonomous System, AS) – группа устройств, обменивающаяся маршрутизирующей информацией в соответствии с единой политикой и протоколом маршрутизации.

Зона (area) – совокупность сетей и маршрутизаторов, имеющих один и тот же идентификатор зоны.

Соседи (neighbours) – два маршрутизатора, имеющие интерфейсы в общей сети.

Состояние соседства (adjacency) – взаимосвязь между определенными соседними маршрутизаторами, установленная с целью обмена информацией маршрутизации.

Hello-пакеты (Hello packets) – используются для обмена информации и поддержания соседских отношений.

База данных соседей (Neighbours database) – список всех соседей.

База данных состояния каналов (Link State Database, LSDB) – список всех записей о состоянии каналов. Встречается также термин топологическая база данных (topological database), употребляется как синоним базы данных состояния каналов.

Идентификатор маршрутизатора (Router ID, RID) – уникальное 32-битовое число, которое уникально идентифицирует маршрутизатор в пределах одной автономной системы.

Выделенный маршрутизатор (Designated Router, DR) – управляет процессом рассылки LSA в сети. Каждый маршрутизатор сети устанавливает отношения соседства с DR и отправляет ему информацию об изменениях в сети, а DR отвечает за то, чтобы данная информация была отправлена остальным маршрутизаторам сети. Недостатком в схеме работы с DR маршрутизатором является то, что при выходе его из строя должен быть выбран новый DR. Новые отношения соседства должны быть сформированы и, пока базы данных маршрутизаторов не синхронизируются с базой данных нового DR, сеть будет недоступна для пересылки пакетов. Для устранения этого недостатка выбирается BDR.

Резервный выделенный маршрутизатор (Backup Designated Router, BDR). Каждый маршрутизатор сети устанавливает отношения соседства не только с DR, но и BDR. DR и BDR также устанавливают отношения соседства между собой. При выходе из строя DR, BDR становится выделенным маршрутизатором и выполняет все его функции. Так как маршрутизаторы сети устанавливают отношения соседства с BDR, то время недоступности сети минимизируется.

Краткое описание работы протокола OSPF

Маршрутизаторы обмениваются hello-пакетами через все интерфейсы, на которых активирован OSPF. Устройства, разделяющие общий канал передачи данных, становятся соседями после согласования определенных параметров, указанных в hello-пакетах.

Далее маршрутизаторы обмениваются hello-пакетами с устройствами других сетей для установления соседства. OSPF определяет несколько типов сетей и несколько типов маршрутизаторов. Пара маршрутизаторов, находящихся в состоянии соседства синхронизирует между собой базу данных состояния каналов.

Каждый маршрутизатор посылает объявление о состоянии канала своему соседу. Последний, получив объявление, записывает передаваемую в нем информацию в базу данных состояния каналов маршрутизатора и рассылает копию объявления всем другим своим соседям.

Рассылая объявления через зону, все маршрутизаторы строят идентичную базу данных состояния каналов маршрутизатора.

Когда база данных построена, каждый маршрутизатор использует алгоритм нахождения кратчайшего пути для вычисления графа без образования петель (т.е. дерева кратчайшего пути), который будет описывать кратчайший маршрут к каждому известному пункту назначения, отображая в качестве корня самого себя. Самый короткий путь в дереве соответствует оптимальному маршруту к каждой сети назначения в автономной системе.

Каждый маршрутизатор строит таблицу маршрутизации из своего дерева кратчайшего пути и отправляет соседям не все записи таблицы, а только обновленные и измененные данные о маршрутах.

Учитывая, что в сетях с множественным доступом отношения соседства должны быть установлены между всеми маршрутизаторами, существует проблема рассылки огромного количества копий LSA. Для предотвращения этой проблемы в сетях выбираются выделенный (DR) и резервный выделенный (BDR) маршрутизаторы.

Типы зон

При разделении автономной системы на зоны, маршрутизаторам, принадлежащим к одной зоне, не известна информация о детальной топологии других зон.

Разделение на зоны позволяет:

    снизить нагрузку на ЦПУ маршрутизаторов за счет уменьшения количества перерасчетов по алгоритму SPF;

    уменьшить размер таблиц маршрутизации;

    уменьшить количество пакетов обновлений состояния канала.

Каждой зоне присваивается идентификатор зоны (Area ID) и может быть указан в десятичном формате или в формате записи IP-адреса. Однако идентификаторы зон не являются IP-адресами и могут совпадать с любым назначенным IP-адресом.

В любых OSPF-сетях обязательно должна быть определена магистральная зона (Backbone area), известная также как нулевая зона (Area 0) или зона 0.0.0.0, которая формирует ядро сети OSPF. Все остальные зоны должны быть соединены с ней при помощи маршрутизатора, через который обеспечивается межзональная маршрутизация. Если область не связана физически с магистралью, то необходимо добавить виртуальное соединение.

Тупиковая зона (Stub area) не принимает информацию о внешних маршрутах для автономной системы, а объявляет о маршруте по умолчанию. Если маршрутизаторам из тупиковой зоны необходимо передавать информацию за границу автономной системы, то они используют маршрут по умолчанию.

Транзитная зона (Transit area) передает информацию из зон, не связанных непосредственно с магистральной зоной.

Типы маршрутизаторов

Все интерфейсы внутреннего маршрутизатора (Internal Router, IR) принадлежат одной зоне. У таких маршрутизаторов только одна база данных состояния каналов.

Граничный маршрутизатор (Area Border Router, ABR) соединяет одну или больше зон с магистральной зоной и выполняет функции шлюза для межзонального трафика. У граничного маршрутизатора всегда хотя бы один интерфейс принадлежит магистральной зоне. Для каждой присоединенной зоны маршрутизатор поддерживает отдельную базу данных состояния каналов.

Граничный маршрутизатор автономной системы (AS Boundary Router, ASBR) обменивается информацией с маршрутизаторами других автономных систем. ASBR может находиться в любом месте автономной системы и быть внутренним, граничным или магистральным маршрутизатором.

Магистральный маршрутизатор (Backbone Router, BR) используется в магистральной зоне.

Рис. 4.1. Сеть OSPF

OSPF поддерживает следующие методы аутентификации:

    0 (в межсетевых экранах NetDefend: No Authentification) – для обмена информацией не требуется аутентификация OSPF;

    1 (в межсетевых экранах NetDefend: Passphrase) – для аутентификации OSPF требуется простой пароль;

    2 (в межсетевых экранах NetDefend: MD5 Digest) – MD5-аутентификация содержит идентификатор ключа (key ID) и 128-битный ключ. Определенный ключ используется для создания 128-бит MD5-хэша. Но назначение аутентификации не означает, что OSPF-пакеты шифруются. В случае необходимости передачи шифрованного OSPF-трафика, его направляют через VPN-туннель (например, IPSec).

Введение

OSPF (Open Shortest Path First) – протокол динамической маршрутизации. Данный протокол является открытым стандартом, его поддерживают практически все производители сетевого оборудования. Благодаря гибкости протокола, с помощью него легче и эффективнее можно реализовать поставленные задачи по маршрутизации трафика.

Основными отличиями от протоколов семейства distance-vector являются:

  • Возможность использования шаблонной маски для более тонкой настройки;
  • Высокая скорость сходимости протокола;
  • Экономия сетевых ресурсов;
  • Использование мультикаста вместо широковещательных запросов;
  • Обновление информации по мере изменения топологии сети;
  • Использование стоимость (cost) в качестве метрики.

OSPF использует так называемые пакеты Link-State Advertisement (LSA) для обмена данными между ближайшими соседями. К слову, список всех напрямую подключенных соседей каждый маршрутизатор хранит в специальной таблице под названием neighbor table . Благодаря обмену пакетами LSA и информации, полученной от соседей, маршрутизаторы выстраивают таблицу топологии сети topology table и заносят данные в базу Link-State Database (LSDB) . Обмен пактетами LSA происходит до тех пор, пока все маршрутизаторы, находящиеся в одной области , не выстроят идентичные базы LSDB. После этого, каждый из них выстроит таблицу маршрутизации routing table , согласно полученной информации. По сути, таблица топологии сети представляет собой базу данных, в которой отражены все маршрутизаторы области и пути их достижения. Таблица топологии сети отличается от таблицы маршрутизации тем, что в первой, маршрутизатор еще не принял решение, какой использовать оптимальный путь для достижения той или иной сети.

Маршрутизатор внесет изменение в таблицу топологии сети только после того, как он получит от своего соседа пакет LSA с обновленными данными. Любой маршрутизатор в области обязан сгенерировать LSA и отправить его всем своим соседям в одном из трех случаев:

  • 1. Произошло изменение в топологии сети (потеря физической связи с соседом, сосед не откликается на hello сообщения);
  • 2. Получен пакет LSA от другого соседа* , который должен быть передан по цепочке следующему, до тех пор, пока все маршрутизаторы не обновят свои таблицы топологии сети;
  • 3. Прошло 30 минут без изменений в сети.

* Если номер последовательности LSA новый, тогда маршрутизатор передаст его всем своим соседям.

* Если номер последовательности LSA совпадает с недавней записью в таблице топологии, то этот пакет игнорируется.

* Если номер последовательности более старый, тогда маршрутизатор сгенерирует и отошлет новую версию LSA обратно тому, от кого были получены устаревшие данные.

Итак, каждый маршрутизатор содержит 3 таблицы:

  • Таблица соседей (Neighbor table);
  • Таблица топологии (Topology table);
  • Таблица маршрутизации (Routing table).

Для того, чтобы поддерживать связь с соседями, маршрутизаторы обмениваются hello пакетами каждые 10 секунд. Каждый hello пакет содержит следующие поля:

От стадии знакомства до момента полного «взаимопонимания», маршрутизаторы преодолевают несколько этапов:

  • Down – обмен OSPF пакетами не происходит;
  • Init – обмен hello пакетами;
  • 2Way – связь установлена;
  • Exstart – выбор DR (главного устройства) и BDR (backup устройства) в сетях с множественным доступом (multi-access networks);
  • Exchange – обмен Database Descriptor (DBD) пакетами, которые содержат по сути заголовки LSA пакетов и описывают содержание контента базы данных Link-state;
  • - загрузка недостающей части базы данных Link-state, если в этом есть необходимость;
  • Full - достижение полной взаимосвязи, все базы данных синхронизированны.

Метрику или стоимость одного линка, маршрутизатор рассчитывает по формуле 100.000.000bps(100Mbps)/LinkSpeed . Подсчитав суммарную стоимость линков до удаленной сети, маршрутизатор выберет оптимальный маршрут.

Designated Router и Backup Designated Router

Выше были упомянуты аббревиатуры DR (Designated Router) и BDR (Backup Designated Router) . Это роли, которые могут исполнять маршрутизаторы, если они находятся в одном широковещательном сегменте. Выбор одного устройства, который будет исполнять роль DR существенно снизит нагрузку на сеть. Достигается это тем, что маршрутизаторы, находящиеся в одном сегменте, будут устанавливать взаимосвязи (adjacencies) не друг с другом, а только с DR. Выбор же BDR повысит отказоустойчивость сети, т.к. он мгновенно займет место DR, в случае выхода его из строя.

Выборы DR и BDR проводятся согласно следующим критериям:

  1. Приоритет (Priority) - определяет, какой маршрутизатор займет роль DR. Чем больше значение, тем лучше. По умолчанию приоритет равен 1.
  2. Если приоритеты равны, предпочтение будет отдано маршрутизатору с наибольшим Router ID (обычно равен IP адресу).
  3. Маршрутизатор, занявший второе место после DR, становится BDR.

При отсутствии DR и BDR в multi-access сети, количество взаимосвязей возростало бы в геометрической прогрессии относительно количества маршрутизаторов. Число взаимосвязей исчислялось бы по формуле (n(n-1))/2 , где n – количество маршрутизаторов.

Например:

DR уменьшит количество взаимосвязей до 3-х:

В отказоустойчивой модели, количество связей будет равно 5-ти:

Все маршрутизаторы в сегменте отправляют LSA пакеты на адрес 224.0.0.6 (для DR), в свою очередь, DR извещает маршрутизаторы посредством отсылки LSA на адрес 224.0.0.5 . После чего, каждый маршрутизатор в сети должен отправить подтверждение для DR о получении пакета.

DR не изменит свою роль, даже если в сети появится маршрутизатор с лучшим приоритетом. Если DR перестанет отсылать hello пакеты, его место займет BDR.

Области OSPF

Область OSPF представляет собой логическую группу маршрутизаторов с идентичными таблицами топологии сети. В каждой отдельной области алгоритмы SPF протекают независимо от других областей. Разделение на области необходимо для того, чтобы снизить нагрузку на саму сеть, а также память и процессор маршрутизаторов в одной области. Все потому, что чем шире OSPF область, тем чаще будет предпринято использование алгоритма SPF маршрутизаторами.

Алгоритм SPF используется маршрутизатором для расчета кратчайшего пути до удаленной сети.

Чем больше область, тем объемнее становится таблица маршрутизации и тем дольше будет происходить поиск нужного маршрута. В больших сетях топология разрастается до таких размеров, что управлять ей становится невозможно, более того, маршрутизаторы обмениваются таблицами топологии сети каждые 30 минут.

Из-за роста баз данных и количества необходимых расчетов, загрузка процессора маршрутизатора увеличивается одновременно со снижением доступного объема памяти. В результате увеличивается время задержки пересылки пакетов и время сходимости протокола OSPF между маршрутизаторами. Не исключаются проблемы потери связи и потери пакетов.

OSPF различает два типа областей: нулевая область и все остальные области. Нулевая область представляет из себя центральную область. Все остальные области должны быть смежны с ней. Маршрутизаторы, которые стоят на границе области, смежной с нулевой, называются Area Border Routers (ABR) . Маршрутизаторы, которые импортируют маршруты из других сетевых протоколов, отличных от OSPF, называются Autonomous System Boundary Routers (ASBR) .

Аннотация: Рассмотрены принципы функционирования протокола динамической маршрутизации по состоянию канала. Приведены основные характеристики протокола OSPF. Рассмотрены основы конфигурирования динамической маршрутизации на базе протоколов маршрутизации OSPF2 в сетях IPv4 и OSPF3в сетях IPv6. Проанализированы таблицы маршрутизации.

4.1. Общие сведения о протоколе OSPF

Протокол состояния канала (Link-state) Open Shortest Path First (OSPF) предназначен для работы в больших гибких составных сетях, где обмен маршрутной информацией между множеством маршрутизаторов потребовал бы значительных вычислительных ресурсов и пропускной способности сети. Поэтому большая сеть делится на области или зоны (area) , внутри которых и происходит рассылка обновлений (модификаций) при изменениях в сетевой топологии. Использование OSPF внутри определенной области, в которой маршрутизаторы разделяют маршрутную информацию между собой ( рис. 4.1), снижает нагрузку на сеть .


Рис. 4.1.

Областей (зон) может быть несколько, среди которых нулевая область (area 0) является главной или единственной. Остальные зоны взаимодействуют с нулевой областью, а напрямую между собой не взаимодействуют. Взаимодействие периферийных областей с магистральной (area 0 ) производится через пограничные маршрутизаторы ABR ( рис. 4.1). Далее рассматривается случай единственной области area 0.

Протокол OSPF оперативно реагируют на изменения в сети, обеспечивая быструю сходимость . Он может работать с оборудованием разных фирм производителей, и потому получил широкое распространение. Административное расстояние протокола OSPF равно 110 (см. табл. 1.1).

Протокол OSPF формирует три базы данных , на основе которых создает соответствующие таблицы:

  1. База данных смежности (adjacency database) позволяет сформировать таблицу соседних устройств (neighbor table), содержимое которой можно посмотреть по команде show ip ospf neighbor .
  2. На основе базы данных о состоянии каналов (Link-State Data Base - LSDB ) формируется таблица топологии сети (topology table), проверяемая по команде show ip ospf database . После схождения сети базы данных о состоянии каналов LSDB должны быть одинаковы
  3. На основе базы LSDB и базы данных смежности формируется база пересылки и создается таблица маршрутизации , которую можно посмотреть по команде show ip route .

В основе протокола OSPF лежит алгоритм Дийкстра (Dijkstra), обеспечивающий выбор кратчайшего пути (shortest path ) к адресату назначения. Протокол OSPF не проводит периодический обмен объемными обновлениями ( update ) маршрутной информации для снижения нагрузки на сеть , и характеризуется быстрой сходимостью .

Сходимость или конвергенция ( convergence ) сети достигается, когда базы данных о состоянии каналов LSDB одинаковы у всех маршрутизаторов области.

Для обмена маршрутной информацией между устройствами протокол OSPF использует пять типов пакетов:

  1. Пакет приветствия Hello .
  2. Пакет описания базы данных Data Base Description - DBD .
  3. Пакет запроса Link-State Request - LSR .
  4. Пакет обновлений Link-State Update - LSU .
  5. Пакет подтверждения Link-State Acknowledgment - LSAck .

Пакеты Hello маршрутизатор отправляет со всех своих интерфейсов, чтобы обнаружить соседние устройства. В отличие от других, Hello-пакеты рассылаются периодически и довольно часто, чтобы непрерывно отслеживать работоспособность соседних устройств. После обмена Hello-пакетами между соседними устройствами устанавливаются и поддерживаются отношения смежности ( adjacency ) и формируются таблицы соседних устройств.

Различают три типа сетей:

  1. Широковещательные с множественным доступом (Broadcast multi-access), например Ethernet.
  2. Сети типа точка-точка (Point-to-point).
  3. Нешироковещательные с множественным доступом (Non broadcast multi-access - NBMA), например, сети Frame Relay, ATM.

В сетях первых двух типов период рассылки Hello-пакетов - 10 секунд, а в сетях NBMA - 30 сек. Период простоя (Dead Interval ) - в четыре раза больше. Если в течение периода простоя от соседнего устройства не пришло ни одного Hello-пакета, то считается, что устройство прекратило функционирование. Протокол OSPF удалит не отвечающего соседа из базы данных LSDB . При рассылке Hello-пакетов в сетях IPv4 используется адрес 224.0.0.5 многоадресного режима без подтверждения доставки. В сетях IPv6 для рассылки используется адрес FF02::5 .

Пакет DBD содержит сокращенный список базы данных передающего маршрутизатора и используется принимающим маршрутизатором для синхронизации (проверки) своей базы данных . Базы данных должны быть идентичными. Принимающий маршрутизатор может запросить полную информацию о входах базы данных передатчика, используя пакет запроса Link-State Request - LSR .

Для обмена объявлениями о состоянии канала используется пакет обновлений Link-StateUpdate - LSU . Пакет LSU может содержать различные типы извещений или объявлений (Link-State Advertisements - LSA ). Обмен пакетами объявлений LSA производится на начальном этапе формирования сети после установления отношения смежности , а также при возникновении изменений в топологии сети.

Когда происходят изменения в каком-либо соединении сети, то маршрутизатор , первым заметивший это изменение, создает извещение о состоянии этого соединения LSA , которое передается соседним устройствам. Каждое устройство, получив обновление LSA , транслирует копии LSA всем соседним маршрутизаторам в пределах области и затем модифицирует свою топологическую базу данных. Такая лавинообразная рассылка объявлений о состоянии каналов ускоряет процесс сходимости.

Для подтверждения принятого пакета обновлений LSU используется пакет подтверждения (Link-Stat Acknowledgment - LSAck), который рассылается в одноадресном режиме.

Состояние канала (соединения) - это описание интерфейса , которое включает IP адрес интерфейса, маску подсети, тип сети и другие параметры. Полученные пакеты LSA позволяют протоколу OSPFсформировать на маршрутизаторе базу данных о состоянии каналов LSDB . Зная базу данных, алгоритм Dijkstra (shortest path first algorithm - SPF ) вычисляет кратчайшие пути к сетям назначения. При этом строится древовидная топология кратчайших путей SPF ко всем доступным сетям, свободная от маршрутных петель. Корнем в дереве является сам маршрутизатор . Первый вычисленный кратчайший путь записывается в таблицу маршрутизации.

Пакет OSPF размещается внутри IP -пакета сразу за IP -заголовком ( рис. 4.2).


Рис. 4.2.

При передаче сообщения OSPF заголовок кадра включает групповой МАС- адрес назначения (01-00-5Е-00-00-05 или 01-00-5Е-00-00-06) и одноадресный МАС- адрес источника.

Заголовок IP -пакета содержит групповой адрес назначения (224.0.0.5 или 224.0.0.6) и IP - адрес источника.В поле протокола пакета задается значение 89, что говорит об использовании OSPF .

Содержит:

  • тип пакета;
  • идентификатор маршрутизатора (Router ID);
  • идентификатор области (area 0);
  • другие параметры.

Идентификатор устройства ( Router ID ), по сути, является IP -адресом одного из интерфейсов маршрутизатора.

Данные пакета OSPF зависят от типа пакета. Так пакет приветствия Hello включает:

  • маску сети или подсети;
  • интервалы времени рассылки пакетов (Hello Interval), интервал простоя (Dead Interval);
  • приоритет маршрутизатора;
  • идентификаторы назначенного (главного, определяющего) маршрутизатора (Designated Router - DR ) и запасного назначенного маршрутизатора (Backup Designated Router - BDR ) данной области;
  • список соседних устройств, содержащий идентификаторы соседей.

Для формирования смежности необходимо, чтобы маршрутизаторы работали в сети одного типа, и у соседних устройств должны быть одинаковы:

  1. Период времени обмена Hello-пакетами (Hello Interval).
  2. Период времени простоя (Dead Interval), по истечению которого связь считается потерянной, если за это время не было получено ни одного Hello-пакета.

Выбор назначенного (главного) маршрутизатора области сети (Designated - DR ) и запасного назначенного маршрутизатора сети (BDR ), производится в сетях с множественным доступом. В сетях " точка-точка " этот механизм не используется. В сегменте сети с множественным доступом, несколько маршрутизаторов связаны между собой. Поскольку каждый маршрутизатор должен установить полное отношение смежности со всеми соседними маршрутизаторами и обменяться информацией о состоянии связи всех соединений, то, например, при 5 маршрутизаторах необходим обмен десятью состояниями связи. В общем случае для n маршрутизаторов должно быть n*(n-1)/2 обменов, на что должны быть выделены дополнительные ресурсы, прежде всего, полоса пропускания .

Если в сети выбран назначенный маршрутизатор области (DR ), то маршрутизатор , первым обнаруживший изменение в сети, посылает информацию об изменениях только маршрутизатору DR , а тот в свою очередь , рассылает LSAs всем другим OSPF маршрутизаторам области, по адресу 224.0.0.5. Это сокращает количество обменов модификациями в сети. Если маршрутизатор DR выходит из строя, то его функции начинает выполнять запасной назначенный маршрутизатор области сети BDR .

Выбор DR и BDR происходит на основе сравнения приоритетов маршрутизаторов. По умолчанию приоритет всех маршрутизаторов равен 1. Значение приоритета может быть любым от 0 до 255. Маршрутизатор с приоритетом 0 не может быть избранным DR или BDR . Маршрутизатор с самым высоким OSPF приоритетом будет отобран как DR маршрутизатор . Маршрутизатор со вторым приоритетом будет BDR .

Когда не задано никаких дополнительных параметров и приоритет одинаков, выбор DR и BDR происходит на основе идентификаторов (ID ) маршрутизаторов.

Идентификатор маршрутизатора (ID) может быть задан администратором по команде:

Router(config)#router ospf № процесса Router(config-router)#router-id ip-адрес

У данной команды наивысший приоритет назначения идентификатора маршрутизатора.

Если идентификатор не задан администратором, то протокол OSPF автоматически выбирает в качестве ID адрес одного из интерфейсов с наибольшим значением. Маршрутизатор с высшим значением идентификатора ID становится DR . Маршрутизатор со вторым наибольшим значением идентификатора ID становится BDR .

Поскольку на интерфейсах используются разъемы, то они являются ненадежными элементами сети. Для повышения надежности работы DR на маршрутизаторах формируют виртуальные логические интерфейсы loopback . OSPF использует адрес интерфейса loopback как ID маршрутизатора, независимо от значения адресов других интерфейсов. Маршрутизатор , на котором сформировано несколько интерфейсов loopback , использует самое большое значение адреса интерфейса loopback в качестве ID маршрутизатора. Таким образом, выбор DR и BDR происходит на основе сравнения адресов интерфейсов loopback .

После выбора, DR и BDR сохраняют свои роли , даже если к сети добавляются маршрутизаторы с более высоким приоритетом до тех пор, пока маршрутизаторы не будут переконфигурированы.

Создание интерфейса loopback производится по команде interface loopback , например:

Router(config)#interface loopback 0 Router(config-if)#ip address10.1.1.1 255.255.255.255

Интерфейс loopback должен формироваться с маской подсети на 32 бита - 255.255.255.255 . Такая