Протокол OSPF
OSPF (Open Shortest Path First) — это протокол динамической маршрутизации, отслеживающий состояние каналов (Link-State) и использующий для нахождения оптимального пути передачи данных алгоритм Дейкстры.
Для повышения эффективности и масштабируемости OSPF поддерживает иерархическую структуру сети, разделяя её на зоны (areas), что позволяет уменьшить нагрузку на устройства и упростить управление крупными сетями. Главная зона, называемая Area 0 (или backbone, магистральная зона), связывает все остальные зоны и обеспечивает их взаимодействие.
OSPF наряду с такими протоколами как RIP, IS-IS и EIGRP является IGP (Interior Gateway Protocol) протоколом, т.е. обеспечивает маршрутизацию внутри одной автономной системы (autonomous system, AS) или сети с единой политикой маршрутизации.
Маршрутизаторы OSPF обмениваются информацией о состоянии соединений, “стоимости” передачи данных по тому или иному соединению и другой информацией со своими соседями. Обмен информацией позволяет всем участвующим маршрутизаторам выстроить карту топологии сети. Каждый маршрутизатор применяет к полученной карте алгоритм кратчайшего пути Дейкстры (SPF) для расчёта оптимального пути к каждому пункту назначения в сети.
Основные операции выполняемые протоколом OSPF:
- Маршрутизатор с настроенным OSPF отправляет приветственные (Hello) сообщения через каждый интерфейс, на котором активирован OSPF. Если маршрутизатор получает корректное приветственное сообщение на интерфейсе с OSPF, он устанавливает отношения смежности (adjacency) с другими маршрутизаторами OSPF в этой сети.
- Если интерфейс подключён к широковещательной сети, такой как Ethernet, маршрутизаторы используют пакеты Hello для выбора назначенного маршрутизатора (Designated Router, DR) и резервного назначенного маршрутизатора (Backup Designated Router, BDR) в этой сети.
- Маршрутизаторы обмениваются пакетами описания базы данных (Database Description packets). Эти пакеты содержат индекс всех объявлений о состоянии соединений (Link-State Advertisements, LSAs), которые есть в топологической базе данных маршрутизатора.
- На основе содержимого пакетов с описанием базы данных каждый маршрутизатор запрашивает LSAs, которые необходимы для обновления его топологической базы данных. Запрос выполняется с помощью пакета запроса состояния канала (Link-State Request, LSR).
- По запросу маршрутизатор отправляет обновление состояния соединения (Link-State Update, LSU), содержащее LSAs, запрошенные соседом. В ответ на каждое LSU маршрутизатор отправляет пакет подтверждения состояния соединения (Link-State Acknowledgment).
- После завершения обмена LSU маршрутизаторы становятся полностью смежными. Они продолжают обмениваться периодическими приветственными сообщениями для поддержания смежности.
- Если происходит изменение топологии, затронутые изменением маршрутизаторы передают обновлённое LSA, отражающее это изменение. Каждый маршрутизатор OSPF обновляет свою базу данных состояния каналов (Link-State Database, LSDB), распространяет новый LSA своим соседям и запускает алгоритм кратчайшего пути (Shortest Path First, SPF) для пересчёта своей таблицы маршрутизации.
- LSAs устаревают в LSDB и считаются устаревшими через 3,600 секунд (1 час). Маршрутизатор, который создал LSA, повторно распространяет его после достижения возраста ~1,800 секунд, чтобы обновить его в LSDB.