Кратко

  • RFC 9899 задаёт ограниченное сравнение: выбрать начало, пропустить length байт, применить оператор и сравнить двоичный шаблон. Валидная конфигурация не показывает, какие байты проверило устройство.
  • Дельта счётчика свидетельствует о локальном отнесении трафика к ACE в известном диапазоне и epoch. Сама по себе она не доказывает пакет, исполнение действия или результат сервиса.

В отчёте могут гореть четыре зелёных индикатора: feature есть в YANG Library, commit успешен, ACE читается обратно, счётчик растёт во время теста. Все наблюдения могут быть верными, а вывод «правило payload работает» — всё ещё недоказанным.

RFC 9899 опубликован в декабре 2025 года как Proposed Standard и расширяет модель ACL из RFC 8519. Datatracker связывает его с draft-ietf-netmod-acl-extensions. Более поздняя дата обновления карточки — метаданные, а не новая редакция стандарта. Для фиксации статуса нужны информационная страница, карточка Datatracker и запрос errata на одну дату.

Четыре элемента окна

match-on-payload сообщает о возможности schema по YANG 1.1, а не о состоянии dataplane. В payload-match поле offset выбирает смысловую точку отсчёта, length — сколько байт пропустить от неё, operator по умолчанию равен match, а pattern содержит двоичное значение. Сравнение начинается в offset + length.

length — не длина шаблона, а расстояние пропуска. Две цифры без identity точки отсчёта, оператора и полного шаблона не позволяют воспроизвести правило.

layer2 начинается с канального заголовка, layer3 — с IP, layer4 — после IP-заголовка, включая опции и расширения вроде AH. payload начинается после транспортного заголовка, включая TCP options. IANA YANG Parameters подтверждает модуль и revision, но не поведение конкретного устройства.

Когда начало сдвигается

Два TCP-сегмента с одинаковыми данными могут иметь заголовки разной длины. Data Offset в RFC 9293 указывает начало данных. Фиксированный абсолютный сдвиг может случайно сработать без опций и промахнуться при их наличии.

RFC 8200 располагает IPv6 extension headers перед верхним протоколом и рассматривает фрагменты как отдельные пакеты до сборки на получателе. RFC 9899 определяет layer4, но не решает за каждую платформу, проверяет ли она до или после reassembly, decapsulation и normalization. Это локальные факты реализации.

RFC 9000 защищает payload QUIC и поля заголовка, включая packet number. Видимая часть заголовка не означает видимость прикладного текста. RFC 9899 говорит: для незашифрованных данных matching детерминирован, а на шифрованных пакетах эффективность зависит от неизменного шаблона. Дешифрования он не добавляет. RFC 8329 даёт контекст packet-content matching, но не подтверждает реализацию продукта.

Девять независимых утверждений

Цепочка разделяет: способность schema; личность, авторизацию и транзакцию; intended и operational state по RFC 8342; скомпилированную ACE на правильном hook; точные байты независимого capture; видимость после шифрования, инкапсуляции, фрагментации, сборки и нормализации; hit ACE в известном epoch; исполнение действия; результат сервиса.

RFC 8341 отделяет соответствие schema от контроля доступа. Read-only счётчики matched-packets и matched-octets RFC 8519 могут быть интерфейсными или агрегированными. Рост означает лишь, что счётчик отнёс трафик к записи в данном интервале. Без области, reset, контролируемого стимула и наблюдения он не называет причинный пакет. Настройка дополнительных log- и counter-actions RFC 9899 также не подтверждает исполнение.

Квитанция окна пакета

Минимальный воспроизводимый артефакт связывает module, revision, features и deviations; версии системы и forwarding-компонента; principal, авторизацию, transaction ID и datastore; ACE, порядок, attachment, интерфейс, направление и hook; положение относительно decapsulation, normalization и reassembly; offset identity, длину пропуска, operator, pattern и вычисленный диапазон; хэши fixture и независимого capture; длины заголовков; границу шифрования; имя, ширину, область, агрегацию, reset и значения счётчика; отдельные свидетельства действия и сервиса.

Отрицательные тесты задают предел: менять TCP options при неизменных данных, добавлять IPv6 extension header, проверять документированные варианты фрагментов, менять один байт pattern, сравнивать шифрованный и открытый трафик, ingress и egress. Успех на простейшем пакете доказывает только этот fixture.

Документ и сила исполнения

Daniel Kade явно применяет здесь внешнюю аналитическую рамку. Reality layers Лу Хэна разделяют документальную и исполнимую силу: YANG относится к спецификации, а запрограммированный dataplane, наблюдаемый пакет, действие и результат — к всё более исполнимым слоям. Это не утверждение RFC и не приписывание намерения его авторам.

Minimum Initial Specification и Localized Future Decision подсказывают малое детерминированное ядро: identity schema, точное окно, стимул, epoch и независимое наблюдение. Hook, normalization и reassembly остаются видимыми локальными решениями. Текст об авторитете и вере уточняет границу: документ координирует, а реализация и оператор активного пути обладают силой исполнения. Это аналитика автора статьи, не позиция IETF.

Защищаемая формулировка узка: при этой schema и авторизации, на этом запрограммированном hook, эти видимые байты сравнили с данным началом, пропуском, оператором и шаблоном; счётчик изменился в этом epoch; отдельные данные показывают действие и результат. Расширение формулировки требует новой квитанции.

Источники