Кратко

  • RFC 9793 определяет необязательный транзитивный BGP Path Attribute 41. Вместе с хостовым BFR-префиксом он переносит Sub-domain, BFR-ID, инкапсуляцию и при необходимости BIER Nexthop для расчёта BIFT.
  • Документ предполагает BIER domain, совпадающий с Administrative Domain, который может включать несколько автономных систем. Поддерживающий атрибут пограничный маршрутизатор обязан иметь политику для EBGP session/group, по умолчанию запрещающую атрибут.
  • При запрете атрибут нельзя отправлять наружу; полученный от peer атрибут следует тихо игнорировать и не передавать дальше. Его наличие не доказывает разрешение, совместимость пространств имён, установку forwarding state или результат multicast.

Синтаксис может быть безупречным, а допуск отсутствовать

На границе легко искать только ошибки кодирования. Но центральный случай RFC 9793 иной: UPDATE содержит допустимый /32 или /128, type code 41, правильные длины и распознаваемый BIER TLV. Устройство всё понимает и всё же обязано не использовать эти данные.

RFC 9793 называет BIER attribute optional transitive. Реестр BGP Parameters IANA закрепляет за ним код 41. Для перечисленных AFI/SAFI атрибут сопровождает хостовый префикс BFR. TLV связывает Sub-domain и BFR-ID с MPLS- или non-MPLS-инкапсуляцией; Label range либо BIFT-id range и BIER Nexthop становятся входами расчёта.

Транзитивность полезна в пределах согласованного домена. BGP speaker, не являющийся BFR, может повторно объявить маршрут с неизменённым атрибутом. BFR может обновить nexthop и инкапсуляцию для поддерживаемых поддоменов и BitStringLength, но лишь по связанным правилам RFC. Неизвестные TLV требуется сохранять и передавать: одно незнакомое расширение не делает NLRI malformed.

На административном краю действует отдельное правило. Пограничный маршрутизатор, поддерживающий BIER attribute, должен предоставлять policy на уровне EBGP session или group. По умолчанию атрибут не разрешён. Тогда его нельзя экспортировать этому peer. Если он пришёл от peer, его обрабатывают как неизвестный optional non-transitive attribute: quietly ignored и без дальнейшего распространения.

Флаг Transitive не является подписью владельца границы

Общее правило RFC 4271 допускает сохранение неизвестного optional transitive attribute и передачу с Partial bit. Неизвестный optional non-transitive attribute игнорируется. RFC 9793 не меняет wire-классификацию кода 41. Он предписывает второй результат там, где локальная пограничная policy не дала разрешения.

Отсюда следуют три независимых утверждения. Сосед умеет сформировать атрибут. BGP умеет доставить байты. Локальный оператор разрешил использование на конкретной границе. Первые два не создают третье. Partial сообщает об ограниченной семантической опеке, но не называет согласовавшего пересечение домена.

EBGP также не всегда совпадает с внешней административной границей. RFC 9793 прямо допускает несколько AS в одном Administrative Domain, а RFC 8279 в некоторых сценариях использует EBGP как routing underlay. Одна EBGP session может соединять AS под общим управлением или вести к независимому оператору. Сам номер AS этого не устанавливает.

Поэтому исключение привязано к session/group. Закрытое значение защищает начальное состояние; явный allow отражает локальную классификацию. Но allow ещё не доказывает, что стороны согласовали Sub-domain, BFR-ID, BitStringLength, Label/BIFT-id ranges и encapsulation.

Атрибут даёт материал для BIFT, а не квитанцию о доставке

Для каждого поддомена BFR рассматривает BFR-prefixes с подходящим BIER TLV. Ненулевой BFR-ID может создать или обновить BIFT entry. BIER Nexthop либо определённый fallback задаёт BFR-NBR, а диапазон Label или BIFT-id — инкапсуляцию. Unicast FIB обеспечивает underlay-информацию.

Этапы следует хранить отдельно. В UPDATE находится declared state. Принятые поля образуют parsed state. Действующая policy формирует authorized state. Расчёт создаёт control-plane state. Затем нужны отдельные свидетельства installed state, tunnel, packet path, receiver и service outcome. Более ранний этап не удостоверяет следующий.

Ошибки тоже не равны допуску. Несогласованные Length требуют attribute discard по RFC 7606. Повтор одного Sub-domain TLV может обесценить весь атрибут; повтор BitStringLength или пересечение ranges — соответствующие данные инкапсуляции. Два префикса с одинаковым ненулевым BFR-ID нельзя использовать в расчёте одной Sub-domain. Пограничное разрешение не исправляет противоречие.

Даже рассчитанная BIFT не завершает цепочку. Способ создания и выбора tunnel к недоступному напрямую BIER Nexthop остаётся вне scope RFC 9793. Control-plane table не доказывает программирование hardware, FIB не является packet trace, а счётчик не подтверждает требуемого получателя и качество услуги.

Ошибочное объединение начинается с расширения локального смысла

BFR-prefixes обычно являются loopback-адресами, распространяемыми внутри AD; для BIER им не требуется выходить наружу. RFC 9793 предупреждает: если они уйдут вместе с атрибутом в соседнюю AD, где тоже развёрнут BIER, две независимые BIER domains могут быть ошибочно соединены. Вероятный конфликт конфигураций создаёт security risks и operational troubles.

Это описание механизма, не наблюдавшийся инцидент. RFC не доказывает поведение vendor, deployment, attack, outage, packet loss или ущерб клиенту. Доказан более узкий риск: локально валидные числа теряют однозначность при переносе в другой контекст. Sub-domain 0 не глобален, BFR-ID уникален только в своём поддомене, диапазоны инкапсуляции принадлежат локальному плану.

RFC 8279 проводит границу и в data plane. BIER-encapsulated packet не переходит непосредственно из одной BIER domain в другую. На границе его декапсулируют и передают multicast flow overlay; устройство может быть BFER первой и BFIR второй domain. Это явная передача между контекстами, а не молчаливое слияние control-plane identifiers.

Проверенная Erratum 8463 исправляет пример Section 6: при отсутствии BIER Nexthop в маршруте BFER1 узел BFR2 использует BFR-prefix BFER1, а не BFR1. Правило Section 7 остаётся прежним. Информационная страница RFC Editor и IETF Datatracker подтверждают статус документа, но не состояние сети.