Кратко

  • RFC 10035 добавляет в YANG Library доступный только для чтения список augmented-by: сервер управления может сообщить, какие модули из того же набора непосредственно добавляют узлы в схему другого модуля.
  • Новая запись закрывает пробел в обнаружении, но не всю цепочку решения. Она не вычисляет транзитивные зависимости, не доказывает свежесть и совместимость и не разрешает удаление или обновление.

Три модуля проводят точную границу

Пример с A, B и C объясняет слово «прямой» лучше общего определения. A содержит базовую структуру. B через augment вставляет в неё контейнер. C добавляет лист в контейнер, принадлежащий B. У A в augmented-by появляется B, у B — C. Модуль C не становится прямым модификатором A только потому, что его XPath расположен внутри дерева, начавшегося в A.

Это не потеря данных, а заданная область утверждения. Прямая связь определяется модулем, которому принадлежит непосредственный родитель добавленного узла. Связь C с A выводит приложение. Если ему нужно транзитивное замыкание, оно обходит граф; если важен конкретный путь, оно анализирует дерево схемы.

Такое разделение не даёт свести разные действия к расплывчатому «зависит от». Импорт определений, включение подмодуля, добавление узлов и изменение поддерживаемых свойств через deviation имеют разные последствия. Система инвентаризации или тестирования должна отличать объявленную связь от вычисленной.

Публикация дополнила RFC 8525 в одном узком месте

RFC Editor опубликовал RFC 10035 как документ IETF Standards Track в августе 2026 года. Встроенный модуль ietf-yang-library-augmentedby датирован 26 августа 2026 года. IANA зарегистрировала имя модуля, пространство имён XML и префикс yanglib-aug.

RFC 8525 уже позволяла серверу описывать хранилища данных, наборы модулей, редакции, функции, модули только для импорта и deviations. Клиент мог увидеть, что другой модуль меняет поведение базового модуля через deviation. Но для обратного поиска augment ему приходилось получать и совместно разбирать модели.

RFC 10035 помещает augmented-by под каждой записью модуля в NMDA-дереве YANG Library. Тот же список добавлен в устаревшее дерево modules-state, чтобы поддержать клиентов, использующих форму, связанную с RFC 7895. Каталогу, парсеру телеметрии или распределённому приложению больше не нужно скачивать всё только ради первой обратной связи.

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

Набор модулей задаёт границу доказательства

Значение augmented-by ссылается на имя модуля в том же module-set. Базовый и модифицирующий модули должны присутствовать в этом наборе. Модификатор не может быть записью только для импорта, а ссылка не должна прямо или косвенно возвращаться к изменяемому модулю.

Эти условия защищают структуру: сервер не объявляет ребро, чей второй конец находится за пределами описанного набора, и не выдаёт неактивный модуль за реализованное изменение схемы. Однако они не доказывают, что сборщик прочитал правильный набор. RFC 8525 может описывать несколько хранилищ и вариантов схемы. Активация программного обеспечения, замена устройства или подключение модуля способны изменить содержимое.

Поэтому доказательный пакет должен хранить идентичность устройства и аутентифицированной конечной точки, пользователя, хранилище, выбор схемы или набора, content-id, редакции и время чтения. RFC 10035 отмечает, что обратные связи увеличивают объём экземпляра библиотеки и должны обновляться при подключении модулей. Корректное ребро из старого кэша остаётся устаревшим.

Инвентарная запись не равна заключению о совместимости

augmented-by утверждает, что один модуль непосредственно добавляет узлы в схему другого. Запись не говорит, понимает ли их конкретный клиент, можно ли их игнорировать, присутствуют ли данные в нужном хранилище и сохраняет ли новая редакция тот же смысл.

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

Особенно опасно путать запись с разрешением на удаление. Если A называет B, это предупреждение о том, что B меняет A. Оно не разрешает отключить B после просмотра исходника A. Другие модули могут прямо зависеть от B, конфигурации могут содержать введённые им узлы, а подписки — потреблять эти данные. Для решения нужен обратный граф в конкретной работающей системе.

Доступ только для чтения не делает сведения безобидными

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

Поэтому RFC 10035 опирается на защищённые протоколы управления YANG, взаимную аутентификацию и контроль доступа вроде NACM. Аутентификация устанавливает, какая конечная точка ответила. Авторизация определяет доступный пользователю фрагмент. Ни то ни другое не гарантирует одинаковую картину для другого пользователя, хранилища или более позднего состояния.

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

Реализации показывают выполнимость, а не охват парка

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

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

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

Обнаружение, анализ и исполнение принадлежат разным сторонам

Сервер отвечает за состав схемы, который объявляет. Клиент отвечает за граф, вычисленный из этого объявления. Владелец сервиса отвечает за исполнение и принимаемый риск.

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

Проверяемая цепочка связывает аутентифицированную конечную точку, хранилище, выбор схемы и content-id с редакциями и прямыми рёбрами; затем — с вычисленным замыканием, путями и потребителями; наконец — с предлагаемым изменением, тестами, откатом и наблюдаемым результатом. Первая связь стала доступнее, но ответственность за остальной путь не исчезла.

Источники