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