Кратко

  • В RFC 1503 приложение передаёт строку «резолверу контекста», чтобы пользователь не указывал стороны SNMPv2 и контекст вручную.
  • Если готового контекста нет, резолвер может создать временную пару noAuth/noPriv, контекст и ACL для get, get-next и get-bulk. Перед операцией менеджер всё равно сверяет требования приложения к безопасности.

Сетевому оператору нужен ответ от устройства, а не экзамен по внутреннему устройству менеджера. Кит Макклогри и Маршалл Роуз предложили в августе 1993 года спрятать эту работу за резолвером. Он стоит между приложением и локальной базой сторон и превращает введённую строку в один или несколько подходящих контекстов. Сначала он спрашивает уже настроенную базу.

Точное совпадение router.xyz.com-public выбирает один контекст. Укороченное router.xyz.com в примере совпадает также с router.xyz.com-all, и резолвер возвращает оба. Первый допускает операции опроса, второй связан с аутентифицированным доступом, включающим set. Короткое имя здесь не синоним однозначного выбора. Какие права подходят, выяснится при сопоставлении операции и требуемого уровня защиты.

Если локальное имя не найдено, строка может оказаться IP-адресом либо доменным именем. Для каждого полученного адреса резолвер создаёт временные стороны noAuth/noPriv, контекст и ACL, разрешающую get, get-next и get-bulk. При нескольких адресах появляются несколько контекстов. Для идентификаторов использованы правила initialPartyId и initialContextId из Party MIB. Это записи менеджера, а не сообщение от удалённого агента о принятом запросе.

В документе есть и приём для SNMPv1. После косой черты в строке можно передать community string; менеджер создаст под неё временный контекст опроса. Простая строка становится одновременно адресом и носителем параметра доступа.

Когда приложение запрашивает операцию, оно передаёт дескриптор контекста и минимальные требования к безопасности. Менеджер ищет разрешающую ACL, отдаёт предпочтение подходящему варианту SNMPv2 и прекращает операцию, если требуется аутентификация, а подходящей записи нет. Имя помогает найти возможный путь. Право на конкретное действие определяется позднее.

В карточке RFC Editor документ обозначен как Informational. В нём описан возможный алгоритм, а не внедрение известного продукта; раздел о безопасности прямо оставлен без обсуждения. Исторический урок ощутим и без легенды о внедрении: убрать поле из интерфейса можно, убрать административный выбор нельзя. Он просто переезжает в машину.