In einem Netzwerk sind Geräte ver­schie­dens­ter Art vereint – von Computern über Server, Switches oder Router bis hin zu Druckern und Co. Je höher die Teil­neh­mer­zahl ist, desto mehr Aufwand und Schwie­rig­kei­ten hat der Ad­mi­nis­tra­tor bei der Ver­wal­tung. Der Einsatz von Ver­wal­tungs­tools gehört aus diesem Grund zum Pflicht­pro­gramm, wenn die Funk­tio­na­li­tät und Si­cher­heit aller Systeme lang­fris­tig ge­währ­leis­tet sein soll. Ein Protokoll, das sich viele dieser Software-Lösungen zunutze machen, ist das Simple Network Ma­nage­ment Protocol (SNMP), das heut­zu­ta­ge als eines der wich­tigs­ten Stan­dard­pro­to­kol­le von nahezu allen End­ge­rä­ten un­ter­stützt wird.

Was ist SNMP?

Nach rund zwei Jahren Ent­wick­lungs­zeit wurde im Mai 1990 die erste of­fi­zi­el­le Version des Simple Network Ma­nage­ment Protocols, kurz SNMP, in RFC 1157 ver­öf­fent­licht. Ver­ant­wort­lich für das Netz­werk­pro­to­koll, das Teil der In­ter­net­pro­to­koll­fa­mi­lie und mitt­ler­wei­le auch in den Versionen SNMPv2 und SNMPv3 verfügbar ist, ist eine Ar­beits­grup­pe der IETF (Internet Engi­nee­ring Task Force). Kern­funk­ti­on des SNMP-Pro­to­kolls ist es, eine zentrale Über­wa­chung und Steuerung aller Kom­po­nen­ten eines Com­pu­ter­netz­werks zu er­mög­li­chen. Zu diesem Zweck be­schreibt es den Aufbau der be­nö­tig­ten Kom­mu­ni­ka­ti­ons­pa­ke­te sowie den Ablauf der Kom­mu­ni­ka­ti­on zwischen der zentralen Station und den einzelnen Geräten. Für den Transport der Pakete ist das ver­bin­dungs­lo­se UDP-Protokoll vor­ge­se­hen. Die trans­por­tier­ten Daten und In­for­ma­tio­nen sind dabei in der so­ge­nann­ten Ma­nage­ment In­for­ma­ti­on Base (MIB) in einer Art Baum­struk­tur abgelegt und ge­spei­chert.

SNMP-Erklärung: So funk­tio­niert das Simple Network Ma­nage­ment Protocol

Die Netz­werk­ver­wal­tung via SNMP basiert auf einem Agenten-Manager-Modell. Die zentrale Ma­nage­ment­sta­ti­on ist dabei das System, von dem aus der Ad­mi­nis­tra­tor die ver­schie­de­nen Netz­werk­teil­neh­mer be­ob­ach­tet und steuert. Hierfür ist eine Ma­nage­ment-Software in­stal­liert, die die SNMP-Abfrage von Daten sowie die In­iti­ie­rung be­stimm­ter Aktionen er­mög­licht. Die Agenten, bei denen es sich ebenfalls um An­wen­dun­gen handelt, sind das Ge­gen­stück auf Seiten der einzelnen Netz­werk­kom­po­nen­ten. Sie erfassen die re­le­van­ten Daten auf dem Zielhost und geben diese an die Ma­nage­ment­sta­ti­on weiter, können aber auch selbst Ein­stel­lun­gen vornehmen und bestimmte Aktionen auslösen. Derartige Agenten-An­wen­dun­gen sind in den meisten gängigen Windows- und Linux-Systemen bereits stan­dard­mä­ßig im­ple­men­tiert, bei­spiels­wei­se in Form des Daemons snmpd (nur Linux).

Für die Ver­stän­di­gung zwischen Manager und Agent gibt das SNMP-Protokoll sieben mögliche Nach­rich­ten­ty­pen vor:

  • GET-Request: GET-Requests sind die stan­dard­mä­ßi­gen Nach­rich­ten zum Abruf eines be­stimm­ten Da­ten­sat­zes auf dem ge­wünsch­ten Netz­werk­ge­rät.
  • GETNEXT-Request: Dieses Nach­rich­ten­for­mat wird benötigt, wenn auch nach­fol­gen­de Da­ten­sät­ze abgefragt werden sollen, z. B. bei Tabellen.
  • GETBULK-Request: Soll eine de­fi­nier­te Anzahl an Da­ten­sät­zen mit einem einzigen Request abgerufen werden, kann die Ma­na­ger­an­wen­dung einen GETBULK-Request (ab SNMPv2) senden. Eine solche Anfrage ist ver­gleich­bar mit mehreren, auf­ein­an­der­fol­gen­den GETNEXT-Requests.
  • SET-Request: SET-Requests er­mög­li­chen es dem Manager, einen oder mehrere Da­ten­sät­ze des ge­wünsch­ten Netz­werk­ge­räts zu verändern oder bestimmte Aktionen aus­zu­lö­sen. Ein Bei­spiel­sze­na­rio, in dem gleich mehrere An­pas­sun­gen notwendig sind, ist die Kon­fi­gu­ra­ti­on einer IP-Adresse, die gleich­zei­tig auch die Angabe einer Netz­werk­mas­ke erfordert.
  • GET-Response: Hat der Manager einen oder mehrere Da­ten­sät­ze an­ge­for­dert oder Än­de­run­gen bzw. Aktionen initiiert, antwortet der Agent mit GET-Responses. Diese Ant­wort­pa­ke­te enthalten entweder die erfragten Daten bzw. eine Be­stä­ti­gung der An­pas­sun­gen oder eine Feh­ler­mel­dung, wenn die Requests nicht ord­nungs­ge­mäß be­ant­wor­tet werden konnten.
  • SNMP-Trap: Bei SNMP-Traps handelt es sich um Agenten-Nach­rich­ten, die ohne Auf­for­de­run­gen der Ma­na­ger­sta­ti­on gesendet wurden. Hin­ter­grund ist, dass ein be­stimm­tes un­vor­her­ge­se­he­nes Ereignis auf­ge­tre­ten ist. Um welches Ereignis es sich dabei handelt, können die Traps auf zwei Wegen mitteilen: Die erste, res­sour­cen­spa­ren­de Mög­lich­keit ist das Anhängen einer ein­zig­ar­ti­gen Iden­ti­fi­ka­ti­ons­num­mer, deren Bedeutung der Manager in der bereits erwähnten In­for­ma­ti­ons­da­ten­bank (MIB) nach­schla­gen kann. Bei Mög­lich­keit Nummer zwei in­for­mie­ren die SNMP-Traps nicht nur über das Ereignis, sondern enthalten auch die ent­spre­chen­den Daten, ohne eine spe­zi­fi­sche Iden­ti­fi­ka­ti­ons­num­mer an­zu­zei­gen.
  • INFORM-Request: INFORM-Requests erfüllen prin­zi­pi­ell die gleiche Funktion wie SNMP-Traps. Im Gegensatz zu diesen zeichnen sich die INFORM-Pakete al­ler­dings dadurch aus, dass ihr Empfang vom Manager quittiert wird. In der Kon­se­quenz kann der Agent die Nachricht also erneut ver­schi­cken, wenn diese den Manager im ersten Versuch nicht erreicht hat.

SNMP Port

Wie bereits erwähnt, schreibt das Simple Network Ma­nage­ment Protocol den Einsatz des ver­bin­dungs­lo­sen Trans­port­pro­to­kolls UDP zur Über­mitt­lung der auf­ge­zähl­ten Nach­rich­ten­pa­ke­te vor. Auf diese Weise wird eine besonders res­sour­cen­scho­nen­de Über­wa­chung des Netzwerks ge­währ­leis­tet. Für die ver­schie­de­nen GET-Abfragen an die Agenten (inklusive ent­spre­chen­der Antworten) nutzt SNMP den UDP-Port 161, während die au­to­ma­tisch ver­sen­de­ten SNMP-Traps über UDP-Port 162 ver­schickt werden.

Die ver­schie­de­nen Versionen des SNMP-Pro­to­kolls im Vergleich

Ur­sprüng­lich bot SNMP weder eine Mög­lich­keit für Manager, um mit­ein­an­der zu kom­mu­ni­zie­ren, noch für Agenten, um Nach­rich­ten zu versenden, deren Empfang quittiert wird. Auch die Un­ter­stüt­zung vieler An­wen­dun­gen funk­tio­nier­te anfangs trotz des Ansatzes als offener Standard nur teilweise. Deshalb zielten die Pro­to­koll­über­ar­bei­tun­gen der folgenden Jahre ins­be­son­de­re darauf ab, ent­spre­chen­de Me­cha­nis­men in das Simple Network Ma­nage­ment Protocol zu in­te­grie­ren. Ein weiteres wichtiges Bestreben der ver­ant­wort­li­chen IETF-Ar­beits­grup­pe, das sich ins­be­son­de­re in der dritten Pro­to­koll­ver­si­on wi­der­spie­gelt, lag von Beginn an darin, das Ad­mi­nis­tra­ti­ons­ver­fah­ren sicherer zu machen. Diese und weitere Op­ti­mie­rungs­schrit­te des SNMP-Pro­to­kolls sind in den folgenden Portraits der einzelnen Versionen SNMPv1, SNMPv2 und SNMPv3 etwas aus­führ­li­cher the­ma­ti­siert.

SNMPv1

SNMPv1 liefert als erste Version des Netz­werk­ver­wal­tungs­pro­to­kolls das Konzept für das zu­grun­de­lie­gen­de Manager-Agenten-Modell sowie die Basis für die Kom­mu­ni­ka­ti­on zwischen der Ma­na­ger­sta­ti­on und den einzelnen Agenten. Das Simple Network Ma­nage­ment Protocol ist dabei als simples Protokoll be­schrie­ben, das auf An­wen­dungs­ebe­ne agiert und auf UDP (User Datagram Protocol) und Internet Protocol (IP), aber auch auf ver­gleich­ba­ren Netz­werk­pro­to­kol­len wie App­le­Talks DDP (Datagram Delivery Protocol) oder Internet Packet Exchange (IPX) aufsetzen kann. Einziger ein­ge­bau­ter Si­cher­heits­me­cha­nis­mus ist der Austausch eines so­ge­nann­ten Community-Strings, der mit den je­wei­li­gen Requests versendet wird.

SNMPv2

Ein großes Problem der ersten Aus­füh­rung des SNMP-Pro­to­kolls ist, dass der für die Si­cher­heit sorgende Community-String lediglich im Klartext über­tra­gen wird. Die Ent­wick­ler ar­bei­te­ten aus diesem Grund schnell an einer neuen Variante namens Secure SNMP, in der dieser String in ver­schlüs­sel­ter Form über­tra­gen wird. Ver­öf­fent­licht wurde diese Version al­ler­dings nie, da sie direkt durch SNMPv2 ersetzt wurde. Weitere Ver­bes­se­run­gen gegenüber der ur­sprüng­li­chen Pro­to­koll­va­ri­an­te sind eine op­ti­mier­te Feh­ler­be­hand­lung, die Mög­lich­keit von Manager-zu-Manager-Kom­mu­ni­ka­ti­on sowie funk­ti­ons­stär­ke­re SET-Kommandos. Der größte Vorteil gegenüber SNMPv1 liegt al­ler­dings in den neu im­ple­men­tier­ten Nach­rich­ten­ty­pen GETBULK (für die Abfrage mehrerer Daten in einem einzelnen Request) und INFORM (für Ant­wort­be­stä­ti­gun­gen auf Agenten-Antworten).

SNMPv3

Nach dem ersten, kleineren Schritt in der zweiten Pro­to­koll­ver­si­on hat die IETF den Fokus in SNMPv3 vollends auf den Aspekt Si­cher­heit gelegt und den Community-String durch Username und Passwort ersetzt. Ferner enthält die dritte Pro­to­koll­aus­füh­rung im Gegensatz zu den Vor­gän­gern Funk­tio­nen, um die Über­tra­gung der SNMP-Pakete zu ver­schlüs­seln. Insgesamt bietet SNMPv3 drei ver­schie­de­ne Au­then­ti­fi­zie­rungs- und Ver­schlüs­se­lungs­ar­ten:

Au­then­ti­fi­zie­rung Ver­schlüs­se­lung Username Passwort
no­Auth­No­Priv nein nein ja nein
auth­No­Priv ja nein ja ja
authPriv ja ja ja ja
Hinweis

Wenn die Ma­na­ger­sta­ti­on die dritte Version des SNMP-Pro­to­kolls un­ter­stützt, sollte diese in jedem Fall den älteren Pro­to­koll­ver­sio­nen vor­ge­zo­gen werden. Ferner ist es sinnvoll, die größt­mög­li­che SNMPv3-Si­cher­heits­stu­fe (authPriv) zu verwenden, falls das Gerät diese zulässt.

Zum Hauptmenü