Кратко

  • Глобально включённый LFA и даже подходящий сосед для группы маршрутов не доказывают защиту каждого префикса. В RFC 5286 допуск создаёт строгая дистанционная формула для конкретного назначения и отказа.
  • Гранулярность расчёта — часть доказательства. Для multihomed и внешних префиксов нужны originator, объявленная стоимость и правила типа маршрута; иначе агрегирование скрывает исключения.

Исключение внутри зелёной группы

Операционный интерфейс часто группирует состояние по интерфейсу или первичному next hop. Такая проекция удобна, но она не обязана совпадать с единицей расчёта. RFC 5286 говорит о запасном next hop для каждого назначения.

Для вычисляющего маршрутизатора S, соседа N и назначения D базовый критерий таков:

Distance_opt(N,D) < Distance_opt(N,S) + Distance_opt(S,D)

Если значения равны 20 и 7 + 13, строгая проверка не проходит. Равенство не исключает возврат кратчайшего пути N через S. Нельзя повысить результат до LFA из-за того, что сосед подходит большинству других префиксов.

После изменения метрики левая часть может стать 19. Тогда результат изменится вместе с топологией. Поэтому отметка «N — LFA» без списка назначений, операндов и версии LSDB не является воспроизводимым утверждением.

Почему multihomed-префикс ломает удобное сокращение

У префикса может быть несколько originator. До него нужно учитывать не только расстояние между маршрутизаторами, но и стоимость, объявленную каждым originator. Для внешних OSPF-маршрутов важны тип стоимости, ASBR и forwarding address. RFC 8518 обновляет раздел 6 RFC 5286 и формулирует явные неравенства для этих случаев.

Агрегация по первичному next hop может считать общий путь защищённым, хотя конкретное происхождение префикса меняет кандидата. Расчёт per-prefix показывает исключение, но требует больше вычислений и данных. RFC 7916 рассматривает такую гранулярность вместе с моделированием, политикой выбора, управлением активацией и мониторингом coverage.

Выбор между детализацией и стоимостью допустим. Недопустимо скрывать выбор и публиковать агрегированное число как универсальную защиту. В отчёте должны быть указаны единица расчёта и множество, на котором получен процент.

Знаменатель может означать префиксы, ссылки, узлы, primary next hops, классы назначения или объём трафика. Эти числа несопоставимы без пояснения. Кроме того, link protection, node protection и SRLG protection нельзя складывать в один результат без класса отказа.

Условия защиты различаются

Базовое неравенство даёт loop-free результат для моделируемого отказа ссылки. Более строгое downstream-условие требует:

Distance_opt(N,D) < Distance_opt(S,D)

N уже ближе к D, чем S. Это снижает риск некоторых microloop при более широком отказе, но уменьшает coverage. Безопасный алгоритм может оставить пакет без пути и отбросить его.

Для node protection путь N должен обходить первичного соседа E. Если у N несколько равностоимостных путей и один проходит через E, маршрутизатор S не может заставить N выбрать другой. Наличие безопасного варианта не является доказательством выбора.

В broadcast/NBMA-сети требуется учесть pseudonode. Кандидат может обходить E, но использовать тот же сегмент. Local SRLG добавляет общую карту, порт или другую коррелированную причину. Итоговая запись должна показывать результат каждой проверки, а не одно поле LFA.

Наконец, защита рассчитана для определённого отказа. Link-protecting alternate не получает автоматически полномочия при исчезновении узла. Два одновременных отказа могут выйти за модель. RFC 5286 предупреждает о microloop, когда реальное событие шире подготовленного набора.

От результата формулы до пакета

Полная цепочка состояния выглядит так:

настроено -> допустимо -> выбрано -> установлено -> активировано -> пересылает -> сошлось

Настройка разрешает вычисление. Допустимость связывает кандидата с назначением и топологией. Выбор применяет политику. Установка требует readback из FIB или аппаратуры. Активация связывает сигнал детектора с переходом. Пересылка требует счётчика или трассы. Сходимость завершает временный режим.

BFD может подтвердить локальное обнаружение отказа, но не существование или установку LFA. Вычисленный кандидат может не попасть в FIB из-за ресурсов или ошибки программирования. И даже фактическая пересылка по ремонту не доказывает состояние приложения.

Для аудита сохраняются: router S; area/level; digest LSDB; время; destination prefix; route type; originators; primary next hop; защищаемый ресурс; кандидат; три операнда; downstream/node/pseudonode/SRLG-проверки; причины отказа; гранулярность; политика; выбранный next hop; поколение FIB.

Сохранять отклонённых кандидатов не менее важно. Иначе позднее пустая строка выглядит произвольной. Список отказов объясняет, какая именно граница — математика, политика, риск или платформа — оставила префикс без ремонта.

Нормальное значение «нет»

RFC 6571 связывает применимость LFA с топологией. RFC 7490 предлагает remote LFA, потому что обычный физический сосед не всегда доступен, особенно в кольцах. Более поздние TI-LFA и Segment Routing предлагают иные механизмы. У каждого есть собственные требования.

Отсутствие ordinary LFA не доказывает дефект. Это может быть правильный ответ. Нельзя также считать, что поздний механизм обязательно настроен. Публичное состояние «нет допустимого alternate в этой топологии» лучше, чем зелёный статус с неописанной оговоркой.

Источники не подтверждают реализацию конкретного оператора, продукта, реальный процент, задержку или результат инцидента. Успешная формула не подтверждает FIB и forwarding. Эта статья не повторяет опубликованный тезис RFC 9855 о различии локального ремонта и восстановления сервиса; она исследует более раннюю ошибку агрегации доказательства.