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