Кратко

  • RFC 2154 прикрепляла постоянную подпись к каждой LSA и распространяла сертифицированный ключ маршрутизатора в Public Key LSA.
  • Сертификат ограничивал Router ID, роль и разрешённые диапазоны, но не наблюдал существование канала, честность метрики или доступность назначения.
  • Для эксплуатационного вывода нужны отдельные записи о корне доверия, поколении ключа, актуальности LSA, разрешении, подтверждении, SPF, FIB и измеренной доставке.

Печать сохранилась, а стойка оказалась пустой

LSA проходит через несколько маршрутизаторов, сохраняя подпись источника. Каждый проверяет те же защищённые байты. В конце объявленной stub-ветви оператор видит пустую стойку. Криптография сработала: она точно указала автора неверного утверждения.

Такова граница RFC 2154, опубликованной как Experimental в июне 1997 года. Обычная криптографическая аутентификация OSPFv2 защищала пакеты между соседями. Предложение подписывало каждую LSA внутри Link State Update, чтобы доказательство Advertising Router следовало вместе с данными маршрутизации.

Успешная проверка подтверждала происхождение и отсутствие изменений при flooding. Она не подтверждала, что источник правильно описал сеть.

У ключа тоже должна быть история

Один открытый ключ не доказывает Router ID: любой участник может заявить чужое имя. Поэтому появилась Router Public Key LSA — PKLSA. Trusted Entity подписывала сертификат с идентификатором, ролью, разрешёнными диапазонами, временем создания, алгоритмом и ключом. Получатель проверял подпись TE и самого маршрутизатора; любой сбой означал discard.

Ключ TE устанавливался вне OSPF. PKLSA должна была быть текущей. LSA, пришедшая раньше ключа, могла ждать только MAX_TRANSIT_DELAY. Новый сертифицированный ключ заменял старый, требовал переобъявить LSA и вывести старые подписи из LSDB.

Разрешённые диапазоны сужали пространство утверждений, но сертификат не видел интерфейс, не одобрял метрику и не доказывал существование хоста. Это запись о происхождении полномочия подписи, а не датчик топологии.

MaxAge отделял старение от отзыва

LS Age меняется при распространении и обычно не входил в подпись. Исключение — LSA, которую источник создавал сразу с MaxAge: тогда возраст подписывался, чтобы только автор мог инициировать подписанный flush. Осиротевшая LSA всё равно старела локально и удалялась в каждой LSDB отдельно, медленнее стандартного синхронного удаления.

Подписанные и неподписанные области могли соседствовать, но не смешивали форматы внутри одной area. На границе ABR создавал новый summary от собственного имени. Первая подпись не переносила авторитет на новую проекцию.

Документ сам описал правильно подписанную ложь

Раздел 9 допускает, что внутренний маршрутизатор объявит неверную метрику, назовёт отключённый канал активным или создаст несуществующую stub-сеть и host route. Для ложного transit-link SPF часто требует соответствующее объявление другой стороны; у stub нет второго конца для проверки.

ABR способен выпускать ложные Summary LSA о других областях. Перекрёстная проверка обсуждалась, но не вошла в дизайн из-за стоимости. ASBR может создавать неверную внешнюю информацию, а в AS нет равнозначного механизма, который разрешал бы полный набор внешних сетей.

Подпись помогает установить источник после обнаружения противоречия, но не гарантирует само обнаружение. Передача данных вне scope RFC 2154: проверенная LSA может пройти корректный SPF и установить next hop, который теряет пакеты.

Девять квитанций вместо одного статуса

Нужно связать ключ TE и его установщика; сертификат, роль и диапазон; поколение ключа; идентичность, sequence и hash LSA; замену и возраст; одобрение изменения; свидетельство второго конца или телеметрию; поколение LSDB и решение SPF; RIB/FIB; затем data-plane probe и результат приложения.

RFC Editor, Datatracker и история фиксируют статус Experimental; errata исправляет лишь опечатку. RFC 2328 даёт контекст OSPFv2. RFC 6039 позже сообщила об отсутствии опыта развёртывания, а RFC 6863 отделила защиту routing data от replay пакетов. RFC 7474 решала иную задачу — свежесть после перезапуска. Просроченный индивидуальный draft критиковал insider-атаки, но не стал позицией IETF.

Running-Code Primacy, Minimum Initial Specification и Reality Layers используются как явно обозначенные редакционные линзы, а не требования RFC 2154.

Источники