OSPF LSA в картинках

в 0:51, , рубрики: Без рубрики

Тема протокола динамической маршрутизации OSPF уже не раз поднималась на хабре. Однако вопрос о том что такое LSA и какие они бывают, как мне кажется, недостаточно прозрачен. И я хотел бы рассказать об этом без привязки к конкретному производителю и консольным командам.

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

Итак:

LSA type 1 — “кусочки с маршрутизаторами”

каждый маршрутизатор сообщает свой уникальный “router-id”, и подробный список интерфейсов.
для каждого интерфейса указывается:
IP адрес (если есть***)
тип интерфейса
“router-id” с которым установлено состояние смежности на это интерфейсе.
image
Если смежность(adjacencies) на интерфейсе не установлена, то в поле для “router-id” записывается маска сети для IP адреса и эту сторону кусочка можно считать “плоской” (дольше роутеров нет).

Если тип линка — точка-точка или виртуальное соединение, то теперь нужно найти другой кусочек, с известным “router-id” посредине и совместить соответствующие соединения.
image
Если тип интерфейса — Broadcast или NBMA (сеть множественного доступа), то на другом конце может быть много разных маршрутизаторов и тут нам становится необходимы

LSA type 2 — “кусочки с сетями”

В сетях с множественным доступом (а обычный ethernet как раз к таким и относится, маршрутизаторы выбирают из своего числа “управляющего” (DR), с которым и устанавливают отношения смежности****. Так вот, каждый такой “управляющий” рассылает сообщения которые можно нарисовать так:
image
в середине IP адрес DR в этой сети с маской, и полный список подключённых маршрутизаторов. Заполняем пробелы:
image
Вот и всё, теперь повторяя шаги из рисунков 2 и 4, маршрутизатор собирает из кусочков полную топологию сети и может запустить SPF алгоритм. После завершения расчётов ему известны оптимальные пути ко всем маршрутизаторам и сетям.
Пазл с топологией Area мы уже сложили. Но т.к. IP сеть не всегда ограничивается только одной Area и протоколом OSPF, то LSA ещё не закончились.

LSA type 3 — “маршруты в другую область"*****

эту составляющую нарисуем как зелёный квадратик прицепленый к маршрутизатору, с информацией о сети из другой Area и стоимости соединения. Маршрутизатор к которому мы их подсоединяем — называется ABR. Интерфейсы к которым цепляем “рамочку” не указываются, т.к. они принадлежат другой области.

LSA type 5 — “маршруты других доменов маршрутизации”

аналогично предыдущей можно представить как оранжевый квадратик прицепленый к маршрутизатору, с информацией о том в какие сети он может посылать пакеты независимо от протокола OSPF. Маршрутизатор который рассылает такие LSA — называется ASBR.
image

LSA type 4 — длинный хвост.

что делать если маршрутизатор к которому надо прицепить сети из предыдущего пункта находится в другой Area? Специально для этого, устройства находящиеся на границе 2х Area передают не только “LSA type 3” но и “LSA type 4” в которых анонасируют, обо всех известных маршрутах к ASBR из других Area, и их стоимость. Нарисуем такой ASBR зелёным цветом. Особо интересный случай рассмотреный в этой статье, можно изобразить как оранжевый квадратик прицепленый к зелёному.

Получается, что на последнем рисунке:
синие маршрутизаторы с интерфейсами это LSA type 1
облачко с префиксом — LSA type 2
зелёные квадратики — LSA type 3
оранжевые квадратики это LSA type 5
зелёный роутер — LSA type 4
зелёные и оранжевые соеденительные линии несут информацию о стоимости соответвующего соединения.
маршрутизаторы y.y.y.y и z.z.z.z — ABR (в них входят зелёные линии)
маршрутизаторы k.k.k.k и w.w.w.w — ASBR (в них входят оранжевые линии)

LSA type 6 — на самом деле нигде и никем не используется, и основными вендорами не реализована. Поэтому пропускаем.

LSA type 7 — фактически полный аналог LSA type 5 для NSSA типов Area. При пересечении границы Area, в них и превращаются.

Остальные LSA с ИП маршрутами вобщем-то не связаны, поэтому их рассматривать не буду.

Маленький итог:

SFP процес который производит расчёт стоимости маршрутов алгоритмом Дейкстры — запускается только при изменениях в LSA 1 или 2 (обязательно при любых их изменениях).
Стоимость к маршрутам анонсируемым в других LSA получается простым сложением стоимости до ABR/ASBR и метрик зелёных и/или оранжевых “линков”.
Маршрутизатор может быть ABR и ASBR одновременно.

Когда “пазл” не складывается?

Достаточно часто бывает ситуация, когда из всех имеющихся кусочков — целостной картины не сложить. Это связано с тем что в Link State протоколах нет способа моментально отбросить “исчезнувший” ЛСА.
Рассмотрим последний рисунок.
Например, на роутере y.y.y.y упал интерфейс в сторону b.b.b.d (серого облака). Тогда y.y.y.y генерирует новый LSA типа1 (с тем же самым ID, но бо’льшим порядковым номером), где отключившегося интерфейса уже нет. z.z.z.z устанавливает в LSDB новый LSA, пересчитывает таблицу маршрутизации… Но всё ещё хранит в памяти все LSA полученые от g.g.g.g, m.m.m.m и k.k.k.k, связь с которыми уже потеряна. т.е. остались лишние кусочки. Аналогично, если вдруг у маршрутизатора поменяется “router-id”, то все остальные некоторое время хранят 2 копии LSA: со старым и с новым ID.
У каждого маршрутизатора имеется “router-id” и он обязательно должен быть уникальный. Что произойдёт если будут дубликаты — зависит от вендора и настроек, но одно можно утверждать уверенно — будут проблемы. Как самый простой пример: 2 маршрутизатора транслируют взаимоисключающие LSA; остальные будут устанавливать LSA с большим порядковым номером, а сети подключённые к другому устройству будут потеряны и недоступны. Это можно сравнить с потерей кусочка пазла.
Аналогично, не должно быть DR c одинаковыми IP адресами.

Смею надеяться, что сообщество найдёт такой стиль изложения интересным.

  1. — Link State Advertisement. LSA это элементы списка смежности для графа сети, сам этот список называется LSDB (Link State Database)
  2. — на самом деле, только тех Area к которым принадлежит
  3. — если интерфейс “Unnambered” или “Virtual Link” то передаётся просто его номер.
  4. — получается как будто все маршрутизаторы сегмента напрямую подключены к DR, а стоимость линков у DR нулевая.
  5. -Область=Area — это кусочек нашего OSPF домена маршрутизации, в каждом таком кусочке топология расчитывается независимо.

Автор: Ovsiannikov

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js