Использование пакета Net-SNMP для отслеживания параметров маршрутизатора
SNMP (Simple Network Management Protocol — простой протокол сетевого управления) — стандартный интернет-протокол для управления устройствами в TCP/IP-сетях. SNMP поддерживается устройствам маршрутизаторами, коммутаторами, серверами, рабочими станциями, принтерами, и др. Протокол обычно используется в системах сетевого управления для контроля подключенных к сети устройств на предмет условий, которые требуют внимания администратора. (Wikipedia)
Взаимодействие с сетевым оборудованием по протоколу SNMP
Для взаимодействия с сетевым оборудованием по протоколу SNMP используются утилиты пакета Net-SNMP.
Установка пакета Net-SNMP:
# zypper in net-snmp
- Описания MIB-модулей устанавливаются в каталог
/usr/share/snmp/mibs
. - Для авторизации при обращении к маршрутизатору по протоколу SNMPv2 используется имя
сообщества
netlab
. Для получения значения одного объекта из MIB испольуется утилита
snmpget
:$ snmpget -v 2c -c <community-string> <address> <OID>
Например, для получения количества интерфейсов учебного маршрутизатора необходимо выполнить команду:
$ snmpget -v 2c -c netlab netlab-gw.cs.prv ifNumber.0
Для получения набора значений, соответствующих данным SNMP-таблицы используется утилита
snmpwalk
. Например, для получения содержимого таблицыifTable
необходимо выполнить команду:$ snmpwalk -v 2c -c netlab netlab-gw.cs.prv ifTable
Также возможен вывод данных SNMP-таблицы в виде текстовой таблицы:
$ snmptable -v 2c -c netlab netlab-gw.cs.prv ifTable
- Подробная информация об использовании утилит пакета Net-SNMP может
быть найдена в соответствующих справочных страницах
man
. См. такжеman snmpcmd
для получения общего для всех утилит списка опций, определяющих форматы вывода данных.
Получение SNMP-уведомлений от сетевого оборудования
Для получения SNMP-уведомлений необходимо запустить сервис
snmptrapd
из состава пакета Net-SNMP. Перед запуском необходимо задать в файле/etc/snmp/snmptrapd.conf
имя сообщества, чьи уведомления будут приниматься:authCommunity log netlab-trap
Запуск сервиса
snmptrapd
:# service snmptrad start
- После запуска сервиса сообщения о принятых уведомлениях будут
поступать в системный журнал
/var/log/messages
. - Уведомления могут генерироваться сетевым оборудованием например в случае изменения состояния интерфейсов и др. Для отправки SNMP-уведомления необходимо обратиться к преподавателю.
Задания
- Используя описание модуля IF-MIB, изучить данные, предоставляемые
сетевым оборудованием в таблицах
ifTable
иifXTable
. - Разработать скрипт (или несколько скриптов), позволяющий собирать
данные об использовании заданного интерфейса в формате: время,
кол-во принятых байт, кол-во отправленных байт. Скрипт
предполагается выполнять периодически с помощью
cron
. - Разработать скрипт, способный определить что скорость изменения счетчиков ipInDiscards и ipOutDiscards (см. IP-MIB) превысила заданное пороговое значение и отправить уведомление по email.
- Самостоятельно разобраться с конигурационным файлом сервиса
snmptrapd
(man snmptrapd.conf
) и реализовать отправку уведомления по email в случае получения SNMP-сообщения об изменении статуса интерфеса.