Sledovanie Siete

Matej Klement, xklem (at) fi (dot) muni (dot) cz


Obsah


SNMP

O protokole

SNMP (Simple Network Management Protocol) je protokol aplikačnej vrstvy umožňujúci výmenu informácií potrebných pre manažment siete medzi sieťovými zariadeniami. SNMP protokol je súčasť rady protokolov TCP/IP (Transmission Control Protocol/Internet Protocol) a umožňuje administrátorom spravovať výkonnosť siete a hlavne nájsť a riešiť problémy, ktoré v sieti vznikli.

Existujú 3 verzie protokolu SNMP, verzia 1 (SNMPv1), verzia 2 (SNMPv2) a verzia 3 (SNMPv3). Verzie majú veľa spoločné, ale novšia verzia obsahuje vylepšenia oproti predchádzajúcej verzií ako dalšie operácie tohoto protokolu.

Základné prvky SNMP

Siete menežované pomocou SNMP pozostávajú z troch základných komponentov: menežované zariadenia, agenti a systémy na menežovanie siete (NMS). Menežované zariadenie je sieťový uzol, ktorý obsahuje SNMP agenta a je zapojený do menežovanej siete. Menežované zariadenia zbierajú a ukladajú informácie a sprístupňujú ich pomocou SNMP systémom NMS. Menežované zariadenia, niekedy volané aj sieťové prvky, možu byť routre, prístupové servery, switche, bridge, huby, počítače v sieti, tlačiarne a iné...
Agent je softwarový modul spravujúci sieť umiestnený v menežovaných zariadeniach. Tento modul prekladá informácie o systéme do formátu kompatibilného s SNMP.
NMS vykonáva aplikácie, ktoré monitorujú a kontrolujú menežované zariadenia.
Jedno alebo viac systémov NMS je potrebných v každej menežovanej sieti.

Základné príkazy SNMP

Všetky menežované zariadneia sú monitorované a kontrolované cez 4 hlavné typy príkazov protokolu SNMP: read, write, trap a traversal operations. Príkaz read je používaný na vyčítavanie hodnôt používaných NMS na monitorovanie menežovaných zariadení. NMS preverí hodnoty spravované na menežovaných zariadenaich. Príkaz write je používaný na kontrolovanie menežovaných zariadení. Týmto príkazom mení NMS premenné v menežovaných zariadeniach. Príkaz trap sa používa na vyčítavanie asynchrónnych správ udalostí posielaných NMS, čo znamená, že po nastaní nejakej udalosti sa pošle trap príkaz NMS. Traversal operations sú používané NMS systémami k určeniu, ktoré veličiny dané zariadenie podporuje a k sekvenčnému získavaniu premenných tabuliek ako napríklad smerovacie tabuľky.

SNMP Menežovaná informačná základňa

Menežovaná informačná základňa (MIB) je kolekcia informácií usporiadaných hierarchicky. Do MIB je pristupované pomocou protokolov spravujúcich sieť, napr. SNMP. Tie sa skladajú z menežovaných objektov a sú rozpoznávane pomocou objektových identifikátorov.
Menežovaný objekt (niekedy nazývaný aj MIB objekt , objekt alebo MIB) je jedna zo špecifických charakteristík menežovaných zariadení. Menežované objekty sa skladajú z jedného alebo viac inštancií objektu, ktoré sú hlavne premenné.

Existujú 2 typy menežovaných objektov: skalárne a tabuľkové. Skalárne objekty definujú jednu inštanciu objektu. Tabuľkové objekty definujú niekoľko súvisiacich inštancií objektov, ktoré sú zoskupeneé v MIB tabuľke.
Identifikátor objektu (Objekt ID) definuje jedinečný menežovaný objekt v MIB hierarchii. MIB hierarchia môže byť zobrazená ako strom s bezmennýjm koreňom, ktorého listy sú priradené jednotlivým štandardom spojených s organizáciami.
Príklad menežovaného objektu je atInput, ktorý je skalárný objekt obsahujúci jednu inštanciu, jeho hodnot indikuje množstvo prijatých paketov AppleTalk na routri. Najvrchnejší objekt MIB patrí do roznej skupiny štandardu, pričom spodnejšie úrovene predstavujú ID objektov umiestenených jednotlivými organizáciami.

Výrobcovia môžu definovať vlastné vetvy pre ich vlastné produkty. MIB ktorý nebol štandardizovaný je večšinou umiestený v experimentálnom konáry.
Objekt atInput môže byť identifikovaný pomocou mena objektu - iso.identified-organization.dod.internet.private.enterprise.cisco.temporaryvariables.AppleTalk.atInput
Alebo popisovačom 1.3.6.1.4.1.9.3.3.1.


Nasledujúci obrázok uvádza príklad MIB stromu.

SNMP a reprezentácia dát

SNMP sa musí prispôsobiť a upraviť prípadné nezhody medzi menežovanými zariadeniami. Rôzne počítače používajú rôzne techniky reprezentácie dát, ktoré znehodnocujú  schopnost SNMP na výmenu dát medzi menežovanými zariadeniami. SNMP používa Abstract Syntax Notation One (ASN.1) pre zabezpečenie komunikácie medzi rôznorodými systémami.


SNMP Verzia 1

SNMP verzia 1

(SNMPv1) je prvá implementácia SNMP protokolu. Je vysvetlená v Request For Comments (RFC) 1157 a pracuje v medziach špecifikácie Štruktúra Menežovaných Informácií (SMI). SNMPv1 funguje nad protokolmi UDP, IP, CLNS (OSI Connectionles Network Service), DDP (AppleTalk Datagram-Delivery Protocol) a IPX.

SNMPv1 a SMI

Štruktúra Menežovaných Informácií (SMI) definuje pravidlá pre popisovanie menežovaných informácií používajúc Abstract Syntax Notation One (ASN.1) SNMPv1 SMI je definovaná v RFC 1155, ktorá tvorí tri kľúčové špecifikácie:  ASN.1 Dátové typy, SMI-špecifické dátové typy a SNMP MIB tabuľky.

SNMPv1 a Dátové typy ASN.1

SNMPv1 SMI špecifikuje, že všetky menežované objekty su popísované určitou podmnožinu z dátových typov ASN.1. Tri dátové typy sú vyžadované: meno, syntax a kódovanie. Meno slúži ako identifikátor objektu (Object ID). Syntax definuje dátový typ objektu (String, Integer..).

SNMPv1 a SMI-špecifické Dátové typy

SNMPv1 SMI špecifikuje použitie množstva dátových typov, ktoré sú rozdelené do dvoch kategórií: jednoduché dátové typy a dátové typy aplikácií.

SNMP MIB Tabuľky

SNMPv1 SMI defunuje vysoko štrukturované tabuľky, ktoré sú používané na zoskupovanie inštancií tabuľkových objektov (objekt, ktorý obasahuje viac premenných). Tabuľky sa skladaju z nula alebo viac riadkov, ktoré sú indexované spôsobom, ktorý umožňuje  SNMP čítať alebo meniť celý riadok jediným príkazom Get, GetNext alebo Set .

SNMPv1 Operácie protokolu

SNMP je jednoduchý request/response protokol. NMS pošle požiadavku a menežované zariadenie pošle odpoveď. Toto správanie je implementované použitím 4 protokolových opercií: Get, GetNext, Set a Trap. Get je používaný NMS na čítanie hodnoty jedného alebo viacerých inštancií objektov od agenta. Ak agent nemôže poskytnúť hodnoty pre všetky inštancie objektov v zozname, neposiela žiadne hodnoty. GetNext je používaný na prečítanie hodnoty ďalšej inštancie objektu v tabuľke alebo v zozname vnútri agenta. Set nastaví hodnotu inštancie. Trap sa používa na asynchrónne informovanie NMS o dôležitých udalostiach.



SNMP Verzia 2

SNMP verzia 2 (SNMPv2) je vylepšená pôvodná verzia, ktorá pracuje v medziach špecifikácie SMI a poskytuje množstvo vylepšení oproti SNMPv1 zahrňujúc dalšie operácie protokolu. SNMPv2 SMI pridáva a vylepšuje niektoré SNMPv1 dátové typy zahrňujúc bitové reťazce, sieťové adresy a počítadlá. Bitové reťazce sú definované iba v SNMPv2 a obsahujú 0 alebo viac pomenovaných bitov ktoré špecifikujú hodnotu. Sieťové adresy reprezentujú adresu z niektorej protokolovej rodiny. SNMPv1 podporovalo iba 32-bitové adresy. Počítadla sú kladné čísla, ktoré rastú pokiaľ nedosiahnu maximum a potom spadnú na nulu. SNMPv1 obsahovalo iba 32-bitové počítadlá, SNMPv2 obsahuje i 64 bitové.

SNMPv2 Operácie protokolu

Operácie Get, GetNext a Set sú rovnaké ako v SNMPv1. SNMPv2 pridáva a upravuje niektoré operácie. Napr. Trap sa používa na rovnaký účel ako v SNMPv1 ale má nový formát správy a je navrhnutá na nahradenie SNMPv1 Trap.
SNMPv2 tiež definuje 2 nové operácie: GetBulk a Inform. GetBulk je používaná NMS na vhodné prečítanie veľkého bloku dát ako napr. niekoľko riadkov v tabuľke. Inform umožní jednému NMS poslať informácie druhému NMS a pre vyzdvihnutie odpovede.

Bezpečnosť SNMP

SNMPv1/v2 neobsahuje žiadne bezpečnostné provky, čo spôsobuje zraniteľnosť vo veľkej škále hrozieb. Pretože SNMP neimplementuje autentifikáciu, veľa výrobcov neimplementuje operáciu Set, čiže redukujú SNMP iba na monitorovacie účely.

Kompatibilita SNMP

SNMPv2 je nekompatibilné s SNMPv1 v 2 klúčových oblastiach: Formát správy a Protocol data unit (PDU). SNMPv2 správy používajú inú hlavičku a PDU ako SNMPv1. A taktiež SNMPv2 používa 2 správy, ktoré sa v SNMPv1 nenachádzaujú. Existujú dva typy koexistencie SNMPv1/v2 na jednej sieti: proxy agent a bilinguálne NMS.
Proxy agent prekladá správy pre SNMPv1 zariadenia a bilingualne NMS zase zistí či dané zriadenie podporuje SNMPv2 ak nie tak používa SNMPv1.



SNMPv3

Hlavné vylepšenie SNMPv3 oproti predchádzajúcim verziám je, že už obsahuje niekoľko úrovní bezpečnosti, ktoré umožňujú enkryptovanie alebo prístup k dátam na základe uživateľov. Jedna z týchto úrovní je User-based Security Model (USM), ktorý poskytuje Autentifikované i Súkromné (enkryptované)  SNMP správy. Ďalšia výhoda je View-based Access Control Model (VACM) poskytujúci možnosť limitovania prístupu k rozdielnym  MIB objektom na základe práv pridelených jednotlivým uživateľom.
SNMPv3 používa SMI protokol verzie 2. Spôsob koexistencie s predchádzajúcimi verziami je rovnaký, ako pri SNMPv2 s verziou 1.



MIB-2

MIB-2 obsahuje 11 hlavných skupín, z ktorých je 9 nepoužitá, lebo tento projekt bol opustený(CMOT). MIB-2 je spätne kompatibilná s MIB, obsahuje vylepšenú podporu pre viacprotokolové entity a bol "vyčistený" pre lepšiu jasnosť a čitateľnosť. Bol pridaný mark "deprecated" pre objekty, ktorý hovorí o tom čo musí byť podporované ale pravdepodobne v najbližšej verzii bude odstránené.



SNMP software

Net-SNMP (UCD-SNMP) - obsahuje podporu agenta ale i menežovanie a monitorovanie SNMP siete (NMS), ďalej obsahuje grafický MIB prehliadač, konzolové príkazy Get, GetNext, Set a dalšie.
CMU SNMP - balík knižníc a nástrojov pre príkazový riadok s TCL / TK interfaceom
MRTG - program na grafické zobrazenie hlavne SNMP informácií pomocout internetového prehliadača..
HP OpenView (HPOV) - menežuje a monitoruje SNMP siete.
CiscoWorks 2000 Resource Manager Essentials - umožnuje menežovanie a monitorovanie hlavne CISCO sietí
DMH Advanced SNMP-Agent - agent napísaný v Ansi-C, ľahko implementovatelný na rôzne systémy a platformy, podporujúci SNMPv3. je implementovaný do switchov, routrov ...
Tkined - sieťový editor, grafický prehliadač MIB záznamov a informácií o sieti napísaný hlavne pomocou scotty
Nagios - komplexný monitor siete zahrňujúci i SNMP protokol ovládaný pomocou internetového prehliadača, umožnuje prídavné moduly pre notifikáciu o zlihaniach na mobilné telefóny / pagere a iné.


Konfigurácia Agenta Net-SNMP

Aby človek vedel, kde ma vôbec hladať/vytvoriť konfiguračný súbor by mal napísať

snmpd -Dread_config -H 2>&1 | grep "config path" | sort -u

a potom by bolo zistiť či už nejaký existuje a kde

snmpd -Dread_config -H 2>&1 | grep "Reading" | sort –u

ak žiadny neexistuje ho vytvorí , ak je súbor zle okomentovaný

snmpconf -R FILENAME -a -f snmpd.conf

okomentuje conf subor a potom je možné už používať manuálové stránky, pre zistenie dostupných skupín  treba napísať

snmpconf -G

potom sa skupina nakonfiguruje cez

snmpconf -r none -g basic_setup

takto sa dá nakonfigurovať SNMP.
Pre pridanie uživateľa treba :)

man snmpusm

alebo pre nastavenie VACM

man snmpd.conf



Použitá literatúra

RFC 1157
RFC 1902
RFC 3410
RFC 1213
http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/snmp.htm
http://www.simple-times.org/pub/simple-times/issues/5-1.html