Перейти к содержанию

OSPF

Кратко

  • Работает поверх IP, номер протокола 89
  • Технология Link-State (состояние канала): каждый маршрутизатор следит за состоянием своих интерфейсов и собирает информацию об общей топологии сети.
  • Алгоритм Дейкстры (SPF): используется для расчета безальтернативно кратчайшего пути до каждой подсети.
  • LSA (Link-State Advertisements): пакеты объявлений о состоянии каналов, которыми обмениваются маршрутизаторы для построения единой базы данных топологии (LSDB).
  • Зоны (Areas): сеть делится на логические сегменты (начиная с обязательной базовой зоны Area 0), чтобы снизить нагрузку на процессоры и уменьшить объем служебного трафика в крупных сетях.
  • Соседские отношения - понял с кем он(роутер) связан
  • Каждый роутер после того, как понял с кем связан, создаёт некую структуру данных, в OSPF это называется LSA(Link-State Advertisement)
  • Отправка своей lsa непосредственным соседям
  • Сохранение полученных lsa в LSDB - Link-State Database
  • Переотправить полученные lsa дальше, своим соседям - flooding lsa Flooding lsa - останавливается тогда, когда у роутеры уже есть эта lsa в lsbd, то есть он получает один lsa и дальнейшие отбрасывает.
  • Каждый строит своё дерево (SPF)
  • Запись маршрутов в Routing Table

Это информационный пакет или объявление о состоянии канала, с помощью которого маршрутизаторы делятся друг с другом данными о топологии сети, подключенных интерфейсах, стоимости путей и соседям. На основе этих сообщений каждый узел строит единую карту сети в базе данных LSDB.

Состав LSA
  • Список связей
  • RouterID
  • Sequence-number - при каждом изменение в сети, каждый роутер создаёт новую lsa, и отправяля новый lsa своим соседям увеличивает Sequence-number на еденицу, соседи, получая новый lsa сравнивают Sequence-number и у кого будет более большее значение, тот lsa и остаётся в lsbd, так как он считается более свежим
  • Age (возраст) от 0 до 3600 секунд - при создание новой lsa каждый роутер отправляет с возраст 0 и постепенно этот возраст растёт на каждом роутере. При достижение максимального возраста эта lsa удаляется из базы lsdb. Если на роутере стала недопуступна сеть, для которой он раньше уже отправлял lsa, то он генерит новый lsa отправялет его с тем же самым sequence-number только ставит возраст 3600, и каждый роутер, получая такую lsa удаляет её из lsdb. Обратная ситуация, если с префиксом всё хорошо, то каждый роутер не дожидается таймера 3600 секунд, чтобы все соседи удалили этой lsa из lsdb, а генерит новый lsa в Juniper по умолчанию каждые 50 минут,в Cisco каждые 30 минут, то есть за 10-30 минут до окончания таймера, и отправляет этот lsa всем соседям.
Типы LSA
  • LSA1 - Router описываются список связей, генерируется каждым роутером, живут внутри одной области. Является внутренней сетью по отношению к ospf и preference будет 10
  • LSA2 - Virtual link описывает DR, то есть сам DR рассказывает про себя всем остальным внутри своей области, для всех он является virtual link
  • LSA3 - Summary описываются подсети между областями, генерируется ABR(Area Border Router). Является внутренней сетью по отношению к ospf и preference будет 10
  • LSA4 - Summary ASBR(Autonomous System Boundary Router) описывается путь к ASBR, как до него добраться и через кого, генерируется ABR между областями.
  • LSA5 - External описывается внешняя сеть, которая находится за ASBR, генерируется ASBR и рассылается по всем областям. Является внешней сетью по отношению к ospf и preferrence будет 150
  • LSA6 - Multicast OSPF, сейчас не испольузется, но планировалось ее использовать для мультикаста
  • LSA7 - для NSSA области
  • LSA8 - Внешние атрибуты, предназначался, чтобы передавать атрибуты BGP, но по итогу не реализован, в OSPFv3 этот номер LSA занят для Link-LSA
  • LSA 9-11 -Opaque(мутные), используются для разных протколов, но в основном испоьзуются для RSVP-TE, ему нужно знать всю топологию сети для постороение туннелей

Это база данных о состоянии каналов связи, которая хранит полную карту топологии сети в оперативной памяти. Она собирается из специальных сообщений — LSA (Link State Advertisement), которые маршрутизаторы передают друг другу.

SPF (Shortest Path First — «сначала кратчайший путь»)

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

Виды пакетов OSPF

  1. Hello - 224.0.0.5, как только включается ospf на портах роутера он начинает флудить в эти порты на адрес мультикаста hello пакеты, и все роутеры обязаны слушать этот адрес на всех портах, где включен оспф Hello interval - 10 sec, Dead Interval - 40 sec ( по умолчанию) - эти интервалы релеванты только при уже установленном соседстве, роутеры каждые 10 секунд посылают hello пакеты и одноверменно запускают таймер - 40 сек, при получение ответа на hello пакет таймер dead сбрасывается
  2. Database Description (DD) - карткое описание lsdb, ip mtu - роутеры в картце рассказывают друг другу какие сети им известны, чтобы понять синхронная ли у них lsdb или нет
  3. Link-state Request - дальше роутеры понимают каких lsa нет в их lsdb и отправляют пакет link-state Request как раз, запрашивая нужные lsa
  4. Link-state update - содеражит lsa, отпарвляет их соседу, который запросил данные lsa, может содержать несколько lsa в одном пакете
  5. Link-state ACK - как только роутер отправил пакет Link-state update он запускает таймер 5 сек в течение этого времени он ждёт, что роутер, которому был отправлен этот апдейт вернёт потдверждение, что он получил этот апдейт - Link-state ACK, если роутер не получил потдверждение в течение 5 секунд, то будет отправлять пакет update снова, пока не получит подтверждения

Установление соседства

  1. Изначальное состояние Down - ничего не происходит
  2. Init - допустим, мы устанавливаем соседство между двумя роутерами, первый роутер начал флудить hello-пакеты на multicast 224.0.0.5
Состав hello-пакета
  • Интервалы hello и dead
  • RID

Как выбирается RID

RouterID - 4 байта Если не назначить в ручную командой - routing-options routing-id(Junos), то маршрутазитор возьмёт id с первого загрузившего интерфейса, а первый загрузившийся интерфейс это loopback, если на loopback нет никакого ip-адреса, то возьмёт ip дальше с физических интерфейсов

  • Номер Area
  • Ip-адреса DR/BDR
  • IP/Mask
  • Соседи
  1. 2Way - роутер 1 получив hello-пакет, от соседа, где есть его rid, переходит в состояние 2Way, то есть двухстороняя связь и отпарвляет такой же hello-пакет c RID роутер 2, роутер 2, получив пакет, где есть его rid переходит так же в состояние 2Way. При типе сети broadcast роутеры будут зависать в состояние 2Way для выбора DR/BDR, по умолчанию выборы длятся 40 секунд.
  2. ExStart/Exchange - в зависимости какой роутер является master/standby, в эти этапы как раз роутеры делятся описанием своих баз данных Database Discription, и так же здесь проверяется IP Mtu и если соседство зацикливается на этом этапе, вероятно из-за разных значений MTU
  3. Loading - в этот этап соседства проихсодит обмен Link-State Request, Link-State Update, Link-State Ack, роутеры синхронизируют LSDB.
  4. Full - соседство установлено, соседи обмениваются hello-пакетами и сбрасывают счетчик dead при получиение hello-пакета