Кратко

  • RFC 9899 — Proposed Standard IETF, расширяющий модель ACL из RFC 8519, а не заменяющий её.
  • Он вводит именованные повторно используемые наборы префиксов, портов, протоколов, типов ICMP и псевдонимов.
  • Расширенные сопоставления и действия зависят от реализации; RFC не обещает ни универсальной поддержки, ни измеренного выигрыша в производительности.

Главная идея — отделить правило от набора значений. Оператор может добавить или удалить элемент именованного набора, не переопределяя родительскую запись ACL. Такой набор можно использовать в нескольких сетевых элементах одной административной области. Псевдоним способен объединять параметры — например, префиксы, протоколы, порты или VLAN; если нужен только один тип параметра, уместнее отдельный одно-параметрный набор. Однако повторное использование не гарантирует большей безопасности или согласованности: оно одновременно расширяет область воздействия общей перемены.

RFC 9899 добавляет сопоставление заголовков расширения IPv6, TCP-флагов через flags-bitmask, типов фрагментов IPv4 и IPv6, шаблонов полезной нагрузки, заголовков MPLS, VLAN и I-SID. Для пересекающихся полей действуют ограничения взаимоисключения. Клиент, поддерживающий и расширенный flags-bitmask, и поле flags из RFC 8519, не должен задавать оба поля в одном запросе. Аналогичное правило действует для расширенного сопоставления фрагментов и базового поля flags. Эти ограничения нужно проверять явно, а не считать их рекомендацией стиля.

Сопоставление полезной нагрузки включается feature-флагом и задаёт тип смещения, смещение, длину, двоичный шаблон и оператор. Для зашифрованных пакетов результат зависит от неизменного наблюдаемого шаблона. Эта функция не расшифровывает трафик и не обязана одинаково работать на всех зашифрованных пакетах. Поддержка feature-зависимых сопоставлений и действий также зависит от конкретной реализации.

Модуль добавляет действия ограничения скорости, журналирования и счётчика, но определённая версия поддерживает только локальные действия. RFC также задаёт первоначальные модули YANG, поддерживаемые IANA, для типов ICMPv4, типов ICMPv6 и типов заголовков расширения IPv6. Предполагаются безопасный транспорт протоколов управления YANG и взаимная аутентификация; NACM может ограничивать операции и содержимое. RFC 7950 описывает язык YANG 1.1, а RFC 8341 — модель контроля доступа к сетевому управлению. Базой остаётся RFC 8519, который RFC 9899 дополняет.

Анализ Theo March: для общего набора нужны владелец, карта зависимостей, поэтапная проверка и заранее подготовленный откат. Это аналитическая рекомендация, а не мандат RFC 9899: документ не устанавливает единую схему именования, процесс согласования, интервал развёртывания или порог отката. Несанкционированная запись в определённый набор может разрешить трафик, который следовало запретить, либо запретить разрешённый трафик. Несанкционированное чтение раскрывает связанные ресурсы и может ослабить сокрытие топологии. Следовательно, чувствительность наборов к чтению и записи относится к управлению объектом целиком, а не только отдельным ACL.

Путь решения оператора

  1. Назначь владельца, перечисли потребителей и зависимости, зафиксируй административную область.
  2. Проверь реально доступные функции; не предполагай, что все устройства реализуют весь RFC.
  3. На тестовой площадке измени небольшой набор и проверь все связанные ACL, включая взаимоисключающие поля.
  4. Сопоставь локальные журналы, счётчики и сигналы ограничения скорости с ожидаемой политикой.
  5. Выпускай изменение поэтапно и подготовь возврат до записи общего объекта.

Практические фикстуры проверки

Создай набор префиксов с двумя элементами и две ACL, ссылающиеся на него. Добавь третий элемент и проверь эффект в обеих ACL без изменения родительских правил. Отправь запрос, где одновременно заданы flags-bitmask и flags, и ожидай отказа; повтори тест для расширенного сопоставления фрагментов. Проверь фиксированный шаблон полезной нагрузки сначала на незашифрованном трафике, затем на зашифрованном, фиксируя только наблюдаемое поведение. Наконец, проверь через NACM, что пользователь без разрешения не может ни читать, ни изменять набор.

Источники