мета-данные страницы
  •  

Это старая версия документа!


OSPF

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

OSPFv2 работает поверх IP, а конкретно, он заточен только под IPv4

OSPFv3 не зависит от протоколов 3-го уровня и потому может работать с IPv6

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

Термины

  • Канал/интерфейс (link/interface) — соединение маршрутизатора и одной из подключенных к нему сетей. При обсуждении OSPF термины интерфейс и канал (link) часто употребляются как синонимы
  • Метрика (metric) — условный показатель расстояния до сети назначения
  • Стоимость (cost) — условный показатель «стоимости» пересылки данных по каналу. В OSPF зависит от пропускной способности интерфейса (bandwidth)
  • Автономная система (autonomous system) — группа маршрутизаторов, обменивающаяся маршрутизирующей информацией с помощью одного протокола маршрутизации (определение соответствует тому, как этот термин используется в протоколах IGP)

Базовые термины OSPF:

  • Идентификатор маршрутизатора (router ID, RID) — уникальное 32-битовое число, которое уникально идентифицирует маршрутизатор в пределах одной автономной системы
  • Зона (area) — совокупность сетей и маршрутизаторов, имеющих один и тот же идентификатор зоны
  • Объявление о состоянии канала (link-state advertisement, LSA) — единица данных, которая описывает локальное состояние маршрутизатора или сети. Например, для маршрутизатора LSA включает описание состояния каналов и отношений соседства. Множество всех LSA, описывающих маршрутизаторы и сети, образуют базу данных состояния каналов (LSDB).
  • База данных состояния каналов (link state database, LSDB) — список всех записей о состоянии каналов (LSA). Встречается также термин топологическая база данных (topological database), употребляется как синоним базы данных состояния каналов

Соседи OSPF:

  • Соседи (neighbours) — два маршрутизатора, интерфейсы которых находятся в одном широковещательном сегменте (и на которых включен OSPF на этих интерфейсах)
  • Отношения соседства (adjacency) — взаимосвязь между соседними маршрутизаторами, установленная с целью синхронизации информации
  • Hello-протокол (hello protocol) — протокол, использующийся для установки и поддержания соседских отношений
  • База данных соседей (neighbours database) — список всех соседей (также используется термин neighbour table)

Пакеты OSPF:

  • Hello — пакеты, которые используются для обнаружения соседей, установки отношений соседства и мониторинга их доступности (keepalive)
  • DBD — пакеты, которые описывают содержание LSDB
  • LSR — пакеты, с помощью которых запрашивается полная информация об LSA, которых недостает в LSDB локального маршрутизатора
  • LSU — пакеты, которые передают полную информацию, которая содержится в LSA
  • LSAck — пакеты, с помощью которых подтверждается получение других пакетов

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

  1. Включить OSPF на маршрутизаторе
  2. Маршрутизатор выбирает Router ID (уникальное имя маршрутизатора)
  3. Включить OSPF на интерфейсах (чтобы протокол знал о каких интерфейсах можно сообщать другим маршрутиазторам)
  4. Обнаружение соседей с помощью Hello-пакетов
    1. Маршрутизаторы обмениваются hello-пакетами через все интерфейсы, на которых активирован OSPF.
    2. Маршрутизаторы, которые находятся в одном широковещательном сегменте, становятся соседями, когда они приходят к договоренности об определенных параметрах, указанных в их hello-пакетах.
  5. Adjacency (отношения соседства, отношения смежности) это тип соседства между маршрутизаторами, по которому они синхронизируют LSDB. Установка этих отношений зависит от типа сети:
    1. Если маршрутизаторы находятся в сети с множественным доступом, они выбирают DR и выполняют синхронизацию LSDB с ним
    2. Если маршрутизаторы находятся в сети point-to-point, они приступают к синхронизации LSDB друг с другом
  6. Синхронизация LSDB. Происходит в несколько этапов. По сформированным отношениям соседства происходит обмен такими пакетами:
    1. DBD (краткое описание LSA в LSDB). С помощью этих пакетов маршрутизаторы сообщают друг другу о том, какую информацию они знают, в сокращенном виде
    2. LSR. После обмена DBD-пакетами, с помощью LSR маршрутизаторы запрашивают у соседа недостающую информацию
    3. LSU (содержит полное описание LSA). В ответ на LSR, который ему прислал сосед, маршрутизатор отправляет LSU, с полным описанием информации, которой не хватает у соседа
    4. LSAck. После получения LSU от соседа, маршрутизатор отправляет подтверждение, что он получил информацию
    5. Если оба маршрутизатора должны запросить друг у друга информацию, то эта процедура повторяется и в другую сторону.
    6. После этого, LSDB синхронизирована, а значит, полностью одинакова между соседями
  7. После синхронизации LSDB, маршрутизатор отправляет обновление далее, своим соседям в других широковещательных сегментах
  8. Рассылая объявления через зону, все маршрутизаторы строят идентичную LSDB
  9. Когда база данных построена, каждый маршрутизатор использует алгоритм SPF (shortest path first) для вычисления графа без петель, который будет описывать кратчайший путь к каждому известному пункту назначения с собой в качестве корня. Этот граф — дерево кратчайшего пути.
  10. Каждый маршрутизатор строит таблицу маршрутизации, основываясь на своем дереве кратчайшего пути.