Кафедра Информатики и Математического Обеспечения

ПетрГУ | О кафедре | Мобильные платформы | Лаборатория ИТС | Филиал в КарНЦ РАН | Семинары НФИ/AMICT
Сотрудники | Выпускники | Учебный процесс | Курсовые и выпускные работы | Вычислительные ресурсы
Публикации | Архив новостей | Контактная информация | Поиск | English

Использование пакета 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-уведомления необходимо обратиться к преподавателю.

Задания

  1. Используя описание модуля IF-MIB, изучить данные, предоставляемые сетевым оборудованием в таблицах ifTable и ifXTable.
  2. Разработать скрипт (или несколько скриптов), позволяющий собирать данные об использовании заданного интерфейса в формате: время, кол-во принятых байт, кол-во отправленных байт. Скрипт предполагается выполнять периодически с помощью cron.
  3. Разработать скрипт, способный определить что скорость изменения счетчиков ipInDiscards и ipOutDiscards (см. IP-MIB) превысила заданное пороговое значение и отправить уведомление по email.
  4. Самостоятельно разобраться с конигурационным файлом сервиса snmptrapd (man snmptrapd.conf) и реализовать отправку уведомления по email в случае получения SNMP-сообщения об изменении статуса интерфеса.