Название: Open Shortest Path First

Уровень (по модели OSI): Сетевой

Семейство: TCP/IP

Создан в: 1988 г.

Спецификация: RFC 2328

По мере того как росла сеть Internet, росли и организации. В частности стали появляться крупные провайдеры Internet. В целях удовлетворения потребности в протоколе маршрутизации, который мог бы применяться в масштабах большой организации, IETF в 1988 году был разработан протокол IGP, получивший название открытый протокол SPF (Open Shortest Path First - OSPF) П оследняя версия протокола представлена в RFC 2328

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

  • Маршрутизация в пределах автономной системы. Протокол OSPF предназначен для использования в качестве протокола внутреннего шлюза, который применяется для передачи маршрутной информации между маршрутизаторами автономной сети.
  • Полная поддержка адресов CIDR и адресов подсетей. Протокол OSPF позволяет дополнить каждый адрес 32-битовой маской адреса, что дает возможность определить этот адрес как принадлежащий к классу, бесклассовый или относящийся к подсети.
  • Обмен аутентифицированными сообщениями. Любая пара OSPF-маршрутизаторов может проверять подлинность каждого сообщения и принимать сообщения только от источника, заслуживающего доверия.
  • Импортируемые маршруты. Протокол OSPF позволяет маршрутизатору вводить в таблицу маршруты, информация о которых получена другими способами(например, из протокола BGP).
  • Предоставление сведений о полосе пропускания. Полоса пропускания канала и задержки в нем могут быть (вручную или динамически) учтены при расчете кратчайшего маршрута к заданному узлу. Это позволяет лучше сбалансировать нагрузку на канал.
  • Поддержка сетей с многостанционным доступом . Традиционная маршрутизация с учетом состояния каналов в сети с многостанционным доступом, такой как Ethernet, малоэффективна, поскольку широковещательная рассылка о состоянии каналов выполняется всеми маршрутизаторами, подключенными к сети. Протокол OSPF позволяет устранить этот недостаток, назначив для широковещательной рассылки по сети один маршрутизатор.

Два этапа построения таблицы маршрутизации

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

На первом этапе каждый маршрутизатор строит граф связей сети, в котором вершинами графа являются маршрутизаторы и IP-сети, а ребрами - интерфейсы маршрутизаторов. Все маршрутизаторы для этого обмениваются со своими соседями той информацией о графе сети, которой они располагают к данному моменту. Сообщения, с помощью которых располагается топологическая информация, называются объявлениями о состоянии связей сети( Link State Advertisement, LSA). Кроме того, при передаче топологической информации OSPF маршрутизаторы ее не модифицируют, а передаю в неизменном виде. В результате все маршрутизаторы сети располагаю идентичными сведениями о графе сети которые хранятся в базе данных о топологии сети.

Второй этап состоит в нахождении оптимальных маршрутов с помощью полученного графа. Задача нахождения оптимального пути на графе является достаточно сложной и трудоемкой. В протоколе OSPF для ее решения используется итеративный алгоритм Дейкстры. Каждый маршрутизатор считает себя центром сети и ищет оптимальный маршрут до каждой известной ему сети. В каждом найденном таким образом маршруте запоминается только один шаг – до следующего маршрутизатора, в соответствии с принципом одношаговой маршрутизации. Данные об этом шаге и попадают в таблицу маршрутизации. Если несколько маршрутов имеют одинаковою метрику до сети назначения, то в таблице маршрутизации запоминаются первые шаг всех этих маршрутов.

Сообщения HELLO и корректировка таблиц маршрутизации

Для того чтобы база данных о топологии сети соответствовала текущему состоянию сети OSPF - маршрутизаторам необходимо постоянно отслеживать изменения состояния сети и вносить по необходимости коррективы в таблицу маршрутизации. Для контроля состояния связей и соседних маршрутизаторов OSPF-маршрутизаторы регулярно передают друг другу сообщения HELLO. Сообщения HTLLO передаются каждые 10 секунд, чтобы повысить скорость адаптации маршрутизаторов к изменениям, происходящих в сети. Небольшой объем этих сообщений делает возможным такое частое тестирование состояния соседей и связей с ними. На основании принимаемых от непосредственных соседей сообщений HELLO маршрутизатор формирует записи о состоянии связей со своими непосредственными соседями в базе данных о топологии сети.

В том случае, когда сообщения HELLO перестают поступать от какого-либо непосредственного соседа, маршрутизатор делает вывод о том, что состояние связи изменилось с работоспособного на неработоспособное и делает соответствующую отметку в своей базе данных. Одновременно он отсылает всем непосредственным соседям объявления LSA об этом изменении, и те так же корректируют свои базы данных и, в свою очередь рассылают данное объявление LSA своим соседям(естественно, кроме того соседа, от которого оно было получено). После корректировки графа сети каждый маршрутизатор заного ищет оптимальные маршруты и корректирует свою таблицу маршрутизации. Конвергенция таблиц маршрутизации к новому стабильному состоянию происходит очень быстро, это время состоит из времени передачи сообщения LSA и времени работы алгоритма Дейкстры для нахождения новых маршрутов. Аналогичный процесс происходит и в том случае, когда в сети появляется новый сосед, объявляющий о себе с помощью своих сообщений HELLO, или новая связь. Если же состояние сети не меняется, то объявления о связях не генерируются и таблицы маршрутизации не корректируются, что экономит пропускную способность сети и вычислительные ресурсы маршрутизаторов. Однако у этого правила есть исключение: каждые 30 минут OSPF-маршрутизаторы обмениваются всеми записями базы данных топологической информации, то есть синхронизируют их для более надежной работы сети. Так как этот период достаточно большой, то данное исключение незначительно сказывается на работе сети.

Области OSPF

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

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

На рисунке приведен пример выделения областей маршрутизации при OSPF-маршрутизации в пределах автономной системы.

На рисунке М - маршрутизаторы, С - сети. Маршрутизаторы М4 и М2 выполняют функция опорной сети для других областей. В выделенных областях может быть любое число маршрутизаторов. Более толстыми линиями выделены связи с другими автономными системами.

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

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

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

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

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

Типы сетей, поддерживаемые протоколом OSPF

  • Широковещательные сети со множественным доступом (Ethernet, Token Ring)
  • Точка-точка (T1, E1, коммутируемый доступ)
  • Нешироковещательные сети со множественным доступом (NBMA) (Frame relay)
  • Виртуальные каналы (virtual links)

Выделенный маршрутизатор (DR) и резервный выделенный маршрутизатор (BDR)

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

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

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

Форматы пакетов

© Государственный университет телекоммуникаций им. проф. М. А. Бонч-Бруевича
2008 год.