В рамках поставленной задачи (узнавать о появлении новых MAC-адресов на портах коммутаторов DLink) понадобилось организовать настройку SNMP-trap'ов на коммутационном оборудовании с последующим приемом их на сервере и дальнейшей обработкой в зависимости от пришедшего события. Для начала надо установить и настроить демон, который будет принимать трапы от оборудования и при нужном MIB вызывать наш обработчик. Установка net-snmp - тема отдельная, выполняется из пактов или портов, и особых трудностей не вызывает. Собственно приемом трапов занимается snmptrapd. Для обработки заданного трапа пишем в snmptrapd.conf: traphandle 1.3.6.1.4.1.171.11.63.6.2.20.0.2 /scripts/trap.php Теперь после рестарта демона snmptrapd, он начнет принимать приходящие трапы и при наличии трапа с заданным MIB (1.3.6.1.4.1.171.11.63.6.2.20.0.2 - в нашем случае), будет вызывать наш обработчик, который уже будет совершать необходимые нам действия. Обработчик SNMP-трапов Принимать SNMP trap-ы на самом деле достаточно просто. Вот пример простого обработчика SNMP-трапов на PHP: #!/usr/bin/php -q <?php $message = ""; $fd = fopen("php://stdin", "r"); while (!feof($fd)) $message .= fread($fd, 1024); ?> Все что делает этот скрипт - получает в переменную $message текст, который передается демоном snmptrapd. Текст приходит разделенный знаками конца строки. Первая строка - это всегда имя хоста (который прислал трап), вторая - IP-адрес этого хоста, третья - его uptime, четвертая - MIB пришедшего трапа. Остальные строки в сообщении - это детальная информация касательно пришедшего трапа, если она предусмотрена. Для отправки Trap-ов на коммутаторе исполняем такие команды: create snmp community trap_com view CommunityView read_only create snmp host x.x.x.x v2c trap_com Где х.х.х.х - IP-адрес сервера, котоырй будет принимать SNMP traps. Далее надо включить опцию дабы коммутатор отсылал трап при появлении на порту нового мака. Делается это через SNMP snmpset -v2c -c write_commenity switch_ip 1.3.6.1.4.1.171.11.63.6.2.1.2.19.0 i 3 Выключить эту опцию можно так snmpset -v2c -c write_commenity switch_ip 1.3.6.1.4.1.171.11.63.6.2.1.2.19.0 i 2 Узнать текущее состояние опции можно так snmpwalk -v2c -c read_commenity switch_ip 1.3.6.1.4.1.171.11.63.6.2.1.2.19 Вся информация справедлива для коммутаторов 3028. Для других моделей MIB-ы могут сильно отличаться - к сожалению, DLink любит менять их от серии к серии. Надо заметить, что опция отправки трапа при появлении нового мака на порту доступна далеко не на всех моделях DLink-овых коммутаторов - например, 3010 такой возможности не поддерживает.
четверг, 21 ноября 2013 г.
Организация приема SNMP trap’ов и их отправки на коммутаторах DLink
Подписаться на:
Комментарии к сообщению (Atom)
Архив блога
-
▼
2013
(47)
-
▼
ноября
(10)
- Как передать настройки PuTTy на другую Windows машину
- Tcpdump usage examples
- Как послать snmptrap
- Организация приема SNMP trap’ов и их отправки на к...
- Tcpdump usage examples
- Debian, exim4. Настраиваем SMTP сервер для нашего ...
- Централизованный сбор, хранение и просмотр Syslog ...
- Как конвертировать видео G2M3/G2M4
- Восстановление пароля root
- Настройка VLAN в Linux
-
▼
ноября
(10)
Комментариев нет:
Отправить комментарий