====== Сервис SNMP ======
* https://ru.wikipedia.org/wiki/Management_Information_Base
===== Пакет net-snmp =====
==== Установка snmp консоли ====
=== Debian/Ubuntu ===
server# apt install snmp snmp-mibs-downloader
server# :> /etc/snmp/snmp.conf
=== Windows ===
* [[http://sourceforge.net/projects/net-snmp/files/|Download Latest Version]]
* [[http://val.bmstu.ru/unix/net-snmp-5.6.1.1-1.x86.exe]]
MIBDIRS=C:\usr\share\snmp\mibs
==== Вывод иерархии OID ====
server# snmptranslate -Tp | more
==== Настройка snmp агента ====
=== Debian/Ubuntu ===
gate# apt install snmpd
gate# systemctl status snmpd.service
или
gate# cat /etc/default/snmpd
...
#export MIBS=
...
SNMPDRUN=yes
...
gate# cd /etc/snmp/
=== FreeBSD ===
gate# pkg install net-snmp
gate# service snmpd rcvar
gate# mkdir /usr/local/etc/snmp/
gate# cd /usr/local/etc/snmp/
=== FreeBSD/Debian/Ubuntu ===
gate# cat snmpd.conf
rocommunity public 0.0.0.0/0
==== Настройка snmptrapd сервиса ====
=== Debian/Ubuntu ===
* Если в пакете отсутствует утилита /usr/bin/traptoemail то понадобится [[Сервис MTA]] и [[UA mail]]
server# apt install snmptrapd
server# systemctl enable snmptrapd
ubuntu24# systemctl status snmptrapd.socket
=== Debian/Ubuntu ===
* Срабатывает более точный traphandle
* !!! В Ubuntu24 snmptrapd работает с правами Debian-snmp, надо использовать [[Пакет sudo]]
server# cat /etc/snmp/snmptrapd.conf
#IF-MIB::linkDown IF-MIB::linkUp
#traphandle .1.3.6.1.6.3.1.1.5.* mail -s snmptrap userX@isp.un
traphandle .1.3.6.1.6.3.1.1.5.* /usr/bin/traptoemail -s mail.isp.un userX@isp.un
#traphandle .1.3.6.1.6.3.1.1.5.* /usr/bin/traptoemail -s localhost student@corpX.un
traphandle SNMPv2-SMI::enterprises.9.9.43.* /root/cisco-backup-config.sh
#traphandle SNMPv2-SMI::enterprises.9.9.43.* sudo /root/cisco-backup-config.sh
#router RMON
traphandle SNMPv2-SMI::mib-2.16.0.* /usr/bin/traptoemail -s localhost student@corpX.un
traphandle default cat >> /tmp/traps
authCommunity execute writetrap
# service snmptrapd start
# snmptrap -v 1 -c writetrap 127.0.0.1 '.1.3.6.1.6.3.1.1.5.3' '0.0.0.0' 6 33 '55' .1.3.6.1.6.3.1.1.5.3 s "teststring000"
# tail -f /tmp/traps
# cat /root/cisco-backup-config.sh
#!/bin/sh
read cisco_name
while read l;do :; done
#echo $cisco_name
/usr/bin/sshpass -p cisco /usr/bin/scp ${cisco_name}:running-config /srv/tftp/${cisco_name}-running-config
#/usr/bin/sshpass -p cisco /usr/bin/scp -O ${cisco_name}:running-config /srv/tftp/${cisco_name}-running-config
cd /srv/tftp/
/usr/bin/git add *
/usr/bin/git --no-optional-locks status | grep 'modified\|deleted\|new file' | /usr/bin/git commit -a -F -
!!! На стенде при первой итерации большие задержки
==== Варианты использования snmp консоли в режиме чтения ====
=== Перебор всех значений OID устройства ===
server# snmpwalk -On -c public -v2c router 1
=== Определение имени устройства ===
server# snmpget -c public -v2c router .1.3.6.1.2.1.1.5.0
server# snmpget -c public -v2c router SNMPv2-SMI::mib-2.1.5.0
server# snmpget -c public -v2c router SNMPv2-MIB::sysName.0
server# snmpget -c public -v2c router sysName.0
server# snmpwalk -c public -v2c router sysName
=== Определение uptime устройства ===
server# snmpget -c public -v2c router sysUpTime.0
=== Получение mac address table ===
radio$ snmpwalk -On -v2c -c public@101 switch 1.3.6.1.2.1.17.4.3.1.2
=== Определение загрузки CPU устройства ===
server# snmpget -c public -v2c router .1.3.6.1.4.1.9.2.1.56.0
=== Вывод списка интерфейсов устройства ===
server# snmpwalk -c public -v2c -On router ifDescr
=== Вывод количества байт, прошедших через порт устройства с момента его включения ===
FastEthernet0/0
server# snmpget -c public -v2c -On router ifInOctets.1
server# snmpget -c public -v2c -On router ifHCInOctets.1
Port-channel1
server# snmpget -c public -v2c -On router ifOutOctets.5
server# snmpget -c public -v2c -On router ifHCOutOctets.5
=== Информация по протоколу CDP ===
server# snmpwalk -c public -v2c router .1.3.6.1.4.1.9.9.23.1.2.1.1
==== Варианты использования протокола SNMP в режиме записи ====
=== Отключение/включение интерфейсов ===
server# snmpwalk -c write -v2c switch ifDescr
server# snmpwalk -c write -v2c switch ifOperStatus
server# snmpwalk -c write -v2c switch ifAdminStatus
server# snmpset -c write -v2c switch ifAdminStatus.3 integer 2
server# snmpset -c write -v2c switch ifAdminStatus.3 integer 1
=== Копирование файла конфигурации по tftp ===
* [[Общие настройки сетевого оборудования Cisco#Настройка snmp агента]] на router с разрешением на запись
server# cat /srv/tftp/firewall.acl
server# snmpset -c write -v2c router .1.3.6.1.4.1.9.2.1.53.192.168.X.10 string "firewall.acl"
значение 192.168.X.10 в конце OID содержит адрес tftp сервера