Настройка SNMP
SNMP (англ. Simple Network Management Protocol — простой протокол сетевого управления) — протокол, предназначенный для управления устройствами в IP-сетях на основе архитектур TCP/UDP. SNMP предоставляет данные для управления в виде переменных, описывающих конфигурацию управляемой системы.
Алгоритм настройки
Шаг | Описание | Команда | Ключи |
|---|---|---|---|
1 | Включить SNMP-сервер. | esr(config)# snmp-server | |
2 | Определить community для доступа по протоколу SNMPv2c. | esr(config)# snmp-server [ encrypted ] community <COMMUNITY> [ <TYPE> ] | encrypted - при добавлении данного параметра, ввод названия сообщества <COMMUNITY> требуется производить в зашифрованном виде.<COMMUNITY> – сообщество для доступа по протоколу SNMP; <TYPE> – уровень доступа:
<IP-ADDR> – IP-адрес клиента, которому предоставлен доступ, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]; <IPV6-ADDR> – IPv6-адрес клиента, задаётся в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF]; <OBJ-GROUP-NETWORK-NAME> – имя профиля IP-адресов, от которых обрабатываются snmp-запросы, задаётся строкой до 31 символа; <VERSION> – версия snmp, поддерживаемая данным community, принимает значения v1 или v2c; <VIEW-NAME> – имя профиля SNMP view, задаётся строкой до 31 символа; <VRF> – имя экземпляра VRF, из которого будет разрешен доступ, задается строкой до 31 символа. encrypt - при добавлении данного параметра, название сообщества <COMMUNITY> будет отображаться в конфигурации устройства в зашифрованном виде. |
3 | Устанавливает значение переменной SNMP, содержащей контактную информацию. | esr(config)# snmp-server contact <CONTACT> | <CONTACT> – контактная информация, задается строкой до 255 символов. |
4 | Установить значение кода DSCP для использования в IP-заголовке исходящих пакетов SNMP-сервера (не обязательно). | esr(config)# snmp-server dscp <DSCP> | <DSCP> – значение кода DSCP, принимает значения в диапазоне [0..63]. Значение по умолчанию: 63. |
5 | Cоздать SNMPv3-пользователь. | esr(config)# snmp-server user <NAME> | <NAME> – имя пользователя, задаётся строкой до 31 символа. |
6 | Устанавливает значение переменной SNMP, содержащей информацию о расположении оборудования. | esr(config)# snmp-server location <LOCATION> | <LOCATION> – информация о расположении оборудования, задается строкой до 255 символов. |
7 | Определить уровень доступа пользователя по протоколу SNMPv3. | esr(config-snmp-user)# access <TYPE> | <TYPE> – уровень доступа:
|
8 | Определить режим безопасности пользователя по протоколу SNMPv3. | esr(config-snmp-user)# authentication access <TYPE> | <TYPE> – режим безопасности:
|
9 | Определить алгоритм аутентификации SNMPv3-запросов. | esr(config-snmp-user)# authentication algorithm <ALGORITHM> | <ALGORITHM> – алгоритм шифрования:
|
10 | Установить пароль для аутентификации SNMPv3-запросов. | esr(config-snmp-user)# authentication key ascii-text | <CLEAR-TEXT> – пароль, задаётся строкой от 8 до 16 символов;
<ENCRYPTED-TEXT> – зашифрованный пароль размером от 8 байт до 16 байт (от 16 до 32 символов) в шестнадцатеричном формате (0xYYYY...) или (YYYY...). |
11 | Активировать фильтрацию и установить профиль IP-адресов, с которых могут приниматься SNMPv3-пакеты с данным именем SNMPv3-пользователя. | esr(config-snmp-user)# client-list <NAME> | <NAME> – имя ранее сознанной object-group, задается строкой до 31 символа. |
| 12 | Указать vrf для SNMPv3-пользователя (не обязательно). | esr-21(config-snmp-user)# ip vrf forwarding <VRF> | <VRF> – имя экземпляра VRF, из которого будет разрешен доступ, задается строкой до 31 символа. |
13 | Активировать фильтрацию и установить IPv4/IPv6-адрес, которому предоставлен доступ к консольному серверу под данным SNMPv3-пользователем. | esr(config-snmp-user)# ip address <ADDR> | <ADDR> – IP-адрес клиента, которому предоставлен доступ, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. |
esr(config-snmp-user)# ipv6 address <ADDR> | <IPV6-ADDR> – IPv6-адрес клиента, задаётся в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF]. | ||
14 | Активировать SNMPv3-пользователя. | esr(config-snmp-user)# enable | Значение по умолчанию: процесс выключен. |
15 | Определить алгоритм шифрования передаваемых данных. | esr(config-snmp-user)# privacy algorithm <ALGORITHM> | <ALGORITHM> – алгоритм шифрования:
|
16 | Установить пароль для шифрования передаваемых данных. | esr(config-snmp-user)# privacy key ascii-text | <CLEAR-TEXT> – пароль, задаётся строкой от 8 до 16 символов; <ENCRYPTED-TEXT> – зашифрованный пароль размером от 8 байт до 16 байт (от 16 до 32 символов) в шестнадцатеричном формате (0xYYYY...) или (YYYY...). |
17 | Установить профиль snmp view, позволяющий разрешать или запрещать доступ к тем или иным OID для user. | esr(config-snmp-user)# view <VIEW-NAME> | <VIEW-NAME> – имя SNMP view профиля, на основании которого обеспечивается доступ к OID, задается строкой до 31 символа. |
18 | Включить передачу SNMP-уведомлений на указанный IP-адрес и перейти в режим настройки SNMP-уведомлений. | esr(config)# snmp-server host | <IP-ADDR> – IP-адрес, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. <IPV6-ADDR> – IPv6-адрес, задаётся в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF]; <VRF> – имя экземпляра VRF, в котором находится коллектор SNMP-уведомлений, задается строкой до 31 символа. |
19 | Определить порт коллектора SNMP-уведомлений на удаленном сервере (не обязательно). | esr(config-snmp-host)# port <PORT> | <PORT> – номер UDP-порта, указывается в диапазоне [1..65535]. Значение по умолчанию: 162. |
| 20 | Установить IP-адрес для отправки уведомлений на удаленный сервер. | esr(config-snmp-host)# source-address { <ADDR> | <IPV6-ADDR> | object-group <NETWORK_OBJ_GROUP_NAME> } | <ADDR> – IP-адрес, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]; <IPV6-ADDR> – IPv6-адрес, задаётся в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF]; <NETWORK_OBJ_GROUP_NAME> – список адресов, которые будут использоваться в качестве source address. Значение по умолчанию: IPv4/IPv6 – адрес интерфейса, ближайшего к удаленному SNMP-серверу. |
| 21 | Установить интерфейс кносольного сервера, IPv4/IPv6-адрес которого будет использоваться для отправки уведомлений на удаленный сервер. | esr(config-snmp-host)# source-interface <IF> | <IF> – имя интерфейса устройства, задаётся в виде, описанном в разделе |
22 | Разрешить отправку SNMP-уведомлений различных типов. | esr(config)# snmp-server enable traps <TYPE> | <TYPE> – тип фильтруемых сообщений. Может принимать значения: config, entry, entry-sensor, environment, envmon, files-operations, flash, flash-operations, interfaces, links, ports, screens, snmp, syslog. Дополнительные параметры зависят от типа фильтра. См. справочник команд CLI. |
23 | Создать профиль snmp view, позволяющий разрешать или запрещать доступ к тем или иным OID для community (SNMPv2) и user (SNMPv3). | esr(config)# snmp-server view <VIEW-NAME> | <VIEW-NAME> – имя профиля SNMP view, задаётся строкой до 31 символа. |
Пример настройки
Задача:
Настроить SNMPv3-сервер с аутентификацией и шифрованием данных для пользователя admin. IP-адрес консольного сервера – 192.168.52.8, IP-адрес сервера – 192.168.52.41.
Решение:
Предварительно нужно выполнить следующие действия:
- указать зону для интерфейса gi1/0/1;
- настроить IP-адрес для интерфейсов gi1/0/1.
Основной этап конфигурирования:
Включаем SNMP-сервер:
esr(config)# snmp-server
Создаем пользователя SNMPv3:
esr(config)# snmp-server user admin
Определим режим безопасности:
esr(snmp-user)# authentication access priv
Определим алгоритм аутентификации для SNMPv3-запросов:
esr(snmp-user)# authentication algorithm md5
Установим пароль для аутентификации SNMPv3-запросов:
esr(snmp-user)# authentication key ascii-text 123456789
Определим алгоритм шифрования передаваемых данных:
esr(snmp-user)# privacy algorithm aes128
Установим пароль для шифрования передаваемых данных:
esr(snmp-user)# privacy key ascii-text 123456789
Активируем SNMPv3-пользователя:
esr(snmp-user)# enable
Определяем сервер-приемник Trap-PDU-сообщений:
esr(config)# snmp-server host 192.168.52.41
Настройка Syslog
Syslog (англ. System Log — системный журнал) — стандарт отправки и регистрации сообщений о происходящих в системе событиях, используется в сетях, работающих по протоколу IP.
Алгоритм настройки
Шаг | Описание | Команда | Ключи |
|---|---|---|---|
1 | Включить отправку syslog-сообщений на snmp-сервер в виде snmp-trap. | esr(config)# syslog snmp | |
| 2 | Активировать или деактивировать отправку на snmp-сервер событий работы отдельных процессов консольного сервера (не обязательно). | esr(config-syslog-snmp)# match [not] process-name <PROCESS-NAME> | <PROCESS-NAME> – см. в cправочнике команд CLI. Если описаны разрешающие критерии (match process-name) – логируются только сообщения указанных процессов. Если указаны запрещающие критерии (match not process-name) – логируются сообщения всех не запрещенных процессов. По умолчанию разрешено логирование сообщений всех процессов. |
| 3 | Указать уровень важности сообщений, которые будут отправляться на snmp-сервер. | esr(config-syslog-snmp)# severity <SEVERITY> | <SEVERITY> – уровень важности сообщения, принимает значения (в порядке убывания важности):
|
4 | Включить отображение syslog-сообщений при удаленных подключениях (Telnet, SSH) (не обязательно). | esr(config)# syslog monitor | |
| 5 | Активировать или деактивировать отображение при удаленных подключениях событий работы отдельных процессов консольного сервера (не обязательно). | esr(config-syslog-monitor)# match [not] process-name <PROCESS-NAME> | <PROCESS-NAME> – описано во 2 пункте. |
| 6 | Указать уровень важности сообщений, которые будут отображаться при удаленных подключениях. | esr(config-syslog-monitor)# severity <SEVERITY> | <SEVERITY> – описано в 3 пункте. |
| 7 | Включить отображение syslog-сообщений при консольном подключении (не обязательно). | esr(config)# syslog console | |
| 8 | Активировать или деактивировать отображение при консольном подключении событий работы отдельных процессов консольного сервера (не обязательно). | esr(config-syslog-console)# match [not] process-name <PROCESS-NAME> | <PROCESS-NAME> – описано во 2 пункте. |
| 9 | Указать уровень важности сообщений, которые будут отображаться при консольном подключении. | esr(config-syslog-console)# severity <SEVERITY> | <SEVERITY> – описано в 3 пункте. |
| 10 | Указать категорию сообщений, которые будут сохраняться в локальный syslog-файл или отправляться на удаленный syslog-сервер. | esr(config)# syslog facility <FACILITY> | <FACILITY> – категория сообщений, принимает значения [local0..local7]. |
11 | Включить сохранение сообщений syslog в указанный файл журнала (при необходимости ведения локального syslog-файла). | esr(config)# syslog file <NAME> | <NAME> – имя файла, в который будет производиться запись сообщений заданного уровня, задается строкой до 31 символа. |
| 12 | Активировать или деактивировать сохранение в локальный syslog-файл событий работы отдельных процессов консольного сервера (не обязательно). | esr(config-syslog-file)# match [not] process-name <PROCESS-NAME> | <PROCESS-NAME> – описано во 2 пункте. |
| 13 | Указать уровень важности сообщений, которые будут сохраняться в локальный syslog-файл. | esr(config-syslog-file)# severity <SEVERITY> | <SEVERITY> – описано в 3 пункте. |
14 | Указать максимальный размер файла журнала (не обязательно). | esr(config)# syslog file-size <SIZE> | <SIZE> – размер файла, принимает значение [10..10000000] Кбайт. |
15 | Задать максимальное количество файлов, сохраняемых при ротации (не обязательно). | esr(config)# syslog max-files <NUM> | <NUM> – максимальное количество файлов, принимает значения [1.. 1000]. |
16 | Включить передачу сообщений syslog на удаленный syslog-сервер (при необходимости отправки сообщений на удаленный syslog-сервер). | esr(config)#syslog host <HOSTNAME> | <HOSTNAME> – наименование syslog-сервера, задаётся строкой до 31 символа. Используется только для идентификации сервера при конфигурировании. Значение «all» используется в команде no syslog host для удаления всех syslog-серверов; |
17 | Указать что использовать в качестве значения поля HOSTNAME при передачи сообщений на удаленный syslog-сервер (не обязательно). | esr(config-syslog-host)# identifier { fqdn | ip | hostname } | fqdn – использовать в качестве значения полное имя устройства: hostname.domain_name. Используется только вместе с настроенным domain name; ip – использовать в качестве значения IP-адрес интерфейса устройства. Если не указан source-address, то в качестве значения будет использован IP-адрес интерфейса, за которым находится удаленный syslog-сервер; hostname – использовать в качестве значения имя устройства. |
| 18 | Указать IPv4/IPv6-адрес удаленного syslog-сервера. | esr(config-syslog-host)# remote-address { <ADDR> | <IPV6-ADDR> } | <ADDR> – IP-адрес, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]; <IPV6-ADDR> – IPv6-адрес, задаётся в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF]. |
| 19 | Указать IPv4/IPv6-адрес консольного сервера, от которого будут отправляться пакеты на удаленный syslog-сервер (не обязательно). | esr(config-syslog-host)# source-address { <ADDR> | <IPV6-ADDR> | object-group <NETWORK_OBJ_GROUP_NAME> } | <ADDR> – IP-адрес, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]; <IPV6-ADDR> – IPv6-адрес, задаётся в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF]; <NETWORK_OBJ_GROUP_NAME> – список адресов, которые будут использоваться в качестве source address; Значение по умолчанию: IPv4/IPv6-адрес интерфейса, с которого отправляется пакеты на удаленный syslog-сервер. |
| 20 | Указать транспортный протокол для передачи пакетов на удаленный syslog-сервер (не обязательно). | esr(config-syslog-host)# transport { tcp | udp } | <VRF> – имя экземпляра VRF, в котором доступен удаленный syslog-сервер, задается строкой до 31 символа; Значение по умолчанию: отсутствует (глобальная таблица маршрутизации). |
| 21 | Указать имя экземпляра VRF, в рамках которого будут отправляться пакеты на удаленный syslog-сервер (не обязательно). | esr(config-syslog-host)# vrf <VRF> | |
| 22 | Указать номер TCP/UDP-порта, на который будут отправляться пакеты с syslog-сообщениями (не обязательно). | esr(config-syslog-host)# port <PORT> | <PORT> – номер TCP/UDP-порта, на который будут отправляться пакеты с syslog-сообщениями. Значение по умолчанию: 514. |
| 23 | Активировать или деактивировать отправку на удаленный syslog-сервер событий работы отдельных процессов консольного сервера (не обязательно). | esr(config-syslog-host)# match [not] process-name <PROCESS-NAME> | <PROCESS-NAME> – описано во 2 пункте. |
| 24 | Указать уровень важности сообщений, которые будут сохраняться в локальный syslog-файл. | esr(config-syslog-host)# severity <SEVERITY> | <SEVERITY> – описано в 3 пункте. |
25 | Включить вывод отладочных сообщений во время загрузки устройства (не обязательно). | esr(config)#syslog reload debugging | |
26 | Включить процесс логирования введенных команд пользователя на локальный syslog-сервер (не обязательно). | esr(config)# syslog cli-commands | |
27 | Включить нумерацию сообщений (не обязательно). | esr(config)#syslog sequence-numbers | |
28 | Включить точность даты сообщений до миллисекунд (не обязательно). | esr(config)#syslog timestamp msec | |
| 29 | Включить отображение имени процесса, который сформировал сообщение (не обязательно). | esr(config)#syslog program-name | |
30 | Включить регистрацию неудачных аутентификаций (не обязательно). | esr(config)#logging login on-failure | |
31 | Включить регистрацию изменений настроек системы аудита (не обязательно). | esr(config)#logging syslog configuration | |
32 | Включить регистрацию изменений настроек пользователя (не обязательно). | esr(config)#logging userinfo |
Пример настройки
Задача:
Настроить отправку сообщений для следующих системных событий:
- неудачная аутентификация пользователя;
- внесены изменения в конфигурацию логирования системных событий;
- старт/остановка системного процесса;
- внесены изменения в профиль пользователей.
IP-адрес консольного сервера – 192.168.52.8, IP-адрес Syslog-сервера – 192.168.52.41. Использовать параметры по умолчанию для отправки сообщений – протокол UDP порт 514.
Решение:
Предварительно нужно выполнить следующие действия:
- указать зону для интерфейса gi1/0/1;
- настроить IP-адрес для интерфейсов gi1/0/1.
Основной этап конфигурирования:
Создаем файл на консольном сервере для системного журнала, уровень сообщений для журналирования – info:
esr(config)# syslog file tmpsys:syslog/ESR esr(config-syslog-file)# severity info esr(config-syslog-file)# exit
Указываем IP адрес и параметры удаленного syslog-сервера:
esr(config)# syslog host SERVER esr(config-syslog-host)# remote-address 192.168.52.41 esr(config-syslog-host)# severity info esr(config-syslog-host)# exit
Задаем логирование неудачных попыток аутентификации:
esr(config)# logging login on-failure
Задаем логирование изменений конфигурации syslog:
esr(config)# logging syslog configuration
Задаем логирование старта/остановки системных процессов:
esr(config)# logging service start-stop
Задаем логирование внесений изменений в профиль пользователей:
esr(config)# logging userinfo
Изменения конфигурации вступят в действие после применения:
esr# commit Configuration has been successfully committed esr# confirm Configuration has been successfully confirmed
Посмотреть текущую конфигурацию системного журнала:
esr# show syslog configuration
Посмотреть записи системного журнала:
esr# show syslog ESR
Проверка целостности
Проверка целостности подразумевает проверку целостности хранимых исполняемых файлов.
Процесс настройки
Шаг | Описание | Команда | Ключи |
|---|---|---|---|
1 | Запустить проверку целостности системы | esr# verify filesystem <detailed> | detailed – детальный вывод информации в консоль. |
Пример конфигурации
Задача:
Проверить целостность файловой системы.
Решение:
Запускаем проверку целостности:
esr# verify filesystem Filesystem Successfully Verified
Настройка архивации конфигурации консольного сервера
На усройствах SCS предусмотрена функция локального и/или удаленного копирования конфигурации по таймеру или при применении конфигурации.
Процесс настройки
Шаг | Описание | Команда | Ключи |
|---|---|---|---|
1 | Перейти в режим настройки параметров резервирования конфигурации. | esr(config)# archive | |
2 | Установить тип сохранения резервных конфигураций консольного сервера | esr(config-ahchive)# type <TYPE> | <TYPE> – тип сохранения резервных конфигураций маршрутизатора. Принимает значения:
Значение по умолчанию: remote. |
3 | Включить режим резервирования конфигурации по таймеру | esr(config-ahchive)# auto | |
4 | Включить режим резервирования конфигурации после каждого успешного применения конфигурации | esr(config-ahchive)# by-commit | |
5 | Указать путь для удаленного копирования конфигураций маршрутизатора | esr(config-ahchive)# path <PATH> | <PATH> – определяет протокол, адрес сервера, расположение и префикс имени файла на сервере. |
6 | Задать период времени для автоматического резервирования конфигурации (не обязательно, актуально только для режима auto). | esr(config-ahchive)# time-period <TIME> | <TIME> – периодичность автоматического резервирования конфигурации, принимает значение в минутах [1..525600]. Значение по умолчанию: 720 минут. |
7 | Задать максимальное количество локально сохраняемых резервных копий конфигураций | esr(config-ahchive)# count-backup <NUM> | <NUM> – максимальное количество локально сохраняемых резервных копий конфигураций. Принимает значения в диапазоне [1..100]. Значение по умолчанию: 1. |
Пример конфигурации
Задача:
Настроить локальное и удаленное резервное копирование конфигурации маршрутизатора 1 раз в сутки и при успешном изменении конфигурации. Удаленные копии необходимо отправлять на tftp-сервер 172.16.252.77 в подпапку esr-example. Максимальное количество локальных копий – 30.
Решение:
Для успешной работы удаленной архивации конфигураций, между маршрутизатором и сервером должна быть организована IP-связность, настроены разрешения на прохождение tftp-трафика по сети и сохранения файлов на сервере.
Основной этап конфигурирования:
Перейти в режим конфигурирования резервного копирования конфигураций:
esr# configure esr(config)# archive
Задать режим локального и удаленного резервного копирования конфигурации:
esr(config-archive)# type both
Настроить путь для удаленного копирования конфигураций и максимальное количество локальных резервных копий:
esr(config-archive)# path tftp://172.16.252.77:/esr-example/esr-example.cfg esr(config-archive)# count-backup 30
Задать интервал резервного копирования конфигурации в случае отсутствия изменений:
esr(config-archive)# time-period 1440
Включить режимы архивации конфигурации маршрутизатора по таймеру и при успешном изменении конфигурации:
esr(config-archive)# auto esr(config-archive)# by-commit
После применения данной конфигурации 1 раз в сутки и при каждом успешном изменении конфигурации маршрутизатора на tftp-сервер будет отправляться конфигурационный файл с именем вида "esr-exampleYYYYMMDD_HHMMSS.cfg". Также на самом маршрутизаторе в разделе flash:backup/ будет создаваться файл с именем вида "config_YYYYMMDD_HHMMSS". Когда в разделе flash:backup/ накопится 30 таких файлов, при создании нового будет удаляться наиболее старый. Посмотреть можно командой:
esr(config)# show archive configuration

