SNMP - и не simple, и не management, и не short term

Бунтарские 80-е - лихие 90-е.

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

И вот умники в IAB (Internet Activities Board) крепко призадумались и 21-го марта 1988 года, собравшись в тогдашнем зуме (без шуток, не офлайн), постановили много важного стратегического про будущее систем управления интернетом. Ох они тогда напридумывали!

Результаты встречи они сели, записали и превратили в RFC1052 .

Они уже тогда действительно проектировали штуки, которые должны были не дать превратиться системам управления в то, во что они всё же превратились.

Как иронично теперь читать это послание из 80-х:

(i) Future Internet development is a joint interest of the R&D
community, the vendor community and the user community.
(ii) We still don't have a common understanding of what
[Inter]Network Management really is.
(iii) We will learn what [Inter]Network Management is by doing it.
(v) Define the Management Information Base for TCP/IP suite NOW!
(vi) Seek a seat for IETF on ANSI, ISO and/or CCITT

Удачи вам там, пацаны, в будущем…

Но работа закипела. RFC выходил за RFC. А количество рабочих групп не оставляло шансов для провала.

Что любопытно, так это то, что SNMP по их задумке был временным протоколом, решающим насущные нужды вендоров и операторов в перспективе нескольких лет. А в дальнейшем все должны были перейти на ISO CMIP/CMIS (RFC1095, RFC1189). Общими для них оставались MIB (RFC1066) - спецификации, описывающие формат данных.

Уверен, что уже тогда не всем эта идея пришлась по душе.
В те дни человечество ещё верило в ISO.
CMIP/CMIS - Common Management Information Services/Common Management Information Protocol - это такая же несостоявшаяся вещь, как OSI. Здорово всё напланировали, но временный SNMP заполонил всю планету.
Есть и другие слова, выдуманные в те дни, которые мы сейчас нигде в обиходе не используем: HEMS, SGMP, NETVIEW, TNM, LANMANAGER, Network Computing Forum «Fat Document»

SNMP именно потому и был Simple, что на горизонте маячил Common. И его планировали держать «Simple», пока не откажутся. А вовсе не потому что он сам по себе был прост. Кажется, нам, как цивилизации, ещё повезло, что на смену SNMP не пришло что-то не столь Simple.

Итак, SNMP победил, если это можно считать победой. А другие рабочие группы распустили.
MIB - являл собой спецификацию, говорящую как системе управления, так и сетевому устройству, как собирать и интерпретировать SNMP-сообщения.
То есть на одной стороне есть инструкции того, как собрать пакет, на другой - как его прочитать. Остаётся только подставлять переменные и посылать через SNMP.
Ну какова красота?! Никакого чтения документации, никакой человеческой интерпретации - только строгое следование спецификации. И это начало 90-х!
Скажу вам больше - те же парни из IAB, ещё до того, как Cisco начала паровозить тему с SNMP, придумали SMI - Structure of Management Information - по сути язык моделирования данных - то, как именно данные будут структурированы в MIB.
Для нас не очень важно что и в течение какого времени нужно употреблять, чтобы написать и прочитать модели, написанные на языке ASN.1 - прародителе SMI. Для нас важно, что SMI дал жизнь YANG’у. Всё же не вся работа тогдашних групп была в стол. Но об этом позже.

Уже тогда, в 90-е, все хотели сделать что-то универсальное и отвязаться от вендорской специфики, но настойчивых попыток не предпринимали, а вендоры в погоне за time to market были ещё меньше заинтересованы вкладываться в стандартизацию того места, где им не придётся стыковаться друг с другом. Поэтому единой модели тогда не появилось.

Однако теперь следите за руками: к концу 90-х у нас уже были:

  • Протокол - SNMP
  • Спецификации - MIB
  • Язык их моделирования - SMI
  • Возможность стримить данные с железки на NMS - Trap’ы (ну серединка на половинку, конечно, но всё же)
  • Целая пачка инструментов, утилит и NMS, работающих с MIB и SNMP - snmpwalk, MIB browser
  • Желание вендоров поддерживать это и выпускать MIB’ы для каждой новой версии вовремя

По всей видимости мы были просто в шаге от дивного мира с единым фреймворком для сетевой автоматизации.

https://fs.linkmeup.ru/images/adsm/5/if-world.png

Но добавляя ещё один пункт:

  • Никто из вендоров при этом так и не поддержал полноценное конфигурирование через SNMP

мы получаем ситуацию, в которой мы находимся прямо сейчас. Та-дам!

Но даже без этого в силу сложности (S for Slozhnost), вопросов к архитектуре, безопасности, транзакционности, нечитаемости спецификаций, непрогнозируемости результатов, невозможности проиграть изменения повторно, UDP в качестве транспорта и многим другим, SNMP нашёл применение лишь в задачах сбора данных с сетевых устройств и в крайне вырожденных случаях для настройки точечно тех или иных вещей.

https://fs.linkmeup.ru/images/adsm/5/change_my_mind.jpg

Впрочем сегодня даже в вопросах мониторинга SNMP скромно уступает место NETCONF и gNMI.

Смахнули скупую слезу и забыли! И про SNMP и про CMIP/CMIS. Не забываем только про SMI.

Переходим к современности.