Кратко

  • На APNIC 62 9 сентября Maria Matejka предупредила о чрезмерно жёсткой обработке недопустимых OTC-маршрутов в BIRD. Версии 2.20.0 и 3.4.0 были названы ожидаемыми адресатами исправления, а не подтверждённой поставкой.
  • В изученном коде BIRD 2.19.2 некоторые нарушения OTC, зависящие от роли сессии, превращаются в отзыв маршрута. Сообщение сохраняется, но обычный объект маршрута, который мог бы удержать последующий фильтр, в этом пути не создаётся.
  • Изолированная диагностическая запись не должна возвращать маршруту право на выбор или запрещённый экспорт. Ошибку формата атрибута также необходимо отличать от нарушения правил распространения.

Отказ может быть правильным, а объяснение отказа — неполным. Для сервера маршрутов это не противоречие. Он прекращает распространение объявления, но оператору ещё предстоит ответить участнику, почему объявление исчезло из доступного представления. Одна запись в журнале не всегда связывает входные данные с решением достаточно подробно.

В материалах APNIC 62 от 9 сентября Maria Matejka указала на слишком жёсткое отбрасывание недопустимых OTC-маршрутов в BIRD и ожидаемое исправление в 2.20.0 и 3.4.0. Рядом обсуждались ограничения внешнего наблюдения: сервисы видят лишь часть маршрутов, и никто не гарантирует, что другая сеть сообщит о проблеме.

Названные версии не доказывают, что исправление выпущено или установлено. Это также не новая обязательная политика APNIC. Однако предупреждение обозначает полезную границу: остановить утечку и сохранить материал для её разбора — две разные функции.

Запрет выбора не равен запрету на отдельную запись

RFC 9234, опубликованный в мае 2022 года, связывает роли BGP и OTC с допустимым направлением распространения между соседями. Не имеющий права на выбор маршрут исключается из установки в Loc-RIB и из следующей стадии выбора. OTC нельзя свести к цветной пометке, которую оператор вправе проигнорировать.

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

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

Операторский запрос появился раньше

В публичном обсуждении июня 2025 года André Grüneberg в контексте BCIX просил показывать отвергнутые по OTC маршруты в сервисе просмотра, явно обозначая их состояние. Предложенный способ хранения был запросом разработчикам, не доказательством внедрения или соответствия всем требованиям к таблицам.

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

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

Переписка историческая. Она свидетельствует о потребности и наблюдении того времени, но не о нынешней конфигурации BCIX и не о распространённости такой практики среди точек обмена.

Где меняется представление маршрута

На официальной странице загрузки, полученной 14 сентября, среди версий находились 2.19.2 и 3.3.2 с датой 30 июля. Две ожидаемые версии из доклада в этой копии страницы не перечислялись. Это предел проверенных публичных сведений о выпуске, а не отрицание других веток, каналов пакетов или частных переносов исправления.

В коде атрибутов тега 2.19.2 входные процедуры OTC выполняются там, где роли применимы к каналу. Если локальная роль — провайдер или сервер маршрутов, приём маршрута с OTC вызывает отзыв. Для роли равноправного соседа отзыв также вызывается, когда ASN в OTC отличается от удалённого ASN.

Обработка пишет сообщение, устанавливает флаг отзыва и возвращается. В том же файле отдельно проверяется длина OTC: она должна составлять четыре октета. Иная длина ведёт к отзыву как ошибка формата, а не как последующее решение о роли.

Код обработки пакетов из того же тега показывает продолжение. После обработки атрибутов установленный флаг отзыва делает указатель атрибутов нулевым. При применении этого случая процедура обновления получает отзыв с пустым маршрутом. Временный объект маршрута создаётся в другой, непустой ветви.

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

Журналирование остаётся. Исследование не проверяло захват пакетов, таблицы импорта, потоки BMP и другие диагностические способы. Поэтому утверждать полную невидимость маршрута во всех средствах было бы неверно. Установлена более узкая разница: сохранившееся сообщение не гарантирует наличие доступной для запроса записи, соединяющей полученное объявление, OTC, роли и решение.