Кратко

  • draft-ietf-ivy-entitlement-inventory-05 раздельно описывает организационное право, привязку к активу, installed-ссылку, поддерживающие лицензии, allowed, in-use и ограничения.
  • Предлагаемый YANG-модуль целиком доступен только для чтения. Реальное изменение и принуждение, синхронизация и уведомления об окончании остаются за внешними системами.
  • Для безопасного решения нужны источник, время, область и правило каждого значения, а также подтверждения локальной активации, полномочий пользователя и сетевого результата.

Срок закончился, а событие не произошло

В реестре записано: лицензия истекает в полночь. Это точная дата. Но из неё не следует, что кто-то получит предупреждение, что продление успеет пройти, что устройство мгновенно прекратит функцию или, наоборот, что разрешён льготный период.

На одном объекте локальный токен может действовать ещё сутки. На другом новая активация будет запрещена, но текущая сессия сохранится. На третьем устройство продолжит работу, потому что оно вообще не знает о коммерческом соглашении. Центральная строка одна, поведение разное.

Именно поэтому полезен проект A YANG Module for Entitlement Inventory. Редакция 05 датирована 29 сентября 2026 года, имеет предполагаемый статус Standards Track и истекает 2 апреля 2027 года. Это активный Internet-Draft рабочей группы Network Inventory YANG IETF, а не RFC, не подтверждение реализации и не юридическое заключение о правах.

Он описывает записи, из которых можно построить контроль. Сам контроль остаётся распределённым.

Девять переходов

Верхний каталог содержит entitlement: идентификатор, продукт, поставщика, состояние, даты и ограничения. Attachment связывает право с организацией, пользователем, сетевым элементом или компонентом. Актив может публиковать ссылку в installed-entitlements. Отдельно перечисляются capability. Каждая capability может ссылаться на supporting entitlements и сообщать allowed и in-use. Ограничения несут максимальные и текущие значения.

За моделью остаются принятие конфигурации, оперативное состояние, пересылка и видимый результат сервиса.

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

Что именно установлено

Текст текущей редакции использует installed entitlement с разных точек наблюдения. В разделе scope это право, назначенное активу; установка может быть прямой на устройстве или логической в центральной системе. В определении оно локально активировано и доступно. Далее installed-ссылки названы активными и наделяющими актив правом.

Для рабочего документа такая неоднородность поправима. Для эксплуатации она означает обязательную provenance.

Система активов знает назначение. Лицензионный сервер знает выдачу. Устройство знает принятие токена. Контроллер знает последний ответ. Одинаковый entitlement-id не синхронизирует их часы и область наблюдения.

Поэтому к installed нужны producer, значение термина, timestamp, validation path и cache age. Без них логическая привязка незаметно превращается в доказательство локальной активации.

Отсутствие, пустота и false

Presence container показывает способность системы сообщать класс данных. Присутствующий пустой installed-entitlements может означать: система знает и не видит установленных прав. Отсутствующий container может означать: система не умеет сообщать.

Отсутствующий in-use не всегда false. Явно пустой supporting-entitlements может означать, что специальная лицензия не нужна; отсутствующий container — что зависимости неизвестны.

Преобразование всех случаев в false или пустой массив уничтожает границу знания. Следует хранить reported true, reported false, explicit empty и not reported, а также источник, версию и время.

Пять уровней внедрения

Level 1 — центральный каталог. Level 2 — installed entitlements на активах. Level 3 — capabilities. Level 4 — связи с поддерживающими правами, allowed и in-use. Level 5 — ограничения и потребление.

Реализации должны документировать уровни и отклонения. Level 1 отвечает закупкам, но не устройству. Level 3 показывает техническую возможность без права. Level 4 рассчитывает разрешение, но может не сериализовать общий пул.

В закупке нужен не один пункт «поддерживает entitlement inventory», а примеры данных каждого уровня, семантика отсутствия, частота обновления и поведение при разрыве связи.

allowed — вывод политики

Capability может требовать несколько entitlements. allowed должен учитывать их совместное действие и рекомендуется false, если обязательное право отсутствует, expired или revoked.

Для проверки нужны полный набор зависимостей, свежие состояния, правило композиции и субъект решения. Пропущенный add-on даёт избыточное разрешение. Неизвестный grace period даёт избыточный запрет.

Правильное allowed=true не предоставляет пользователю доступ. RFC 8341 определяет NACM для операций и данных NETCONF/RESTCONF. Entitlement относится к праву организации использовать функцию. Привилегированная учётная запись не создаёт лицензию, а лицензия не повышает пользователя.

Остаются версия ПО, аппаратура, память, конфигурация и топология. Разрешение — не готовность.

in-use зависит от датчика

in-use доступен для установленного права и capability, и значения должны быть согласованы. Но сервер может считать использованием выданный seat, устройство — наличие конфигурации, контроллер — последнюю телеметрию, эксплуатация — активную сессию или пакеты.

Эти наблюдения имеют разный радиус доказательства. Для маршрутизации конфигурация, процесс, adjacency, выбранный маршрут, FIB и доставка пакета образуют последовательность.

Подтверждение использования указывает метод, событие начала, срок, условие сброса и независимое наблюдение результата.

Текущий счётчик не резервирует будущее

Ограничения могут задавать установки, throughput, connections или tunnels. Значение 80 при максимуме 100 не гарантирует выдачу ещё 20: данные могут устареть, два контроллера увидят один запас, а единица учёта будет отличаться от enforcement.

Parent entitlement создаёт иерархию. YANG блокирует прямую самоссылку, но не все глубокие циклы. Система управления должна обнаружить A→B→A. Schema-valid не означает graph-valid; graph-valid не означает отсутствие гонки.

К лимиту нужны scope, unit, window, source, timestamp, reset rule и reservation state. Без атомарного арбитра current value — наблюдение, а не обещание.

Читать можно безопасно и всё равно читать неправду

Все узлы модуля config false. Лицензионные серверы и платформы активов меняют базовое состояние через внешние каналы.

Взаимно аутентифицированный NETCONF или RESTCONF способен без искажений доставить устаревшее значение. Security Considerations предупреждают: компрометация внешних каналов позволяет внедрить ложное состояние, чтобы capability выглядела разрешённой или ограниченной вопреки реальным правам.

Проект рекомендует находить расхождения между центральным каталогом, локальной установкой и фактическим использованием, но не назначает универсального победителя. Он показывает expiration date, но не создаёт notification. Владелец предупреждения, эскалации, продления и его проверки должен быть определён отдельно.

Цепочка исполнимого права

Минимум включает подтверждение grant, assignment, activation, dependency closure, permission, NACM access, usage, restriction enforcement и service outcome. Каждый документирует субъект, объект и время.

Распределённое хранение допустимо. Недопустимо терять переходы. Общий inventory заслуживает доверия, когда связывает ограниченные утверждения и не присваивает себе полномочия выполняющего устройства.

Источники