SNMP to rodzina protokołów, które zostały stworzone do zarządzania urządzeniami sieciowymi. Do komunikacji wykorzystywany jest głównie protokół UDP, rzadziej TCP. Typów wiadomości istnieje 7, najpopularniejsze służą do monitoringu i są to GET (walk) – UDP/161) i wyzwalane TRAP UDP/162).
Informs są wysyłane do klienta w momencie, gdy wyśle żądanie GET do serwera SNMP, TRAPy są wysyłane do klienta, gdy został spełniony jakiś warunek, np. zgasł port na switchu. SNMP doczekało się w tym momencie trzech wersji, z czego ostatnia, trzecia wspiera pełne uwierzytelnianie i szyfrowanie, czym została zlikwidowana jedyna dotychczasowa wada SNMP – brak bezpieczeństwa.
Utworzenie konfiguracji SNMP na switchu
enable conf t snmp-server community NazwaCommunity RO snmp-server location AdresSwitcha snmp-server contact NumerDoAdmina snmp-server host AdresIPMonitoringu version 2c NazwaCommunity exit copy running-config startup-config
Tyle wystarczy po stronie switcha, teraz należy odpytać po SNMP urządzenie, aby sprawdzić czy wszystko działa.
snmpwalk -v 2c -c NazwaCommunity 10.1.66.2 system
Wynik
SNMPv2-MIB::sysDescr.0 = STRING: Cisco IOS Software, C3550 Software (C3550-IPSERVICESK9-M), Version 12.2(44)SE6, RELEASE SOFTWARE (fc1) Copyright (c) 1986-2009 by Cisco Systems, Inc. Compiled Mon 09-Mar-09 20:28 by gereddy SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.9.1.431 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (18395303) 2 days, 3:05:53.03 SNMPv2-MIB::sysContact.0 = STRING: NumerDoAdmina SNMPv2-MIB::sysName.0 = STRING: SwitchTestowy01 SNMPv2-MIB::sysLocation.0 = STRING: AdresSwitcha SNMPv2-MIB::sysServices.0 = INTEGER: 6 SNMPv2-MIB::sysORLastChange.0 = Timeticks: (0) 0:00:00.00
Działa. Teraz spróbuję włączyć SNMP w wersji 3, z pełnym uwierzytelnianiem. Utworzę grupę z uprawnieniami do odczytu oraz użytkownika należącego do tej grupy
enable conf t snmp-server group SNMPv3ROUsers v3 priv snmp-server user SNMPv3ROUser1 SNMPv3ROUsers v3 auth md5 3tTdfsfsdFSDfsdfsdFSDfsdfsd priv aes 128 efh3g89h389gh89h3gHFG exit copy running-config startup-config
Konfiguracja Wersji 3 SNMP ukończona, teraz czas na przetestowanie w linuksie.
snmpwalk -v 3 -l authPriv -u SNMPv3ROUser1 -a MD5 -A '3tTdfsfsdFSDfsdfsdFSDfsdfsd' -x AES -X 'efh3g89h389gh89h3gHFG' 10.1.66.2:161 SysUptime
I wynik komendy
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (18467835) 2 days, 3:17:58.35
Wszystko działa.