SNMP EcoRouter Documentation / SNMP
- Запуск и остановка сервиса SNMP
- Настройка SNMP community
- Настройка представлений (SNMP views)
- Настройка отправки асинхронных сообщений
- SNMPv3
SNMP (англ. Simple Network Management Protocol – простой протокол сетевого управления) – стандартный интернет-протокол для управления устройствами в IP-сетях на основе архитектур TCP/UDP. С помощью протокола SNMP, программное обеспечение для управления сетевыми устройствами может получать доступ к информации, которая хранится на управляемых устройствах (например, на коммутаторе). На управляемых устройствах SNMP хранит информацию об устройстве, на котором он работает, в базе данных, которая называется MIB.
SNMP является одним из протоколов, реализующих концепцию технологий управления сетью Internet Standard Management Framework.
В рамках данной концепции для управления сетью строится система, состоящая из трех основных элементов:
- SNMP manager управляет и наблюдает за сетевой активностью устройств. Его часто называют Network Management System (NMS);
- SNMP agent – программное обеспечение, запускаемое на управляемом устройстве, либо на устройстве, подключенном к интерфейсу управления управляемого устройства. Собирает данные с управляемого устройства и передает их на SNMP manager;
- Management Information Base (MIB) – база данных, которая используется для управления устройствами в сети. Имеет древовидную структуру в которой хранится информация о хостах. Элементы MIB имеют символьные имена и соответствующие им числовые значения – OID (формата N.N.N….N).
EcoRouter поддерживает версии протокола SNMPv1, SNMPv2c и SNMPv3.
Запуск и остановка сервиса SNMP
Для запуска SNMP сервиса используется команда конфигурационного режима snmp-server enable snmp (mgmt | vr <VR_NAME | default>).
При запуске SNMP указывается, какие порты будет обслуживать сервис:
mgmt - management-порт,
vr - порты виртуального маршрутизатора.
Если значение данного параметра не указывается, то SNMP будет включен для management-порта.
ecorouter(config)#snmp-server enable snmp vr virt1
Если SNMP включается на виртуальном маршрутизаторе, для него необходимо разрешить входящий трафик на UDP-порт 161 через настройку профилей безопасности (подробнее о профилях безопасности можно прочитать в соответствующем разделе).
Для того чтобы переключить SNMP на другой виртуальный маршрутизатор, необходимо сначала выключить SNMP, а потом включить снова с указанием нужного виртуального маршрутизатора.
Пример настройки профиля безопасности и переключения сервиса на другой виртуальный маршрутизатор:
ecorouter(config)#security-profile 2
ecorouter(config-security-profile)#rule 0 permit udp any any eq 161
ecorouter(config-security-profile)#ex
ecorouter(config)#virtual-router virt2
ecorouter(config-vr)#ex
ecorouter(config)#security vr virt2 2
ecorouter(config)#no snmp-server enable
ecorouter(config)#snmp-server enable snmp vr virt2
Для выключения SNMP сервиса используется команда конфигурационного режима no snmp-server enable snmp.
ecorouter(config)#no snmp-server enable snmp
Для переподключения определенного протокола к SNMP в EcoRouter используется команда конфигурационного режима snmp restart <bgp | isis | ldp | mrib | ospf | pim | rib | vrrp>.
ecorouter(config)#snmp restart bgp
Настройка SNMP community
SNMP community - ключевое слово, имя объединения (сообщества) для взаимодействия по протоколу SNMP 1 или 2 версии. Сообщество состоит из одного или нескольких агентов и менеджеров. Один хост с установленным на нем агентом может одновременно принадлежать к нескольким сообществам, при этом агент будет принимать запросы только от устройств управления, принадлежащих к этим группам. Безопасность обмена сообщениями между агентами и менеджером в этом случае обеспечивается при помощи передачи в теле сообщения в открытом виде имени сообщества или community-string.
Для создания community используется команда конфигурационного режима snmp-server community. Синтаксис команды: snmp-server community <COMMUNITY-NAME> ( (view <VIEW-NAME> (ro | rw) ) | (group <GROUP-NAME>) | (ro | rw)).
Параметр | Описание |
---|---|
<COMMUNITY-NAME> | Сommunity-string. Максимальная длина 32 символа |
view <VIEW-NAME> | Указать имя представления, определяющего поддерево MIB, доступное данному сообществу. Представление должно быть предварительно создано командой snmp-server view |
<GROUP-NAME> | Имя группы |
ro | Доступ только на чтение - значение выставляется по умолчанию |
rw | Доступ на чтение и запись, если она разрешена |
ecorouter(config)#snmp-server community MyComm view MyView1 version v2c rw
Для сообщества нельзя одновременно указать и представление, и группу. Если не указано ни представление, ни группа, а только имя сообщества, то данному сообществу будет предоставлен доступ из любой сети ко всем MIB.
Для удаления community используется команда конфигурационного режима no snmp-server community <COMMUNITY-NAME>.
Настройка представлений (SNMP views)
Представления создаются для того, чтобы ограничить доступ к объектам дерева MIB. Для создания и настройки представления используется команда конфигурационного режима snmp-server view. Синтаксис команды: snmp-server view <VIEW-NAME> <OID-TREE> (included | excluded).
Параметр | Описание |
---|---|
<VIEW-NAME> | Имя представления. Максимальная длина 32 символа |
<OID-TREE> | Идентификатор поддерева MIB, которое должно быть включено в представление или исключено из него. Указывается в виде строки из цифр, разделенных точками, например, 1.3.6.2.4, может быть задано именем |
included | Включить поддерево в SNMP представление |
excluded | Исключить поддерево из SNMP представления |
ecorouter(config)#snmp-server view myView3 1.3.6.1.6.3.18 excluded
Для добавления поддерева к существующему представлению (или исключения из него) используется эта же команда.
Для удаления представления используется команда конфигурационного режима no snmp-server view <VIEW-NAME>.Настройка отправки асинхронных сообщений
При передаче информации между менеджерами и агентами в общем виде используются следующие сценарии:менеджер отправляет запрос агенту и получает ответ;
менеджеру отправляется сообщение (агентом или другим менеджером), которое требует уведомления о получении (inform);
агент отправляет информацию о себе менеджеру без запроса с его стороны и без уведомления о получении (trap).
Для включения отправки trap сообщений используется команда snmp-server enable traps.
ecorouter(config)#snmp-server enable traps
Для отключения отправки trap сообщений используется команда no snmp-server enable traps.
ecorouter(config)#no snmp-server enable traps
Для того чтобы осуществлять отправку trap сообщений менеджеру или NMS, необходимо указать адрес нужного хоста и его настройки. Для этого используется команда snmp-server host. Синтаксис команды:
snmp-server host <A.B.C.D|HOSTNAME> (traps ( | version (1 | 2c)) | informs) <COMMUNITY-STRING> (| udp-port <1-1024>)
Параметр | Описание |
---|---|
A.B.C.D | IP сервера |
HOSTNAME | DNS-имя сервера |
traps | Отправлять сообщения типа trap (без уведомления). Параметр по умолчанию |
informs | Отправлять сообщения типа inform (с уведомлением) |
version | Версия протокола SNMP. Значения параметра: 1 или 2c |
<COMMUNITY-STRING> | Community-string, от имени какого сообщества отправляются сообщения. Максимальная длина 32 символа |
udp-port | Порт, который слушает сервер. Диапазон значений от 1 до 1024, по умолчанию 162 |
ecorouter (config)#snmp-server host 192.168.0.1 traps version 1 MyCommPass
Если в параметрах указывается отправка сообщений типа inform, то параметр version не задается, так как он может быть равен только v2c.
Для удаления записи о менеджере или NMS используется команда no snmp-server host.
ecorouter(config)#no snmp-server host < A.B.C.D | HOSTNAME >
SNMPv3
Протокол SNMPv3 - это следующая стадия развития протокола SNMP. Он полностью совместим с предыдущими версиями. Отличие от предыдущих версий:
понятия "менеджер" и "агент" заменены на "сущность" (entity), понятия "агент" и "менеджер" остались в качестве ролей;
стали доступны службы ограничения доступа, защиты данных и аутентификации пользователя (см. стандарты RFC 3411-3415).
В версии SNMPv3 предусмотрено три уровня безопасности:
noAuthNoPriv - аутентификация не производится, конфиденциальность данных отсутствует;
authNoPriv - аутентификация без конфиденциальности;
authPriv - аутентификация и шифрование, максимальный уровень защиты.
Операции с пользователем
Создание пользователя производится в режиме конфигурации при помощи команды snmp-server user <USERNAME> [group <GROUPNAME>] [encrypted] [auth (md5 | sha ) <AUTH-PASSWORD> [priv (des | aes) <PRIV-PASSWORD>]] . Описание параметров вызова команды приведено в таблице ниже.
Параметр | Описание |
---|---|
USERNAME | Имя пользователя |
GROUPNAME | Имя группы |
encrypted | Указание этого параметра означает, что далее введен уже зашифрованный пароль (пароли), и к нему (к ним) хэширование применять уже не надо |
auth (md5 | sha) | Выбор алгоритма хэширования аутентификационного пароля. Если будет задан параметр priv (des | aes), то пароль для шифрования сообщений в сессии также будет хэширован по выбранному алгоритму (md5 или sha) |
AUTH-PASSWORD | Аутентификационный пароль |
priv (des | aes) | Выбор алгоритма шифрования на основе <PRIV-PASSWORD>. Выбор возможен, только если задействован параметр auth |
PRIV-PASSWORD | Пароль для шифрования сообщений в сессии |
Пользователь может входить только в одну группу или не входить ни в одну.
Удаление пользователя производится при помощи команды no snmp-server user <USERNAME> [group <GROUPNAME>] [auth (md5 | sha ) <AUTH-PASSWORD> [priv (des | aes) <PRIV-PASSWORD>]] .
Операции с группой
Создание группы производится в режиме конфигурации при помощи команды snmp-server group <GROUPNAME> (v1 | v2c | (v3 (auth | noauth | priv))) (read VIEW-NAME | ) (write VIEW-NAME | ).
Параметр | Описание |
---|---|
GROUPNAME | Имя группы |
v1 | v2c | v3 | Версии протокола SNMP |
auth | noauth | priv | В зависимости от параметра в сессиях, соответствующих выбранной модели безопасности, пользователям будет предоставлен определенный доступ. При указании auth доступ к представлению этой группы будет предоставлен аутентифицированному пользователю, при указании noauth - неаутентифицированному, при указании priv - пользователю, использующему аутентификацию и шифрование |
VIEW-NAME | Имя представления, определяющего поддерево MIB, доступное данной группе для чтения или записи соответственно. Представление должно быть предварительно создано командой snmp-server view |
Редактирование группы выполняется той же командой, что и создание.
Каждая группа может быть настроена по-разному для работы с каждой версией SNMP. Для SNMPv3 возможны различные настройки для одной и той же группы для разных уровней безопасности.
ecorouter(config)#snmp-server group test v1 read view1 write view2
ecorouter(config)#snmp-server group test v2c read view3
ecorouter(config)#snmp-server group test v3 auth read view4 write view5
ecorouter(config)#snmp-server group test v3 priv write view6
Присутствует возможность включить строгий режим работы SNMP агента - при котором обрабатываются сообщения только третьей версии протокола SNMP.
ecorouter(config)#snmp-server v3-strict
Удаление группы производится при помощи команды no snmp-server group <GROUPNAME> ((v1 | v2c | v3 (auth | noauth | priv)) (read VIEW-NAME | ) (write VIEW-NAME |) |).
Команды просмотра
Просмотр информации о SNMP-пользователях производится в режиме администрирования при помощи команды show snmp user [<USERNAME>]. Если указать параметр <USERNAME>, то будет выведена информация о выбранном пользователе.
ecorouter#show snmp user MyUsEr
User name: MyUsEr
Group name: Gr1
Authentication: md5
Privacy: DES
В результате выполнения команды show snmp user будет выведена информация обо всех пользователях SNMP. Пример выполнения такой команды:
ecorouter#show snmp user
User name: MYSNMPUSER
Authentication: No
Privacy: No
User name: MyUsEr
Group name: Gr1
Authentication: md5
Privacy: DES
Просмотр информации о SNMP-группах производится в режиме администрирования при помощи команды show snmp group [<GROUPNAME>]. Если указать параметр <GROUPNAME> , то будет выведена информация о выбранной группе.
ecorouter#show snmp group 2
Group name: 2
Authentication: No
В результате выполнения команды show snmp group будет выведена информация обо всех группах SNMP. Если группа имеет отдельные настройки для разных версий протокола, то они будут показаны отдельно. Пример выполнения такой команды:
ecorouter#show snmp group
Group name: test
Security level: no Authentication
Snmp version: 1
Read view: view1
Write view: view2
Group name: test
Security level: no Authentication
Snmp version: 2c
Read view: view3
Group name: test
Security level: Authentication
Snmp version: 3
Read view: view4
Write view: view5
Group name: test
Security level: Authentication and Privacy
Snmp version: 3
Write view: view6