Кратко

  • RFC 5332 переопределил бывший «MPLS multicast codepoint»: в заданном multicast-контексте 0x8848 означает upstream-assigned top label, а не полный результат multicast forwarding.
  • Изолированная замена codepoint не имеет предсказуемого эффекта без label, контекста и состояния получателя. Аномалия, действие, маршрут, приём и влияние должны подтверждаться разными свидетельствами.

Предсказание появилось раньше lookup

Представим capture с multicast GRE destination и 0x8847. Аналитическая система знает, что конфигурация туннеля требует upstream assignment. Она правильно классифицирует сочетание как ошибку. Затем система делает лишний шаг: пишет, что пакет был перенаправлен к узлу C и затронул клиентов D.

RFC 5332 требует discard для такого несовпадения, если отдельные процедуры действительно установили upstream-only контракт. Но capture не доказывает, что пакет достиг нужного receiver, что версия выполнила правило, что lookup вообще произошёл, что C что-либо получил или что сервис потерял данные.

Первое утверждение опирается на wire плюс contract. Остальные требуют receiver decision, egress, independent reception и service outcome. Сильный инцидентный отчёт показывает эти ступени, а не скрывает их за категорией.

Старое название создало ложную причинность

RFC 3032 называл два link-layer codepoint признаками MPLS unicast и multicast. RFC 5332 сообщает, что multicast-вариант не был внедрён и дальнейшая архитектура нуждалась в другой границе. Старое применение отменено.

В multicast Ethernet frame значение 0x8847 используется при downstream-assigned top label, а 0x8848 — при upstream-assigned. Оба могут нести multicast MPLS. Multicast-семантика label определяется NHLFE в конкретном context: запись задаёт репликацию ко множеству next hops.

Если security model продолжает читать 0x8848 как «multicast attack surface», она приписывает codepoint поведение, которое узнаётся только после lookup. Историческое имя становится причиной в модели, хотя на wire оно уже обозначает provenance assignment.

Upstream и downstream меняют пространство поиска

При downstream assignment receiver создаёт binding label-FEC и объявляет sender. При upstream assignment binding создаёт sender или третья сторона. Upstream label не обязан находиться в том же label space.

RFC 5331 определяет context-specific interpretation. Codepoint сообщает, что нужен upstream-контекст, но не гарантирует правильный root, interface или tunnel selector. Поэтому одна и та же числовая label value может попасть в разные tables.

Чтобы прогнозировать маршрут, нужны raw stack, assignment contract, peer-support receipt, context key, фактический NHLFE и topology state. Без них эффект изменения codepoint именно непредсказуем, как и предупреждает RFC.

Capability — ещё одна неизвестная переменная

Upstream-assigned labels опциональны и не должны применяться без знания, что downstream LSR их поддерживает. Способ получения знания RFC оставляет вне scope.

Локальная capability не доказывает capability peer. Старый discovery receipt может относиться к заменённому устройству или другой adjacency. Если incident model предполагает поддержку, она должна назвать источник, версию, время и область отношения.

Ошибочная capability может направить receiver в неподдерживаемый процесс ещё до того, как злоумышленник что-либо изменил. Это альтернативная гипотеза, которую нельзя удалить только потому, что codepoint выглядит подозрительно.

Не все encapsulation показывают одно и то же

PPP всегда использует Protocol 0x0281 для MPLS. Native IP всегда использует Protocol Number или Next Header 137, независимо от multicast-семантики. Эти поля не кодируют assignment direction.

GRE с unicast IP destination всегда использует 0x8847. С multicast destination 0x8847 означает downstream, 0x8848 — upstream. Для point-to-point направления режим должен быть единым; при отсутствии другой информации используется downstream default.

Модель должна различать observed, contract-derived, defaulted и unknown. Иначе она переносит бит из Ethernet/GRE в PPP или IP, где такого бита нет, а затем считает собственную вставку доказательством.

MAC DA может изменить аудиторию, но не доказывает её

Multicast MPLS на Ethernet использует MAC вида 01-00-5e-8v-wx-yz. vwxyz может быть нулём или значением label из stack. При нескольких labels default — второй, но configuration может выбрать иной; при одном используется он.

Оба метода должны interoperировать. Нельзя отбрасывать все zero или все non-zero suffixes. Label-derived значение может помочь filtering, но RFC не определяет применение фильтра.

Злонамеренная замена MAC DA способна доставить frame третьей стороне. Чтобы сказать, какой именно, нужны состояние layer-2 replication и наблюдение на приёмнике. Сам suffix не является receiver ID или membership record.

От anomaly к attribution лежит отдельная дорога

Сначала фиксируется несоответствие: bytes, capture point, direction, outer addresses, contract epoch. Затем устанавливается действие receiver: parse, lookup, filter, discard или egress. После этого проверяется независимый приём и только потом связь с сервисом.

Attribution требует доказательства изменения и субъекта. «Поле могло быть изменено злонамеренно» — модель угрозы. «Это сделал X» — отдельное утверждение. «Пострадал Y» — ещё одно.

Смешение удобно для заголовка, но разрушительно для remediation. Команда может чинить предполагаемый attack, когда причиной был stale contract, parser semantics или peer replacement.

Версия семантики нужна не меньше версии ПО

Числа 0x8847 и 0x8848 пережили изменение значения. Поэтому parser output должен включать authority document и semantic version. Хранить нужно deprecated meaning, active meaning, medium/address preconditions, defaults и invalid combinations.

На rollout одинаковые captures прогоняются старым и новым parser. Diff показывает, какие alerts и dashboards поменяют смысл. Raw evidence сохраняется, чтобы поздняя коррекция могла переписать derived view, не переписывая исходную историю.

Если оставить только строку «MPLS multicast», расследование уже не сможет понять, означала ли она payload class по старой модели или upstream assignment по новой.

Неопределённость — часть инженерной честности

Нельзя обещать, что каждый malformed packet даст один outcome. Label-space и local forwarding state специально делают результат зависимым от receiver. Это не недостаток анализа; это граница доступных данных.

Полезный отчёт перечисляет возможные ветви и указывает, какой receipt закроет каждую: lookup logs, drop counter, egress sample, remote capture, service telemetry. Тогда uncertainty направляет сбор evidence.

В системе running-code primacy общий codepoint координирует минимальное значение. Реальные устройства принимают решения. Аналитика имеет право утверждать outcome лишь после наблюдения этих решений, а не потому, что registry name звучит окончательно.

Источники