В рамках поставленной задачи (узнавать о появлении новых 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 такой возможности не поддерживает.
Показаны сообщения с ярлыком SNMP. Показать все сообщения
Показаны сообщения с ярлыком SNMP. Показать все сообщения
четверг, 21 ноября 2013 г.
Организация приема SNMP trap’ов и их отправки на коммутаторах DLink
четверг, 31 октября 2013 г.
Как создать VLAN и добавить в него порты на коммутаторах серий DES-35XX, DES-38XX, DES-30XX и DES-3226S по SNMP
Задача:
Создать VLAN с VID=5 и добавить в него порты: порт 14 как tagged, порты 25-26 как untagged.
Примечание: Порты 14, 25-26 удалены из VLAN default.
Команда (для серий DES-38XX, DES-35XX и DES-30XX):
snmpset -v2c -c private 192.168.0.1 1.3.6.1.2.1.17.7.1.4.3.1.1.5 s v5 1.3.6.1.2.1.17.7.1.4.3.1.2.5 x 000400C0 1.3.6.1.2.1.17.7.1.4.3.1.3.5 x 00000000 1.3.6.1.2.1.17.7.1.4.3.1.4.5 x 00040000 1.3.6.1.2.1.17.7.1.4.3.1.5.5 i 4
Объяснение:
5 - VID
snmpset -v2c -c private 192.168.0.1
1.3.6.1.2.1.17.7.1.4.3.1.1.5 sv5 <= Задаём имя VLAN-а с VID=5 – v5.
1.3.6.1.2.1.17.7.1.4.3.1.2.5 x 000400С0 <= Порты, которые должны быть добавлены в VLAN как tagged– порты 25-26.
Порты задаются следующим образом:
x 00000000 – шестнадцатеричное число, каждый октет (4 разряда) которого представляют 4 порта. Старший разряд представляет порт 1. Старшие два разряда седьмого октета представляют порты 25-26. Т.е. 1100 (двоичное) = C (шестнадцатеричное).
1.3.6.1.2.1.17.7.1.4.3.1.3.5 x 00000000 <= Порты, которые не могут быть добавлены в этот VLAN (forbidden).
1.3.6.1.2.1.17.7.1.4.3.1.4.5 x 00040000 <= Порты, которые должны быть добавлены в VLANкак untagged– порт 14.
* Для того, чтобы добавить untagged порт в VLAN, сначала его нужно добавить как tagged, т.е. добавление в VLAN как untaggedпорта 14 будет выглядеть следующим образом, при условии, что VLANv5 уже создан:
snmpset -v2c -c private 192.168.0.1 1.3.6.1.2.1.17.7.1.4.3.1.2.5 x 00040000 1.3.6.1.2.1.17.7.1.4.3.1.4.5 x 00040000
1.3.6.1.2.1.17.7.1.4.3.1.5.5 i 4 <= Создать VLAN с указанными параметрами createAndGo(4)
Команда (для DES-3226S):
Отличие заключается в том, что DES-3226S поддерживает аппаратное стекирование. В стек может быть добавлено до 16 коммутаторов DES-3226S, следовательно общее количество портов 26*16 = 416. Количество шестнадцатеричных цифр представляющих это количество портов 416:4 = 104. Исходя их этого и указывается количество шестнадцатеричных разрядов.
snmpset -v2c -c private 192.168.0.1 1.3.6.1.2.1.17.7.1.4.3.1.1.5 s v5
snmpset -v2c -c private 192.168.0.1 1.3.6.1.2.1.17.7.1.4.3.1.2.5 x 000000C000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000
snmpset -v2c -c private 192.168.0.1 1.3.6.1.2.1.17.7.1.4.3.1.3.5 x 000000C000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000
snmpset -v2c -c private 192.168.0.1 1.3.6.1.2.1.17.7.1.4.3.1.4.5 x 0004000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000
snmpset -v2c -c private 192.168.0.1 1.3.6.1.2.1.17.7.1.4.3.1.5.5 i 4
Создать VLAN с VID=5 и добавить в него порты: порт 14 как tagged, порты 25-26 как untagged.
Примечание: Порты 14, 25-26 удалены из VLAN default.
Команда (для серий DES-38XX, DES-35XX и DES-30XX):
snmpset -v2c -c private 192.168.0.1 1.3.6.1.2.1.17.7.1.4.3.1.1.5 s v5 1.3.6.1.2.1.17.7.1.4.3.1.2.5 x 000400C0 1.3.6.1.2.1.17.7.1.4.3.1.3.5 x 00000000 1.3.6.1.2.1.17.7.1.4.3.1.4.5 x 00040000 1.3.6.1.2.1.17.7.1.4.3.1.5.5 i 4
Объяснение:
5 - VID
snmpset -v2c -c private 192.168.0.1
1.3.6.1.2.1.17.7.1.4.3.1.1.5 sv5 <= Задаём имя VLAN-а с VID=5 – v5.
1.3.6.1.2.1.17.7.1.4.3.1.2.5 x 000400С0 <= Порты, которые должны быть добавлены в VLAN как tagged– порты 25-26.
Порты задаются следующим образом:
x 00000000 – шестнадцатеричное число, каждый октет (4 разряда) которого представляют 4 порта. Старший разряд представляет порт 1. Старшие два разряда седьмого октета представляют порты 25-26. Т.е. 1100 (двоичное) = C (шестнадцатеричное).
1.3.6.1.2.1.17.7.1.4.3.1.3.5 x 00000000 <= Порты, которые не могут быть добавлены в этот VLAN (forbidden).
1.3.6.1.2.1.17.7.1.4.3.1.4.5 x 00040000 <= Порты, которые должны быть добавлены в VLANкак untagged– порт 14.
* Для того, чтобы добавить untagged порт в VLAN, сначала его нужно добавить как tagged, т.е. добавление в VLAN как untaggedпорта 14 будет выглядеть следующим образом, при условии, что VLANv5 уже создан:
snmpset -v2c -c private 192.168.0.1 1.3.6.1.2.1.17.7.1.4.3.1.2.5 x 00040000 1.3.6.1.2.1.17.7.1.4.3.1.4.5 x 00040000
1.3.6.1.2.1.17.7.1.4.3.1.5.5 i 4 <= Создать VLAN с указанными параметрами createAndGo(4)
Команда (для DES-3226S):
Отличие заключается в том, что DES-3226S поддерживает аппаратное стекирование. В стек может быть добавлено до 16 коммутаторов DES-3226S, следовательно общее количество портов 26*16 = 416. Количество шестнадцатеричных цифр представляющих это количество портов 416:4 = 104. Исходя их этого и указывается количество шестнадцатеричных разрядов.
snmpset -v2c -c private 192.168.0.1 1.3.6.1.2.1.17.7.1.4.3.1.1.5 s v5
snmpset -v2c -c private 192.168.0.1 1.3.6.1.2.1.17.7.1.4.3.1.2.5 x 000000C000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000
snmpset -v2c -c private 192.168.0.1 1.3.6.1.2.1.17.7.1.4.3.1.3.5 x 000000C000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000
snmpset -v2c -c private 192.168.0.1 1.3.6.1.2.1.17.7.1.4.3.1.4.5 x 0004000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000
snmpset -v2c -c private 192.168.0.1 1.3.6.1.2.1.17.7.1.4.3.1.5.5 i 4
вторник, 29 октября 2013 г.
Как перезагрузить управляемые коммутаторы D-Link по SNMP?
Параметр SNMP, отвечающий за перезагрузку устройства, может отличаться в зависимости от модели коммутатора.
Ниже приведена таблица этих параметров для наиболее распространённых моделей управляемых коммутаторов D-Link:
| Модель коммутатора | FW | Параметр SNMP | Значение |
| DES-2110 | Любая | miscReset(OID=1.3.6.1.4.1.171.10.61.1.3.2) | (1) - reset |
| DES-2108 | Любая | miscReset(OID=1.3.6.1.4.1.171.10.61.2.3.2) | (1) - reset |
| DES-3226S | Любая | agentSystemReset(OID=1.3.6.1.4.1.171.11.36.2.5.2.1.0) | (2) - cold start |
| DES-3226S | Любая | agentSystemReset(OID=1.3.6.1.4.1.171.11.48.1.1.1.1.2.5) | (2) - cold start |
| DES-3250TG | Любая | agentSystemReset(OID=1.3.6.1.4.1.171.12.1.2.3) | (2) - cold start |
| DES-3026 | Любая | agentSystemReset(OID=1.3.6.1.4.1.171.12.1.2.3) | (3) - warm start |
| DES-3526 | Любая | agentSystemReset(OID=1.3.6.1.4.1.171.12.1.2.3.0) | (3) - warm start |
| DES-3326SR | Любая | agentSystemReset(OID=1.3.6.1.4.1.171.11.49.2.1.1.1.2.5) | (2) - cold start |
| DES-3350SR | Любая | agentSystemReset(OID=1.3.6.1.4.1.171.12.1.2.3) | (3) - warm start |
| DES-3828 | Любая | agentSystemReset(OID=1.3.6.1.4.1.171.12.1.2.3) | (3) - warm start |
| DGS-3024 | Любая | agentSystemReset(OID=1.3.6.1.4.1.171.12.1.2.3) | (2) - cold start |
| DES-3224TGR | Любая | agentSystemReset(OID=1.3.6.1.4.1.171.12.1.2.3) | (3) - warm start |
| DGS-3312SR | Любая | agentSystemReset(OID=1.3.6.1.4.1.171.12.1.2.3) | (3) - warm start |
| DGS-3324SR DGS-3324SR DXS-3326GSR DXS-3350SR |
Любая | agentSystemReset(OID=1.3.6.1.4.1.171.12.1.2.3) | (3) - warm start |
| DES-6500 | Любая | agentSystemReset(OID=1.3.6.1.4.1.171.12.1.2.3) | (3) - warm start |
воскресенье, 27 октября 2013 г.
Обновляем прошивку на коммутаторах D-Link
Существует по крайне мере 4 способа (возможно есть и еще) обновления прошивки на коммутаторах D-link
Для примера возьмем DES-3526
1. Загрузка прошивки через консольный кабель (восстановление слетевшей прошивки)
2. Загрузка прошивки по сети, через cli.
3. Загрузка прошивки через web интерфейс
4. Загрузка прошивки по средствам snmp.
FTP с которого можно получить прошивки, MIB и т.п. ftp://ftp.dlink.ru/pub/Switch/
Первый способ применим лишь тогда, когда на коммутаторе отсутствует прошивка. Про этот способ я уже писал, ознакомиться с ним можно тут Восстановление прошивки на коммутаторах D-link
2. Загрузка прошивки по сети, через cli.
- Необходимо зайти на коммутатор по telnet или ssh.
- Ввести в командной строке коммутатора команду:
download firmware <Полный путь к файлу прошивки> <указать в какой слот загружать прошивку, в первый или во второй, если не указывать image_id то по умолчанию будет 1 слот)>
Пример команды:
Дождавшись загрузки и установки прошивки на коммутатор, необходимо
перезагрузить коммутатор, выполнив команду reboot на коммутаторе и нажав
«y» для подтверждения.
3. Загрузка прошивки через web интерфейс
Заходим на коммутатор через веб-интерфейс, выбираем Maintenance -> Download firmware

Вписываем в поле Server IP Address – ip-адрес tftp сервера, а в поле File Name – имя файла прошивки, после этого нажать старт.

Дождавшись окончания загрузки необходимо перезагрузить коммутатор.
4. Загрузка прошивки по средствам snmp.
Задаем IP-адрес TFTP-сервера:
snmpset –v2c -c private 172.20.0.1 1.3.6.1.4.1.171.12.1.2.1.1.3.1 a 192.168.200.10
172.20.0.1 -> IP-адрес коммутатора
192.168.200.10 -> IP-адрес TFTP-сервера
Указываем тип передачи файла:
snmpset -v2c -c private 172.20.0.1 1.3.6.1.4.1.171.12.1.2.1.1.4.1 i 2
Задаем имя файла прошивки:
snmpset -v2c -c private 172.20.0.1 1.3.6.1.4.1.171.12.1.2.1.1.5.1 s fw_des3526
Указываем загрузку файла на коммутатор
snmpset -v2c -c private 172.20.0.1 1.3.6.1.4.1.171.12.1.2.1.1.7.1 i 3
Начать передачу файла:
snmpset -v2c -c private 172.20.0.1 1.3.6.1.4.1.171.12.1.2.1.1.8.1 i 3
Выбрать ID прошивки в качестве загрузочной:
snmpset -v2c -c private 172.20.0.1 1.3.6.1.4.1.171.12.1.2.1.1.10.1 i 1
Теперь осталось только перезагрузить коммутатор:
snmpset -t 45 -v2c -c private 172.20.0.1 1.3.6.1.4.1.171.12.1.2.3.0 i 3
Получился у нас приблизительно такой скрипт:
#!/usr/local/bin/bash
snmpset -t 90 -r 1 -v2c -c private 172.20.0.1 1.3.6.1.4.1.171.12.1.2.1.1.3.1 a 192.168.200.10 \
1.3.6.1.4.1.171.12.1.2.1.1.4.1 i 2 \
1.3.6.1.4.1.171.12.1.2.1.1.5.1 s fw_des3526 \
1.3.6.1.4.1.171.12.1.2.1.1.7.1 i 3 \
1.3.6.1.4.1.171.12.1.2.1.1.8.1 i 3 \
1.3.6.1.4.1.171.12.1.2.1.1.10.1 i 1
snmpset -t 45 -v2c -c private 172.20.0.1 1.3.6.1.4.1.171.12.1.2.3.0 i 3
P.S: Сохранение конфига:
snmpset -t 60 -r 1 -v2c -c private 10.90.90.90 1.3.6.1.4.1.171.12.1.2.6.0 i 3
Для примера возьмем DES-3526
1. Загрузка прошивки через консольный кабель (восстановление слетевшей прошивки)
2. Загрузка прошивки по сети, через cli.
3. Загрузка прошивки через web интерфейс
4. Загрузка прошивки по средствам snmp.
FTP с которого можно получить прошивки, MIB и т.п. ftp://ftp.dlink.ru/pub/Switch/
Первый способ применим лишь тогда, когда на коммутаторе отсутствует прошивка. Про этот способ я уже писал, ознакомиться с ним можно тут Восстановление прошивки на коммутаторах D-link
2. Загрузка прошивки по сети, через cli.
- Необходимо зайти на коммутатор по telnet или ssh.
- Ввести в командной строке коммутатора команду:
download firmware <Полный путь к файлу прошивки> <указать в какой слот загружать прошивку, в первый или во второй, если не указывать image_id то по умолчанию будет 1 слот)>
Пример команды:
| DES-3526:admin# download firmware_fromTFTP 192.168.200.10 fw_des3526 |
3. Загрузка прошивки через web интерфейс
Заходим на коммутатор через веб-интерфейс, выбираем Maintenance -> Download firmware
Вписываем в поле Server IP Address – ip-адрес tftp сервера, а в поле File Name – имя файла прошивки, после этого нажать старт.
Дождавшись окончания загрузки необходимо перезагрузить коммутатор.
4. Загрузка прошивки по средствам snmp.
Задаем IP-адрес TFTP-сервера:
snmpset –v2c -c private 172.20.0.1 1.3.6.1.4.1.171.12.1.2.1.1.3.1 a 192.168.200.10
172.20.0.1 -> IP-адрес коммутатора
192.168.200.10 -> IP-адрес TFTP-сервера
Указываем тип передачи файла:
snmpset -v2c -c private 172.20.0.1 1.3.6.1.4.1.171.12.1.2.1.1.4.1 i 2
Задаем имя файла прошивки:
snmpset -v2c -c private 172.20.0.1 1.3.6.1.4.1.171.12.1.2.1.1.5.1 s fw_des3526
Указываем загрузку файла на коммутатор
snmpset -v2c -c private 172.20.0.1 1.3.6.1.4.1.171.12.1.2.1.1.7.1 i 3
Начать передачу файла:
snmpset -v2c -c private 172.20.0.1 1.3.6.1.4.1.171.12.1.2.1.1.8.1 i 3
Выбрать ID прошивки в качестве загрузочной:
snmpset -v2c -c private 172.20.0.1 1.3.6.1.4.1.171.12.1.2.1.1.10.1 i 1
Теперь осталось только перезагрузить коммутатор:
snmpset -t 45 -v2c -c private 172.20.0.1 1.3.6.1.4.1.171.12.1.2.3.0 i 3
Получился у нас приблизительно такой скрипт:
#!/usr/local/bin/bash
snmpset -t 90 -r 1 -v2c -c private 172.20.0.1 1.3.6.1.4.1.171.12.1.2.1.1.3.1 a 192.168.200.10 \
1.3.6.1.4.1.171.12.1.2.1.1.4.1 i 2 \
1.3.6.1.4.1.171.12.1.2.1.1.5.1 s fw_des3526 \
1.3.6.1.4.1.171.12.1.2.1.1.7.1 i 3 \
1.3.6.1.4.1.171.12.1.2.1.1.8.1 i 3 \
1.3.6.1.4.1.171.12.1.2.1.1.10.1 i 1
snmpset -t 45 -v2c -c private 172.20.0.1 1.3.6.1.4.1.171.12.1.2.3.0 i 3
P.S: Сохранение конфига:
snmpset -t 60 -r 1 -v2c -c private 10.90.90.90 1.3.6.1.4.1.171.12.1.2.6.0 i 3
четверг, 17 октября 2013 г.
Установка net-snmp-utils в RHEL
Добрый день. Возникла необходимость установить на RedHat x86_64 snmpwalk. Естественно в репозитории rhel его нет. snmpwalk находится в пакете net-snmp-utils . Поискав решение в интернете я поключил несколько репозиториев EPEL, REMI, RPMforge .
Комманды для x86_64 (RHEL 6) :
Комманды для i386 (RHEL 6) :
Теперь работает.
Комманды для x86_64 (RHEL 6) :
cd /tmp rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY* rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm rpm -ivh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm rpm --import https://fedoraproject.org/static/0608B895.txt wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm -ivh epel-release-6-8.noarch.rpm rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm yum install -y yum-priorities
Комманды для i386 (RHEL 6) :
cd /tmp rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY* rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm rpm -ivh rpmforge-release-0.5.3-1.el6.rf.i686.rpm rpm --import https://fedoraproject.org/static/0608B895.txt wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm rpm -ivh epel-release-6-8.noarch.rpm rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm yum install -y yum-priorities
Включаем репозитории и выставляем приоритет:
Во всех репозиториях выставляем enabled=1 и после этой строчки добавляем priority=10 .
vim /etc/yum.repos.d/remi.repo
[remi] name=Les RPM de remi pour Enterprise Linux $releasever - $basearch #baseurl=http://rpms.famillecollet.com/enterprise/$releasever/remi/$basearch/ mirrorlist=http://rpms.famillecollet.com/enterprise/$releasever/remi/mirror enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi failovermethod=priority
vim /etc/yum.repos.d/epel.repo
[epel] name=Extra Packages for Enterprise Linux 6 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch failovermethod=priority enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
Но это не сработало. На http://mirror.centos.org/centos/5/os/x86_64/CentOS/ я нашёл
нужные пакеты:
wget http://mirror.centos.org/centos/5/os/x86_64/CentOS/net-snmp-5.3.2.2-20.el5.x86_64.rpm
wget http://mirror.centos.org/centos/5/os/x86_64/CentOS/net-snmp-utils-5.3.2.2-20.el5.x86_64.rpm wget http://mirror.centos.org/centos/5/os/x86_64/CentOS/net-snmp-libs-5.3.2.2-20.el5.i386.rpm rpm -Uhv net-snmp-libs-5.3.2.2-20.el5.i386.rpm rpm -Uhv net-snmp-5.3.2.2-20.el5.x86_64.rpm rpm -Uhv net-snmp-utils-5.3.2.2-20.el5.x86_64.rpm
Теперь работает.
Подписаться на:
Сообщения (Atom)