Категория: Windows: Мониторинг
Протокол Simple Network Management Protocol (SNMP) используется в системах сетевого управления для мониторинга сетевых устройствах для оповещения о событиях, которые требуют внимания администратора. Он состоит из набора стандартов по управления сетью, в том числе протокол прикладного уровня(Application Layer protocol), схемы базы данных и набор объектов данных.
В ОС Windows службы SNMP доступна в виде компонентов Windows, но они не устанавливаются по умолчанию.
Для установки SNMP в Windows, выполните следующие действия:
1) Нажмите кнопку Пуск — Панель управления
2) Нажмите кнопку «Установка и удаление программ».
3) В левой панели, нажмите кнопку «Добавить / удалить компоненты Windows»
5) Выберите «Simple Network Management Protocol»
6) Вы также можете установить » WMI SNMP Provider «, который позволяет клиентам получать доступ к информации SNMP через интерфейсы WMI (Windows Management Instrumentation)
7) Нажмите кнопку ОК и нажмите кнопку «Далее» и завершите установку. В процессе установке вам понадобится вставить диск с дистрибутивом Windows в CD-ROM.
После установки, найдите соответствующие службы в консоли управления службами(services. msc ):
Запустите “SNMP Service ”, чтобы включить агента SNMP, и службу “SNMP Trap Service ”, чтобы иметь возможность получать SNMP сообщения (SNMP Traps) от других агентов.
SNMP сообщения (SNMP Trap) – это сообщения, которые передают сервера (в случае возникновения определенного события) с установленным SNMP агентами на сервер системы управления SNMP.
Итак, вы установили службу SNMP на Windows сервере, и теперь можете использовать ее в качестве SNMP агента или SNMP сервера для того, чтобы отправлять или получать SNMP информацию от других систем, на которых установлен SNMP агент.
Как настроить SNMP агент. можно почитать в следующей статье.
Протокол Simple Network Management Protocol (SNMP) используется в системах сетевого управления для мониторинга сетевых устройствах для оповещения о событиях, которые требуют внимания администратора. Он состоит из набора стандартов по управления сетью, в том числе протокол прикладного уровня(Application Layer protocol), схемы базы данных и набор объектов данных.
В ОС Windows службы SNMP доступна в виде компонентов Windows, но они не устанавливаются по умолчанию.
Для установки SNMP в Windows, выполните следующие действия:
1) Нажмите кнопку Пуск – Панель управления
2) Нажмите кнопку «Установка и удаление программ».
3) В левой панели, нажмите кнопку «Добавить / удалить компоненты Windows»
4) Найдите и выберите пункт «' Management ' and' Monitoring ' Tools» и нажмите кнопку "Details”
5) Выберите «Simple Network Management Protocol»
6) Вы также можете установить «' WMI SNMP Provider' » , который позволяет клиентам получать доступ к информации SNMP через интерфейсы WMI (Windows Management Instrumentation)
7) Нажмите кнопку ОК и нажмите кнопку «Далее» и завершите установку. В процессе установке вам понадобится вставить диск с дистрибутивом Windows в CD-ROM.
После установки, найдите соответствующие службы в консоли управления службами('services.' msc ):
Запустите "SNMP Service ”, чтобы включить агента SNMP, и службу "SNMP Trap Service ”, чтобы иметь возможность получать SNMP сообщения (SNMP Traps) от других агентов.
SNMP сообщения (SNMP Trap) – это сообщения, которые передают сервера (в случае возникновения определенного события) с установленным SNMP агентами на сервер системы управления SNMP.
Итак, вы установили службу SNMP на Windows сервере, и теперь можете использовать ее в качестве SNMP агента или SNMP сервера для того, чтобы отправлять или получать SNMP информацию от других систем, на которых установлен SNMP агент.
Протокол SNMP используется для управления сетевыми устройствами, мониторинга и оповещения о любых событиях на системах, которые могут иметь важное или критическое значения для бизнеса.
Для настройки SNMP агента в Windows,
o Нажмите кнопку Пуск – Выполнить – введите «services.msc» и нажмите ввод. В результате откроется консоль управления службами.
o На правой панели щелкните правой кнопкой мыши по службе SNMP и выберите пункт «Свойства»
o Перейдите на вкладку » Agent » на вкладке, введите контактное имя и месторасположение сервера, а также отметьте события, сообщения о которых нужно передавать на сервер управления SNMP.
o Перейдите на вкладку «Traps» и введите наименование группы и получателей сообщений (Trap). Это укажет агенту SNMP сервера, на которые необходимо слать SNMP сообщения в случае возникновения неполадок. Community name – это имя сервера управления SNMP.
o На вкладке Security (Безопасность) мы можем установить различные параметры безопасности для различных серверов SNMP, существуют следующие уровни: "Notify”, "READ ONLY”, "READ WRITE”, "READ CREATE”. » Read Write» - максимально допустимый уровень разрешений, при которых сервер управления SNMP может вносить изменения в систему, а уровень "READ ONLY”- подразумевает возможность лишь опрашивать систему, а вносить какие-либо изменения нельзя.
o Кроме того, по соображениям безопасности, вы можете выбрать опцию »Accept SNMP Packets from these hosts», с помощью которой можно определить список авторизованных серверов, которые могут опрашивать этого агента.
o Нажмите кнопку Применить и ОК.
o Щелкните правой кнопкой мыши по службе и выберите пункт «Перезапустить», чтобы изменения вступили в силу.
SNMP Manager is an application developed to provide a simple form of network monitoring.
Idividual clients / workstations are represented as icons, the icon will show red if an attempt to ping the IP address fails. The icon will show green if the IP address responds to a ping or SNMP request. The polling frequency, timeout, and size of the ping can all be configured.
Each client / workstation can also be pinged individually and report a round trip delay, and other IP addresses can also be pinged, even if they are not represented as icons.
The icon displayed for each client / workstation can be configured dependant on the devices Object ID. Icons are chosen from exe or ico files currently on the computer. The text displayed below the icons can be any one of: the IP Address, the SNMP Object Name, or any preconfigured text string.
Tools can be configured to allow them to be launched from the icons (right mouse click) with the devices IP address e.g. Telnet x.x.x.x. Tools can also be configured to allow them to be launched from the tools menu. An IP discovery option is also provided, to help initial setup.
SNMP — это протокол управления сетями связи на основе архитектуры TCP/IP. Эта технология призвана обеспечить управление и контроль над устройствами и приложениями в сети, путём обмена управляющей информацией между агентами, располагающимися на сетевых устройствах, и менеджерами, расположенными на станциях управления. Обычно SNMP агенты передают управленческую информацию на управляющие системы как переменные (такие как "свободная память", "имя системы", "количество работающих процессов"). Наша программа позволяет получать список переменных и их значения, и протоколировать их для дальнейшего анализа. В зависимости от значений переменных вы можете формировать сигналы и предупреждения.
Какие проблемы может решить SNMP Data Logger?SNMP Data Logger включает в себя средства уведомлений и скриптования. В этом случае, если найдено какое-нибудь совпадения в данных SNMP программа может как сформировать и отослать письмо через электронную почту администратору, так и выполнить любую внешнюю программу или заранее запрограммированные действия с помощью простого скрипта. Это может избавить администратора от множества монотонной и трудоемкой работы по контролю за множеством сетевых устройств.
Начните пользоваться прямо сейчас. SNMP Data Logger - это просто!После установки запустите SNMP Data Logger с помощью ярлыка в меню "Пуск". Нажмите на кнопке с зеленым плюсом в главном окне программы, добавьте вашего SNMP агента и переменные, которые вы хотите контролировать. Затем определите, как вы хотите обрабатывать, записывать и экспортировать полученные данные.
У Вас должны быть привилегии администратора. чтобы включить SNMP на системе Windows.
Установить SNMP на Windows Server 2008
Вы можете установить сервис SNMP на Windows Server 2008, используя один из следующих вариантов.
• использовать встраиваемый модуль Менеджера Сервера для добавления свойства сервиса SNMP
• или использовать следующую команду:
start /w ocsetup SNMP-SC
Этапы установки SNMP на Windows Vista и Windows 7
1. В Панели Управления выберите Программы
2. Под элементами Программы и Свойства. выберите включить или выключить свойства Windows
3. В списке свойств для Windows выберите свойства SNMP и раскройте список так, чтобы Вы смогли увидеть Провайдера WMI SNMP
4. Включите флажок для Провайдера WMI SNMP. Флажок для свойств SNMP устанавливается автоматически потому, что провайдеру необходим SNMP
5. Кликните OK
6. Из командной строки или меню Пуск запустите Services.msc и убедитесь, что сервис SNMP запущен.
Этапы установки SNMP на Windows XP, 2000 или 2003
1. Кликните Пуск выберите Настройки. кликните по Панели управления. дважды кликните по Добавить или удалить программы. а затем кликните Добавить/удалить компоненты Windows
2. Выберите Компоненты. кликните по Инструменты Управления и Мониторинга (не изменяя состояние флажка!) и затем кликните по элементу Детали.
3. Установите флажок для Простого протокола сетевого управления и кликните ОК
4. Кликните Продолжить
5. Вставьте CD-диск или укажите полный путь к необходимым файлам.
Процесс установки теперь завершен. Помимо этого автоматически устанавливается БД управления ресурсами хост-системы. Для настройки агентов SNMP для ответа на запросы SNMP, обратитесь к разделу Настройка агентов SNMP .
Этапы установки SNMP на Windows NT
1. Правой кнопкой мыши кликните по иконке Сетевое окружение на Рабочем столе
2. Кликните Свойства
3. Кликните Сервисы
4. Кликните Добавить. Появится диалоговое окно Выберите Сетевой сервис
5. В списке Сетевых сервисов. кликните по сервису SNMP, а затем кликните OK
6. Вставьте CD-диск или задайте полный путь к необходимым файлам и кликните Продолжить
7. После того, как все необходимые файлы скопированы, появится диалоговое окно Свойств Microsoft SNMP
Процесс установки завершен. Помимо этого автоматически устанавливается БД управления ресурсами хост-системы. Чтобы настроить SNMP-агенты так, чтобы они отвечали на запросы SNMP, изучите раздел Настройка агентов SNMP .
Этапы настройки SNMP на Windows 98
1. Вставьте CD-диск Windows 98
2. На панели управления сетью. кликните Добавить. Появится диалоговое окно Выбрать тип сетевого компонента
3. Дважды щелкните по элементу Сервис
4. В диалоговом окне Выберите сервис сети кликните по элементу Имеется диск
5. Укажите путь к директории tools\reskit\netadmin\snmp на Вашем СD в диалоговом окне Установить с диска. а затем кликните OK
6. Выберите агент Microsoft SNMP из списка Модели в диалоговом окне Выбрать сервис сети. а затем кликните OK
Процесс установки завершен. Помимо этого автоматически устанавливается БД управления ресурсами хост-системы. Чтобы настроить SNMP-агенты так, чтобы они отвечали на запросы SNMP, изучите раздел Настройка агентов SNMP .
Деятельность современных организаций тесно связана с использованием информационных технологий, будь то компьютер на рабочем месте менеджера мелкой фирмы или корпоративная сеть крупной компании — системного интегратора. И чем больше организация и чем важнее ее функции, тем выше требования к компьютерным системам, обеспечивающим выполнение этих функций, и тем дороже цена каждого сбоя в работе. Эффективность деятельности компании становится все более и более зависимой от качества работы ее компьютерного и телекоммуникационного оборудования.
Особенно остро встает вопрос о надежности и максимальной эффективности функционирования вычислительных сетей. Огромные убытки от сетевых неполадок, приводящих к потере данных, резкому падению производительности, блокировке серверов и другим неприятностям, несут банки, финансовые, транспортные и телекоммуникационные компании. Следовательно, особую актуальность приобретает проблема управления сетью.
Управление сетью — это комплекс мер и мероприятий, направленный на повышение эффективности функционирования сети, обнаружение и устранение сбоев в ее работе, правильное ее развитие и модернизацию, и сокращение затрат в конечном итоге. Принято разделять функции управления сетью на две группы:
Управление элементами сети:
Управление коммуникациями:
В настоящее время для управления сетями используются приложения, работающие на базе платформ сетевого управления, таких как системы HP OpenView фирмы Hewlett-Packard, NetView for AIX (IBM), SunNet Manager (Sun), Spectrum (Cabletron Systems), NetWare Management Systems (Novell) и другие разнообразные кросс-платформные средства управления.
В основе этих средств лежит использование протокола SNMP (Simple Network Management Protocol). Протокол SNMP предназначен для сбора и передачи служебной информации (status information) между различными компьютерами.
2. Определение SNMPSNMP — это протокол из семейства TCP/IP (Протокол SNMP описан в RFC 1157). Первоначально он был разработан Сообществом Интернета (Internet community) для наблюдения и устранения неполадок в маршрутизаторах и мостах (bridges). SNMP позволяет наблюдать и передавать информацию о состоянии:
SNMP использует распределенную архитектуру, состоящую из систем управления (management systems) и агентов (agents). С помощью сервиса Microsoft SNMP компьютер, работающий под управлением Windows NT, может выдавать отчет о своем состоянии системе управления SNMP в сети, использующей протокол TCP/IP.
Сервис SNMP посылает информацию о состоянии одному или нескольким компьютерам по запросу или в случае, когда происходит важное событие, например компьютеру не хватает места на жестком диске.
2.1. Системы управления и агентыSNMP позволяет наблюдать за различными компьютерами с помощью систем управления и агентов, как показано на рис. 1 .
Система управления SNMPОсновная функция системы управления — запрос информации от агентов. Система управления (management system) — это любой компьютер, на котором работает программное обеспечение управления SNMP. Система управления может выполнять операции get, get-next и set.
Основная функция агента SNMP заключается в выполнении операций set, инициированных системой управления. Агент — это любой компьютер, на котором работает соответствующее программное обеспечение SNMP, как правило, сервер или маршрутизатор. Сервис Microsoft SNMP — это программное обеспечение агента SNMP.
Единственная операция, которая может быть инициирована агентом, — trap. Эта операция сигнализирует системам управления о необычном событии, например о нарушении пароля.
2.2. Сервис Microsoft SNMPСервис Microsoft SNMP обеспечивает сервисы агента SNMP любому компьютеру, на котором работает программа управления SNMP (рис. 2 ). Сервис SNMP:
Сервис Microsoft SNMP написан с использованием интерфейса Windows Sockets. Это позволяет обращаться к нему из сетевых систем управления, созданных средствами этого интерфейса. Сервис SNMP посылает и принимает сообщения по протоколу UDP (порт 161) и использует IP для поддержки маршрутизации SNMP-сообщений. SNMP позволяет применять дополнительные динамически подключаемые библиотеки агентов для поддержки других баз MIB. Сторонние производители могут разрабатывать собственные базы MIB для использования совместно с сервисом Microsoft SNMP. Microsoft SNMP включает модуль Microsoft Win32 (API SNMP администратора для упрощения разработки SNMP-приложений).
Таким образом, SNMP позволяет наблюдать за компьютерами, работающими под управлением Windows NT, и сигнализировать системам управления о происходящих событиях. Сервис Microsoft SNMP обеспечивает сервисы агентов, дополнительные библиотеки DLL и Win32 SNMP API администратора для упрощения разработки SNMP-приложений.
Информация, которую система управления запрашивает от агентов, хранится в специальной информационной базе данных MIB (Management Information Base).
MIB — это набор контролируемых объектов, предоставляющих информацию об устройствах сети, например о количестве активных сеансов или версиях сетевой операционной системы, работающей на компьютере. Главное то, что и агент SNMP, и база данных MIB одинаково интерпретируют контролируемые объекты. Таким образом, система управления с помощью базы данных MIB «знает», какую информацию можно запросить у агента и что характеризует тот или иной объект.
Сервис SNMP поддерживает Internet MIB II, LAN Manager MIB II, DHCP MIB и WINS MIB.
Internet MIB II — это расширение предыдущего стандарта Internet MIB I. Оно определяет 171 объект, необходимый для поиска неисправностей и анализа конфигурации (База данных Internet MIB II описана в RFC 1212 ).
LAN Manager MIB IILAN Manager MIB II определяет приблизительно 90 объектов, которые включают такие элементы, как статистическая, сеансовая, пользовательская, регистрационная информация, и данные о совместно используемых ресурсах. К большинству объектов LAN Manager MIB II установлен доступ только для чтения, в связи с отсутствием обеспечения безопасности в SNMP.
Операционная система Windows NT 4.0 поставляется с DHCP MIB. Эта база определяет объекты наблюдения за активностью DHCP-сервера. Модуль Dhcpmib.dll автоматически устанавливается при установке сервиса DHCP Server. Он наблюдает около 14 параметров DHCP, например число полученных запросов DHCPDISCOVER, количество отказов или адресов, взятых в аренду клиентами.
Windows NT 4.0 поставляется с WINS MIB. Эта база определяет объекты для наблюдения за активностью WINS-сервера. Модуль Winsmib.dll автоматически устанавливается при установке сервиса WINS Server. Он наблюдает приблизительно 70 параметров WINS, например число запросов, на которые удалось успешно ответить, количество неуспешных запросов или дату и время последнего сеанса тиражирования базы данных.
Пространство имен MIB-объектов имеет иерархическую структуру. На рис. 3 видно, что оно организовано так, что каждому контролируемому объекту может соответствовать уникальное имя. Полномочия на управление частями пространства имен присваиваются отдельным организациям. Поэтому организации, в свою очередь, вправе назначать имена, не консультируясь с комитетом по Интернету. Например, 1.3.6.1.4.1.77 является пространством имен, присвоенным LAN Manager. Поскольку 1.3.6.1.4.1.77 присвоено LAN Manager, корпорации Microsoft присвоено 1.3.6.1.4.1.311, и все новые базы MIB будут созданы на этой ветви. Microsoft вправе назначать имена объектам где угодно в рамках этого пространства имен.
Идентификатор объекта в иерархии записывается как последовательность меток, начинающихся в корне и заканчивающихся самим объектом. Метки разделены точками. Например, идентификатор объекта для MIB II приведен ниже.
Приветствую тебя, гость и постоянный читатель. Пришлось в последнее время внедряться в сетевой мониторинг. Очень актуальная тема для мониторинга - SNMP (Simple Network Management Protocol). Часто приходилось использовать SNMP. но руки не доходили до его описания. Сегодня хочу изложить свое понимание данной технологии.
SNMP есть Simple Network Management Protocol. он же Простой Протокол Сетевого Управления. Протокол создан в 1988 г. с целью управления большим количеством сетевых устройств. С того момента протокол набрал соответствующую популярность и стал стандартом. С момента разработки протокол SNMP был 3 раза переработан с версии SNMPv1. SNMPv2 и SNMPv3. На самом деле, версий было больше, например v2 была пересмотрена 2 раза (или даже более). Так же стоит отметить, что кроме SNMP были и другие попытки создать коммерческие и не коммерческие протоколы управления (CORBA, TMN. ) не увенчавшиеся успехом.
Кроме управления устройствами, очень часто всегда SNMP используют для мониторинга. SNMP может получать различную информацию от любых сетевых устройств, будь то роутер, свич или просто компьютер (в которых имеется поддержка данного протокола (читай - запущен агент SNMP). Содержимое получаемой информации может быть очень разнообразно, например: время аптайма, различные счетчики производительности CPU, сети и др. сетевые параметры устройств.
Архитектура протокола SNMPСеть, использующая SNMP для управления содержит три основных компонента :
Давайте попытаемся рассмотреть обозначенные компоненты.
SNMP менеджер и SNMP агентДля понимания назначения компонентов, можно сказать, что SNMP менеджер является прослойкой (интерфейсом) между оператором\администратором и сетевым узлом с запущенным SNMP агентом. Так же, можно сказать, что SNMP агент - это интерфейс между SNMP менеджером и железным оборудованием на сетевом узле. Если провести аналогию протокола SNMP с клиент-серверной архитектурой (например, веб-сервера) то веб-сервер работает как служба на некотором порту, а пользователь силами браузера обращается к веб-серверу как клиент. Это четко обозначенная архитектура с выраженным клиентом и сервером. В случае SNMP роли клиента и сервера несколько размыты. Например, SNMP агент является своего рода службой, работающей на устройстве (за которым производится мониторинг) и обрабатывает запросы на определенном порту udp/161. то есть фактически является сервером. А SNMP менеджер является своего рода клиентом, который обращается к серверу SNMP агенту. В SNMP существует т.н. Trap. Это запрос от агента к менеджеру. Точнее даже не запрос, а уведомление. При отправке данного уведомления, агент и менеджер "меняются ролями". То есть, менеджер в таком случае должен являться сервером, работающем на порту udp/162, а агент является клиентом. В последних версиях SNMP trap может именоваться как извещение (notification ).
SNMP работает на 7 уровне модели OSI. то есть является службой прикладного уровня. Взаимодействие агента и менеджера на уровне протокола SNMP организуется посредством т.н. пакетов объектов PDU (Protocol Data Unit). которые инкапсулируются в транспортный протокол. Хотя, SNMP поддерживает различные виды транспорта, в 99% случаев используется - UDP. При этом, каждое сообщение PDU содержит определенную команду (на чтение переменной, запись значения переменной, или ответ\trap агента). В целом, взаимодействие узлов по SNMP можно представить следующей последовательностью: менеджер -> SNMP(PDU)-UDP-IP-Ethernet-IP-UDP-SNMP(PDU) ->агент. При использовании шифрования в SNMP. по умолчанию используются порт для запросов\ответов udp/10161, а Trap отправляются на udp/10162.
Агенты, работающие на хостах, собирают информацию об устройствах и записывают собранные счетчики в значения переменных в базу данных MIB . Тем самым делая ее доступной для менеджеров. Давайте рассмотрим схему взаимодействия SNMP-агент - SNMP-менеджер :
Итак, как я уже сказал, SNMP менеджер отправляет запросы агенту на порт udp/161 (если конфигурационно в агенте не задан другой порт) с произвольного порта из эфемерного диапазона. В запросе SNMP менеджера указывается порт и адрес источника (о полной структуре пакета SNMP опишу ниже). Далее агент принимает пакет и обрабатывает (если выполняются нижеописанные условия ). В процессе обработки, формируется ответ, который отправляется на порт взятый из исходного запроса. Ответ отправляется с udp/161 порта. Можно сказать, что SNMP агент таким образом предоставляет доступ SNMP менеджеру к данным, хранящимся в базе MIB. При этом, в момент отправки, SNMP менеджер вставляет в PDU некий ID (RequestID ), а агент в ответном PDU вставляет данный ID без изменения, для того чтобы менеджер не путал пакеты от разных агентов. SNMP агент может быть настроен на посылку Trap уведомлений, которую он выполняет с эфимерного порта на udp/162 порт SNMP менеджера .
Выше я упомянул о единице обмена между узлами SNMP - PDU (Protocol Data Unit). давайте разберем данное понятие. Для обмена между агентом и менеджером используется определенный набор сообщений PDU команд:
Как видно, в зависимости от версии протокола, набор команд разный (например InformRequest и GetBulkRequest полноценно появился только во второй версии SNMP). Компонент SNMP MIB рассмотрим ниже .
Структура PDUРассмотрение структуры PDU не обязательно, но это поможет более глубоко понять логику работы SNMP. Все PDU (кроме Trap) состоят из определенного набора полей, в которые записывается необходимая информация:
Что данные поля обозначают:
При этом, содержимое Trap PDU содержит некоторые дополнительные поля (вместо заголовка запроса):
В новых версиях SNMP содержимое Trap PDU может незначительно меняться, но в целом, смысл тот же.
Логика работы протокола SNMPРассмотрев основные единицы обмена SNMP. можно обсудить логику работы SNMP при выполнении данных запросов\ответов. Некоторые общие особенности работы протокола SNMP. которые стоит учитывать:
(взято частично отсюда http://logic-bratsk.ru/brlug/snmp_my/):
При получении PDU GetRequest, SNMP агент действует по следующему алгоритму:
При получении PDU GetNextRequest, SNMP агент действует по следующему алгоритму:
При получении PDU SetRequest, SNMP агент действует по следующему алгоритму:
взято отсюда (http://www.manageengine.com/network-monitoring/what-is-snmp.html)
Обмен PDU GET? GET NEXT? GET BULK? SET Обмен PDU Trap или notificationДавайте попробуем понять MIB. Это совсем не люди в черном ) Как я уже сказал, это Management information base. то есть база набор управляющей информации. Каждый сетевой узел, имеющий на своем борту SNMP агента (читай – поддерживающий протокол SNMP) предоставляет свой набор данных, тот, который в него «вложили» программисты\разработчики при проектировании железки\программы. То есть в каждом сетевом устройстве с поддержкой SNMP имеется своя база MIB со строго обозначенным набором переменных. Каждая база MIB имеет древовидную структуру, каждый объект в которой характеризуется уникальным идентификатором объекта (Object Identifier, OID) .
Каждая ветка MIB-иерархии оканчивается некоторой переменной (так же имеющей свой OID), содержащей в себе определенное значение, которое записывается в переменную SNMP агентом, работающем на хосте. Данное значение неким образом характеризует данный хост (например, содержит информацию об аптайме, загрузке сетевого интерфейса и мн.др. параметры).
Имеется некая единая общая структура дерева MIB. а так же, имеются единые стандарты и принципы дальнейшего формирования данного дерева, его переменных, др. параметров, за эти правила отвечает некий разработанный стандарт под названием Структура Информации Управления (SMI. S tructure of M anagement I nformation ). Так же, имеется некий стандарт, называемый абстрактный синтаксис нотаций - ASN.1. Который тоже участвует в описании протокола SNMP и базы MIB. А еще имеется базовые правила кодирования BER (B asic E ncoding R ules), определяющие кодирование сущностей, применяемых в SNMP.
Кроме того, существует всемирное дерево регистрации стандартов IS O . содержащее базовую структура дерева MIB (точнее этих структур существует несколько, они формировались вместе с совершенствованием версий SNMP). Составное числовое имя объекта SNMP MIB соответствует полному имени этого объекта в дереве регистрации объектов стандартизации ISO. За данную древовидную структуру отвечает и контролирует организация IANA (и некоторые другие).
Давайте рассмотрим типичное дерево MIB на рисунке:
Дерево объектов MIB подобно системе DNS (Domain Name System). Тут аналогично имеются символьные имена (аналогично NS имени) и называемые ASN.1 нотацией. и соответствующие им числовые значения (аналогично IP адресам), называемые dot нотацией. Каждый объект в MIB состоит из нескольких чисел, разделенных точками. Числам соответствуют текстовые наименования. При этом, в отличии от DNS - нет какого-то единого централизованного сервера, отвечающего за разолвинг имен. Все разрешения имен из символов в числа происходят силами SNMP менеджера (в зависимости от того, какие сопоставления MIB загружены в менеджер). Весь обмен между узлами SNMP происходит только в числовом виде. В символьном виде, наименования используются только для отображения на экране или в документации.
Часто OID характеризующий определенный объект в дереве MIB сравнивают со структурой телефонных номеров, т.к. они (номера) так же иерархичны и отдельные части номера назначаются различными организациями. Например, международные телефонные номера состоят из кода страны (назначаемого международной организацией) и телефонного номера в том виде, в котором он определен локально в стране. При этом, телефонный номер в стране делится на код области\края\региона, номер АТС и далее номер абонента, привязанного к АТС. Аналогично - в MIB OID верхнего уровня назначаются международной организацией (ISO IEC. ), ветки OID нижнего уровня назначаются организациями, отвечающими за эти ветки.
Итак, структура OID в дереве MIB :
В вершине дерева – корень (точка), от которого ответвляются ветви. Во многих схемах приведены некоторые ветви верхнего уровня (например itu-t, iso\itu-t и другие ниже), но информации о их назначении я не нашел… Посему, нас интересует вертка iso (0), которая хранит в себе следующие значения до internet (1). iso.org.dod.internet. что соответствует числовому ID .1.3.6.1 .
Данный раздел (iso.org.dod.internet ) разветвляется на подразделы, которые в большинстве своем контролируются IANA и состоят (согласно RFC1155) из:
Далее, необходимо рассмотреть отдельным пунктом ветку 1.3.6.1.2 (iso.org.dod.internet. mgmt ), состоящую из подветки mib-2 (1). а так же reserved(0) , pib(2) , http(9) и некоторых других. Стоит отметить, что в зависимости от версии протокола (SNMPv1 vs SNMPv2) на месте данной ветки могут быть «прилинкованы» разные поддеревья в целом имеющие примерно одинаковую структуру и одинаковые идентификаторы, но в более новой версии протокола – поддерево более расширено. (наверно, в этом и состоит несовместимость версий протокола…)
Итак iso.org.dod.internet.mgmt.mib-2 (1.3.6.1.2.1). данная ветка является базовой для большинства сетевых устройств и содержится практически в любом устройстве. Ветка поделена на базовые группы (которых на текущий момент более 170), характерные для любого сетевого оборудования. Давайте рассмотрим наиболее применяемые:
Отдельного абзаца так же достоин подраздел iso.org.dod.internet.private (1.3.6.1.4). содержащий в себе поддерево enterprise (1). Данная ветвь контролируется IANA и содержит в себе более 40000 поддеревьев (ознакомьтесь с актуальным списком http://www.iana.org/assignments/enterprise-numbers ). В данной ветке регистрируют свои поддеревья – производители оборудования. Вот пример ответвления:
Ниже структура аналогичная всем остальным разделам – древовидна. В каждом поддереве соответствующий производитель оборудования в праве сам регистрировать свои ветвления и переменные.
Так же, важным моментом, является то, что любая ветвь базы MIB оканчивается переменной. в которую записывается некоторое значение. При этом, в MIB существует несколько типов переменных. Во-первых, они делятся на переменные «только для чтения » и доступные для изменения. которые не позволяют выполнять запрос SetRequest и позволяют выполнять, соответственно. Во-вторых, имеются строковые переменные, табличные и мн.др. значения которых так же идентифицируются по OID. В целом, если нет желания к программированию для SNMP, то этим пониманием и можно ограничиться.
Безопасность протокола SNMP (или версии протокола SNMP)Безопасность протокола SNMP - это самый изменяемый раздел спецификации протокола со времени его создания. С каждой версией SNMP, производились попытки усилить безопасность. Первая версия протокола SNMPv1 была самой простой и небезопасной. Сообщения протокола могли быть подвержены возможности модификации, подмене или прослушиванию. Безопасность протокола базировалась на модели безопасности на основе сообществ (т.н. Community-based Security Model ), что подразумевало аутентификацию на основе единой текстовой строки - своеобразного пароля (т.н. community-sting ), которая передавалась в теле сообщения в открытом виде. Хотя, данная версия протокола самая незащищенная, она довольно часто применяется в современных сетях, т.к. является самой простой.
В одной из вторых версий SNMP (SNMPv2p) была попытка реализовать аутентификацию на основе сторон (т.н.Party-based Security Model ). Технология кроме аутентификации, так же поддерживала возможность шифрования трафика. Данная технология не прижилась, как "сложная и запутанная" ) и в данный момент не используется. После чего SNMP второй версии вернулась к Community-based Security и стала именоваться SNMPv2c и применяется по сей день. SNMPv2 была переписана чуть более чем полностью, в результате чего существенно повышено быстродействие протокола, безопасность.
Третья версия протокола (SNMPv3 ) была более удачно доработана и поддерживает как аутентификацию на основе имени пользователя (т.н. User-based Security Model ), так и шифрование трафика. Хотя их можно и не использовать.
Версии протокола между собой не совместимы. Несовместимость заключается в разнице пакетов PDU. в наличии дополнительных команд в более новых версиях протокола (возможно, в других…). В RFC 2576 имеется некоторая информация, позволяющая организовать возможность совместного использования SNMPv1 и v2. Для этого есть 2 пути: 1. Использование прокси-агентов (агент преобразует PDU SNMPv2 в PDU SNMPv1 ), 2. Использование менеджера с поддержкой 2х версий (менеджер для каждого хоста должен помнить версию агента).
Давайте рассмотрим работу протокола SNMPv2c (и SNMPv1 ) с точки зрения безопасности. При рассмотрении структуры пакета PDU было видно, что каждая единица PDU содержит community строку. При этом, SNMP агент содержит список (часто данный список состоит из одного значения) разрешенных строк и описание того, что каждая из строк может делать (фактически – набор прав). В большинстве случаев – это права read/write. При активации функций SNMP на каком-либо хосте, стандартные строки community – это public и private для возможности чтения и для возможности чтения-записи соответственно. Это строки очень желательно менять на свои. Часто, при конфигурировании SNMP о. в котором для каждой переменной в поле связанные переменные подставлены установленные значения переменных. В поле error-status помещается значение NoError, а в поле error-index — 0. Значение поля request-id в ответном PDU совпадает с идентификатором в принятом сообщении.пределяют различные community строки для чтения переменных и для записи .
Принципы настройки протокола SNMPДля того, чтобы SNMP менеджер мог работать с символьными именами OID (ASN.1 нотация), необходимо подсунуть ему соответствующие файлы SMI и MIB, хранящие соответствия символьной записи и цифровой. Для того чтобы SNMP менеджер мог взаимодействовать с каком-либо агентом, необходимо менеджеру указать на этого агента, для чего задать соответствующие настройки, например:
В большинстве реализаций менеджеров SNMP (в данном контексте, наверно, лучше сказать – систем управления сетью Network Management System ) предоставлены некие возможности механизма автоматического обнаружения SNMP агентов. В большинстве случаев это сводится к выполнению по расписанию некоторого скрипта, запускаемого в определенный промежуток времени и опрашивающего заданный диапазон IP адресов.
SNMP в LinuxВ большинстве дистрибутивов Linux для работы с SNMP используется пакет net-snmp (RedHat) и snmp + snmpd (в Debian в snmp лежит клиентская часть, а в snmpd – серверная часть), который позволяет использовать протокол SNMP посредством отправки и получения PDU. После установки пакета(ов) в linux появятся следующие инструменты (перечислены не все):
Основной и часто используемой из всех указанных команд, является snmpwalk. При указании данной команды, без OID она попытается получить все объекты из ветки iso.org.dod.internet.mgmt.mib-2. В ссылках ниже можно найти отличный сборник примеров использования данных программ.
Так же, стоит отметить, что когда Вы работаете с указанными командами, наименование переменных OID «сворачивается» до короткого пути, например путь OID iso.org.dod.internet.mgmt.mib-2.system.sysName.0 (1.3.6.1.2.1.1.5.0) будет свернут до SNMPv2-MIB::sysName.0. На иллюстрации дерева MIB видно, как выделен красной заливкой путь iso.org.dod.internet.mgmt.mib-2. собственно, он и свернут в название данной ветки и представлен как SNMPv2-MIB:: .
SNMP в DebianПолитика лицензирования Debian определяет базы MIB, как несвободное ПО, поэтому они не расположены в свободных репозитоиях, а размещены в non-free репозиториях. Для того чтобы базы корректно установились, необходимо данный репозиторий прописать в /etc/apt/sources.list. например:
и установить пакет snmp-mibs-downloader. (в процессе установки данный пакет попытается получить mib-базы из интернета). Так, же, необходимо в /etc/snmp/snmp.conf закомментировать строку:
Маленький итог о SNMP
Итак, в статье я постарался как можно понятней рассказать о SNMP, чтобы применять эту технологию в сетях мониторинга. Подводя краткий итог протокол SNMP базируется на нескольких основных принципах:
Источники загрузки MIB файлов (каталоги MIB):
Дополнительно к прочтению