Во всех коммутаторах серии summit, кроме 150-х, есть такая фича - UPM (Universal Port Management). Крайне полезная вещь, а если есть задатки программирования, то вообще можно горы свернуть. В общем почему-то Extreme предлагает при обнаружении в сети петли (с помощью протокола ELRP - Extreme Loop Recognition Protocol) блокировать ingress port. Иногда им становится uplink, что не очень хорошо и приводит к выпадению коммутатора из сети. Мы будем блокировать egress port. Тем самым отключая только клиента, который петляет.
Собственно скрипт взят с форума http://ethernation.net, спасибо dudekm. В задачу так же входила рассылка оповещений о петле. Реализовано это через EPICenter.
create log filter ELRP_Loop_Detect
# Создаем лог-фильтр для парсинга логов на предмет петли
create log filter ELRP_Disable_Alarm
# Лог-фильтр для отправки брошенных в консоль сообщений на EPICenter
configure log filter ELRP_Loop_Detect add events ELRP.Report.Message match string "LOOP DETECTED"
# кофигурим парсинг лога
configure log filter ELRP_Disable_Alarm add events UPM.Msg.exshLaunchStsFailLoop
configure log filter ELRP_Disable_Alarm add events System.userComment
# Конфигурим парсинг лога для отправки сообщений на эпицентр
create log target upm Disable_Looped_Port
enable log target upm Disable_Looped_Port
configure log target upm Disable_Looped_Port filter ELRP_Loop_Detect severity Info
configure log target upm Disable_Looped_Port match Any
# Создаем лог-таргет, кот. говорит, что при обнаружении в логе
# срабатываний по фильтру elrploop нужно запустить скрипт Disable_Looped_Port
create upm profile Disable_Looped_Port
disable port $EVENT.LOG_PARAM_7
create snmp trap severity info event ELRP_Loop_Port_Disabled "Port $EVENT.LOG_PARAM_7 disabled because of ELRP loop detected."
create log entry "Port $EVENT.LOG_PARAM_7 disabled because of ELRP loop detected. Someday I will be the most powerlful jedi ever!"
# создаем скрипт, который выключает порт, посылает snmp trap и записывает инфу в лог
enable syslog
# включаем syslog
conf syslog add xx.xxx.xx.x:514 vr "VR-Mgmt" local0
# Добавлям syslog server
configure log target syslog xx.xxx.xx.x:514 vr VR-Mgmt local0 filter ELRP_Disable_Alarm severity Info
enable log target syslog xx.xxx.xx.x:514 vr VR-Mgmt local0
# "create log entry" создает запись в логе с severity = info, отправляем эту запись в эпицентр
enable elrp-client
включаем ELRP
Далее на сервере EPICentr настраиваем alarm, который, при получении от коммутатора через syslog сообщения с severity info, отправит e-mail на определенные адреса.
И вообще, syslog в скрипте используется как костыль для уведомления сервера EPICenter о срабатывании скрипта. Красивее конечно использовать snmp, но я пока не понял как на эпицентре ловить трап, созданный через create snmp trap
Комментариев нет:
Отправить комментарий