In questo documento vengono descritte le trap SNMP, le modalità di utilizzo e il loro ruolo nella gestione di una rete di dati.
Le trap SNMP consentono a un agente di notificare alla stazione di gestione eventi significativi tramite un messaggio SNMP non richiesto.
In questo diagramma, la configurazione a sinistra mostra un sistema di gestione di rete che raccoglie le informazioni e ottiene una risposta. La configurazione a destra mostra un agente che invia una trap non richiesta o asincrona al sistema di gestione di rete (NMS).
Nessun requisito specifico previsto per questo documento.
Il documento può essere consultato per tutte le versioni software o hardware.
Per ulteriori informazioni sulle convenzioni usate, consultare il documento Cisco sulle convenzioni nei suggerimenti tecnici.
SNMPv1 (Simple Network Management Protocol) e SNMPv2c, insieme alla MIB (Management Information Base) associata, incoraggiano le notifiche trap-direct.
L'idea alla base della notifica trap-direct è che se un manager è responsabile di un numero elevato di dispositivi, e ogni dispositivo ha un numero elevato di oggetti, non è pratico per il manager raccogliere o richiedere informazioni da ogni oggetto su ogni dispositivo. La soluzione è che ogni agente sul dispositivo gestito notifichi il manager senza richiesta. A tale scopo, invia un messaggio noto come trap dell'evento.
Quando il manager riceve l'evento, lo visualizza e può scegliere di eseguire un'azione in base all'evento. Ad esempio, il manager può eseguire direttamente il polling dell'agente o di altri agenti di dispositivo associati per ottenere una migliore comprensione dell'evento.
La notifica Trap-Directed può comportare un notevole risparmio di risorse di rete e di agenti, eliminando la necessità di richieste SNMP frivole. Tuttavia, non è possibile eliminare completamente il polling SNMP. Le richieste SNMP sono necessarie per l'individuazione e le modifiche alla topologia. Inoltre, un agente di dispositivo gestito non può inviare una trap se il dispositivo ha subito un'interruzione irreversibile.
I trap SNMPv1 sono definiti nella RFC 1157 con i seguenti campi:
Enterprise: identifica il tipo di oggetto gestito che genera la trap.
Indirizzo agente: fornisce l'indirizzo dell'oggetto gestito che genera la trap.
Tipo di registrazione generica (Generic trap type) - Indica uno dei diversi tipi di registrazione generica.
Codice trap specifico - Indica uno dei diversi codici di trap specifici.
Timestamp: fornisce l'intervallo di tempo trascorso tra l'ultima reinizializzazione della rete e la generazione della trap.
Associazioni variabili - Campo di dati della trap contenente la PDU. Ogni associazione di variabile associa una particolare istanza dell'oggetto MIB al relativo valore corrente.
Le trap standard generiche sono: coldStart, warmStart, linkDown, linkUp, authenticationFailure, egpNeighborLoss. Per i trap SNMPv1 generici, il campo Enterprise contiene il valore sysObjectID del dispositivo che invia la trap. Per i trap specifici del fornitore, il campo Tipo di trap generico è impostato su enterpriseSpecific(6). Cisco ha implementato le proprie trap specifiche in modo non convenzionale. Anziché avere il campo Enterprise trap ancora sysObjectID e avere il codice di trap Specific per identificare tutte le trap specifiche supportate da tutti i dispositivi Cisco, Cisco ha implementato l'identificazione delle trap utilizzando vari campi Enterprise e Specific trap code. È possibile visualizzare i valori effettivi dal navigatore oggetti SNMP . Inoltre, Cisco ha ridefinito alcune trap generiche in CISCO-GENERAL-TRAPS MIB con l'aggiunta di altre variabili associate. Per queste trap, il tipo di trap generico viene mantenuto invariato e non impostato su enterpriseSpecific(6).
In SNMPv2c, la trap è definita come NOTIFICATION e viene formattata in modo diverso rispetto a SNMPv1. I parametri sono i seguenti:
sysUpTime: corrisponde all'indicatore orario nella trap SNMPv1.
IDEnmpTrap - Campo di identificazione dell'abbondanza. Per le trap generiche, i valori sono definiti nella RFC 1907, per le trap specifiche del fornitore snmpTrapOID è essenzialmente una concatenazione del parametro Enterprise SNMPv1 e di due identificatori secondari aggiuntivi, '0', e del parametro del codice trap specifico di SNMPv1.
VarBindList: elenco di associazioni di variabili.
Affinché un sistema di gestione possa comprendere una trap inviata da un agente, è necessario che il sistema di gestione conosca la definizione dell'identificatore di oggetto (OID). Pertanto, deve avere il MIB per quella trap caricato. In questo modo vengono fornite le informazioni OID corrette in modo che il sistema di gestione della rete possa comprendere i trap inviati.
Per i trap supportati dai dispositivi Cisco in MIB specifici, fare riferimento a Cisco SNMP Object Navigator . Elenca le trap disponibili per un MIB specifico. Per ricevere uno di questi trap, la versione software Cisco IOS® in uso deve supportare i MIB elencati. Per informazioni sui MIB supportati sul dispositivo Cisco, visitare il sito www.cisco.com/go/mibs . Il MIB deve essere caricato nel sistema di gestione di rete. Questo processo viene comunemente definito compilazione. Consultare la guida per l'utente di Network Management System (ad esempio, HP OpenView o NetView) sulla compilazione MIB sulla piattaforma NMS. Fare riferimento anche a SNMP: Domande frequenti sui compilatori MIB e MIB e sul caricamento dei MIB.
Inoltre, un dispositivo non invia una trap a un sistema di gestione di rete a meno che non sia configurato per tale operazione. Un dispositivo deve sapere che deve inviare una trap. La destinazione trap è in genere definita da un indirizzo IP, ma può essere un nome host, se il dispositivo è configurato per eseguire query su un server DNS (Domain Name System). Nelle versioni più recenti del software Cisco IOS, gli amministratori dei dispositivi possono scegliere le trap da inviare. Per informazioni su come configurare un dispositivo Cisco per SNMP e inviare i trap, fare riferimento alle guide alla configurazione dei dispositivi corrispondenti e alla Guida all'implementazione di Base Dial NMS, al supporto dei trap SNMP di Cisco IOS e a come configurarli e al supporto e alla configurazione dei trap SNMP di Cisco CatalystOS.
Nota: il manager in genere riceve notifiche SNMP (TRAP e INFORM) sulla porta UDP numero 162.
Questa sezione contiene alcuni esempi di trap inviate da Cisco IOS, acquisite con il pacchetto debug snmp.
Trap generica SNMPv1, ridefinita da Cisco:
Nov 21 07:44:17: %LINK-3-UPDOWN: Interface Loopback1, changed state to up 4d23h: SNMP: Queuing packet to 172.17.246.162 4d23h: SNMP: V1 Trap, ent products.45, addr 172.17.246.9, gentrap 3, spectrap 0 ifEntry.1.23 = 23 ifEntry.2.23 = Loopback1 ifEntry.3.23 = 24 lifEntry.20.23 = up
Questo output mostra la trap linkUp Cisco ridefinita da CISCO-GENERAL-TRAPS MIB con quattro variabili associate. Sono disponibili i seguenti campi:
Enterprise = products.45 (sysObjectID del dispositivo che invia la trap, in questo esempio è il router c7507)
Tipo di trap generico = 3 (linkUp)
Codice trap specifico = 0
Trap specifica di Cisco SNMPv1:
4d23h: SNMP: Queuing packet to 172.17.246.162 4d23h: SNMP: V1 Trap, ent ciscoSyslogMIB.2, addr 172.17.246.9, gentrap 6, spectrap 1 clogHistoryEntry.2.954 = LINK clogHistoryEntry.3.954 = 4 clogHistoryEntry.4.954 = UPDOWN clogHistoryEntry.5.954 = Interface Loopback1, changed state to up clogHistoryEntry.6.954 = 43021184
Questo output mostra la trap clogMessageGenerated specifica di Cisco da CISCO-SYSLOG-MIB con cinque variabili associate. Sono disponibili i seguenti campi:
Enterprise = valore Enterprise della trap clogMessageGenerated
Tipo di trap generico = 6 (enterpriseSpecific)
Codice trap specifico = 1 (codice trap specifico di clogMessageGenerated)
Trap SNMPv2c specifica di Cisco:
4d23h: SNMP: Queuing packet to 172.17.246.162 4d23h: SNMP: V2 Trap, reqid 2, errstat 0, erridx 0 sysUpTime.0 = 43053404 snmpTrapOID.0 = clogHistoryEntry.2.958 = SYS clogHistoryEntry.3.958 = 6 clogHistoryEntry.4.958 = CONFIG_I clogHistoryEntry.5.958 = Configured from console by vty0 (10.10.10.10) clogHistoryEntry.6.958 = 43053403
Questo output mostra la notifica ciscoConfigManEvent SNMPv2c specifica di Cisco da CISCO-CONFIG-MAN-MIB con tre variabili associate:
Questa trap può essere utilizzata se sono state apportate modifiche alla configurazione del dispositivo. I valori degli ultimi due componenti determinano se è stato emesso un comando show o se la configurazione è stata modificata.
6506E#term mon 6506E#debug snmp packet SNMP packet debugging is on 6506E#sh run Building configuration... ... 6506E# 19:24:18: SNMP: Queuing packet to 10.198.28.80 19:24:18: SNMP: V2 Trap, reqid 2, errstat 0, erridx 0 sysUpTime.0 = 6981747 snmpTrapOID.0 = ciscoConfigManMIB.2.0.1 ccmHistoryEventEntry.3.100 = 1 !--- 1 -> commandLine. Executed via CLI. ccmHistoryEventEntry.4.100 = 3 !--- 3 -> running ccmHistoryEventEntry.5.100 = 2 !--- 2 -> commandSource. Show command was executed.
6506E#term mon 6506E#debug snmp packet SNMP packet debugging is on 6506E#conf t Enter configuration commands, one per line. End with CNTL/Z. 6506E(config)#exit 22:57:37: SNMP: Queuing packet to 10.198.28.80 22:57:37: SNMP: V2 Trap, reqid 2, errstat 0, erridx 0 sysUpTime.0 = 8261709 snmpTrapOID.0 = ciscoConfigManMIB.2.0.1 ccmHistoryEventEntry.3.108 = 1 !--- 1 -> commandLine. Executed via CLI. ccmHistoryEventEntry.4.108 = 2 !--- 2 -> commandSource ccmHistoryEventEntry.5.108 = 3 !--- 3 -> running. Change was destined to the running configuration.