Кратко
- Агрегация создаёт новый менее специфичный маршрут из нескольких более специфичных. В современной модели RFC 9774 AS_SET больше не является штатным результатом: ATOMIC_AGGREGATE сообщает о потере сведений, а AGGREGATOR называет последнего speaker, сформировавшего сводный маршрут.
- Наличие агрегата, корректный ROA и Established-сессия не доказывают доступность каждого адреса внутри покрытия. При исчезновении компонента правильным результатом может быть локальный discard, хотя публичный control plane не меняется.
- Руководство должно разрешать потерю детализации только при заранее выбранном origin AS, фильтрах по каждому contributor, журнале до сжатия, проверках RIB/FIB и пакетов и rollback всего договора агрегации.
В 02:13 AS 64505 формирует 203.0.112.0/22 из четырёх клиентских /24. Цель обычна: уменьшить churn и дать upstream одну стабильную запись. ROA разрешает 64505 объявлять /22; UPDATE несёт ATOMIC_AGGREGATE и AGGREGATOR.
В 03:07 во время клиентских работ исчезает 203.0.114.0/24. Остальные три компонента активны, поэтому платформа сохраняет /22. Публичные collectors не видят withdrawal, RPKI-ROV остаётся Valid, BGP-сессия — Established, а агрегат — в FIB.
Probe к адресу пропавшего /24 входит в 64505, не находит более длинного совпадения и попадает на discard route агрегата. Это предотвращает выход по другому менее специфичному маршруту и возврат в петлю. Защита сработала правильно, но услуга не была оказана. Метрика «aggregate up» скрывает различие.
Сценарий синтетический, механика нормативная. ATOMIC_AGGREGATE не обещает доставку. Атрибут предупреждает, что публичный AS_PATH не может перечислить все пути, на основе которых возникло объявление.
Сводный маршрут — самостоятельное утверждение
BGP не сокращает строку для удобства экрана. Он объединяет несколько more-specific NLRI в новую less-specific NLRI со своими атрибутами, условием активации, export policy и последствиями в forwarding. Новый маршрут способен пережить исчезновение одного источника.
Исходная процедура RFC 4271 сохраняла самый длинный общий начальный фрагмент всех AS_PATH, а оставшиеся AS могла помещать в неупорядоченный AS_SET. Множество сохраняло участие, но теряло порядок прохождения. Оно делало неясным и origin AS, необходимый для однозначной проверки происхождения.
RFC 6472 в 2011 году рекомендовала отказаться от AS_SET и AS_CONFED_SET. В мае 2025 года RFC 9774 превратила рекомендацию в требование стандарта и заменила прежний документ. Если оператор явно не настроил исключение, например для перехода, speaker не должен отправлять UPDATE с такими сегментами, а полученный маршрут с ними должен обрабатываться как withdrawn.
Агрегация осталась. Изменилась дисциплина: вместо двусмысленного множества оператор выбирает стабильный origin, обозначает автора операции и открыто маркирует утрату сведений.
Пустой атрибут устанавливает границу знания
ATOMIC_AGGREGATE имеет код 6, является well-known discretionary и содержит значение нулевой длины. В нём нет удалённых AS, списка contributors, времени или подписи.
Если отказ от AS_SET удалил номера, присутствовавшие в исходных путях, агрегат должен нести этот атрибут. Получатель не должен снимать его при распространении и не вправе создавать из NLRI более специфичные объявления. Он обязан учитывать, что реальный путь может проходить через ASes, отсутствующие в показанном AS_PATH.
Это признание ограничения, а не сертификат качества. Атрибут не восстанавливает утрату, не удостоверяет агрегатора, не разрешает prefix и не подтверждает reachability. Если один contributor уже имел ATOMIC_AGGREGATE, новый агрегат обязан унаследовать его: последующее сжатие не отмывает прежнюю потерю.
Тонкая публичная информация полезна для координации. Но она не получает власть над исключёнными фактами. Короткий путь содержит меньше доказательств, а не более сильные доказательства.
AGGREGATOR называет последнюю операцию
AGGREGATOR — optional transitive атрибут с кодом 7. Сформировавший агрегат speaker может добавить собственный AS и IP-адрес, обычно BGP Identifier. В consistent brief aggregation по RFC 9774 он присутствует вместе с ATOMIC_AGGREGATE.
Первый атрибут говорит о потере, второй — о последнем представленном акте агрегации. Они не перечисляют contributors, не фиксируют policy version и не строят историю всех предыдущих преобразований. Значения AGGREGATOR исходных маршрутов нельзя просто перенести в новый.
Криптографической аутентификации здесь нет. AS и адрес в collector не доказывают контроль над ресурсом или правильность policy. Поддержка четырёхоктетных ASN сохраняет число, а не доверие: современные speakers используют восьмиоктетный AGGREGATOR; через старое устройство возможны AS_TRANS и AS4_AGGREGATOR.
RFC 7606 предписывает attribute discard для повреждённых ATOMIC_AGGREGATE и AGGREGATOR вместо сброса всей сессии. Это уменьшает радиус отказа, но маршрут может пережить потерю предупреждения или авторства. Событие ошибки нужно хранить независимо от состояния peer.
Origin должен быть решением, а не случайностью
Brief aggregation оставляет только общую начальную последовательность. Набор contributors меняется — меняется и результат. Два непересекающихся пути могут дать пустой AS_PATH; после исчезновения одного AS оставшегося маршрута может внезапно стать видимым origin.
Так состояние соседства начинает определять публичную ответственность. Для RPKI-ROV владельцу пришлось бы создавать разрешения для каждого происхождения, которое способен породить меняющийся набор.
Consistent brief aggregation обрезает AS_PATH после самого правого вхождения выбранного origin AS. Им может быть сам агрегирующий AS. ROA сводного prefix должен разрешать именно его. 64505 становится ответственным по явному решению, а не потому, что оказался последним выжившим вкладом.
Origin AS следует отличать от атрибута ORIGIN. Первый выводится из правой части AS_PATH; второй сообщает IGP, EGP или INCOMPLETE и при агрегации принимает наименее предпочтительное значение contributors. Результат Valid тоже узок: ROA разрешает AS объявлять prefix, но не проверяет удалённые пути, AGGREGATOR, NEXT_HOP, FIB и доставку.
После AS_SET защита от петли становится политикой
AS_SET мог содержать номер contributing AS. Если агрегат возвращался к нему, обычная loop detection отвергала путь. После удаления множества эта память исчезает.
RFC 9774 рекомендует не объявлять агрегат contributing ASes. Каждый из них получает другие подходящие more-specific, кроме маршрута, полученного от него самого. Это policy, зависящая от соседа и направления. Устаревшую карту contributors сжатый AS_PATH уже не исправит.
В data plane нужен второй барьер. RFC 4632 требует, чтобы генератор отбрасывал пакеты, совпавшие с агрегатом, но не с достижимым более специфичным маршрутом. Обычно это null/discard route. Без неё пакет может уйти по default или peer-маршруту и вернуться в петлю.
Discard доказывает containment, не сервис. Пакет на нём одновременно подтверждает работу loop guard и отсутствие активного пути к цели. Эти факты нельзя объединять в один зелёный показатель.
Доказательство создаётся до сжатия
Публичный collector видит только конечный /22. Он не восстанавливает отклонённый до policy маршрут, молчащий peer или пропавшие AS. Нужен локальный ledger: prefix, обязательные и необязательные contributors, их peers, pre-policy и accepted AS_PATH, рассчитанная общая последовательность, выбранный origin, ROA, версия policy и выполняющий speaker.
Затем сохраняются Loc-RIB, Adj-RIB-Out до и после policy, ATOMIC_AGGREGATE, AGGREGATOR или AS4_AGGREGATOR, NEXT_HOP, ORIGIN и suppression more-specific. Ошибки атрибутов сохраняются даже после attribute discard.
Цепочку завершают RIB, hardware FIB и пакеты. Адрес каждого активного contributor должен отвечать; адрес намеренно отсутствующего компонента должен локально отбрасываться. Четыре состояния требуют разных тревог: contributor есть; contributor нет, но агрегат легитимен; агрегата нет; агрегат есть без discard. Последнее выглядит устойчивым и лишено loop guard.
Canary и rollback охватывают весь договор
Изменение агрегации меняет NLRI, contributors, активацию, origin, ROA, предупреждение, авторство, export, suppression и discard. Canary должен содержать положительный и отрицательный тест. Активный адрес достигается; после контролируемого withdrawal тестового contributor адрес из его диапазона заканчивается внутри агрегирующего AS и не уходит к соседу.
Одновременно фиксируются AS_PATH, ATOMIC_AGGREGATE, AGGREGATOR, ROV и more-specific. На границе старых и новых speakers проверяется реконструкция AS4_AGGREGATOR.
Rollback единым набором возвращает импорт, suppression, generation, origin, ROA, outbound filters и null route. Возврат одной команды без восстановления конкретных путей не возвращает прежнее обслуживание.
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
