📎Quellen

Jede Zahl, jedes Byte und jede Direktive in dieser App ist aus einer dieser Quellen übernommen oder daraus berechnet (geprüft am 29.09.2026). Die RFC-Testvektoren für Password-to-Key laufen zusätzlich als automatische Tests.

🧮

Alles im Browser

BER-Kodierung, Agent-Simulation, VACM und Schlüsselableitung sind TypeScript im Browser. Es wird kein echter SNMP-Agent angesprochen, nichts wird an einen Server geschickt.

🔐

Kryptografie

SHA-1/-256/-384/-512 rechnet die Web Crypto API des Browsers. MD5 und SHA-224 bietet sie nicht an – dafür enthält die App eigene Implementierungen, die in den Tests gegen node:crypto und die RFC-3414-Testvektoren geprüft werden.

🧪

Beispieldaten

gw1.example.org, 192.0.2.x und 198.51.100.x (Dokumentationsnetze nach RFC 5737), Benutzer „monitor“ und Passwörter wie „beispiel-auth-pw“ sind erfunden.

SNMP-Architektur & Protokoll

RFC 1157 – SNMPv1Message = version, community, data; version 0; Fehlercodes noSuchName, badValue, readOnly, genErr; Trap-PDU von v1
RFC 1901 – Community-based SNMPv2 (v2c)SNMPv2c: v2-PDUs mit Community-Nachricht, version = 1
RFC 3411 – SNMP-ArchitekturEngine, Anwendungen, SnmpEngineID (5–32 Oktette, Formate 1–5, ≥128 herstellerspezifisch), securityModel 1/2/3, SNMP-FRAMEWORK-MIB (snmpEngineID/-Boots/-Time)
RFC 3412 – Message Processing (SNMPv3-Nachricht)msgVersion 3, msgGlobalData (msgID, msgMaxSize, msgFlags, msgSecurityModel), Bits reportable/priv/auth
RFC 3413 – SNMP-AnwendungenCommand Generator/Responder, Notification Originator/Receiver, Proxy Forwarder
RFC 3416 – Protokolloperationen (PDUs)PDU-Tags [0]–[8], GetBulk mit non-repeaters/max-repetitions (N + M·R), noSuchObject/noSuchInstance/endOfMibView, error-status 0–18, Inform wird mit Response bestätigt
RFC 3417 – Transport-MappingsUDP-Port 161 (Agent) und 162 (Notification Receiver), BER-Kodierung mit definiten Längen, Nachrichten ≥ 484 Oktette
RFC 3418 – SNMPv2-MIBsystem-Gruppe (sysDescr … sysServices), snmpTrapOID.0, coldStart/warmStart/authenticationFailure
RFC 3584 – Koexistenz v1/v2c/v3Abbildung der v2-Fehlercodes auf v1 (badValue, noSuchName, genErr)

Sicherheit (USM/VACM)

RFC 3414 – User-based Security ModelSicherheitsstufen, HMAC-MD5-96/HMAC-SHA-96, DES-CBC, Password-to-Key (1 MiB, Anhang A.2), Testvektoren „maplesyrup“ (A.3), Zeitfenster 150 s, usmStats-Zähler, Discovery, Passwörter ≥ 8 Zeichen
RFC 3415 – View-based Access ControlisAccessAllowed-Ablauf (noSuchContext … accessAllowed), Gruppen, Zugriffstabelle, View-Familien mit Maske, längster Teilbaum gewinnt
RFC 3826 – AES-CFB-128 für USMusmAesCfb128Protocol, Schlüssel = erste 128 Bit von Kul, IV = engineBoots ‖ engineTime ‖ 64-Bit-Salt
RFC 7860 – HMAC-SHA-2 für USMSHA-224/256/384/512 mit gekürzten MACs von 16/24/32/48 Oktetten

SMI & MIBs

RFC 2578 – SMIv2Baum internet(1) mit mgmt/private/snmpV2, Datentypen Counter32/64, Gauge32, TimeTicks, IpAddress; Counter64 nur, wenn 32 Bit in < 1 h überlaufen
RFC 1213 – MIB-IImib-2-Gruppen system, interfaces, ip, tcp, udp, snmp; ifTable mit ifInOctets/ifOutOctets
RFC 2863 – IF-MIBifXTable, ifHCInOctets/ifHCOutOctets, ifHighSpeed, ifAlias; 64-Bit-Zähler ab 20 Mbit/s (Oktette) bzw. 650 Mbit/s (auch Pakete); linkDown/linkUp
RFC 2790 – HOST-RESOURCES-MIBhrSystemUptime, hrStorageTable

Net-SNMP

snmpd.conf(5)agentaddress, rocommunity/rouser, view (Maske), access, createUser (MD5|SHA|SHA-224…SHA-512, DES|AES), proc, disk, load, extend, pass, trap2sink/informsink/trapsess, master agentx
snmptrapd.conf(5)authCommunity, authUser, createUser -e, traphandle, disableAuthorization
snmpcmd(1)-v, -c, -l, -u, -a, -A, -x, -X, -t (Standard 1 s), -r (Standard 5), -m/-M, -D, -O
snmpwalk(1) / snmpbulkwalk(1)-Cc, -Ci, -Cp, -Cr<NUM> (max-repetitions), -Cn<NUM> (non-repeaters)
snmptrap(1)snmptrap … uptime trap-oid [OID TYPE VALUE]…, -Ci sendet ein Inform
net-snmp-create-v3-user(1)-ro, -A authpass, -a MD5|SHA|SHA-512|SHA-384|SHA-256|SHA-224, -X privpass, -x DES|AES; snmpd muss gestoppt sein
EXAMPLE.conf (Beispielkonfiguration)agentAddress udp:127.0.0.1:161, view systemonly (.1.3.6.1.2.1.1 und .1.3.6.1.2.1.25.1), rocommunity public default -V systemonly, extend test1 /bin/echo Hello, world!
UCD-SNMP-MIBprTable (2021.2), memory (2021.4), dskTable (2021.9), laTable (2021.10)
NET-SNMP-EXTEND-MIB / NET-SNMP-MIBnsExtendOutput1Line = 1.3.6.1.4.1.8072.1.3.2.3.1.1, Index = Name des extend-Eintrags; netSnmp = enterprises 8072; linux = 8072.3.2.10