SNMP - Eine kurze Einführung

download SNMP - Eine kurze Einführung

If you can't read please download the document

Transcript of SNMP - Eine kurze Einführung

ZIMT_UniSiegen

18.05.2016

Zentrum frInformations- undMedientechnologie

18.05.2016

Klicken Sie, um die Formate des Gliederungstextes zu bearbeitenZweite GliederungsebeneDritte GliederungsebeneVierte GliederungsebeneFnfte GliederungsebeneSechste GliederungsebeneSiebente Gliederungsebene

Zentrum frInformations- undMedientechnologie

[email protected]

Simple Network Management Protocol (SNMP)

Allgemeines:

1988 wurde der SNMPv1 Standard in der RFC1065 definiert

1993 SNMPv2 fhrte Kommunikation zwischen Managern und den Getbulk-Befehl ein

2002 wurde mit SNMPv3 vermehrt Wert auf Sicherheit gelegt. Ist aber wegen erhhter Komplexitt nicht so weit verbreitet

Im Uni-Netz wurde bisher hauptschlich mithilfe von SNMPv2c gearbeitet.

Protokolle und Sicherheit

SNMP kommuniziert (blicherweise) mittels UDP, ist also anfllig fr Paketverluste

In SNMPv1 und SNMPv2c werden die Community-Strings (=Passwrter) in Klartext gesendet.

Daher SNMPv2 nur im 800er Vlan.

SNMPv3 hat Challenge Response Handshake mit Keys. (Das Protokoll nennt sich USM).

Funktionsweise

GET: Zum Anfordern eines Datensatzes

GETNEXT: Um den nachfolgenden Datensatz aufzurufen

GETBULK:Um mehrere Datenstze auf einmal aufzurufen

SET:Um einen oder mehrere Werte zu verndern

RESPONSE: Antwort auf eines der Vorangegangenen Pakete

TRAP:Unaufgeforderte Nachricht eines Agenten. (Listener- Pattern)

SNMP-Walk

Zwei Pakete pro Wert

Bei Paketverlust unvollstndige Daten

In der Command Line:

~ snmpwalk -v2c -On -cmngt_RO enc-core 1.3.6.1.2.1.2.2.1.2 .1.3.6.1.2.1.2.2.1.2.1 = STRING: "GigabitEthernet5/1".1.3.6.1.2.1.2.2.1.2.2 = STRING: "GigabitEthernet5/2".1.3.6.1.2.1.2.2.1.2.67 = STRING: "Vlan1".1.3.6.1.2.1.2.2.1.2.68 = STRING: "EOBC0/0".1.3.6.1.2.1.2.2.1.2.69 = STRING: "Null0".1.3.6.1.2.1.2.2.1.2.70 = STRING: "unrouted VLAN 1".1.3.6.1.2.1.2.2.1.2.71 = STRING: "unrouted VLAN 1002".1.3.6.1.2.1.2.2.1.2.72 = STRING: "unrouted VLAN 1004".1.3.6.1.2.1.2.2.1.2.73 = STRING: "unrouted VLAN 1005".1.3.6.1.2.1.2.2.1.2.74 = STRING: "unrouted VLAN 1003".1.3.6.1.2.1.2.2.1.2.79 = STRING: "SPAN RP Interface"

Output OptionsSNMP VersionCommunity StringHostname / IPOID / MIB object Name

snmpget -v2c -On -cmngt_RO enc-core 1.3.6.1.2.1.2.2.1.2.997

.1.3.6.1.2.1.2.2.1.2.997 = STRING: "NDE_vlan1029"

Hier wre besser ein GET Request:snmpget -v2c -On -cmngt_RO enc-core 1.3.6.1.2.1.2.2.1.2.997.1.3.6.1.2.1.2.2.1.2.997 = STRING: "NDE_vlan1029"

Request nach einem Wert Antwort enthlt die zwanzig nchsten Werte.

MIBs und OIDs

Baumfrmige Struktur aus Mibs und OIDs

.iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifDescr.1 = STRING: GigabitEthernet5/1

entspricht

.1.3.6.1.2.1.2.2.1.2.1 = STRING: GigabitEthernet5/1

.iso(1).org(3).dod(6).internet(1).mgmt(2).mib-2(1).interfaces(2).ifEntry(1)

MIBs und OIDs

SNMPv2-MIB::sysDescr.0 = STRING: Cisco IOS Software, s72033_rp Software (s72033_rp-ADVIPSERVICESK9-M), Version 15.1(2)SY2, RELEASE SOFTWARE (fc3)(...)SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.9.1.283DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (1736300876) 200 days, 23:03:28.76SNMPv2-MIB::sysContact.0 = STRING: CheckThisForSnmpsetSNMPv2-MIB::sysName.0 = STRING: ENC-Core.sienet.uni-siegen.deSNMPv2-MIB::sysLocation.0 = STRING: SNMPv2-MIB::sysServices.0 = INTEGER: 78SNMPv2-MIB::sysORLastChange.0 = Timeticks: (0) 0:00:00.00IF-MIB::ifNumber.0 = INTEGER: 233IF-MIB::ifIndex.1 = INTEGER: 1

Und das selbe ohne MIBs

.1.3.6.1.2.1.1.1.0 = STRING: Cisco IOS Software, s72033_rp Software (s72033_rp-ADVIPSERVICESK9-M), Version 15.1(2)SY2, RELEASE SOFTWARE (fc3)(...).1.3.6.1.2.1.1.2.0 = OID: .1.3.6.1.4.1.9.1.283.1.3.6.1.2.1.1.3.0 = Timeticks: (1736315616) 200 days, 23:05:56.16.1.3.6.1.2.1.1.4.0 = STRING: CheckThisForSnmpset.1.3.6.1.2.1.1.5.0 = STRING: ENC-Core.sienet.uni-siegen.de.1.3.6.1.2.1.1.6.0 = STRING: .1.3.6.1.2.1.1.7.0 = INTEGER: 78.1.3.6.1.2.1.1.8.0 = Timeticks: (0) 0:00:00.00.1.3.6.1.2.1.2.1.0 = INTEGER: 233.1.3.6.1.2.1.2.2.1.1.1 = INTEGER: 1

MIBs

Pros:Einfach einzurichten

Lesbarer

Cons:Hufige Fehler

Teilweise manuelles Nachladen notwendig

Erfordert das Vorhandensein der jeweiligen MIBs auf allen Clients

Wenig praktischer Mehrwert, sofern man seinen Code kommentiert

Krebserregend

apt-get install snmp-mibs-downloader auskommentieren der Zeile 'mibs:' in /etc/snmp/snmp.conf

Ntzliche OIDs:

IfTable: 1.3.6.1.2.1.2.2.1 ifIndex (1)

ifDescr (2)

ifType (3)

ifMtu (4)

ifSpeed (5)

ifPhysAddress (6)

ifAdminStatus (7)

ifOperStatus (8)

IfLastChange (9)(...)

IfxTable: 1.3.6.1.2.1.31.1.1.1 ifName (1)

( Paket Counter)

ifLinkUpDownTrapEnable (14)

ifHighSpeed (15)

ifPromiscuousMode (16)

ifConnectorPresent (17)

ifAlias (18)

ifCounterDiscontinuityTime (19)

Ntzliche OIDs

System: 1.3.6.1.2.1.1sysDescr (1)

sysObjectID (2)

+sysUpTime (3)

sysContact (4)

sysName (5)

sysLocation (6)

sysServices (7)

CDP: 1.3.6.1.4.1.9.9.23.1.2.1cdpCacheIfIndex (1)

cdpCacheDeviceIndex (2)

cdpCacheAddressType (3)

cdpCacheAddress (4)

cdpCacheVersion (5)

cdpCacheDeviceId (6)

cdpCacheDevicePort (7)

cdpCachePlatform (8)

cdpCacheCapabilities (9)

cdpCacheVTPMgmtDomain (10)

CdpCacheNativeVLAN (11)

(...)

cdpCacheVlanID (14)

(...)

Ntzliche OIDs

InterfaceVlan: 1.3.6.1.4.1.9.9.68.1.2.2.1.2

VtpVlanTable: 1.3.6.1.4.1.9.9.46.1.3.1.1vtpVlanIndex (1)

vtpVlanState (2)

vtpVlanType (3)

vtpVlanName (4)(...)

vtpVlanIfIndex (18)

Vlan Arptable: 1.3.6.1.2.1.17.4.3.1.1(mit community string indexing,also -cmngt_RO@vlan_number

Python und SNMP

Net-SNMP BindingsUnhandlich

Unpythonisch

Aber leider das schnellste

PySnmpSehr langsam (ca. Faktor 4)

Immer noch unhandlich

SnmpyBasiert auf PySnmp, daher immer noch sehr langsam

Ist aber recht schn

EasySnmpFork von Net-SNMP

Pythonischeres Interface

hnlich schnell

Spielt aber keine Rolle, da

poller = SnmpPoller("enc-core",snmp_community="mngt_RO")for key, value in poller.snmpwalk('1.3.6.1.2.1.2.2.1.2').iteritems(): print key, value

Liefert:498 GigabitEthernet2/36669 Vlan845668 Vlan815608 GigabitEthernet8/2664 unrouted VLAN 845965 TenGigabitEthernet7/7889 unrouted VLAN 617...