Кратко

  • RFC 9624 соединяет маршруты EVPN и репликацию BIER, чтобы входной PE определял BFER для BUM без multicast-состояния каждого потока в промежуточных маршрутизаторах.
  • IMET, SMET, S-PMSI, Leaf A-D и PTA описывают намерение и контекст одной эпохи; они не подтверждают актуальное членство клиента или прибытие копий.
  • Проверяемая эксплуатация разделяет эпоху маршрутов, классификацию, листья, наложенный BitString, ветви ядра, сегментацию, EVPN-disposition, split horizon, передачу по доступу и приём клиентом.

Контрольный набор был полным

Входной PE видел IMET своего broadcast domain. Селективные листья присутствовали, PTA указывал BIER, а BitString содержал позицию каждого ожидаемого BFER. Контроллер показывал завершённый план.

Один сайт всё равно не получил кадр. План не отвечал, отставал ли маршрут от клиентского состояния, совпал ли кадр с нужным правилом, потерялась ли ветвь, правильно ли точка сегментации перенесла контекст, выбрал ли выход нужный BD и не подавил ли split horizon законную копию.

RFC 9624 делает намерение совместимым между реализациями. Превращать его в результат значит разрушать точную границу. Установленный бит подтверждает запрос копии, а не её получение.

Отсутствие состояния потока не создаёт доказательство

BIER не требует per-flow multicast state и явного протокола построения дерева у промежуточных BFR. BFIR кодирует выходы, а ядро использует Bit Index Forwarding Table.

Это уменьшает состояние, но не устраняет перегрузку, сбой линии, разные эпохи таблицы и неверный next hop. Узел способен правильно прочитать бит и не выпустить копию. Архитектурная простота не является наблюдением исполнения.

Нужны корреляция пакета, версия BIFT, фактические копии и прибытия BFER. Фраза «дерева не было» ничего не говорит о завершившихся ветвях.

PTA ограничивает контекст

PMSI Tunnel Attribute несёт тип 0x0B, sub-domain ID, BFR-id и BFR-Prefix. В EVPN-MPLS label назначает BFIR; в VXLAN, NVGRE или GENEVE используется глобальный VNI/VSID. LIR и LIR-pF участвуют в leaf tracking.

Поля связывают маршрут с P-tunnel, но не гарантируют одинаковую интерпретацию. BFR-Prefix может отличаться от других адресов, Route Targets задают распространение, а BIER PTA не должен покидать домен, где prefix однозначно определяет автора.

Сохраняйте объявление, peer, Route Targets, байты PTA, домен и время вступления. Валидный синтаксис не доказывает правильный scope.

Листья — снимок намерения

Для inclusive PMSI набор BFER образуют авторы остальных IMET данного BD. Для selective используются совпавшие SMET или S-PMSI/Leaf A-D. Source, group, LIR, LIR-pF и замена Leaf A-D на SMET меняют выбор.

После ухода клиента старая запись может ждать withdrawal. Новый участник может отсутствовать до convergence. Маршрут подтверждает заявленный интерес PE, но не наличие слушателя на клиентском порту в момент кадра.

Фиксируйте ключ пакета, реально выбранный transmission route и каждый leaf в момент решения. Поздний пересчёт по текущему RIB не восстанавливает историю.

Пустой набор может означать нормативное отсутствие отправки

Если маршрут передачи не найден, кадр не направляется в P-tunnel. Если выбранный tunnel требует leaf tracking, но листья отсутствуют, отправки также нет.

Нулевой BIER-счётчик поэтому может означать отсутствие входа, ошибку классификации, отсутствие маршрута, пустой набор или ранний drop. Наличие маршрута тоже не подтверждает match кадра.

Входное подтверждение связывает frame, BD, BUM-тип, source/group, match, leaves, interworking, label или VNI, BIER-header и результат передачи.

BitString подтверждает включение в команду

BFIR выводит BFER и строит header по RFC 8279 и RFC 8296. Protocol различает MPLS, VXLAN, NVGRE и GENEVE. Активный бит показывает включение позиции в запрос этой sub-domain и эпохи.

Он не доказывает единый mapping, актуальную полноту или прохождение ветви. Идеальное представление может нести устаревшее намерение.

Храните отдельно факт установки бита и факт прибытия в BFER. Их нужно коррелировать, но нельзя объединять в одно «доставлено».

Сегментация передаёт ответственность

Точка segmentation получает верхний контекст, удаляет encapsulation, заменяет label значением нижнего PTA, пересчитывает leaves и накладывает новый BIER-header.

Пакет может прийти правильно, когда нижние листья уже устарели. Label может выбрать другой BD. Новый BitString бывает локально верным, но теряет выход исходного сервиса.

Записывайте обе стороны: принятый пакет и контекст, маршрут, удалённые поля, новую область и эпоху, заменяющий label, leaves, header и передачи.

BFER — не клиентская граница

Выходной PE использует label или VNI/VSID для выбора BD, затем применяет обычный EVPN forwarding. Рост BIER-счётчика подтверждает доставку к PE, но не клиенту.

Может отсутствовать mapping, не поддерживаться payload, не быть подходящего circuit или сработать queue drop. Подтверждение включает decapsulation, protocol, lookup, BD, список портов и результаты очередей.

Поэтому ядро и клиент могут сообщать совместимые факты: P-tunnel доставил к PE, а service disposition не доставил на площадку.

Split horizon создаёт правильное отсутствие

В multihomed EVPN-MPLS верхний ESI label обозначает исходный segment и предотвращает возврат. В VXLAN, NVGRE и GENEVE local bias использует BFIR-id, чтобы не дублировать на уже обслуженных segment.

Подавление может быть правильной защитой. Ошибочная identity, ESI или multihoming state превращает её в потерю сервиса. Правильное решение для одного порта не доказывает остальные.

Сохраняйте segment, ingress, ESI или local-bias input, причину, подавленные и обслуженные порты. Общая сумма не различает защиту от петли и потерю.

Цепочка заканчивается после P-tunnel

Сначала сохраняются маршруты, PTA, Route Targets и эпоха. Затем кадр связывается с match и leaves; остаются BFIR-id, sub-domain, BitString, protocol, labels, VNI/VSID и ESI. Далее наблюдаются ветви и передачи segmentation.

BFER подтверждает прибытие и decapsulation. Disposition подтверждает BD, локальную репликацию и split horizon. Access circuit и customer edge подтверждают сетевую доставку. Приложение и результат сервиса остаются следующими фактами.

Эта цепочка не возвращает per-flow state в ядро. Она лишь не позволяет короткой команде говорить за неизмеренный опыт.

Источники