2016-11-08 5 views
2

Ich benutze net-snmp Bibliothek (C/C++), um den SNMP-Trap-Absender zu schreiben. Für grundlegende Objekttypen, es ist ganz einfach ein Objekt in die Falle hinzuzufügen:Ist es möglich, eine Tabelle in SNMP Trap zu senden?


snmp_varlist_add_variable(notification_vars, MibName, length, MIBType, MIBValue, len); 

Wo MibName 'die OID zu sein, ‚MIBValue‘ der Wert als String und ‚MIBType‘ der ASN-Typ. Nun, wie geht das bei einer indizierten Tabelle? Gibt es dafür Unterstützung? Wie fügt man alle Zeilen mit ihren Elementen zum Trap hinzu?

Oder gibt es einfachere Alternativen dazu?

Antwort

1

Es ist eine schlechte Methode, die gesamte SNMP-Tabelle innerhalb des SNMP-Traps zu senden. Normalerweise sind SNMP-Tabellen ziemlich groß in Bezug auf die Anzahl der OID-Instanzen. Das Problem ist, dass SNMP UDP als Transportprotokoll verwendet. SNMP ermöglicht PDUs, die an die MTU des Netzwerks angepasst sind. Der Puffer sollte so groß wie das größte erwartete Paket sein, also sollte er möglichst der MTU entsprechen. Zum Beispiel erlaubt Ethernet bis zu 1500 Byte Frame-Payloads.

Also Ihre PDU maximale Größe ist in der Regel bis zu 10 Varinds im Durchschnitt.

Der allgemeine Anwendungsfall ist hier, SNMP-Trap auszusenden, der dem Benutzer mitteilt, dass sich etwas geändert hat/passiert ist. Der Benutzer muss Daten aus der Tabelle mit Get-Next/Get-Bulk nach Trap-Empfang abrufen, um die Details dieses Ereignisses zu erhalten.

Verwandte Themen