Расчет полосы пропускания сети ospf. Исследуем дыры в OSPF. Работа 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 и суммирования маршрутов. Все зоны подключаются к магистральной зоне.

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

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

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

Открытый протокол, базирующийся на алгоритме поиска наикратчайшего пути (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), или через конфигурацию.

OSPF (Open Shortest Path First) протокол динамической маршрутизации

Типы пакетов OSPF:

- Hello - Формирование и поддержание смежности между маршрутизаотрами
- DBD - Database Description, краткой содержание базы link-state, принимающий проверят свою базу
- LSR - Link-State Request, принимющий может запросить более подробную информацию
- LSU - ответ на LSR, анонсирование новой информации (LSU содержит 7 типов LSA), LSA (Link State Advertisement) - содержит информацию о соседях и стоимости пути до них
- LSAck - подтверждение приема LSU
Hello intervals :
Передаются каждые 10 сек в multiaccess и point-to-point сетях, 30 сек в NBMA.
Dead intervals :
По умолчанию 4 hello, multiaccess и point-to-point - 40 сек, 120 сек в NBMA.

Для построения SPF дерева используется алгоритм Дейкстры (Dijkstra), SPF дерево используется для заполнения таблицы маршрутиазции.

Адимнистративное растояние OSPF - 110
OSPF безклассовый протокол , маска подсети используется.

Включение OSPF на маршрутизаторе:

# R(config)# router ospf 10

# R(config-router)# network 10.10.10.0 0.0.0.255 area 0

0.0.0.255 - wildcard mask
area 0, к примеру все роутеры в одной area 0 (в этой области маршрутизаторы обладают общей link-state информацией).

В multi-access сетях маршрутизаторы выбирают DR (designated router - выделенный маршрутизатор) и BDR маршрутизаторы (резервные), смежность формируется с DR и BDR маршрутизатором, только DR отсылает информацию.

DR и BDR принимают и передают LSA, остальные маршрутизаторы становятся DROther.

DR пересылает LSA на multicast адрес 224.0.0.5
DROthers пересылают LSA на multicast адрес 224.0.0.6
Выборы DR и BDR не происходят в сетях point-to-point.
Маршрутизатор с самым старшим приоритетом становится DR (второй приоритет BDR), если приоритеты одинаковые, то по старшему Router id.

Router id выбирается:
1. Использовать ip при введение команды router-id
2. Если 1-е не используется, выбирается старщий ip на loopback интерфейса
3. Если не сконфигурирован loopback , используется старший на физическом интерфейсе
Интерфейс может не использовать в процессе OSPF

Регулировать приоритет можно командой: # ip ospf priority interface {0-255}
0 - маршрутизатор никогда не будет DR
1 - по умолчанию, выбирается по Router id

Для распространения маршрута по умолчанию используется команда:
# default-information originate

Для каналов более 100 mbit, можно задать пропускную способность:
# R(config-router)#auto-cost reference-bandwidth 10000

Модификация таймеров:

# R (confif-if)# ip ospf hello-interval seconds
# R (confif-if)# ip ospf dead-interval seconds

Интервалы должны совпадать у соседей!!!

OSPF использует cost как метрику для опредления лучших маршрутов, вычисляется:
cost = 10 ^ 8 / bandwidth

Изменить bandwidth можно командой:

# auto-cost reference-bandwidth

Узнать реальную полосу пропускания show interface
С обоих сторон необходимо конфигурировать одинаковую полосу пропускания, с помощью командны Bandwidth

# interface se0/0/0
# bandwidth 64

(cost = 10 ^ 8 / 64000 = 1562)

Или явно

# interface se0/0/0
# ip ospf cost 1562

Проверка OSPF:

# show ip protocols

Можно узнать
- ospf process id
- router id
- сети
- административное растояние

# show ip ospf

Можно узнать
- ospf process ID
- router ID
- OSPF area
- время последней работы SPF алгоритма
- SPF планировщик

Проверить Hello и Dead интервалы

# show ip ospf interface # show ip route

"O" в начале маршрута указывает на то, что используется OSPF

Посмотреть соседей.

А сейчас вкратце пробежимся по теории.

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

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

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

  • Увеличение скорости сходимости;
  • Поддержка сетевых масок переменной длины (VLSM);
  • Достижимость сети;
  • Использование пропускной способности;
  • Метод выбора пути.

Теория

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

  • Объявление о состоянии канала (link-state advertisement, LSA) - объявление описывает все каналы маршрутизатора, все интерфейсы и состояние каналов.
  • Состояние канала (link state) - состояние канала между двумя маршрутизаторами; обновления происходят при помощи пакетов LSA.
  • Метрика (metric) - условный показатель «стоимости» пересылки данных по каналу;
  • Автономная система (autonomous system) - группа маршрутизаторов, обменивающаяся маршрутизирующей информацией с помощью одного протокола маршрутизации.
  • Зона (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. Новые отношения соседства должны быть сформированы и, пока базы данных маршрутизаторов не синхронизируются с базой данных нового DR, сеть будет недоступна для пересылки пакетов. Для устранения этого недостатка выбирается BDR.
  • Резервный выделенный маршрутизатор (backup designated router, BDR) . Каждый маршрутизатор сети устанавливает отношения соседства не только с DR, но и BDR. DR и BDR также устанавливают отношения соседства и между собой. При выходе из строя DR, BDR становится DR и выполняет все его функции. Так как маршрутизаторы сети установили отношения соседства с BDR, то время недоступности сети минимизируется.

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

  1. Маршрутизаторы обмениваются hello-пакетами через все интерфейсы на которых активирован OSPF . Маршрутизаторы разделяющие общий канал передачи данных становятся соседями, когда они приходят к договоренности об определенных параметрах указанных в их hello-пакетах.
  2. На следующем этапе работы протокола маршрутизаторы будут пытаться перейти в состояние соседства со своими соседями. Переход в состояние соседства определяется типом маршрутизаторов обменивающихся hello-пакетами и типом сети по которой передаются hello-пакеты. OSPF определяет несколько типов сетей и несколько типов маршрутизаторов. Пара маршрутизаторов, находящихся в состоянии соседства синхронизирует между собой базу данных состояния каналов.
  3. Каждый маршрутизатор посылает объявление о состоянии канала маршрутизаторам с которыми он находится в состоянии соседства.
  4. Каждый маршрутизатор получивший объявление от соседа записывает информацию передаваемую в нем в базу данных состояния каналов маршрутизатора и рассылает копию объявления всем другим своим соседям.
  5. Рассылая объявления через зону, все маршрутизаторы строят идентичную базу данных состояния каналов маршрутизатора.
  6. Когда база данных построена, каждый маршрутизатор использует алгоритм кратчайший путь первым для вычисления графа без петель, который будет описывать кратчайший путь к каждому известному пункту назначения с собой в качестве корня. Этот граф это дерево кратчайшего пути.
  7. Каждый маршрутизатор строит таблицу маршрутизации из своего дерева кратчайшего пути.

В сетях со множественным доступом отношения соседства должны быть установлены между всеми маршрутизаторами. Это приводит к тому, что рассылается большое количество копий LSA. Если, к примеру, количество маршрутизаторов в сети со множественным доступом равно n , то будет установлено n(n-1)/2 отношений соседства. Каждый маршрутизатор будет рассылать n-1 LSA своим соседям, плюс одно LSA для сети, в результате сеть сгенерирует n? LSA.

Маршрутизатор, выбранный DR или BDR в одной присоединенной к нему сети со множественным доступом, может не быть DR (BDR) в другой присоединенной сети. Роль DR (BDR) является свойством интерфейса, а не свойством всего маршрутизатора.

Таймеры протокола

  • HelloInterval - Интервал времени в секундах по истечению которого маршрутизатор отправляет следующий hello-пакет с интерфейса. Для широковещательных сетей и сетей точка-точка значение по умолчанию, как правило, 10 секунд. Для нешироковещательных сетей со множественным доступом значение по умолчанию 30 секунд.
  • RouterDeadInterval - Интервал времени в секундах по истечению которого сосед будет считаться «мертвым». Этот интервал должен быть кратным значению HelloInterval. Как правило, RouterDeadInterval равен 4 интервалам отправки hello-пакетов, то есть 40 секунд.
  • Wait Timer - Интервал времени в секундах по истечению которого маршрутизатор выберет DR в сети. Его значение равно значению интервала RouterDeadInterval.
  • RxmtInterval - Интервал времени в секундах по истечению которого маршрутизатор повторно отправит пакет на который не получил подтверждения о получении (например, Database Description пакет или Link State Request пакеты). Это интервал называется также Retransmit interval. Значение интервала 5 секунд.

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

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

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

Магистральный маршрутизатор (backbone router) - маршрутизатор у которого всегда хотя бы один интерфейс принадлежит магистральной зоне. Определение похоже на пограничный маршрутизатор, однако магистральный маршрутизатор не всегда является пограничным. Внутренний маршрутизатор интерфейсы которого принадлежат нулевой зоне, также является магистральным.

Пограничный маршрутизатор автономной системы (AS boundary router, ASBR) - обменивается информацией с маршрутизаторами принадлежащими другим автономным системам. Пограничный маршрутизатор автономной системы может находиться в любом месте автономной системы и быть внутренним, пограничным или магистральным маршрутизатором.

Типы объявлений о состоянии канала (LSA)

Type 1 LSA - Router LSA - объявление о состоянии каналов маршрутизатора. Эти LSA распространяются всеми маршрутизаторами. В LSA содержится описание всех каналов маршрутизатора и стоимость (cost) каждого канала. Распространяются только в пределах одной зоны.

Type 2 LSA - Network LSA - объявление о состоянии каналов сети. Распространяется DR в сетях со множественным доступом. В LSA содержится описание всех маршрутизаторов присоединенных к сети, включая DR. Распространяются только в пределах одной зоны.

Type 3 LSA - Network Summary LSA - суммарное объявление о состоянии каналов сети. Объявление распространяется пограничными маршрутизаторами. Объявление описывает только маршруты к сетям вне зоны и не описывает маршруты внутри автономной системы. Пограничный маршрутизатор отправляет отдельное объявление для каждой известной ему сети.

Когда маршрутизатор получает Network Summary LSA от пограничного маршрутизатора он не запускает алгоритм вычисления кратчайшего пути. Маршрутизатор просто добавляет к стоимости маршрута указанного в LSA стоимость маршрута к пограничному маршрутизатору. Затем маршрут к сети через пограничный маршрутизатор помещается в таблицу маршрутизации.

Type 4 LSA - ASBR Summary LSA - суммарное объявление о состоянии каналов пограничного маршрутизатора автономной системы. Объявление распространяется пограничными маршрутизаторами. ASBR Summary LSA отличается от Network Summary LSA тем, что распространяется информация не о сети, а о пограничном маршрутизаторе автономной системы.

Type 5 LSA - AS External LSA - объявления о состоянии внешних каналов автономной системы. Объявление распространяется пограничным маршрутизатором автономной системы в пределах всей автономной системы. Объявление описывает маршруты внешние для автономной системы OSPF или маршруты по умолчанию (default route) внешние для автономной системы OSPF.

Type 7 LSA - AS External LSA for NSSA - объявления о состоянии внешних каналов автономной системы в NSSA зоне. Это объявление может передаваться только в NSSA зоне. На границе зоны пограничный маршрутизатор преобразует type 7 LSA в type 5 LSA.

Типы зон

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

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

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

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

Магистральная зона (backbone area)

Магистральная зона (известная также как нулевая зона (Area 0) или зона 0.0.0.0) формирует ядро сети OSPF. Все остальные зоны ДОЛЖНЫ быть соединены с ней, и межзональная маршрутизация происходит через маршрутизатор соединенный с магистральной зоной. Магистральная зона ответственна за распространение маршрутизирующей информации между немагистральными зонами. Магистральная зона должна быть смежной с другими зонами, но она не обязательно должна быть физически смежной; соединение с магистральной зоной может быть установлено и с помощью виртуальных каналов (virtual links).

Состояния OSPF соседа

Во время формирования соседских отношений OSPF роутеры (маршрутизаторы) проходят следущие состояния: Down, Attempt, Init, 2-Way, Exstart, Exchange, Loading, и Full.

Down state

Первое состояние OSPF соседа. В данном состоянии обмена Hello пакетами еще не производилось или соседские отношения развалились (состояние Full), по причине истечения RouterDeadInterval . Hello-пакеты в данном состоянии принимаются.

Attempt state

Это состояние проходят вручную прописанные в конфигурацию роутера OSPF работающего в NBMA среде (Nonbroadcast Multiple Access Network (NBMA) – среда не поддерживающая распространение multicast и broadcast трафика). В этом состоянии роутер посылает юникаст (unicast) hello-пакеты со своего unicast адреса на unicast адрес соседа.

Init state

Состояние инициализации, когда роутер получил hello пакет от соседа на один из интерфейсов OSPF, но RID получателя ещё небыл включен (вписан) в hello-пакет. Роутер вставляет RID соседа, от которого был получен hello-пакет, в свой hello-пакет как подтверждение того, что он был получен.

2Way state

В данном состоянии между роутерами установлен двунаправленный обмен, т.к. при разборе пришедшего hello-пакета содержится RID этого роутера, т.е. оба роутера получили hello-пакеты друг от друга. Именно в конце установки этого состояния в broadcast среде проиходят выборы DR и BDR если они ещё отсутствуют в Area в которой находятся интерфейсы роутера на которые были получены hello-пакеты.

В NBMA среде выборов DR и BDR не производится.

Exstart state

После выборов DR и BDR, между роутерами и DR, BDR начинается процесс обмена пакетами DBD (Database Descriptor) c информацией о состоянии каналов. В этом состоянии, роутеры и их DR и BDR устанавливают отношения master-slave . Роутер с самым большим Router ID (RID) становиться master и начинает обмен.

Exchange state

В этом состояни, OSPF роутеры обмениваются пакетами дескрипторами базы данных (DBD). Дескрипторы базы данных содержат только заголовки LSA, которые описывают содержимое всей базы данных о состоянии каналов. Каждый DBD пакет имеет номер, который увеличивается только master роутером и обязатесльно подтверждается slave`вом. Роутеры посылают link-state request пакеты и link-state update пакеты, они содержат всю LSA. Содержимое полученного DPD сравнивается с информацией содержащейся в link-state database роутера, идет поиск, имеются ли новые сведения о состоянии каналов доступных соседу.

Происходит непосредственно обмен информацией о состоянии канала. Основываясь на информации полученной через DBD, роутеры посылают link-state request пакеты о состоянии канала. Затем сосед предоставляет запрошенную link-state информацию в link-state update пакетах. Во время adjacency, если роутер принял устаревшую или отсутствующую LSA, он запрашивает эту LSA, посылая link-state request пакет. Все link-state update пакеты нуждаются в обязательном подтвеждении (acknowledgment).

Full state

В этом состоянии соседские отношения полностью установлены. Роутеры обменялись LSA и база данных, на роутерах, полностью синхронизирована. Состояние Full является нормальным состоянием для OSPF роутера.

Роутер может «застрять» в каком-то из состояний, это указывает на проблему в формировании связности (adjacency). Исключением является состояние 2Way , которое является обычным для соседей в broadcast среде. Состояние Full устанавливается только с DR и BDR. С остальными соседями в этой среде будет установлено состояние 2WAY/DROTHER.

В broadcast среде, все OSPF роутеры общаются через multicast адрес 224.0.0.5, но DR и BDR, для общения между собой, используют multicast адрес 224.0.0.6. Благодаря тому, что в broadcast среде работает multicast, определение и нахождение OSPF соседей происходит автоматически.

Посмотрело: 9780

0 В данной статье дается вводная информация о протоколе динамической маршрутизации OSPF, обсуждаются понятия автономных систем, описывается работа алгоритма Sorts Path First (SPF), предложенный Дикстрой и возможности протокола.

Введение

Открытый протокол, базирующийся на алгоритме поиска наикратчайшего пути (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.