OSPF LSA4

Статья содержит информацию о значении, методе распространения и содержимом пакета OSPF тип  LSA4 – ASBR Summary.

Вводная информация

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

Но почему такой имеется только для ASBR? Почему нет никакого специального LSA для LSA1/2/5/7? Почему нельзя было сразу сделать так, чтобы не пришлось придумывать дополнительный LSA?

Ответы на этот и другие вопросы мы постараемся найти с помощью следующей GNS3-топологии:

ospf-topology-lsa4

  1. В качестве Router ID используется адрес интерфейсов Loopback 0 в формате X.X.X.X, где X – порядковый номер устройства. Так для устройства R4 Router ID будет – 4.4.4.4.
  2. IP-адреация линий связи представляет собой /24 подсети, третий октет которых указывает на номера устройств с обоих сторон линии связи типа точка-точка, а четвёртый октет равен порядковому номеру устройства. Так линия связи между устройствами R3 и R4 использовала бы подсеть – 192.168.34/24, с последним октетом .3 для R3 и .4 для R4.
  3. Устройства – Cisco 2691. Версия IOS – 12.4(15)T6, Advanced IP Services.
  4. В OSPF анонсируется информация о линиях связи. Информация о адресах Loopback-интерфейсов не анонсируется.

Инжектирование

Исходное состояние

Так как мы пытаемся исследовать поведение именно LSA4, необходимо произвести инжектирование внешней маршрутной информации в топологию OSPF.
Убедимся, что в исходном состоянии такая информацию отсутствует:

А так же проверим суммарную информацию LSDB с устройства R2:

Как видим на R4 ничего не инжектируется и на R2 мы получаем только LSA1 и LSA3.

Инжектирование внешней маршрутной информации

Создадим дополнительный петлевой интерфейс на устройстве R4 и выполним его редистрибуцию:

Проверяя с устройства R4, успешное инжектирование, будет трудно пропустить факт, что никакого LSA4 не видно(!):

А если проверить с устройства R2?

Нашлось.
Обратите внимание, что в качестве чревовещателя сообщаемся мы сами (R2) (поднялись наверх, глянули схему, вернулись обратно) и что данный LSA числится в составе LSDB только для зоны 0.
Таким образом, то что в зоне 2 никаким LSA4 не пахнет это вовсе не баг, а “так задумано”. Хорошо хоть Link State ID, сообщает кому действительно принадлежит ответственность за инжектирование внешней маршрутной информации (4.4.4.4).

Расследование

Давайте разбираться, зачем нам этот LSA4 и кто сказал, что без него не обойтись.

Начнём с обзора ранее инжектированной маршрутной информации на другом конце топологии – устройство R3, зона 1.

Мы видим в составе LSA5 всю необходимую информацию: и префикс (Link State ID: 44.0.0.4) и откуда пришло (Advertising Router: 4.4.4.4), а маршрут корректно добавлен в системную таблицу маршрутизации.

Какая роль, во всей этой корректой работе, отведена LSA4?
Давайте представим, что к нам не приходит LSA4. Достаточно ли информации из LSA5 чтобы провести SPF-калькуляцию и сформировать из графа валидный маршрут?

Мы видим,

, что по идее означает, что мы можем использовать этот IP в качестве next-hop и благодаря рекурсивному lookup это должно быть вполне рабочим.
Вот только маршрута к 4.4.4.4 у нас нет, согласно вводных данных по топологии – пункт 4, подстрока “Информация о адресах Loopback-интерфейсов не анонсируется”.

Что делать? Маршрута по умолчанию у нас тоже не имеется:

Официальный RFC2328 (страница 172, пункт 3), говорит следующее:

Т.е. мы проверяем каждый LSA5 и в составе каждой проверки, чтобы считать информацию приемлемой к обработке, выполняем проверку таблицы маршрутизации, на наличие в ней рабочего маршрута до того устройства, которое обозначено в LSA как Advertising Router.
Как мы обнаружили, ранее, такого маршрута у нас не имеется, т.е. данный LSA будет просто пропущен.

Вернёмся в нашу полноценную топологию, где LSA4 приходит и посмотрим на его содержимое:

Мы видим, что ближайший сосед сообщает о наличии у него информации о некоем “AS Boundary Router” с адресом 4.4.4.4 – так оно нам и надо! Т.е. мы можем поступить по аналогии с LSA3 – добавить к стоимости в LSA4 нашу стоимость до Advertising Router и поместить в таблицу маршрутизации, без необходимости выполнять какие-либо SPF-калькуляции.

Получается, что на случай если мы НЕ обладаем маршрутной информацией по достижению ASBR, который инжектировал префикс, мы всегда можем положиться на LSA4, который добродушно рассылается от соседей соседям в формате – “если что, я знаю как дойти до одного места, о котором ты и не догадываешься”.

Понятно, что обеспечивать логику, где LSA4 не будет объявлятся, в случае если мы анонсируем Loopback ASBR реализовать и сложно и бессмыслено, поэтому существует он всегда, когда появляется LSA5.

Не переключайте канал, это ещё не всё.

NSSA

К счастью, необходимость в LSA4 перестаёт быть сомнительной, а значит важным будет отметить одну особенность работы данного типа при инжектировании маршрутов из зоны NSSA.

Внесение изменений в топологию OSPF

Идеология будет сохранена и R4 будет производить инжектирование маршрутной информации.
Изменим тип зоны 2 на NSSA и уберём редистрибуцию.

Топология приняла следующий вид:

ospf-topology-lsa4-nssa

Убедимся, что донастройка прошла упешно и ничего лишнего на R3 не приходит:

Эмм, а что здесь, извините, делает LSA4 (Summary ASBR)?
Мы получаем какие-то LSA5 (External)?

Не получаем.
А что за LSA4 такой?

Объявляет этот LSA4 наш единственный сосед, но в качестве Link State ID указан не 4.4.4.4, а 2.2.2.2.
Происходит так по нескольким причинам:

  • при использовании NSSA зоны, автоматически считается, что из этой зоны будут приходить внешняя маршрутная информация. Поэтому объявление LSA4 происходит заранее;
  • узел ABR, одним концом смотрящий в бэкбон (area 0), а вторым в зону NSSA сам себя коронует до ASBR, так как для всей маршрутной информации поступающей из зоны NSSA выполняет трансляцию LSA7 в LSA5, указывая в роли Advertising Router именно себя.

Ну раз мы (R2) такие “сами с усами”, то наверняка и LSA4 генерируем именно мы.

Нет.

А кто? R1?

При этом генерируется он только в ненулевые зоны, так как считается, что наш ABR/ASRB одним хвостом смотрит в бэкбон, т.е. все иные участники нулевой зоны итак о нём знают.

Визуальное различие представлено на рисунке ниже:

ospf-topology-lsa4-diff

Источники

RFC2328 – OSPF Version 2

Прочее

[!] Вся предоставленная информация доступна к копированию и иным формам распространения без обязательства упоминать автора или источник. Спасибо.

SHARE: Tweet about this on TwitterShare on FacebookShare on VKShare on LinkedInShare on Google+Email this to someone
  • Спасибо за статью, не знал, что NSSA ABR становится ASBR даже без наличия LSA Type 7, и что другие ABR начинают в standard area анонсировать Type 4 про него, хоть и логично все.

    “Мы видим,

    Advertising Router: 4.4.4.4

    , что по идее означает, что мы можем использовать этот IP в качестве
    next-hop и благодаря рекурсивному lookup это должно быть вполне рабочим.

    Вот только маршрута к 4.4.4.4 у нас нет, согласно вводных данных по
    топологии — пункт 4, подстрока «Информация о адресах
    Loopback-интерфейсов не анонсируется».

    R3#show ip route 4.4.4.4
    % Network not in table
    R3#

    Нет, не так. 4.4.4.4 – это не IP, а ASBR Router ID, соответственно мы делаем не show ip route 4.4.4.4, а show ip ospf database router 4.4.4.4, видим, что ASBR не в нашей area, поэтому ищем LSA Type 4. Это легко проверить создав на R1 4.4.4.4/32 и анонсировав его в area 1 – ничего не сломается, а лучше не на R1, а добавить еще один роутер в area 1 и сделать на нем – тоже ничего не сломается

    И да, я прочитал тот параграф из RFC.

    Другое дело, если бы Forwarding Address в LSA Type 5 был бы не 0.0.0.0, тогда мы бы смотрели в show ip route 4.4.4.4, где должен быть маршрут как O или O IA.

    One more thing:
    “Т.е. мы можем поступить по аналогии с LSA3 — добавить к стоимости в LSA4
    нашу стоимость до Advertising Router и поместить в таблицу
    маршрутизации, без необходимости выполнять какие-либо SPF-калькуляции.”
    Мы не добавляем LSID из LSA Type 4 в таблицу маршрутизации.

    • Sk1f3r

      Спасибо за ваш комментарий и дополнения.