RFC 3411–3418 · Net-SNMP · SNMPv3

SNMP und snmpd visuell erklärt – vom OID-Baum bis zur verschlüsselten Abfrage

Ein Monitoring-Server fragt Zähler, Namen und Zustände ab, Geräte melden Ereignisse von selbst: Das Simple Network Management Protocol ist überall – in Switches, Druckern, USVs und Linux-Servern mit snmpd. Hier siehst du, was dabei wirklich über die Leitung geht, wie SNMPv3 Schlüssel ableitet und wie man snmpd sicher einrichtet.

🖥️ Manager (NMS)Command GeneratorNotification Receiversnmpget · snmpwalksnmptrapd auf UDP 162🖧 Agent (snmpd)Command ResponderNotification Originatorlauscht auf UDP 161gw1.example.orgGetRequest · GetNext · GetBulk · Set → UDP 161Response (gleiche request-id)SNMPv2-Trap / Inform → UDP 162nur beim Inform: Response als Bestätigung🌳 MIB-Instanzen des Agenten1.3.6.1.2.1.1.5.0 = gw1.example.org1.3.6.1.2.1.2.2.1.10.2 = Counter32📖 MIB-Dateien beim ManagerifInOctets ↔ 1.3.6.1.2.1.2.2.1.10übersetzen nur Zahlen ↔ NamenManager ↔ Agent ↔ MIBÜber das Netz gehen nur OIDs (Zahlenfolgen) und Werte – nie die Namen aus den MIB-Dateien.
UDP 161 / 162
Agent lauscht auf 161, Notifications gehen an 162 (RFC 3417)
0x2B
so beginnt fast jede OID im Paket: 40 · 1 + 3 = 43 für „1.3“
1 048 576
Oktette Passwort-Wiederholung, bevor SNMPv3 den Schlüssel hasht (RFC 3414)
150 s
Zeitfenster: ältere authentisierte v3-Nachrichten lehnt der Agent ab

🧭 Lernpfad

⌨️ Ein Befehl – 40 Bytes

Diese Abfrage liest die Gerätebeschreibung. Im Debugger wird jedes der Bytes erklärt – hier nur der Überblick:

$ snmpget -v2c -c public 192.0.2.10 SNMPv2-MIB::sysDescr.0
SNMPv2-MIB::sysDescr.0 = STRING: Linux gw1 6.12.0-beispiel #1 SMP x86_64
30 26 02 01 01 04 06 70 75 62 6c 69 63 a0 19 02 01 01 02 01 00 02 01 00 30 0e 30 0c 06 08 2b 06 01 02 01 01 01 00 05 00

GetRequest mit request-id 1 (echte Werkzeuge wählen zufällige IDs). Community und OID stehen im Klartext im Paket.

🗺️ Wo was liegt

iso(1)
└─ org(3)
   └─ dod(6)
      └─ internet(1)                       1.3.6.1
         ├─ mgmt(2)
         │  └─ mib-2(1)                    1.3.6.1.2.1
         │     ├─ system(1)                sysDescr, sysUpTime, sysName …
         │     ├─ interfaces(2)            ifTable: ifInOctets, ifOutOctets …
         │     ├─ host(25)                 HOST-RESOURCES-MIB
         │     └─ ifMIB(31)                ifXTable: ifHCInOctets (64 Bit)
         ├─ private(4)
         │  └─ enterprises(1)              1.3.6.1.4.1
         │     ├─ ucdavis(2021)            laLoad, dskTable, memory
         │     └─ netSnmp(8072)            extend-Ausgaben
         └─ snmpV2(6)
            └─ snmpModules(3)              Framework, USM(15), VACM(16)