Sunteți pe pagina 1din 109

CUPRINS

1 REELE DE CALCULATOARE ...................................................... 3


1.1 SCURT ISTORIC .................................................................................. 3 1.2 TIPURI DE REELE ............................................................................... 4 1.2.1 Topologia ................................................................................... 5 1.2.2 Mediul de transmisie .................................................................. 6 1.2.3 Aria de acoperire ...................................................................... 10 1.2.4 Modul de transmisie a datelor .................................................. 13 1.3 MODELE DE ARHITECTURI ................................................................. 16 1.3.1 Modelul OSI ............................................................................. 16 1.3.2 Modelul TCP/IP ........................................................................ 22

2 STIVE DE PROTOCOALE ............................................................ 27


2.1 2.2 2.3 2.4 3.1 3.2 3.3 3.4 4.1 PROTOCOLUL INTERNET IP ............................................................... 28 PROTOCOL DE COMUNICAIE DE NIVEL TRANSPORT TCP ................... 31 PROTOCOLUL PENTRU INFORMAIA DE UTILIZATOR UDP ................... 36 ALTE PROTOCOALE ........................................................................... 38 CONVENII LEXICALE ........................................................................ 44 TIPURI DE DATE ................................................................................ 45 DEFINIREA MODULULUI ..................................................................... 50 MACRODEFINIII ............................................................................. 51 ARHITECTURA MODELULUI DE MANAGEMENT AL REELELOR TCP\IP ... 54

3 PREZENTARE ASN.1 (ABSTRACT SYNTAX NOTATION ONE) 41

4 PROTOCOLUL DE MANAGEMENT AL REELEI........................ 53


4.2 MOD DE FUNCIONARE...................................................................... 56 4.2.1 Interogare Direct a Capcanelor (TrapDirect Polling) ............ 58 4.2.2 Agent Intermediar (Proxy Agent) ............................................. 59

5 DIFERENE NTRE CELE TREI VERSIUNI DE SNMP ................. 61


5.1 5.2 5.3 MBUNTIRILE ADUSE DE SNMPV2 ................................................ 62 MBUNTIRILE ADUSE DE SNMPV3 ................................................ 69 MODIFICRILE ADUSE FORMATULUI CADRELOR PDU .......................... 70

6 PREZENTARE PROGRAMULUI FOLOSIT PENTRU REALIZAREA APLICAIEI ........................................................................................ 72


6.1 INSTALAREA PROGRAMELOR ............................................................. 72 6.2 DESCRIEREA APLICAIEI .................................................................... 73 6.2.1 Componente ............................................................................ 73 6.2.2 Desfurare ............................................................................. 74 Anexa 1 ........................................................................................................ 78 Anexa 2 ........................................................................................................ 87 Abrevieri ..................................................................................................... 106 Bibliografie ................................................................................................. 109

1 Reele de Calculatoare

1.1 Scurt istoric


Reelele de calculatoare apar ca urmare a necesitii schimbului operativ de informaii la distan ntre mai multe calculatoare. n acest scop au fost construite sisteme de calcul ce conin mai multe calculatoare sau terminale (staii), care interacioneaz prin intermediul unui sistem de transfer de date (fig.1.1)

Fig. 1.1 Reea de calculatoare cu comunicaii comutate. Prima interconectare la distan a dou calculatoare a fost realizat n 1966 la iniiativa i cu susinerea ageniei ARPA (Advanced Research Project Agency) din SUA. Un calculator TX2 din

Massachusetts Institute of Technology (din Statul Massachusetts) a fost conectat, prin intermediul unui canal de comunicaii dedicat, cu un calculator Q32 al firmei System Development din Santa Monika (din Statul California). Una din primele reele cu comutare de mesaje a fost

Cap. 1. Reele de Calculatoare AUTODIN I, construit la mijlocul anilor 60 de firma Western Union pentru Departamentul Aprrii al SUA. n 1968 la National Physics Laboratory (Marea Britanie) a fost pus n funciune reeaua experimental NPL, iar n 1969 primele trane ale reelelor ARPANET (firma Bold, Beranec and Newman, SUA), SITA (Societe Internationale de Telecommunication Aeronautique), TYMNET (firma TYMSHARE, SUA) i CYBERNET (firma CDC, SUA). Ulterior au fost construite mai multe reele, inclusiv: ALOHA (1971 Hawaii); RETD (1971, CTNE, Spania); CYCLADES/CIGALE (1973, INRIA, Frana); TELENET (1973, TELENET Communication, SUA) care a evoluat n SPRINT; EPSS (1974, Ministerul Comunicaiilor, Marea Britanie); European Information Network EIN (1975); EDS (1975, Ministerul Comunicaiilor, (1978, Germania); DATAPAC Frana); (1977, Canada); (1979, TRANSPAC France Telecom, Euronet

Comunitatea Economic European); Eunet (1982, Europa); NSF (1986, National Science Foundation, SUA). n prezent funcioneaz sute de mii de reele, majoritatea crora sunt reele locale. O mare parte din reelele existente sunt interconectate, formnd aa numitul ciberspaiu (cyber space). Cea mai mare comunitate de reele din lume este Internet care interconecteaz peste 200.000 reele, 130 milioane de staii, deservete circa 400 milioane de utilizatori, putnduse vorbi de o Reea Global de Calculatoare.

1.2 Tipuri de reele


Reelele se difereniaz n principal prin: o o o o Topologie Mediu de transmisie Arie de acoperire Modul de transmisie a datelor
4

Cap. 1. Reele de Calculatoare 1.2.1 Topologia Definete structura / modul de interconectare a componentelor reelei (ce pot fi calculatoare, imprimante, faxuri, servere, .a.) uzual calculatoare. Astfel avem: Topologie Liniar (Bus) Un segment de cablu constituie mediul de transmisie folosit n comun de toate staiile din reea, ele fiind direct conectate la acesta;
Fig. 1.2 Topologie Liniar

1.

Conectarea n acest caz se face uor dar, mediul fiind utilizat n comun, probabilitatea de apariie a coliziunilor este mare.

2.

Topologie Stea (Star) Fiecare staie se conecteaz, printro linie proprie, la un nod central ce controleaz comunicaia ntre staii; Aceast topologie rezolva problema coliziunilor, ce apare n cazul topologiei liniare, ns sufer de un alt dezavantaj : defectarea nodului central atrage de la sine defectarea ntregii reele. Topologia Stea Extins Se realizeaz prin interconectarea mai multor reele

Fig. 1.3 Topologie Stea

3.

Fig. 1.4 Topologie Stea Extins

Stea Are ca scop mrirea suprafeei de acoperire a reelei

Cap. 1. Reele de Calculatoare 4. Topologie Complet (Mesh) Orice staie este conectat printro legtur punctla punct cu toate celelalte staii din reea Este folosit n cazul n care existena mcar a unei ci Fig. 1.5 Topologie Complet de comunicare este esenial (Internetul se bazeaz pe o astfel de topologie) Asigur fiabilitatea ce mai nalt de funcionare

5.

Topologie Inel (Ring) Staiile sunt interconectate n serie, ntro bucl nchis Exist o staie Monitor care, pe baza unui algoritm, acord posibilitatea de transmisie staiilor din inel

Fig. 1.6 Topologie Inel

1.2.2 Mediul de transmisie Reprezint suportul fizic prin care se transfer datele ntre unitile componente ale unei reele. Exist trei variante de mediu de transmisie: fire metalice, fibr optic, aer. Mediile au fost mprite n mai multe categorii, n funcie de viteza maxim de transmisie (depinde de materialul conductor folosit), tipul de transmisie suportat de mediul respectiv (n banda de baz sau band larg), lungimea maxim de regenerare, pn la care semnalul mai poate fi recepionat corect. Astfel avem: 10 BASE 2 viteza de transmisie 10Mb/s, transmisie n banda de baz; dup aproximativ 200m semnalul devine irecuperabil datorit atenurii. Reprezint cablul coaxial subire ( 5mm), ZC = 50.

Cap. 1. Reele de Calculatoare 10 BASE 5 viteza de transmisie 10Mb/s, transmisie n banda de baz; dup aproximativ 500m semnalul devine irecuperabil datorit atenurii. Reprezint cablul coaxial cu 10mm, ZC = 50 . 10 BASE T viteza de transmisie 10Mb/s, transmisie n banda de baz; dup aproximativ 100m semnalul devine irecuperabil datorit atenurii. Reprezint perechile de fire rsucite. 100 BASE TX viteza de transmisie 100Mb/s, transmisie n banda de baz; dup aproximativ 100m semnalul devine irecuperabil datorit atenurii. Reprezint perechile de fire rsucite. 10 BASE F viteza de transmisie 10Mb/s, transmisie n banda de baz; dup aproximativ 1km datorit atenurii. Reprezint fibra optic. 10 BASE FL viteza de transmisie 10Mb/s, transmisie n banda de baz; dup aproximativ 2km datorit atenurii. Reprezint fibra optic. 100 BASE FX viteza de transmisie 100Mb/s, transmisie n banda de baz; dup aproximativ 2km semnalul devine irecuperabil datorit atenurii. Reprezint fibra optic multimod. 10 BROAD 36 viteza de transmisie 10Mb/s, transmisie de band larg. Reprezint cablul coaxial CATV, ZC = 75 . semnalul devine irecuperabil semnalul devine irecuperabil

Cablul coaxial se compune din dou elemente conductoare. Unul, n mijloc, din cupru nvelit
Izolaie extern Plas de cupru Conductor ce cupru

ntrun

strat

de

material

izolant

flexibil. Peste acest strat izolant se gsete cel deal doilea element conductor ce poate fi o plas din cupru sau o folie metalic ce are i rol

Izolaie

Fig. 1.7 Cablul coaxial

de ecranare mpotriva interferenelor electromagnetice externe, nvelit la


7

Cap. 1. Reele de Calculatoare rndul lui n material izolant. Cablul coaxial are mai multe avantaje: lungimea de regenerare este mai mare dect n cazul perechilor torsadate, este mai ieftin dect fibra optic, iar tehnologia ce se bazeaz pe acest tip de cablu este foarte bine cunoscut fiind folosit de mult timp n diverse tipuri de comunicaii. Perechile torsadate exist n trei variante: Perechi Torsadate Ecranate STP
Izolaie extern Ecran extern Ecran perechi Pereche torsadat

(Shielded Twisted Pair) la care fiecare fir este acoperit cu material izolant i fiecare pereche este nfurat n folie metalic ce funcioneaz ca protecie mpotriva

interferenelor electromagnetice, iar cele Fig. 1.8 STP patru perechi de fire sunt protejate i ele de un nveli de ecranare. Impedana caracteristic a acestui tip de cablu este 150. Acest tip de configuraie de cablu are calitatea de a reduce att zgomotul datorat cuplajului i diafoniei (surse interne), ct i a celui datorat interferenelor electromagnetice i interferenelor de radiofrecven (surse exterioare). Dezavantajele STPului sunt costurile mai ridicate dect n cazul achiziionrii de cablu UTP precum i instalarea mai dificil, nveliurile de ecranare putnd deveni antene n cazul n care mpmntarea nu este fcut corespunztor la ambele capete.
Izolaie extern Pereche torsadat

Perechi Torsadate Neecranate UTP (Unshielded Twisted Pair) n acest caz fiecare fir este acoperit cu material izolant i firele ce formeaz o pereche sunt rsucite (pasul de rsucire variaz de la o

Fig. 1.9 UTP

pereche la alta) astfel c acest cablu

beneficiaz doar de protecie datorat rsucirii perechilor. Cu toate


8

Cap. 1. Reele de Calculatoare acestea, costul redus, dar mai ales dimensiunile reduse au fcut ca UTP s fie cel mai rspndit mediu de transmisie utilizat n prezent.
Izolaie extern Ecran extern Pereche torsadat

Un model hibrid de UTP este UTP Ecranat ScTP (Screened UTP) care este, de fapt, cablul UTP ale crui 4 perechi de fire sunt protejate de un nveli de ecranare. Se folosete n mod obinuit cablu ScTP de impedan caracteristic 100 sau 120 .

Fig. 1.10 ScTP

Fibra optic , devine tot mai folosit, datorit atenurii mici, n special ntre repetoare, pentru a crete
PVC Kevlar Fibra

distana ntre acestea. Probabilitatea de eroare este i ea foarte mic datorit faptului c semnalele transmise printrun astfel de mediu nu sunt influenate de

PVC

unde

electromagnetice

sau

de

radiofrecven ne mai fiind vorba de semnale reprezentate electric. Informaia este transmis n acest caz sub form de fascicul luminos. Un alt avantaj important al fibrei optice l reprezint viteza mare cu care se pot transmite date teoretic pn la 50000Gb/s practic ajungndu se la 1Gb/s. Se disting dou tipuri de fibr optic: fibr optic multimod, prin care va a fi transmis n mediu n totalitate orice raz de lumin cu unghiul de inciden cu suprafaa de separaie mai mare dect unghiul critic. Reducnd diametrul fibrei la cteva lungimi de und a luminii de transmis prin aceasta, fibra optic se va comporta ca un ghid de und i lumina se va propaga n linie dreapt, fr reflexii, rezultnd o fibr optic monomod. Acest al doilea tip de fibr optic este mai scump dar poate fi

Cap. 1. Reele de Calculatoare folosit la distane mai mari fr a mai fi nevoie de regenerarea semnalului se pot transmite civa Gb/s pe o distan de 30km. Cablul de fibr optic este alctuit dintrun miez de siliciu mbrcat n plastic; mai multe fibre sunt apoi nconjurate de mai multe fii de kevlar cu scopul de a face ansamblul rezistent la tensiuni mecanice, iar toate acestea sunt introduse ntrun nveli de plastic. Sub nveliul de plastic extern se injecteaz un gel cu rol de protecie la umezeal. Aerul ca mediu de transmisie este folosit de mult timp dar costurile destul de ridicate ale aparaturii dar mai ales imposibilitatea de protecie la interceptarea datelor, fac din acest mediu unul dintre cel mai puin folosite medii n transmisiile de date.

1.2.3 Aria de acoperire n funcie de aria pe care o reea o acoper, sau definit trei tipuri:

Reele Locale LAN (Local Area Network) ce acoper

suprafee relativ mici, limitnduse la un imobil sau un campus, staiile putnd fi la distane de la sute de metri pn la civa kilometri. Sunt frecvent utilizate pentru interconectarea de calculatoare i alte resurse din birourile unei companii n vederea partajrii resurselor i pentru schimbul de informaii. Dimensiunile restrnse implic un timp de transmisie redus, fapt ce face i administrarea reelei mai uoar, vitezele de transmisie fiind cuprinse ntre 10 i 100Mb/s . n cadrul LANurilor se utilizeaz frecvent topologii bazate pe un singur cablu la care se ataeaz toate mainile (de tip liniar sau inel)

Reea metropolitan MAN (Metropolitan Area Network)

este, n linii mari, o versiune extinsa de LAN i utilizeaz n mod normal


10

Cap. 1. Reele de Calculatoare tehnologii similare cu aceasta. O reea metropolitan se poate ntinde pe zona ocupat de un grup de birouri nvecinate sau pe suprafaa unui ntreg ora i poate fi att privat ct i public. Un MAN poate suporta att date ct i voce i poate chiar s aib legturi cu reeaua local de televiziune prin cablu. Un MAN dispune numai de un cablu sau dou, fr s conin elemente de comutare care deviaz pachetele. Ne fiind necesar comutarea, proiectarea este mai simpl. Motivul principal pentru care MANurile figureaz ca o categorie special const n adoptarea unui standard specific numit DQDB (Distributed Queue Dual Bus magistral dual cu coada distribuit) sau IEEE 802.6 . DQDB const din dou magistrale (cabluri) unidirecionale la care sunt conectate toate calculatoarele. Fiecare magistral are un capt de distribuie (headend) un dispozitiv care iniiaz activitatea de transmisie. Traficul destinat unui calculator din dreapta transmitorului folosete magistrala de sus. Traficul ctre utilizatorii din stnga folosete magistrala de jos.

Head end

Sensul fluxului pe magistrala A

Calculator

Sensul fluxului pe magistrala B Fig. 1.12 Modul de interconectare a staiilor n MAN Network) O Reea Larg Rspndita Geografic WAN

Head end

(Whide Area

acoper o arie geografic ntins deseori o ar sau un

continent ntreg. Reeaua conine mai multe maini utilizate pentru a executa aplicaii. Vom numi aceste maini gazde. Gazdele sunt conectate
11

Cap. 1. Reele de Calculatoare printro subreea de comunicaie. Sarcina subreelei este s transporte mesajele de la gazd la gazd. Prin separarea aspectelor de pur comunicaie ale reelei (subreelei) de aspectele referitoare la aplicaii (gazde), proiectarea ntregii reele se simplific mult. n majoritatea reelelor de tip WAN, subreeaua este format din dou componente distincte: liniile de transmisie i elementele de comutare. Liniile de transmisie (numite i circuite, canale, sau trunchiuri) transport biii ntre maini. Elementele de comutare sunt calculatoare specializate, folosite pentru a conecta dou sau mai multe linii de transmisie. Cnd sosesc date pe o anumita linie, elementul de comutare trebuie sa aleag o nou linie pentru a retransmite datele mai departe. Nu exist nici o terminologie standard, pentru denumirea acestor calculatoare folosinduse diveri termeni; ele pot fi numite, de exemplu, noduri de comutare a pachetelor, sisteme intermediare, sau comutatoare de date. Vom folosi ca termen

Ruter

LAN

Subreea

Fig. 1.13 Modul de interconectare a staiilor in WAN


12

Cap. 1. Reele de Calculatoare generic pentru aceste calculatoare de comutare cuvntul ruter. Conform modelului prezentat n figura de mai jos, fiecare gazd este n general conectat la un LAN n care exist un ruter. n anumite cazuri, ns, o gazd poate fi legat direct cu un ruter. 1.2.4 Modul de transmisie a datelor Reele cu comutare de mesaje Aceast soluie de conectare, cu comutatoare de mesaje (CM), este aplicat n cazul unor aplicaii distribuite ntre mai multe calculatoare gazd. Un astfel de comutator asambleaz mesajele primite, le memoreaz i le dirijeaz, n conformitate cu destinaia fiecrui mesaj n parte. Un mesaj va fi retransmis doar dup recepia n ntregime i verificarea corectitudinii acestuia. O copie a mesajelor transmise de ctre un CM este memorat o perioad de timp pentru eventuale retransmisii. CM permite o utilizare mai eficient a liniilor de transmisie i realizarea unor funcii deosebite ca: transmiterea cu difuzare a mesajelor, pstrarea n carantin a acestora sau livrarea lor n condiii specificate de destinatar. Reele cu comutare de pachete Prezentnd funcii similare cu cele ndeplinite de CM, comutatoarele de pachete (CP) sunt interconectate prin intermediul unor linii de comunicaie de mare vitez, mai multe CP formnd o subreea de comunicaie. Atunci cnd un calculator (surs) dorete s comunice cu un altul (destinaie), transmite datele comutatorului de pachete la care este conectat. Acesta mparte datele de transmis n segmente ce vor fi asamblate ca pachete prin adugare de informaii de control pentru verificarea integritii datelor la recepie, informaii privind sursa i destinaia pentru ca pachetul
13

Cap. 1. Reele de Calculatoare s poat fi rutat prin reea i altele. Deoarece pachetele au dimensiuni mici, memoria necesar pstrrii lor este mic i timpul de retransmisie de asemenea, aceast proprietate fcnd din reelele cu comutare de pachete varianta adecvat transmisiilor n timp real. Reelele cu comutare de pachete fac separarea fizic ntre CP, calculator gazd i terminal (n general un calculator gazd nu ndeplinete funcii de comutare iar un CP nu realizeaz funcii de aplicaie). Aceasta a facilitat apariia reelelor publice de date (PDN Public Data Network) care ofer servicii cu comutare de pachete abonailor. Reele cu difuzarea mesajelor Reelele descrise anterior se numesc punct la punct funcionarea lor baznduse pe existena unor canale de comunicaie menite s conecteze dou noduri ale reelei; atunci cnd dou noduri ne adiacente vor s comunice, datele vor fi transferate prin intermediul unuia sau mai multor noduri intermediare. LANurile i unele WANuri utilizeaz modul de comunicare cu difuzarea mesajelor. Exist un singur canal de comunicare accesibil tuturor nodurilor din reea. Cnd un nod transmite, toate staiile pot recepiona mesajul ns doar destinatarul, indicat printrun identificator ataat mesajului, poate reine acea informaie. Acesta metod permite i transmiterea datelor, simultan, mai multor staii, punnd n schimb probleme n ceea ce privete coordonarea transmisiilor, n acest scop utiliznduse dou strategii: detectarea coliziunilor i transmiterea dreptului de acces la mediu. Prima strategie se bazeaz pe capacitatea fiecrui nod de a determina dac mediul de comunicaie este sau nu liber,
14

Cap. 1. Reele de Calculatoare transmisia ncepnd doar n primul caz. Dac mai multe noduri ncep s transmit simultan vor sesiza coliziunea i vor ncerca s retransmit ulterior (aceast metod este des folosit n reelele locale Ethernet i n comunicaiile radio). Strategia cu transmiterea dreptului de acces la mediu presupune existena unui mesaj de control special, unic, neadresat, numit jeton (token n englez) care circul ntre nodurile din reea dup anumite reguli. Deinerea lui d dreptul nodului respectiv s emit date. Reele Digitale cu Servicii Integrate (ISDN) Reelele telefonice sunt ne adecvate pentru transmisiile de date, ns extinderea acestora precum i avantajele transmiterii vocii n format digital au stimulat preocuprile de nlocuire a sistemului telefonic cu un sistem digital avansat, adecvat att transmiterii vocii ct i a imaginilor i datelor. Acest sistem a fost creat ca nlocuitor al reelelor telefonice actuale i a fost numit ISDN. Aceste reele ofer o multitudine de servicii telematice prin intermediul unei reele deja existente i extrem de extinse: videotext accesul interactiv la baze de date prin terminale aflate la distan teletext care permite editarea, transmisia, recepia, arhivarea i imprimarea mesajelor potale telescrierea - transmiterea desenelor trasate pe o tabel special i vizualizarea lor pe ecranul corespondentului mesageria electronic telecopierea serviciul de fax telemetria i alarmarea teleconferina i audioconferina redirecionarea apelurilor

15

Cap. 1. Reele de Calculatoare

1.3 Modele de arhitecturi


1.3.1 Modelul OSI OSI (Open System Interconection) este un sistem de referin conceput ca un cadru pentru elaborarea de standarde, a cror respectare asigur interconectarea unor sisteme i echipamente din familii diferite. OSI cuprinde apte niveluri create astfel nct s fie satisfcute urmtoarele principii : Un nivel trebuie creat astfel nct modificarea funciilor sale s nu afecteze alte niveluri; Fiecare nivel trebuie sa ndeplineasc un rol bine definit; Funciile fiecrui nivel trebuie alese acordnduse atenie protocoalelor standardizate pe plan internaional; Delimitarea nivelurilor trebuie fcuta astfel nct sa se minimizeze fluxul de informaii prin interfee; Numrul de niveluri trebuie s fie suficient de mare pentru a nu fi nevoie s se introduc n acelai nivel funcii diferite (adic un nivel s ndeplineasc funcii nrudite) i suficient de mic pentru ca arhitectura sa rmn funcionala. n continuare vom discuta fiecare nivel al modelului OSI, ncepnd cu nivelul cel mai de jos, dup cum apar reprezentate n figura 1.15. Modelul OSI nu este o arhitectur de reea n sine pentru c nu specific serviciile i protocoalele utilizate la fiecare nivel n parte. Modelul indic numai ceea ce ar trebui sa fac fiecare nivel. ISO a produs de asemenea standarde pentru fiecare nivel, nsa aceste standarde nu fac parte din

16

Cap. 1. Reele de Calculatoare modelul de referina propriuzis. Fiecare din standardele respective a fost publicat ca un standard internaional separat.

7 6 5 4 3 2 1

Aplicaie Prezentare Sesiune Transport Reea


Legtur de Date Fizic

Fig. 1.15. Nivelurile modelului de referin OSI

Nivelul Fizic (1) Nivelul fizic se ocup de transmiterea biilor printrun canal de comunicaie. Proiectarea nivelului fizic trebuie sa garanteze c atunci cnd unul din capete trimite un bit 1, acesta e receptat n cealalt parte ca un bit 1, nu ca un bit 0. Problemele tipice se refer la ci voli trebuie utilizai pentru a reprezenta un 1 i ci pentru un 0, dac transmisia poate avea loc simultan n ambele sensuri, cum este stabilit conexiunea iniial i cum este ntrerupt aceasta, ci pini are conectorul de reea i la ce folosete fiecare pin. Aceste aspecte de proiectare au o legtura strns cu interfeele mecanice, electrice, funcionale i procedurale, precum i cu mediul de transmisie, situat sub nivelul fizic. Nivelul Legturii de Date (2) Sarcina principal a nivelului legturii de date este aceea de a transforma mediul de transmisie disponibil intro linie de comunicaie pe
17

Cap. 1. Reele de Calculatoare care nivelul reea sa poat comunica fr erori de transmisie nedetectate. Nivelul legtur de date realizeaz aceast sarcin oblignd, la emisie, descompunerea datelor de intrare n cadre de date (in mod tipic, cteva sute sau cteva mii de octei), transmiterea lor secvenial i prelucrarea cadrelor de confirmare trimise napoi de la recepie. Deoarece nivelul fizic nu face dect s accepte i s transmit un flux de bii, fr s se preocupe de semnificaia sau de structura lor, responsabilitatea marcrii i recunoaterii delimitrilor ntre cadre i revine nivelului legtur de date. Aceasta se poate realiza prin ataarea unor abloane speciale de bii la nceputul i la sfritul cadrului. n cazul n care abloanele respective de bii pot aprea accidental n datele propriuzise, trebuie luate msuri speciale de precauie pentru ca aceste saloane s nu fie incorect interpretate ca fiind delimitatori de cadre. Un zgomot aprut pe linie poate distruge un cadru n ntregime. Problema cea mai delicat apare n cazul n care cadrul afectat este unul de confirmare, trimis de receptor napoi spre emitor, programele nivelului legtur de date de pe maina surs putnd lua decizia, eronat, de retransmitere a cadrului neconfirmat. Apar astfel cadrele duplicat. Rezolvarea prolemei datorate cadrelor deteriorate, pierdute sau duplicate cade n sarcina nivelului legtur de date. Acesta poate oferi nivelului reea cteva clase de servicii diferite fiecare de o calitate i un pre diferit. O alta prolema care apare la nivelul legtur de date (i, de asemenea, la majoritate nivelurilor superioare) este evitarea inundrii unui receptor lent cu date provenite de la un emitor rapid. n acest scop sunt necesare mecanisme de reglare a traficului care s permit emitorului s afle ct spaiu tampon deine receptorul la momentul curent. Controlul de flux i tratare erorilor sunt deseori integrate.

18

Cap. 1. Reele de Calculatoare i gestionarea legturii este tot o responsabilitate a acestui nivel; stabilirea legturii, controlul schimbului de date i desfiinarea legturii sunt etapele care trebuie respectate pentru serviciile cu conexiune. Nivelul Reea (3) Nivelul reea se ocup de controlul funcionrii subreelei. O prolema cheie n proiectare este determinarea modului n care pachetele sunt dirijate de la sursa la destinaie. Dirijarea se poate baza pe trasee predefinite, care sunt schimbate rar, sau pot fi stabilite la nceputul fiecrei conversai ( de exemplu circuitele virtuale stabilite n reelele cu comutare de pachete ). n sfrit, dirijarea poate fii dinamic, traseele determinnduse pentru fiecare pachet n concordan cu traficul curent din reea. Dac n subreea exist prea multe pachete simultan, ele vor intra unul pe traseul celuilalt i astfel se vor produce congestii. Controlul congestiilor intr n atribuiile nivelului reea. O alt funcie extrem de important a nivelului reea este cea de interconectare a dou sau mai multe reele cu arhitecturi diferite. Nivelul Transport (4) Nivelul transport este responsabil de sigurana comunicaiei ntre dou calculatoare gazd, detectnd i corectnd erorile pe care nivelurile inferioare nu le trateaz, i de descompunerea, dac este cazul, a datelor provenite de la nivelul sesiune n uniti mai mici i transferul acestora ctre nivelul reea asigurnduse c toate fragmentele ajung corect la cellalt capt. Acest nivel este extrem de important avnd n vedere c ofer nivelurilor superioare o interfa independent de tipul de reea utilizat. n condiii normale, nivelul transport creeaz o nou conexiune de reea pentru fiecare conexiune de transport cerut de nivelul superior, dar
19

Cap. 1. Reele de Calculatoare poate crea conexiuni de reea multiple astfel nct s divid datele prin mai multe conexiuni n vederea creterii productivitii sau poate multiplexa mai multe conexiuni de transport pe aceeai conexiune de reea n cazul conexiunilor de reea costisitoare. Acest nivel stabilete tipul serviciului furnizat nivelului sesiune: punct la punct cu sau fr conexiune, sau multipunct (ctre mai multe destinaii), i calitatea serviciului furnizat prin intermediul unor parametrii cerui de utilizatorii nivelului transport la stabilirea unei conexiuni: debit de emisie i recepie, ntrzieri de transmisie, durata de stabilire a conexiunii, erori netratate, probabilitatea de eroare la corecia erorilor, etc. ncepnd cu acest nivel putem vorbi despre nivel caplacap , funciile fiind realizate de entiti situate doar n sisteme gazd, fr concursul altor entiti similare intermediare. Altfel spus un program de pe o main surs poart o conversaie direct cu un program similar de pe o main destinaie. i la acest nivel este implementat mecanismul de control de flux. Nivelul Sesiune (5) Nivelul sesiune stabilete, menine i nchide sesiuni ntre dou entiti comunicante. O sesiune poate fi folosit pentru a permite unui utilizator s se conecteze la distan pe un sistem cu divizarea timpului sau s transfere un fiier ntre dou maini. Nivelul sesiune permite mprirea irului de mesaje n grupuri numite activiti, care pot fi gestionate independent, precum i includerea n irul de mesaje a unor puncte de sincronizare de la care s se poat relua operaiile n cazul apariiei unor erori. Un alt serviciu oferit de nivelul sesiune se refer la controlul dialogului att n ambele sensuri simultan ct i numai ntrun singur sens, caz n care nivelul sesiune poate ajuta s in evidena ordinii de transmisie a mai multor emitori. Din aceast a doua categorie face parte
20

Cap. 1. Reele de Calculatoare i serviciu de gestionare a jetonului. n unele protocoale este esenial ca cele dou pri aflate n legtur s nu ncerce s realizeze o aceeai operaie n acelai timp. Pentru a trata aceste situaie nivelul sesiune dispune de jetoane care pot circula intre maini astfel nct numai acea main care deine jetonul poate realiza operaia critic. Nivelul Prezentare (6) Spre deosebire de toate nivelurile inferioare, care se ocup doar de transferul sigur al biilor, nivelul prezentare se ocup de sintaxa i semantica informaiilor vehiculate. Funciile principale se refer la codificarea i interpretarea standardizat a datelor care circul ntre calculatoare cu convenii de reprezentare distincte, comprimarea textelor, precum i criptareadecriptarea acestora n vederea proteciei i securizrii lor. Nivelul Aplicaie (7) Este cel mai nalt nivel al arhitecturii i are rol de fereastr de comunicare prin care se efectueaz toate schimburile de date ntre utilizatori. Acest nivel cuprinde toate funciile pe care aplicaiile le pot solicita: identificarea i autentificarea utilizatorilor precum i determinarea disponibilitii acestora stabilirea calitii serviciului sincronizarea aplicaiilor corespondente i selectarea modului de dialog stabilirea responsabilitilor pentru tratarea erorilor identificarea constrngerilor asupra sintaxei datelor transferul informaiei Nivelul aplicaie include o serie de servicii de interes general cum sunt cele de terminal virtual, fiier virtual, pot electronic, etc.
21

Cap. 1. Reele de Calculatoare

1.3.2 Modelul TCP/IP Atunci cnd s-au interconectat mai multe reele de tip terestru, satelitar i radio bazate pe arhitectura de referin OSI, protocoalele au pus diferite probleme, de aceea sa decis c era nevoie de o nou arhitectur care s ndeplineasc, cu succes, sarcina, de acum esenial, de a interconecta reele de diferite tipuri. Aceast arhitectur, ale crei baze sunt puse n 1974 de ctre Cerf i Kahn, se va numi Arhitectura TCP/IP dup numele celor dou protocoale fundamentale utilizate. Deoarece Departamentul de Aprare al SUA (DoD) era una dintre gazdele reelei bazate pe o astfel de arhitectur, un obiectiv important n dezvoltarea TCP/IP a fost pstrarea capacitii de comunicare chiar i n cazul pierderii de echipamente de interconectare din subreea. De asemenea s-a avut n vedere faptul c era nevoie de o arhitectur flexibil, reeaua trebuind s suporte aplicaii cu cerine divergente, mergnduse de la transferul de fiiere pn la transmiterea vocii n timp real. Arhitectura TCP/IP este construit n jurul a patru niveluri ce nu trebuie confundate, dei unele au acelai nume i mpart funcii, cu niveluri din modelul de referin OSI (vezi figura 1.15). Nivelul Acces la Reea (1) Este nivelul dedicat necesitilor pachetelor IP de a realiza legtura fizic. Include detalii despre managementul tehnologiilor LAN i WAN, i ndeplinete toate funciile care n modelul OSI erau repartizate nivelurilor Fizic i Legtur de Date. Acest nivel este uzual denumit Gazd la Reea (hosttonetwork).

22

Cap. 1. Reele de Calculatoare

Aplicaie

3 2

Transport Internet Acces la

Reea

Model TCP/IP

Model OSI

Fig. 1.15 Comparaie ntre cele dou modele de arhitecturi

Nivelul Internet* (2) Acest nivel reprezint axul central al ntregii arhitecturi. Rolul de baz este acela de a permite gazdelor s emit pachete n orice reea i a face ca pachetele s circule independent pn la destinaie (chiar i pe rute distincte). Astfel pachetele pot ajunge ntro alt secven dect cea de emisie, reordonarea lor rmnnd n sarcin a nivelurilor superioare. La acest nivel se definete protocolul de pachetizare IP (Internet protocol) Protocolul Internet. Problemele majore pe care trebuie s le rezolve nivelul internet sunt: dirijarea pachetelor i evitarea congestiilor, fapt care ne permite s facem o coresponden biunivoc ntre acest nivel i nivelul reea al modelului OSI. (* internet este folosit aici n sensul generic nu n sensul de reea Internet)

23

Cap. 1. Reele de Calculatoare Identificarea staiilor comunicante n reeaua global se face pe baza adresei de reea IP care este compus din doua elemente : IR identificatorul de reea i IS identificatorul de sistem.
1..32

IR

IS

Exist dou versiuni de adres IP : una nc folosit pe scar larg IPV4 care folosete adrese de lungime 32 bii i IPV6 care folosete adrese de lungime 128 bii elaborat de curnd. n funcie de numrul de bii ocupat de IR i IS adresele IP se mpart n mai multe clase: Clas A
1..8 9.32

0xxx Rezervat reelelor guvernamentale Ofer posibilitatea creri a 126 de reele distincte fiecare cu cte maxim 2242 sisteme n reea. O astfel de adres va avea primul octet de valoare cuprins intre 0 i 126 Clas B
1....16 17.32

10xxx Rezervat reelelor normale Ofer posibilitatea creeri a 214 de reele distincte fiecare cu cte maxim 2162 sisteme n reea O astfel de adres va avea primul octet de valoare cuprins intre 128 i 191
24

Cap. 1. Reele de Calculatoare Clas C


1..24 25.32

110xx..x Pentru reele de mici dimensiuni Ofer posibilitatea creri a 221 de reele distincte fiecare cu cte maxim 282 sisteme n reea O astfel de adres va avea primul octet de valoare cuprins intre 192 i 223 Exist adrese care nu pot fi atribuite staiilor dintr-o reea, ele avnd un rol specific. Astfel de adrese sunt 255.255.255.255 (broadcast address) adres de difuziune prin intermediul creia se transmit mesaje tuturor staiilor din subreea i 127.0.0.1 (loopback address) adresa buclei interne prezent la toate staii ce dispune de plac NIC, adres folosita la testarea funcionarii acestei plci. Nivelul Transport (3) Proiectarea acestui nivel a urmrit s se permit comunicarea ntre perechi de entiti , gazde sursdestinaie, funcie oferit i de nivelul omonim prezent n componena modelului OSI. Pentru aceasta au fost definite dou protocoale caplacap: TCP (Transmission Control Protocol) Protocol de Control al Transmisiei , fiabil, orientat pe conexiune care permite transferul datelor fr eroare, de pe o main pe alta aflate n cadrul aceleiai reele; UDP (User Datagram Protocol) Protocolul Datagramelor de Utilizator , nesigur, fr conexiune, dar mai rapid, destinat comunicaiilor pentru care promptitudinea este mai important dect acuratee.
25

Cap. 1. Reele de Calculatoare Nivelul Aplicaie (4) Modelul TCP/IP a eliminat nivelurile sesiune i prezentare deoarece nu sa considerat ca fiind necesar prezena lor. Din exploatarea modelului OSI s-a observat c pentru majoritatea aplicaiilor, nivelurile n cauz nu prea sunt de folos. Acest ultim nivel TCP/IP nglobeaz toate protocoalele de nivel nalt precum: TELNET pentru terminale virtuale, FTP pentru transfer de fiiere, SMTP pentru pot electronic, SNMP pentru managementul reelei, DNS pentru translatarea nume adres_numeric, i altele.

26

2 Stive de protocoale
Dei modelul OSI, cu niveluri bine separate funcional , este foarte potrivit pentru a nelege modul de funcionare al reelelor, n continuare ne vom concentra atenia asupra modelului TCP/IP ale crui protocoale sunt cel mai larg utilizate n prezent. Pe fiecare nivel arhitectural sunt folosite protocoale ce ndeplinesc funcii specifice. O parte dintre acestea sunt prezentate n figura 2.16 att din punct de vedere al mpririi pe niveluri ct i din perspectiva relaionrii ntre ele.

MIME DNS FTP HTTP SMTP TELNET WWW BGP SNMP

Aplicaie

TCP

UDP
ARP RARP Protocoale de rutare

Transport

ICMP

Internet

IP

Interfa Reea Nivel Fizic

Gazd la Reea

Fig. 2.16 Protocoale din Stiva de Protocoale TCP/IP

27

Cap. 2. Stive de protocoale

2.1 Protocolul Internet IP

IP (Internet Protocol) reprezint protocolul de transfer al pachetelor la nivelul 2 al arhitecturii TCP/IP, Internet. Funcionarea acestui protocol se explic prin formatul cadrelor (pachetelor/ datagramelor) IP prezentat n figura 2.17. O datagram se compune dintrun antet i o parte de informaie, ambele de lungimi variabile. Antetul, are o parte de lungime limitat la 20 de octei i o parte opional de lungime variabil .

32 b
4b 4b 8b 16 b

Versiune

Lungime Antet

Tip Serviciu Fanion


(3 b)

Lungime Total Decalaj Fragment


(13 b)

Identificator Durat de Via Protocol

Secven de Verificare a Antetului

Antet

Adres IP Surs Adresa IP Destinaie

Opiuni + bii de completare

Informaie

Date
Fig. 2.17 Formatul Cadrului IP n continuare vom explica semnificaia i rolul fiecrui cmp n parte. Versiune indic versiunea de protocol IP creia i aparine datagrama, fapt ce permite folosirea simultan, intro aceeai reea, a mai multor variante de protocol de nivel reea; 28

Cap. 2. Stive de protocoale Lungime Antet indic lungimea n cuvinte de 32 de bii a antetului. Valoarea minim este 5, trecut n cazul n care nu avem nimic n cmpul Opiuni. Avnd la dispoziie doar 4 bii pentru a se indica o valoare n acest cmp, rezult o lungime maxim a antetului de 15*4 = 60 octei; Tip Serviciu precizeaz subreelei ce tip de serviciu se dorete a fi vehiculat prin intermediul acesteia. Cei opt bii au fiecare un rol bine precizat.
3b 1b 1b 1b 2b

Prioritate

Ne folosii

Primii trei indic prioritatea, de la 0 la 7, a cadrului; Bitul D (delay) reprezint ntrzierea cerut pentru cadru. Bitul T (throughput) reprezint productivitatea, debitul cerut de emitorul cadrului de la subreea. Bitul R (reliability) indic fiabilitatea cerut pentru transmisia cadrului. Ultimii doi bii rmn ne folosii. Acest cmp este n practic ignorat in cazul configurrii iniiale a ruterelor, dar trebuie menionat faptul ca administratorii pot lua decizia analizei si folosirii biilor din acest cmp Lungime Total indic lungimea ntregului cadru IP, att antet ct i date, n cuvinte de 8 bii. Cei 16 bii ai acestui cmp indic o dimensiune maxim a cadrului de 65535 octei; Identificator cmp necesar pentru identificarea fragmentelor unui cadru, n vederea reasamblrii la destinaie. Un cadru poate fi fragmentat de ctre un ruter in vederea retransmiterii; Fanion este compus din trei bii dintre care doar ultimii doi au semnificaie. 29

Cap. 2. Stive de protocoale


Ne folosit

DF

MF

DF (Dont Fragment) este un bit extrem de important de urmrit de ctre rutere, el indicnd interdicie de fragmentare, de exemplu pentru cazul n care destinaia nu este capabil s reasambleze componentele. MF (More Fragments) semnaleaz dac mai exist (MF
=1)

sau

nu (MF=0) fragmente din cadrul original din care face parte; Decalaj Fragmente indic numrul de octei deja transmii din pachetul iniial, pn la fragmentul curent; Durat de Via este un contor iniializat de sursa pachetului, folosit pentru a limita durata de via a pachetelor care. din varii motive (adresa surs incorect, tabele de rutare eronate, i altele), nu mai pot ajunge la destinaie. Putnd lua valoarea maxim 255, valoarea contorului este decrementat la fiecare trecere printrun ruter (se mai spune la fiecare hop). Cnd valoarea ajunge la zero pachetul este eliminat i sursei i se trimite un pachet de avertizare n acest sens. Protocol indic protocolul de nivel Transport cruia nivelul Internet destinaie trebuie s predea informaia di cmpul de Date din cadrul IP. De exemplu, dac valoarea acestui cmp este 6 nseamn c nivelul Internet destinaie este TCP, dac este 16 avem deface cu UDP. Secven de Verificare a Antetului este suma n complement fa de unu a tuturor cuvintelor de 16 bii din componena antetului, considernd cmpul de fa ca fiind zero. Rezultatul se trece n complement fa de unu. Aceast sum fiind recalculat la fiecare hop, este i o metod de detecie a erorilor generate de locaii de memorii proaste din interiorul unui ruter; 30

Cap. 2. Stive de protocoale Adresa IP Surs i Destinaie indic adresele gazdelor ntre care trebuie s se realizeze transferul de date. Opiuni antetul putnd avea maxim 60 de octei rezult c acest cmp poate fi de cel mult 40 de octei. Acest cmp a fost creat pentru a permite versiunilor ulterioare ale protocolului s includ informaii specifice acestora. Opiunile fiind de lungimi variabile, cmpul Opiuni este completat cu biii de completare pn la un multiplu de 4 octei. n prezent sunt definite cinci opiuni:

Securitate menioneaz ct de secret este informaia Dirijare strict pe baza sursei indic ntreaga cale, de la surs pn la destinaie, n adrese IP Dirijare aproximativ pe baza sursei indic o list de rutere ce nu trebuie srite i care trebuie atinse n ordinea specificat, putnduse folosi, ca intermediari i alte rutere

nregistrare cale face ca ruterele traversate si treac propria adres de 32 de bii n cmpul de opiuni Amprent de timp opiune similar celei anterioare ns ruterele trebuie s mai nscrie i o amprent de timp de 32 de bii ;

Date poate conine pn la 65476 octei, reprezentnd informaia propriuzis transportat de cadrul IP.

2.2 Protocol de Comunicaie de nivel Transport TCP


TCP (Transmission Control Protocol) a fost gndit ca protocol orientat pe conexiune care s asigure transferul unui flux de octei, nu de mesaje, ntre dou gazde, indiferent de configuraia reelei din care 31

Cap. 2. Stive de protocoale acestea fac parte, prin configuraie nelegnduse topologie, lrgime de band utilizat, ntrzieri, dimensiunea acceptat a pachetelor i ali parametrii la un loc. Toate conexiunile TCP sunt duplex integral i punctlapunct, adic traficul se poate desfura n ambele sensuri simultan doar ntre dou puncte finale. Serviciul TCP se obine prin crearea, la terminalele de emisie i recepie, de soketuri. Fiecare soket este identificat printrun numr format din adresa IP a mainii gazd i un numr de 16 bii numit port. Comunicaia ntre terminale se face de fapt prin intermediul conexiunii ntre dou soketuri. Un soket poate fi folosit pentru mai multe conexiuni simultane deoarece conexiunile se difereniaz pe baza identificatorilor de soket de la ambele capete. Parte din numerele de port (de la 0 la 256) sunt rezervate serviciilor standard cum ar fi: conectarea pentru transferul fiierelor folosind FTP care se face la portul 21 al mainii destinaie, sau pentru stabilirea unei sesiuni de lucru la distan folosind TELNET ne vom conecta la portul 23. Scopul altor porturi poate fi definit de utilizator. Fiecare octet al unei conexiuni TCP primete un numr de secven reprezentat pe 32 de bii. Aceste numere de secven sunt utilizate att pentru mecanismul de secveniere ct i pentru confirmri. Entitile TCP comunicante execut schimbul de informaie sub form de segmente compuse din antet de 20 octei i 0 sau mai muli octei de date. Dimensiunea unui segment TCP este limitat de doi factori: ntreg segmentul trebuie s ncap n limita de 65476 octei, ci poate transporta cadrul IP fiecare reea are definit o unitate maxim de transfer MTU (Maximum Transfer Unit), n limita cruia trebuie s se ncadreze fiecare segment Entitile TCP utilizeaz frecvent mecanismul de control de flux cu fereastr glisant (Sliding Window) reprezentat schematic n figura 2.18. Practic exista un numr limitat de identificatori pentru a ine evidenta 32

Cap. 2. Stive de protocoale octeilor vehiculai. Se stabilete dimensiunea ferestrei ca fiind numrul de identificatori ce pot fi alocai octeilor emii fr a fi necesar primirea de confirmri. Cnd se primete confirmarea pentru cel mai vechi octet emis, se va mai pune la dispoziia emitorului nc un identificator, adic fereastra se deplaseaz spre dreapta cu o poziie. Pachetele de confirmare pot conine i ele informaie dar sigur vor conine numrul de secven al urmtorului octet ateptat la recepie. De notat faptul ca n momentul emiterii unui segment se pornete si un contor de timp. Dac acesta depete o anumit limit nainte de primirea confirmrii, emitorul va retransmite automat segmentul respectiv. Acest mecanism are avantajul de a nu va inunda o destinaie ce nu poate face fa fluxului dat de surs existnd mecanisme de micorare a ferestrei n funcie de situaie, dar are i dezavantaje precum transmiterea segmentelor duplicat n cazul n care se pierd confirmri, sau confirmarea unui segment este imposibil datorita inexistenei la recepie a segmentului anterior acestuia, care poate sa fie blocat ntro reea mai lent.
N0

345 N1

346

347

348 N2

349

350

351

352 N3

353

Fig. 2.18 Mecanismul de Control al Fluxului cu Fereastr Glisant (Sliding Window) unde N0 este dimensiunea ferestrei glisante N1 este numrul de secven a ultimului octet transmis i confirmat N2 este numrul de secven a ultimului octet transmis 33

Cap. 2. Stive de protocoale N3 este numrul de secven a ultimului octet ce mai poate fi transmis fr a se mai primii confirmri. Figura 2.19. ilustreaz structura unui segment TCP urmnd ca ulterior s explicm rolul fiecrui cmp n parte. Segmentul TCP ncepe cu un antet de 20 de octei urmat de un cmp de opiuni i unul de date care pot fi sau nu utilizate. Port Surs i Destinaie indic punctele finale ale conexiunii Numr de Secven i de Confirmare sunt dou cmpuri care conin numrul alocat ultimului octet transmis n segmentul curent, respectiv numrul urmtorului octet care este ateptat; Lungimea Antetului indic numrul de cuvinte de 32 de bii coninute n antetul TCP incluznd deci cmpul de opiuni;
32 b
4b 6b 6b 16 b

Port Surs Numr de Secven Numr de confirmare

Port Destinaie

Antet

Lungimea Antetului

Rezervai

U R G

A C K

P S H

R S T

S Y N

F I N

Dimensiune Fereastr Indicator Urgent

Sum de Control

Opiuni + bii de completare

Informaie

Date

Fig. 2.19 Formatul Segmentului TCP Rezervai aceti 6 bii au fost lsai ca rezerv n cazul n care ar fi fost nevoie s se ndrepte erori de proiectare a protocolului; 34

Cap. 2. Stive de protocoale URG ACK trecut n 1 logic semnaleaz dac Indicator Urgent este valid; trecut n 1 indic faptul c numrul de confirmare este valid, i trecut n 0 duce la ignorarea cmpului Numr de Confirmare; PSH indic informaie forat, care trebuie livrat imediat cum este recepionat, aplicaiei creia i este destinat; RST bit Reset activ n 1 folosit pentru a desfiina o conexiune, sau pentru a refuza un segment invalid sau o ncercare de stabilire a unei conexiuni; SYN FIN la stabilirea unei conexiuni ia valoarea 1 n rest este 0; la ncheierea unei conexiuni ia valoarea 1 n rest este 0;

Dimensiune Fereastr este numrul de octei pe care receptorul i mai poate primi; Sum de Control acest cmp are ca scop creterea fiabilitii. Conine rezultatul n complement fa de 1 a adunrii n complement fa de 1 ntre toate cuvintele de 16 bii din segmentul TCP (considernd cmpul Sum de Control zero i completnd cmpul de date cu un octet nul dac lungimea sa, n octei, este un numr impar) i din pseudoantetul din figura 2.20. Pseudo antetul nu se transmite ci este recompus de entitatea destinaie pentru a compara suma de control trecut n segment cu cea calculat local;
32 b
8b 8b 16 b

Adres IP surs Adres IP destinaie 0 0 0 0 0 0 0 0 Protocol Lungimea segmentului TCP

Fig. 2.20 Formatul Pseudo-antetului

35

Cap. 2. Stive de protocoale


Protocol determina protocolul de nivel transport folosit (va lua valoarea 6 pentru TCP) Lungimea segmentului indic numrul de octei coninui de segmentul TCP

Indicator Urgent indic numrul de secven al octetului imediat urmtor datelor urgente. Acest cmp devine activ doar n cazul n care bitul URG este trecut activ ; Opiuni acest cmp a fost proiectat pentru a se permite adugarea unor faciliti suplimentare neacoperite de antet. Dintre acestea cea mai important este considerat aceea care permite fiecrei maini s specifice ncrcarea maxim de informaie util TCP pe care este dispus s o accepte putnduse lucra de la nceputul conexiunii cu dimensiuni ct mai mari ale segmentelor.

2.3 Protocolul pentru Informaia de Utilizator UDP


UDP (User Data Protocol) este un protocol de transport fr conexiune care ofer aplicaiilor posibilitatea de a trimite datagrame IP neprelucrate, ncapsulate. Este folosit n special de ctre aplicaii client server atunci cnd nu se dorete ncrcarea reelei cu stabiliri de conexiuni pe durata ntregii comunicaii. Acest protocol este suficient de eficient considernd fiabilitatea reelelor din ziua de azi. Metoda de comunicate intre dou entiti UDP se face, ca i n cazul TCP, prin intermediul unor segmente. Segmentul UDP const ntrun antet de 8 octei urmat de un cmp de date de lungime variabil. Imaginea unui astfel de segment este dat de figura 2.21.

36

Cap. 2. Stive de protocoale

32 b
16 b 16 b

Port Surs Lungime Segment

Port Destinaie Suma de Control

Date
Fig. 2.21 Formatul Segmentului UDP Port Surs i Destinaie indic punctele finale ale conexiunii; Port Surs poate s nu fie specificat caz, n care acest cmp va fi setat pe zero Lungime Segment indic lungimea, n cuvinte de 8 bii, a ntregului segment; Sum de Control conine rezultatul n complement fa de 1 a adunrii n complement fa de 1 ntre toate cuvintele de 16 bii din segmentul UDP (considernd cmpul Sum de Control zero i completnd cmpul de date cu un octet nul dac lungimea sa, n octei, este un numr impar) i din pseudoantetul din figurile 2.22 a i b. Pseudoantetul nu se transmite ci este recompus de entitatea destinaie pentru a compara suma de control trecut n segment cu cea calculat local. Acest cmp este opional doar n cazul folosirii IPv4. Pentru dezactivarea sumrii acest cmp e setat pe zero;
32 b
8b 8b 16 b

Adres IPv4 surs Adres IPv4 destinaie


0 0 0 0 0 0 0 0

Protocol

Lungimea segmentului UDP

a. n cazul folosirii IPv4 37

Cap. 2. Stive de protocoale

32b
8b 8b 16 b

Adres IPv6 surs Adres IPv6 destinaie Lungimea pachetului de nivel superior
0 0 0 0 0 0 0 0

Protocol

Lungimea segmentului UDP

b. n cazul folosirii IPv6 Fig. 2.22 Formatul Pseudo-antetului


Protocol determin protocolul de nivel transpo rt folosit ; Lungimea segmentului indic numrul de octei coninui de segmentul UDP;

2.4 Alte protocoale


La nivelul Internet sunt definite i alte protocoale dar care se

bazeaz pentru a funciona, pe protocolul de baz IP. Astfel de protocoale sunt: ICMP (Internet Mesage Control Protocol) protocolul de control al mesajelor n Internet, prin intermediul cruia rutere i sistemele de extremitate comunic situaiile de funcionare anormal ARP (Adress Resolution Protocol) protocol util pentru aflarea adresei fizice MAC cunoscnd adresa logic IP. Este folosit pentru a pune n legtur direct dou sisteme aflate n aceeai reea fr ca acestea s mai apeleze, de fiecare dat, la serviciile unui sistem intermediar care s lucreze cu adrese IP, de exemplu un 38

Cap. 2. Stive de protocoale ruter, sau pentru completarea tabelelor de rutare. RARP (Revers Adress Resolution Protocol) ajut un sistem s-i afle propria adres de reea IP, cunoscnd doar adresa MAC. Protocoale de rutare folosite n procesul de dirijare a pachetelor de date prin reea. Aceste protocoale folosesc diverse metrice pentru a determina traseul ideal de ales: disponibilul de band a subreelelor tranzitate (bandwidth), numr de hopuri (hop count), ncrcarea reelei (load), timpul necesar tranzitrii unei subreele (delay), probabilitatea de eroare (reliability), costul tranzitrii segmentelor de reea de pe un anume traseu (cost). Astfel de protocoale sunt RIP (Routing Information Protocol), IGRP (Interior Gateway Routing Protocol), EIGRP (Enhanced Interior Gateway Routing Protocol), OSPF (Open Shortest Path First) La nivel Aplicaie, dintre protocoalele uzuale amintim: FTP (File Transfer Protocol) protocol de transfer al fiierelor la comanda utilizatorului, realiznduse n prealabil o conexiune TCP HTTP (Hiper Text Transfer Protocol) protocol ce ofer un mod de transfer a informaiei (texte, imagini, i nu numai) eficient pentru transmisiile prin Internet SMTP (Simple Mail Transfer Protocol) protocol simplu de transfer al potei electronice ce permite utilizarea resurselor hardware i software a unui server de mail aflat la distan; MIME (MultiPurpose Internet Mail Protocol);

39

Cap. 2. Stive de protocoale TELNET permite identificarea unui utilizator distant i utilizarea resurselor hardware i software de la distan; WWW (World Wide Web) o baz de date accesibil de oriunde n lume; BGP (Border Gateway Protocol); DNS (Domain Name Server) procedeu de translatare a adreselor de reea IP numerice ntro form mai uor interpretabil de ctre operatorul uman, adic n cuvinte; SNMP (Simple Network Management Protocol) protocol creat pentru a facilita monitorizarea i administrarea unei reele de calculatoare;

40

3 Prezentare ASN.1 (Abstract Syntax Notation One)


Dorind, n aceast lucrare, s detaliem modul de lucru cu SNMP, va trebui nti s nelegem limbajul prin care se definesc obiectele i regulile de codificare ale acestui protocol i anume ASN.1 (Abstract Syntax Notation One) Sintaxa Abstract de Notaie Unu. La crearea ASN.1 sa avut n vedere faptul c era nevoie de o comunicare ntre produse de producie diferit prin intermediul unor obiecte (cu care SNMPul lucreaz) definite ntrun mod standard i, n plus, se cerea o metod de codificare standard a acestor obiecte astfel ca agenii care folosesc codificri diferite s poat schimba informaia ne ambiguu. Limbajul C ar satisface prima cerin ns nu definete i o codificare a bitului pe fir. Capacitatea ASN.1 de codificare ne ambigu are i dezavantaje i anume: regulile de codificare sunt astfel optimizate nct s minimizeze numrul de bii transmii cu preul ocuprii unor resurse mai nsemnate ale unitilor centrale de la ambele capete ale transmisiei. Limbajul ASN.1, definit de Standardul Internaional 8825, este un limbaj de declarare a datelor primitive prin care s se poat construi obiecte primitive cu ajutorul crora s se creeze obiecte complexe prin combinarea celor primitive. Pentru nelegerea conceptului de ASN este important definirea unor termeni cheie: Sintax Abstract (Abstract Syntax) descrie structura general a datelor independent de orice tehnic de codare folosit n reprezentarea acestora. Sintaxa permite definirea unor noi tipuri prin specificarea valorilor coninute de noul tip; Tip de Dat (Data Type) numele unui set de valori. Tipul poate fi simplu, definit printrun set de valori, sau structurat, definit prin intermediul altor tipuri de date; 41

Cap. 3. Prezentarea ASN.1 Codare (Encoding) secvena complet de octei folosit pentru reprezentarea unei date; Reguli de Codare (Encoding Rules) acele reguli de determinare printrun algoritm a reprezentrii oricrei date definit printro sintax abstract; Sintax de Transfer (Transfer Syntax) modul de reprezentare a seturilor de bii la transmiterea acestora intre entiti de nivel Prezentare (SNMP lucreaz la nivelul Aplicaie) Vom considera c arhitectura sistemelor de comunicaie are dou mari componente: Componenta Transfer de Date i Componenta Aplicaie. Prima este dedicat mecanismelor de transfer de date ntre sistemele terminale (privind modelul TCP\IP aceasta component include protocoale de la UDP n jos, ctre nivelul fizic). Componenta Aplicaie se folosete de serviciile oferite de componenta de Transfer de Date pentru a putea rula aplicaiile pe sistemele terminale (putem considera c aceast component se identific cu una din aplicaiile de tipul SNMP, FTP, sau TELNET a stivei de protocoale TCP\IP). Principala diferen ntre cele dou componente o constituie modul de reprezentare a datelor; componenta Transfer de Date primete de la o aplicaie date sub forma valorii n binar a unei secvene de octei, valoare care poate fi direct asamblat n SDU (Service Data Unit) Unitate de Serviciu de Date pentru transferul ntre niveluri, i n PDU (Protocol Data Unit) Unitate de Protocol de Date pentru transferul lor ntre protocoale de pe acelai nivel arhitectural. Componenta Aplicaie trebuie s realizeze prezentarea datelor ntro form cu care subiectul uman s poat lucra, cum sunt textele, baze de date integrate, imagini i s le poat converti n valori binare. Schematic, rolul sintaxei abstract i de transfer precum i locul componentelor Aplicaie i Transfer de Date n comunicaia dintre doi utilizatori este reprezentat n figura 3.1 42

Cap. 3. Prezentarea ASN.1

Utilizator

Utilizator

Conversie pentru prezentare

Conversie pentru prezentare

Memorie local
(MIB)

Conversie local

Componenta Aplicaie

Sintax abstract

Componenta Aplicaie

Conversie local

Memorie local
(MIB)

Reguli de codare

Reguli de codare

Componenta Transfer de Date

Sintax de transfer

Componenta Transfer de Date

Fig. 3.1 Rolul Sintaxelor Abstract i deTransfer

43

Cap. 3. Prezentarea ASN.1 Sintaxa abstract este folosit pentru a schimba informaii ntre componentele Aplicaie ale unor sisteme corespondente. Schimbul const n PDUuri coninnd informaii de control ale protocolului i informaie destinat utilizatorului. Informaia reprezentat folosind sintax abstract trebuie convertit, la nivel local, ntro form care s poat fii prezentat utilizatorului uman (numit Conversie pentru prezentare) precum i ntro form care s poat fi stocat local (care se realizeaz prin Conversie local). Prin intermediul Regulilor de codare se face trecerea de la sintaxa abstract la sintaxa de transfer care reprezint datele n form binar adecvat modului de lucru a componentei Transfer de Date. Sintaxa de transfer folosit de ASN.1 se numete BER (Basic Encoding Rules) Reguli de Codificare de Baz. Aceast abordare a schimbului de aplicaii de date rezolv dou mari probleme referitoare la reprezentarea datelor care apar n mediile de transmisie eterogene, distribuite : Exist o reprezentare comun a datelor schimbate ntre sisteme diferite; Aplicaiile din interiorul unui sistem folosesc reprezentri specifice ale datelor; utilizarea sintaxei abstract i de transfer rezolv n mod automat diferenele de reprezentare dintre aplicaiile corespondente. Singura cerin n baza creia se alege o sintax de transfer este ca aceasta s poat suporta sintaxa abstract corespondent.

3.1 Convenii Lexicale


Structurile, tipurile i valorile prezente n ASN.1 sunt exprimate ntro form similar limbajelor de programare, respectnd deci anumite reguli de scriere:

44

Cap. 3. Prezentarea ASN.1 1. aezarea n pagin nu este important; caracterele de spaiere (TAB, ENTER, mai multe SPACE) nu au semnificaie deosebit fiind considerate un singur spaiu; 2. comentariile sunt delimitate la ambele capete de dou cratime consecutive (--) ; 3. identificatorii, adic numele date unor valori sau cmpuri, referinele tipurilor de date, precum i numele de modul pot conine att majuscul ct i litere mici dar i numere sau cratime; 4. identificatorii trebuie s nceap cu liter mic 5. referina unui tip de date i numele modulelor ncep cu majuscul 6. tipurile de date predefinite majuscule se scriu cu toate literele

3.2 Tipuri de Date


Fiecare tip de dat din ASN.1 are asociat o etichet compus din numele clasei din care face parte i un indicativ numeric ntreg, nenul. Exist patru clase distincte Universal coninnd tipuri independente de aplicaia n care sunt folosite Aplicationwide care conine tipuri ce pot fi folosite doar n cadrul unei anume aplicaii Contextspecific conine de asemenea tipuri utilizabile doar n cadrul unei aplicaii anume, ns aplicabile ntrun context limitat Private care conine tipuri definite de utilizator care nu pot fi recunoscute, i implicit convertite, de ctre alte standarde

45

Cap. 3. Prezentarea ASN.1 Tipurile de date sunt privite ca fiind colecii de valori cu numr nedefinit de componente. Aceste tipuri se pot clasifica n patru categorii distincte: Simpledefinite direct prin specificarea setului de valori posibile; Structuratecare conin mai multe componente; aceast categorie este necesar n cazul construirii de tipuri de date complexe din tipuri simple; Etichetatederivate din alte tipuri de date, deja existente, denumite/etichetate dup caz; Alteleinclude tipurile CHOICE (decizie) i ANY (oricare); Tipurile de date predefinite n ASN.1 permise n SNMP sunt prezentate n tabelul urmtor, nsoite de semnificaia i de eticheta alocat fiecreia.

Tip de dat INTEGER BIT STRING OCTET STRING

Semnificaie ntreg de lungime arbitrar ir de 0 sau mai muli bii ir de 0 sau mai muli octei Folosit atunci cnd avem de ales

Etichet Universal 2 Universal 3 Universal 4

NULL

ntre mai multe variante toate incorecte

Universal 5

OBJECT IDENTIFIER

Setul de valori asociate obiectelor

Universal 6

O variabil de tip INTEGER teoretic poate lua orice valoare ntreag, dar SNMP limiteaz intervalul disponibil. Iniializarea unei variabile, cu orice valoare, se face astfel :

46

Cap. 3. Prezentarea ASN.1 <numele variabilei> INTEGER::= <valoare> De cele mai multe ori avem ns nevoie de variabile care s poat lua valori dintrun anumit interval. Acest gen de variabile se pot definii n dou variante: set de valori <numele variabilei>::=INTEGER{<valoare1>,<valoare2>,<valoare3>} interval de valori <numele variabilei>::=INTEGER(<valoare1>..<valoare2>) Variabilele de tip BIT STRING i OCTET STRING conin un sir de zero sau mai muli bii, respectiv octei. Un bit poare lua valorile 0 sau 1, iar un octet poate lua valuri ntre 0 i 255. Pentru ambele tipuri se poate indica numrul de elemente din ir i o valoare iniial. Tipul OBJECT IDENTIFIER furnizeaz o metod de identificate a obiectelor. Orice obiect definit de standardele oficiale poate fi identificat n mod unic printrun cod rezultat n urma definirii unui arbore de nume de obiecte. Partea de arbore care conine SNMP MIB este prezentat n figura 3.2. Se observ c fiecare arc din figura 3.2 are o etichet i un numr prin care orice nod poate fii identificat. Identificarea n ASN se face listnd etichetele sau numerele nodurilor parcurse, ncepnd de la primul nivel ctre ultimul. De exemplu, identificarea tuturor obiectelor din SNMP MIB se face prin etichete care vor conine: {iso identifierorganisation(3) dod(6) internet(1) mgmt(2) mib2(1) } sau {1 3 6 1 2 1 }

47

Cap. 3. Prezentarea ASN.1

CCIT (0)

ISO (1)

Joint ISO-CCIT (2)

Standard (0)

Registrationauhority (1)

memberbody (2) dod (6)

identifiedorganisation (3)

internet (1)

directory (1)

mgmt (2)

experimental (3)

private (4)

security (5)

snmpv2 (6)

mib-2 (1)

system
(1)

interface
(2)

ip (4) icmp (5) tcp (6) udp (7)

egp
(8)

transmission
(10)

sample
(11)

Fig. 3.2. Partea arborelui de nume de obiecte care conine SNMP MIB

Tipuri de date structurate pot fi obinute, din punctul de vedere al ASN, n cinci feluri: SEQUENCE, SEQUENCE OF, SET, SET OF i CHOICE. SET respectiv SET OF nu sunt suportate de protocolul de management SNMP. SEQUENCE (secven) este o list ordonat de elemente, fiecare element indicnd un tip. Definirea tipul de dat SEQUENCE se face astfel:

48

Cap. 3. Prezentarea ASN.1 SecventaDeTipuri ::=SEQUENCE{ListaTipuriElemente}| SEQUENCE{ } ListaTipuriElemente::= TipElemente | ListaTipuriElemente, TipElemente TipElemente ::= NumeTip NumeTip OPTIONAL NumeTip DEFAULT <valoare> COMPONENTS OF Tip La TipElemente se trec toate tipurile de date care se doresc a fi incluse n secvena respectiv avnd posibilitatea adugrii atributelor de OPTIONAL (acea component nu este obligatoriu s apar n secven), sau DEFAULT (care face ca in absena acelei componente ea s fie nlocuit cu valoare). COMPONENTS OF include n ListaTipuriElemente toate tipurile de date care sunt declarate n Tip. SEQUENCE OF este un vector unidimensional reprezentnd o list ordonat de elemente de acelai tip, avnd dimensiune variabil. Aceasta structur se definete astfel: SecventaDeTipuri ::= SEQUENCE OF Tip | SEQUENCE Varianta SEQUENCE OF ANY este echivalent cu SEQUENCE, i este folosit atunci cnd nu se tie nc tipul de dat de care este nevoie. Tipul CHOICE este de fapt o niruire de tipuri de date dintre care sa va alege unul pentru a fi atribuit unei date. Acest tip de dat este folosit atunci cnd valoarea care se dorete a fi descris poate fi de un tip sau altul, n funcie de context. Definirea se face astfel: TipDataChoice ::= CHOICE {ListaTipuri} ListaTipuri ::= NumeTip | ListaTipuri, NumeTip | | |

49

Cap. 3. Prezentarea ASN.1 Noi tipuri de date se mai pot obine redeclarnd tipuri deja existente. Acestea sunt aanumitele tipuri Etichetate (Tagged) folosite pentru a distinge tipuri din interiorul unei aplicaii n vederea utilizrii lor n mod diferit. De exemplu putem defini dou noi tipuri Contor32 ::= [APPLICATION 1] INTEGER (0..4294967295) X32 ::= [APPLICATION 2] INTEGER (0..4294967295) ambele ntregi pe 32 de bii dar diferite din punct de vedere conceptual, primul putnd, de exemplu, odat ajuns la valoarea maxim s continue cu 0, al doilea s ntoarc n continuare valoarea maxim pn cnd va fi decrementat sau reiniializat. Ceea ce apare n interiorul parantezelor ptrate reprezint marcajul (tag) compus din etichet i un identificator de marcaj, numr ntreg. Dup paranteze poate fi introdus cuvntul cheie IMPLICIT atunci cnd tipul reiese din context.

3.3 Definirea Modulului


Elementul pe care se sprijin funcionare ASN.1 l reprezint Modulul. tim c ASN.1 este un limbaj care poate fi utilizat pentru a defini structuri de date. Definirea unei structuri se face sub form de modul cruia i se ataeaz un nume astfel nct acea structur s poat fi adresat. O aplicaie poate indica acest nume serviciului de prezentare pentru a specifica ce sintax abstract folosete n PDUurile schimbate cu aplicaia corespondent. Modulul are o form standardizat: <numele modulului> DEFINITION::= BEGIN EXPORTS IMPORTS ListaDeSarcini END

50

Cap. 3. Prezentarea ASN.1 numele modulului , necesar identificrii modulului, poate fi urmat de un identificator de obiect folosit n procesul de identificare unic, ne ambigu, a oricrui obiect dintro comunicare din reeaua global. EXPORT indic elementele definite in acest modul care pot fi importate de ctre alte module, iar IMPORT determin ce tipuri i ce definiii de valori pot fi preluate de la alte module deja existente. ListaDeSarcini (AssignamentList) cuprinde atribuirile de tip, atribuirile de valori i macrodefiniii. Atribuirea de tip sau valoare se face (vezi Cap. 3.2): < nume > ::= < descriere >

3.4 Macrodefiniii
Elementul macro al ASN.1 ofer mijloace pentru: Definirea de noi tipuri de date Reprezentarea acestor noi tipuri Reprezentarea valorilor de acest tip Codarea unor anumite valori de acest tip Macrodefinirea se face urmrind urmtorul format: <NUMELE> MACRO::= BEGIN TYPE NOTATION ::= <nouasintaxade tip> VALUE NOTATION ::= <nouasintaxade valoare> <regulisulimentare> END NUMELE va fi scris n ntregime cu majuscule. Orice nou tip de dat n ASN.1 aste definit prin scrierea numelui tipului, ncepnd desigur cu majuscul, urmat numele macroului urmat de o definiie a tipului, care rezult prin examinarea corpului macrodefiniiei. nouasintaxade tip descrie noul tip definit, iar nouasintaxade valoare prezint valoarea aparinnd noului tip. n regulisulimentare sunt incluse 51

Cap. 3. Prezentarea ASN.1 regulile adiionale de gramatic de aplicat sintaxelor de tip sau de valoare. Tipul i valoarea notaiilor precum i regulile suplimentare sunt scrise folosind BNF (BackusNaur Form). Prima parte din componena macrodefiniiei TYPE NOTATION are doar sarcina de a defini sintaxa tipului de dat care s fie folosit ntro instan macro (a macro instnce). Cea dea doua parte, VALUE NOTATION, determin tipul instanei macro i definete sintaxa necesar exprimrii valorilor din aceeai instan.

52

4 Protocolul de management al reelei


La nceputurile existenei reelelor de calculatoare, datorit numrului mic de rutere, era suficient folosirea programului Ping pentru inspectarea funcionrii ntregii reele n vederea detectrii unei probleme. ns, odat cu transformarea ARPANET n Internet, aceast soluie a devenit ineficient fiind deci nevoie de instrumente mai performante de administrare a reelei. n mai 1990 este publicat RFC 1157 care devine prima versiunea a SNMP (Simple Network Management Protocol) Protocolul Simplu de Management al Reelei. mpreun cu documentaia despre informaiile de administrare (RFC 1155) SNMP se impune ca metoda de monitorizare i administrare a reelelor de calculatoare. n scurt timp este preluat i implementat de ctre productorii de echipamente devenind astfel standard de sine stttor n administrarea reelelor. SNMP a fost dezvoltat porninduse de la trei specificaii, considerate fundamentale: - Structura i Identificarea Informaiilor de Management, referitoare la reele bazate pe arhitectura TCP\IP, prezentate n RCF 1155, prin care este descris modul de definire a obiectelor incluse n MIB (Management Information Base) Baza de Informaii de Management; - Baza de Informaii de Management pentru administrarea Internetului bazat pe arhitectura TCP\IP (MIB II), prezentat n RCF1213 care descrie obiectele incluse n MIB; - Protocolul Simplu de Management al Reelei, prezentat n RCF 1157 care definete protocolul folosit pentru administrarea acestor obiecte n timp sau descoperit neajunsuri ale primei variante de SNMP aprnd nevoia dezvoltrii celei dea doua variant SNMPv2, definit

53

Cap. 4. Protocolul Simplu de Management al Reelei prin RFC 14411452 care devine un nou standard Internet, i SNMPv3 ultima variant aprut, diferenele ntre cele trei urmnd sa le discutm n capitolul 5 al acestei lucrri. SNMP este un protocol de nivel aplicaie (referindune la arhitectura TCP\IP) care lucreaz folosinduse de serviciile protocolului de nivel transport UDP (vezi Fig.2.16), baznduse deci pe transmisiuni fr conexiune. Managementul reelei poate fi considerat ca o aplicaie distribuit, presupunnd interaciunea ntre mai multe entiti de aplicaie dirijate de un protocol de nivel aplicaie. n cazul nostru aplicaiile care ruleaz pe staiile de management i pe ageni reprezint entitile de aplicaie, care sunt dirijate de SNMP ca protocol de nivel aplicaie.

4.1

Arhitectura modelului de management al reelelor TCP\IP

Arhitectura modelului de management al reelelor TCP\IP este reprezentat n figura 4.1 i are patru componente eseniale : 1. Staia de management (management station) pe care o vom numi manager 2. Noduri administrate (management agent) pe care le vom numi ageni 3. Informaii de management (management objects) incluse n MIB, pe care le vom numi obiecte 4. Protocolul de administrare
Staie de Management M PC Noduri administrate Ruter MIB Imprimant

A
Protocol de administrare
SNMP

A
Punte

A
M

Agent

LAN

Fig. 4.1 Arhitectura modelului de management al reelelor TCP\IP 54

Cap. 4. Protocolul Simplu de Management al Reelei Managerul este un calculator de uz general pe care sunt rulate programe speciale de administrare. Staia de management menine n activitate unul sau mai multe procese care comunic cu ageni din reea. Aceast staie este responsabil i de asigurarea unei interfee grafice prin care operatorul uman, administratorul reelei, s poat monitoriza i controla reeaua. Sa ales aceast variant, cu toat inteligena concentrat n staia manager, n scopul meninerii agenilor ct mai simplii cu putin, pentru a se minimiza impactul asupra dispozitivelor administrate. Nodurile administrate pot fi calculatoare de uz general (PC), rutere, puni, imprimante sau alte periferice si dispozitive capabile s comunice informaii de stare. Pentru a pute fi administrate fiecare nod trebuie s poat suporta execuia unui proces numit agent SNMP, care are sarcina de a menine o baz de date locale (MIB), prin care se descriu : starea de funcionare i istoria staiei respective, i de a comunica cu staia de management prin rspunsuri la apelurile iniiate de aceasta sau prin mesaje de alarm generate de agent. Exist dispozitive, mai vechi, care nu sunt capabile s ruleze local un agent SNMP. Pentru aceast situaie exis aa numitul agent intermediar (proxy agent) care supravegheaz unul sau mai multe dispozitive de acest gen, comunicnd n locul lor cu managerul cu ajutorul unor protocoale nestandard. Fiecare dispozitiv actualizeaz una sau mai multe variabile care descriu starea sa de funcionare, numite obiecte. Colecia de obiecte necesare este inclus ntro structur numit MIB. Obiectele sunt standardizate, informaia coninut de acestea trebuind sa fie bine specificat, avnd n vedere ca cele mai multe reele conecteaz sisteme furnizate de diveri productori. Staiile de management interacioneaz cu agenii folosind protocolul de administrare SNMP. Acest protocol permite managerului

55

Cap. 4. Protocolul Simplu de Management al Reelei s obin informai despre starea obiectelor i s le modifice, dac este necesar.

4.2 Mod de funcionare


Staiile de management interacioneaz cu agenii folosind protocolul SNMP, care le permite interogri referitoare la starea obiectelor locale precum i modificri ale acestora. n mod normal doar managerul poate emite o ntrebare la care agentul trebuie s rspund. Exist ns i situaii deosebite , specificate n modulul MIB, pentru care agenii pot iniializa, din proprie iniiativ, procedura de transmitere a unui raport ctre staia de management, raport numit capcan (trap). Deoarece comunicaia este fr conexiune (conectionless) exist posibilitatea ca rapoartele de acest tip s nu ajung la destinaie i este deci bine ca staia de management s interogheze periodic nodurile administrate dac nu au aprut evenimente deosebite. Acest model de interogare la intervale mari este numit polling). este un protocol orientat pe pachet construit s funcioneze folosinduse de UDP care se bazeaz IP i pe un protocol de nivel reea de tipul Ethernet, FDDI sau X.25. Pachetele (PDU Protocol Data Unit) folosite n comunicaie sunt de cinci tipuri: GetRequest i GetNextRequest care permit managerului s obin informaii de la agent. SetRequest care permite managerului s modifice valori ale obiectelor deinute de agent. GetRespns care reprezint rspunsul agentului la pachete de tipul Get, GetNext i Set Request. interogate direct a capcanelor (trap direct

56

Cap. 4. Protocolul Simplu de Management al Reelei Trap folosit de agent n cazul emiterii unui raport referitor la un eveniment deosebit. Formatul pachetelor este prezentat n figura 4.2 a. i b.. Fiecare cmp referinlavariabil conine identificatorul, tipul i (n cazul unui pachet Set) valoarea unei variabile. Agentul inspecteaz acest cmp i verific daca identificatorul corespunde unei variabile din MIBul local pentru a putea transmite sau modifica valoarea acesteia.

versiune

indicator comunitate identificator cerere valoare 1 stare erori nume 2 index eroare valoare 2

SNMP PDU

tip PDU

referinlavariabil

nume 1

..

nume n

valoare n

a. Pentru PDU de tipul GetRequest GetNextRequest, SetRequest i GetResponse

versiune

indicator comunitate

SNMP PDU

tip PDU

enterprise

adres agent

capcan nespecific

capcan specific

contor capcan

referinla variabil

nume 1

valoare 1

nume 2

valoare 2

..

nume n

valoare n

b. pentru PDU de tip Trap

Fig. 4.2. Formatul Pachetelor SNMP

57

Cap. 4. Protocolul Simplu de Management al Reelei Figura 4.3 reprezint o vedere detaliat a modului n care se desfoar comunicarea ntre manager i agent.

Staia de management SNMP

Agentul SNMP

Aplicaia de management
GetNextRequest GetResponse GetRequest SetRequest

Obiecte administrate de aplicaie

GetNextRequest

Resurse administrate Obiecte administrate


GetResponse GetRequest SetRequest Trap

Trap

Managerul SNMP UDP IP Protocoale dependente de Nivel Fizic

Mesaje SNMP

Managerul SNMP UDP IP Protocoale dependente de Nivel Fizic

Reeaua

Fig. 4.3. Comunicarea n SNMP

4.2.1 Interogare Direct a Capcanelor (TrapDirect Polling) De obicei, staia de management rspunde de mai muli ageni, fiecare agent innd evidena unui numr mare de obiecte, interogarea tuturor agenilor despre toate obiectele lor devenind dificil i ineficient. De aceea SNMPul mpreun cu MIBurile asociate staiilor au fost astfel gndite nct s suporte tehnica aa numita interogare direct a capcanelor, care permite interogarea agenilor la intervale mai mari de

58

Cap. 4. Protocolul Simplu de Management al Reelei timp, acetia rspunznd doar cu informaii referitoare la anumite variabile cheie, specificate n interogare, i la alte variabile care au produs evenimente deosebite (resetri de noduri administrate, linii de comunicaie care cad i revin n stare de funcionare, congestii). Pentru informaiile despre evenimentele deosebite petrecute ntre doua interogri, iniializate de manageri, agenii au la dispoziie mesajele de tip capcan. Atunci cnd staia de management primete un astfel de mesaj poate iniializa un proces de interogare asupra staiei ce a semnalat problema i, n funcie de natura problemei, i asupra staiilor vecine acesteia, pentru a-i crea o imagine de ansamblu depistrii cauzei evenimentului deosebit. Interogarea direct a capcanelor sa dovedit a fi o metod eficient de management, limitnd ncrcarea inutil a reelei cu informaii de care managerul nu are nevoie, protejnd de asemenea resursele agenilor care nu au fost construii pentru a rspunde la interogri dese. n vederea

4.2.2 Agent Intermediar (Proxy Agent) Implementarea SNMP impune ca toi agenii i staiile de management s poat suporta protocoalele UDP i IP. pentru staiile care nu ndeplinesc aceste condiii a fost dezvoltat conceptul de agent intermediar (proxy agent) . Agentul intermediat deine un MIB referitor la unul sau mai multe sisteme nonSNMP. La primirea unei interogri de la manager, referitoare la vreuna din staiile nonSNMP aflate n subordinea sa, agentul intermediar convertete cererea astfel ca protocolul de management folosit de staia int sl neleag. Va efectua i o conversie invers cu rspunsul dat de staia interogat managerului SNMP. Cu ajutorul figurii 4.4. avem o interpretare grafic a rolului agentului intermediar ntro reea administrat cu SNMP.

59

Cap. 4. Protocolul Simplu de Management al Reelei


Staia de Management
Proces de Management SNMP UDP IP
Protocol dependent de Nivel Fizic

Agent Intermediar
Funcii de conversie Proces de Management SNMP UDP IP
Protocol dependent de Nivel Fizic Protocol dependent de Nivel Fizic

Sistem Intermediat
Proces de Management Protocol utilizat de sistemul intermediat, non - SNMP
Protocol dependent de Nivel Fizic

Protocol utilizat de sistemul intermediat, non - SNMP

Fig. 4.4. Localizarea Agentului Intermediar n procesul de administrare a sistemelor non-SNMP

Concluzii SNMP se dovedete a fi un foarte eficient, i ntradevr simplu, protocol de management ns, din exploatarea sa, au reieit neajunsuri de domeniul securitii i au aprut noi idei de mbuntire de nivel funcional, care se cereau a fi standardizate. Sunt formulate mai multe propuneri de modificri ale protocolului care vor duce, n 1996, la formularea RFC-urilor care marcheaz apariia versiunii a doua de SNMP, urmat la nici dou ani diferen ce completrile aduse de SNMPv3

60

5 Diferene ntre cele trei versiuni de SNMP


SNMP a fost creat ca metod de administrare a reelelor cu capaciti minime de implementare. Avantajele SNMPului sunt reprezentate de faptul c asocierea ntre structura de management a informaiei (SMI) i MIB este suficient de simpl nct implementarea s fie fcut simplu i rapid, i de faptul c a fost bazat pe un alt protocol binecunoscut din punct de vedere practic, Simple Gateway Monitoring Protocol (SGMP). Devine clar faptul c administrarea reelelor ajunsese s fie o necesitate, ns complexitatea reelelor i dimensiunile impresionante ale unora dintre ele au fost factori ca eu determinat apariia nemulumirilor cu privire la extrem de rspnditul SNMP. Dei rmn destul de multe configuraii pentru care SNMP ofer servicii suficient de bune, lipsa facilitilor de securitate, n spe lipsa capacitii de autentificare a sursei unui mesaj de management i lipsa capacitii de a prevenii interceptrile, au dus la degradarea statutului dobndit de SNMP. Lipsa autentificrii face SNMPul vulnerabil la atacuri care pot modifica sau chiar dezactiva configurarea unei reele. Nevoia de securitate duce la apariia, n 1992, a unei variante modificate de SNMP i anume Secure SNMP. Aceast variant, n afar de mbuntirile referitoare la securitate, nu aducea ns alte modificri, devenite necesare, la nivelul performanelor i funcionalitii protocolului. Pentru a contracara aceste deficiene a fost dezvoltat o alt propunere denumit Simple Management Protocol (SMP) Protocolul Simplu de Management. SMP apare tot n 1992 ca propunere privat adresat comunitii Internet ca o mbuntire adus SNMPului. Dup publicarea Secure SNMP i SMP sa decis ca urmtor pas necesar crearea celei dea doua generaii de SNMP care s includ mbuntiri referitoare la securitate i funcionalitate. Apare astfel

61

Cap. 5. Diferene ntre cele trei versiuni de SNMP SNMPv2 (versiunea anterioar numit simplu SNMP urmnd s fie

cunoscut sub numele SNMPv1) publicat ca propuneri de standard Internet n martie 1993. Dup mai muli ani, n care SNMPv2 a fost exploatat, aspectele de securitate au fost totui excluse datorit ineficienei msurilor adoptate, restul specificaiilor suferind modificri minore. n aceast form sunt publicate n 1996 RFCurile referitoare la SNMPv2 carei dau statutul de standard.

5.1 mbuntirile aduse de SNMPv2


Principala modificare adus de SNMPv2 se refer la posibilitatea protocolului de a oferi management eficient att pentru reele centralizate ct i pentru reele distribuite. De asemenea se permite funcionarea, pe un acelai sistem, att a unei aplicaii de manager ct i a uneia de agent. Sarcinile se pot distribui ierarhic unor manageri intermediari de la care se pot obine informaii stocate local sau se poate cere acestora s furnizeze informaii sumare referitoare la ageni aflai n subordinea lor. Managerii intermediari pot emite mesaje de tip capcan ctre managerii de nivel superior. mbuntirile aduse SNMPv1 de ctre a doua generaie pot fi mprite n trei categorii: Structura informaiei de management (SMI) Posibilitile comunicrii ManagerManager Operaiile suportate SMI se extinde la SNMPv2 din punctul de vedere al macrourilor folosite n definirea de obiecte, incluznd noi tipuri de date i dezvoltnd documentaia referitoare la obiecte. i din punctul de vedere al utilizrii tabelelor exist progrese, n aceast form a protocolului perminduse crearea i tergerea rndurilor conceptuale, funcie indisponibil n prima variant.

62

Cap. 5. Diferene ntre cele trei versiuni de SNMP Este definit un nou MIB, SNMPv2 MIB, care include informaii elementare de trafic despre operaiile protocolului i informaii legate de configurarea managerului i agentului SNMPv2. Acest MIB este analog grupului snmp din MIBII. Poate cea mai important modificare o constituie includerea PDUurilor GetBulkRequest care permite obinerea unor blocuri mari de date ntrun mod eficient i InformRequest care permite unui manager transmiterea unei capcane unui alt manager. Dou PDUuri deja existente n SNMPv1 au fost modificate i pentru evitarea confuziilor au fost i redenumite. Astfel Trap devine SNMPv2Trap iar GetResponse devine Response

Structura informaiei de management (SMI) definit n SNMPv2


descrie mai pe larg specificaiile i documentaiile referitoare la obiectele administrate i MIBuri. Modificri importante sunt aduse : Definirii obiectelor Tabelelor conceptuale Notificrilor Modulelor de informaie

A. Definirea obiectelor este folosit, ca i n SNMPv1, pentru descrierea obiectelor administrate. Macroul de definire a obiectului este dat n figura 5.1. 1. Tipuri de date SNMPv2 introduce dou noi tipuri de date Unsingned32 i Counter64. Astfel, tipurile de date definite prin intermediul SNMPv2 sunt: Integer numere ntregi cu valori cuprinse ntre [231 , 2311] Unsigned32 numere ntregi din intervalul [ 0 , (2321) ] ; Counter32 numr ntreg nenul ce poate fi incrementat pn la valoarea de 2321 dar nu poate fi decrementat; incrementnd o variabil de acest tip ajuns la valoarea maxim se va relua numerotarea ncepnd cu zero.

63

Cap. 5. Diferene ntre cele trei versiuni de SNMP

OBJECTTYPE MACRO ::= BEGIN TYPE NOTATION ::= SYNTAX Syntax UnitsPart MAXACCESS Access STATUS Status DESCRIPTION Text ReferPart IndexPart DefValPart VALUE NOTATION ::= value (VALUE ObjectName) Syntax ::= type(ObjectSyntax) | BITS {Kibbles } Kibbles ::= Kibble | Kibbles , Kibble Kibble ::= identifier (nonNegativNumber) UnitsPart ::= UNITS Text | empty Access::= not/accessible | accessiblefor notify | read/nly | read/write | read/create Status ::= current | deprecated | obsolote ReferPart ::= REFERENCE Text | empty IndexPart ::= INDEX { IndexTypes } | AUGMENTS { Entry} | empty IndexTypes ::= IndexType | IndexTypes , IndexType IndexType ::= IMPLIED Index | Index Index ::= value (indexobject ObjectName) Entry ::= value (entryobject ObjectName) DefValPart ::= DEFVAL { vcalue (Defval ObjectSyntax) } | empty Text ::= string END

Fig. 5.1. Macro-ul de definire a Obiectelor

64

Cap. 5. Diferene ntre cele trei versiuni de SNMP Counter64 se comport la fel ca i Counter32, avnd ns valoarea maxim 2641 Gauge32 numr ntreg din intervalul [ 0 , (2321) ] ce poate fi incrementat sau decrementa. Incrementnd o variabil de acest tip ajuns la valoarea maxim nu va produce nici o modificare, variabila ntorcnd valoarea maxim pn la o decrementare sau o reiniializare a acesteia TimeTicks numr ntreg nenul, modulo 232 , folosit ca i contor de timp, avnd pas de o sutime de secund. La definirea unei variabile de acest tip, trebuie specificate dou referine de timp OCTET STRING ir de octei de lungime cuprins ntre 0 i 65535 elemente IpAddress adres pe 32 de bii cu formatul de IP specificat Object identifier secven de ntregi care indic locaia obiectului n structura MIB. Identific n mod unic un obiect Opaque tip destinat compatibilizrii cu SNMPv1

2. UnitsPart
Macroul de definire a obiectelor, OBJECTTYPE, poate include elementul (clause) UNITS care conine o definire explicit a unitilor asociate unui obiect. Acest element este utilizat ori de cte ori avem de definit un obiect care descrie folosirea unei anume uniti de msur, de exemplu pentru definirea timpului msurat n secunde. 3. Elementul MAXACCESS Acest element este similar, ca funcie, cu elementul ACCESS prezent n SNMPv1, determinnd nivelul de acces permis n manipularea obiectelor.

65

Cap. 5. Diferene ntre cele trei versiuni de SNMP Dei nu mai include categoria writeonly SNMPv2 are definit o nou categorie readcreate, folosit pentru manipularea liniilor unui tabel conceptual deja existent. O alt categorie aprut doar n a doua versiune de SNMP este acccessiblefornotify . Sunt definite deci n SNMPv2 cinci niveluri de acces : notaccessible inaccesibil chiar i pentru manager accessiblefornotify accesibil doar n vederea unei notificri (ca de exemplu snmpTrap) readonly accesibil doar pentru citire readwrite permite att citirea ct i scrierea readcreate nivel maxim de acces, permind citire, scriere i creare de noi elemente n cadrul unui obiect deja existent 4. Elementul STATUS Acest element trebuie s fie prezent, el definind vechimea elementului indicat. Elementul STATUS prezent n SNMPv2 nu mai include stri ca optional sau mandatory prezente n SNMPv1. Strile posibile n aceast a doua variant sunt : curent care indic valabilitatea pentru standardul curent obsolete care semnaleaz faptul c obiectul n cauz nu ar fi trebuit s fie implementat deprecated care indic faptul c, dei definiia poate fi trecut n categoria obsolete, poate aprea situaia n care un operator s doreasc totui folosirea respectivului obiect din motive de interoperabilitate cu variante mai vechi ale protocolului.

66

Cap. 5. Diferene ntre cele trei versiuni de SNMP 5. Alte Elemente ReferPart este opional i reprezint o referire explicit la un obiect definit ntrun alt modul MIB. IndexPart are rol n lucrul cu tabelele i este mult mai complex definit dect n SNMPv1. DefValPart definete valoarea de iniializare automat a unei instane de obiect creat independent de ctre un agent; prezena acestui element este opional. VALUE NOTATION indic numele de identificare a obiectului, nume cu care acesta poate fi accesat n SNMPv2 sunt folosite pentru reprezentarea informaiilor mai

B. Tabelele complexe.

Un tabel conine zero sau mai multe rnduri, fiecare incluznd unul sau mai multe obiecte scalare. Definirea unui tabel se face urmrind urmtoarele indicaii: 1. Elementul SYNTAX al tabelului este definit sub forma SEQUENCE OF <identificator rnd> <identificator rnd> referinduse la linia din compunerea tabelului 2. Elementul SYNTAX al rndului este definit sub forma SEQUENCE { <tip 1 >, .. , <tip N > } Rndul are N elemente i se defininete un <tip> pentru tiecare obiect de pe fiecare coloan, fiecare <tip> avnd forma <nume element> <sintax> 3. Fiecare obiect al liniilor este definit ca macro de genul OBJECTTYPE. ncepnd cu versiune a doua de SNMP sunt specificate comenzile care permit, pe lng accesare, i crearea i tergerea de linii din tabel. Sunt definite dou categorii de tabele conceptuale, tabele care nu permit creare sau tergere de rnduri (controlate doar de agent, avnd obiecte al cror nivel maxim de acces poate fi readwrite) i tabele care

67

Cap. 5. Diferene ntre cele trei versiuni de SNMP permit creare sau tergere de rnduri (acestea pot fi iniializate fr nici un rnd, crearea i tergerea de rnduri fiind controlat doar de manager) C. Definirea notificrilor Macroul NOTIFICATIONTYPE, prezentat n figura 5.2., are rol n definirea acelor informaii emise de entitile care folosesc SNMPv2 n cazul producerii unei situaii deosebite. NOTIFICATIONTYPE MACRO ::= BEGIN TYPE NOTATION ::= ObjectsPart STATUS Status DESCRIPTION Text ReferPart VALUE NOTATION ::= value (VALUE NotificationName) ObjectsPart ::= OBJECTS {Objects} | empty Objects ::= Object | Objects , Object Object ::= value (Name ObjectName) Status ::= current | deprecated | obsolote ReferPart ::= REFERENCE Text | empty Text ::= string END Fig. 5.2. Macro-ul de definire a Notificrilor Pentru a nelege modul de folosire al acestui macro, prelum un exemplu dat n RFC 1573 prin care se definete capcana care anun repunerea n funciune a unei legturi likUp linkUp NOTIFICATIONTYPE OBJECTS { ifIndex, ifAdminStatus, ifOperStatus } STATUS current DESCRIPTION Capcana linkUp indic faptul c o entitate SNMPv2, cu rol de agent, a detectat trecerea n stare activ (Up) a uneia dintre legturile de comunicare ::= { snmpTraps 4 }

68

Cap. 5. Diferene ntre cele trei versiuni de SNMP Elementul OBJECTS, care este opional, indic obiecte ale cror valori vor fi incluse n fiecare de notificare. Elementul DESCRIPTION indic semnificaia notificrii. Un alt element opional este REFERENCE care conine o referire, dat printrun text, la o alt capcan definit n alt modul MIB. D. Module de informaie SNMPv2 aduce ca mbuntire fa de varianta precedent i conceptul de modul de informaie care grupeaz definiii dintro aceeai familie. Exist trei tipuri de astfel de module 1. Module MIB care reunesc obiecte de administrare asociate folosind macrourile OBJECTTYPE i NOTIFICATIONTYPE 2. Declaraie de concordan (compliance statements) module MIB realizate pin folosirea macrourilor GROUP i MODULECOMPLIANCE 3. Declaraie de concordan (compliance statements) pentru implementarea agenilor obinute folosind macroul CAPABILITIES. 4. O alt noutate a versiunii doi o reprezint apariia macroului OBJECTIDENTITY folosit pentru furnizarea de informaii despre obiectele incluse ntrun anume MIB. AGENT pentru OBJECT

5.2 mbuntirile aduse de SNMPv3


Standardizarea SNMPv2 fr elementele de securitate dorite iniial a determinat mai multe grupuri s lucreze la variante de elemente de securitate pentru SNMP. Dou dintre variante, SNMPv2u i SNMPv2*, au fost folosite ca punct de plecare de ctre grupul de lucru al IETF numit i SNMPv3. Acest grup realizeaz pn n ianuarie 1998 un set de propuneri de standarde pentru Internet publicate sub titulatura RFC 2271 2275. Aceste documente definesc msuri de securitate care s fie

69

Cap. 5. Diferene ntre cele trei versiuni de SNMP folosite n completarea variantelor v1 i v2 de SNMP, dar i un set de msuri de securitatea reelei i de control al accesului la mediu. SNMPv3 nu este un protocol de managementul reelei n adevratul sens al cuvntului, el definind doar noi elemente de arhitectur i de securitate precum i metodele de integrare ale acestora n funcionarea protocoalelor de managementul reelelor. SNMPv3 a fost creat pentru a acoperi necesarul de securitate n ceea ce privete: Modificarea informaiilor adic mpiedicarea entitilor neautorizate n administrarea reelei s intercepteze i s modifice mesaje de management Mascarea adic s nu se permit asumarea identitii unei entiti de management de ctre o entitate neautorizat Modificarea secvenei mesajelor : sa ncercat mpiedicarea nregistrrii, ntrzierii sau duplicrii mesajelor Interceptarea : urmrirea schimbului de informaie ntre manager i agent putea duce, in cazul versiunilor v1 i v2 care nu foloseau nici un fel de codare, la aflarea valorilor obiectelor administrate i la deducerea unor evenimente importante (de exemplu se putea afla o nou parol cnd aceasta era setat)

5.3 Modificrile aduse formatului cadrelor PDU


SNMPv2 a continuat s foloseasc acelai format de cadru pentru transportul PDUurilor ca i prima variant, ns numrul precum i formatul PDU se modific dup cum se observ n figura urmtoare
versiune (2) indicator comunitate identificator cerere SNMP PDU

tip PDU

referinlavariabil

a. GetRequest GetNextRequest, SetReques, SNMPv2Trap, InformRequest

70

Cap. 5. Diferene ntre cele trei versiuni de SNMP


tip PDU identificator cerere stare erori index eroare b. Response intrerdicie de repetare numr de repetri referinlavariabil

tip PDU

identificator cerere

referinlavariabil

c. GetBulkRequest

Fig. 5.3 Formatul Pachetelor vehiculate cu SMNPv2

Odat cu apariia SNMPv3, cu necesitile aferente de securitate, se modific i cadrul de transport al PDUurilor (figura 5.4.) rmnnd neschimbat ns formatul unitilor de date.

versiune (3)

msgGlobal Data

msgSecurity Parameters

SNMP PDU

Fig. 5.3 Formatul Cadrelor de Transport al PDU-urilor dup apariia SMNPv3 msgGlobalData determin formatul definit de securitate msgSecurityParameters indic parametrii specifici modelului de securitate adoptat

Cmpul referinlavariabil i pstreaz forma definit pentru SNMPv1 i n cazul versiunilor 2 i 3


nume 1 valoare 1 nume 2 valoare 2 .. nume n valoare n

71

6 Prezentare programului folosit pentru realizarea aplicaiei

6.1 Instalarea Programelor


Trebuie precizat de la bun nceput ca aplicaia realizat pentru aceast lucrare nu poate funciona dect pe staii care au sisteme de operare de tipul Network Operating Systems (NOS), cum sunt variantele NT, 2000 Server .NET Server i XP produse de Microsoft Windows platformele Unix i Linux. Pentru realizarea aplicaiei s-au folosit programele PHP versiunea 3.0 (care se gsete pe Internet sub numele php-4.3.1-Win32.zip ) ucdsnmp versiunea 4.2.3 (care se gsete pe Internet sub numele ucdsnmp-4.2.3-win32.zip) i Apache versiunea 1.3 pentru windows ca server de http ( care se gsete pe Internet sub numele apache_1.3.29-win32x86-no_src.exe )
(adresele unde se pot gsii cele trei programe sunt http://ro2.php.net/get/php-4.3.1-Win32.zip/from/this/mirror http://heanet.dl.sourceforge.net/sourceforge/net-snmp/ucd-snmp-4.2.3-win32.zip http://apache.idilis.ro/httpd/binaries/win32/apache_1.3.29-win32-x86-no_src.exe )

n vederea rulrii aplicaiei este esenial activarea resurselor SNMP ale sistemului de operare. Aceasta se face din Control Panel, or Remove se Add

Programs, va selecta

unde rubrica

Add/Remove Components

Windows

Va rezulta figura 6.1 ; se deschide Management and Monitoring Tools i Fig.6.1. Activarea resurselor SNMP de Windows 72

Cap. 6. Prezentarea aplicaiei se bifeaz rubrica Network

Simple

Management Protocol ca n figura care 6.2, va aciune permite comenzilor SNMP. Apoi vor trebui citite cu mare atenie de a PHP Fig.6.2. Activarea resurselor SNMP de Windows instruciunile instalare

folosirea specifice

referitoare la legarea sa de serverul

Apache, care se gsesc n fiierul instal.txt . n aplicaie se va vedea c este necesar indicarea comunitii i adresei staiei despre care se doresc informaii. Pentru a vedea comunitile activate sau pentru a introduce o noua comunitate se merge tot n Control Panel de unde se deschide Administrative Tools, se selecteaz Services i se observ n proprietile SNMP Services la rubrica Security toate comunitile active.

6.2 Descrierea aplicaiei


6.2.1 Componente Aplicaia a fost scris folosind PHP, ca mediu de programare cu capacitate de interpretare a funciilor SNMP, i HTML pentru expunerea ntr-un mod ct mai ordonat a datelor obinute de SNMP de la staia interogat. Aplicaia se dorete a fi o exemplificare a datelor care se pot obine de la agent. Trebuie avut n vedere c informaiile care pot fi

73

Cap. 6. Prezentarea aplicaiei obinute cu ajutorul SNMP-ului sunt mult mai mute dect cele relevate de prezenta aplicaie, o list prezentnd aceste date regsindu-se n Anexa 1 a acestei lucrri, la rndul ei reprezentnd o situaie particular. Aplicaia se compune din pagina principal, index.html, compusa din cupr_sus.html i cuprins.html, care permite activarea programelor coninute n fiierele cu extensia .php: interfete, lista proceselor, pachete ip, programe instalate, trafic icmp, trafic tcp, trafic udp. Este foarte important ca toate fiierele amintite mai sus mpreun cu folderul bk coninnd fundalurile unora din paginile care apar n desfurarea aplicaiei s se gseasc n C:\<Locaia_unde_a_fost_instalat_Apache> \ htdocs Codul tuturor fiierelor amintite mai sus au fost incluse n Anexa 2. 6.2.2 Desfurare Deschiznd index.html se observ c sunt cerute Comunitatea i Adresa IP ambele referindu-se la staia de la care se doresc informaii. Domeniile alese a fi prezentate prin aceast aplicaie sunt: Programele instalate pe agent, Procesele n derulare pe acesta, Datagrame IP, UDP i Mesajele ICMP vehiculate de staia interogat, Conexiuni TCP i Interfeele care sunt, din punct de vedere administrativ, pornite. Completate, rubricile corespunztoare primelor dou domenii, conduc la liste cu programele instalate respectiv procesele care ruleaz n acel moment pe staia al crei IP a fost nscris, nsoite de OID-urile corespunztoare fiecrui element listat. n cazul proceselor este fiat i memoria RAM utilizat de fiecare proces n parte. De la rubrica Datagrame IP se ajunge la o pagin care informeaz dac staia poate redirija datagrame IP care au adresa destinaie alta dect a sa, adic dac poate ndeplinii funcia de gateway. Tot aici sunt prezente informaii referitoare la numrul de datagrame IP primite, numrul de cereri de emitere de datagrame IP provenite de la protocoalele de nivel superior care folosesc IP ca protocol de nivel

74

Cap. 6. Prezentarea aplicaiei Internet, numrul de datagrame pentru care a fost identificat procesul destinaie (numrul indicat include i datagramele ICMP aflate n aceast situaie), numrul de datagrame ne emise din cauza unor probleme de mediu de transmisie (cablul de conectare la reea scos, placa de reea defect sau chiar buffere de ieire pline) si numrul de datagrame primite cu erori i deci eliminate (au fost incluse aici datagramele primite cu erori detectate n antet si cele cu adresa destinaie improprie clas de adrese ne suportat, adrese necunoscute) De la rubrica Datagrame UDP se ajunge la pagina Statistic UDP care ine evidena numrului de datagrame primite de staia inspectat care au fost transferate ctre aplicaiile ce utilizeaz UDP, numrului de datagrame UDP emise i numrului de datagrame recepionate eronat, acestea fiind mprite n doua categorii n funcie de cauza erorii: o categorie contorizeaz erorile cauzate de lipsa aplicaiei la portul indicat ca destinaie i o alta indic erorile provenite din alte cauze. Pagina Statistici TCP, la care se ajunge de la rubrica Conexiuni TCP include contori pentru numrul de tranziii ale conexiunilor TCP din stare de repaus (Closed pentru emitor, Listen pentru receptor) n stare activ (Send respectiv Receive) , numrul de conexiuni ntrerupte n timpul funcionrii, numrul de conexiuni active n acel momentul i numrul de segmente TCP emise, recepionate i care au necesitat retransmiteri. Atenie: o conexiune este cea prin care noi obinem informaiile. Se va vedea c dac vom lucra pe bucla local numrul de conexiuni active este dublu fa de numrul de conexiuni deschise de noi. Trebuie avut n vedere faptul c sunt contorizate att conexiunile care transmit segmente TCP ct i conexiunile cate primesc segmentele TCP, care, n acest caz, se afl pe aceeai staie. Rubrica Pachete ICMP vehiculate conduce la pagina Statistica ICMP care furnizeaz numrul de mesaje pe care agentul a ncercat s le emit, incluzndu-se aici i mesajele care nu au fost emise din cauza

75

Cap. 6. Prezentarea aplicaiei unor erori, numrul mesajelor recepionate, numrul de mesaje eronate la emisie i recepie i statistica mesajelor de tip Echo emise respectiv a rspunsurilor recepionate pentru acestea. Ca i la TCP, n cazul n care interogm agentul pe bucla locala, mesajele emise i recepionate reprezint att mesajele de cerere ct i mesajele de rspuns care provin tot de pe staia local (acest comportament nu se aplic i la mesajele de tip Echo). Ultima rubric, Interfee, ofer o imagine asupra interfeelor activate din punct de vedere administrativ, prin care staia pe care se afl agentul poate comunica ntr-o reea. Pagina Interfee include informaii despre numrul alocat de ctre agent interfeelor, despre starea fiecreia din punct de vedere operaional. Sunt furnizate numele i tipul fiecrei interfee i date despre traficul n octei, MTU i adresa fizic. Fiecare pagin, prezint doua puncte de legtur cu index.html semnalate prin textul ntoarcere la pagina principal la nceputul i la sfritul fiecrei pagini i un element denumit Contact unde am trecut pentru aceast aplicaie adresa mea de mail

Pentru a se vedea o lista a tuturor identificatorilor de obiect (OID) nsoii de valori pe care acetia le dein la un moment dat, la un anumit agent, se poate folosi un document cu test.php scris cu un editor de text (cel mai simplu disponibil, pentru Windows se recomand Notepad) al crui rezultat se vizualizeaz prin scrierea n linia de adres a brouserului de Internet h t t p://127.0.0.1 / test.php i care s conin :

<?php echo"<u>Lista valorilor obiectelor insotite de OID-urile corespunzatoare</u>"; echo "<br> "; $snmp = snmpwalkoid("ADRESA IP A AGENTULUI","COMUNITATEA", ".1.3.6.1.2.1"); for (reset($snmp);$i = key($snmp); next($snmp)) { echo "Object ID - $i <b><center> $snmp[$i]</center></b>"; echo "<p>"; } ?>

76

Cap. 6. Prezentarea aplicaiei

O alt metod de verificare a obiectelor care pot fi interogate este din linia de comand (Start Run / se scrie cmd - Enter). Aici se va scrie:
<Locaia directorului unde a fost dezarhivat ucd-snmp> \ usr\bin\snmpwalk M <Locaia directorului unde se gsesc MIB-urile> <Adresa IP a agentului> <Domeniul> | more

Aceasta va lista numele obiectelor nsoite de valorile deinute de acestea. Pentru a vedea n loc de nume, OID-urile corespunztoare obiectelor se va scrie:
<Locaia directorului unde a fost dezarhivat ucd-snmp> \ usr\bin\snmpwalk M <Locaia directorului unde se gsesc MIB-urile> -On <Adresa IP a agentului> <Domeniul> | more

Corespondenta dintre nume i OID se poate vedea n Anexa 1. Pentru explicaii referitoare la obiectele listate n anexa 1 se poate consulta RFC 1156 Management Information Base for network management of TCP/IP-based internets.

77

Anexa 1

Numele Obiectului
Protocoale system.sysDescr. system.sysObjectID.0 system.sysUpTime.0 system.sysContact.0 system.sysName.0 system.sysLocation.0 system.sysServices.0 interfaces.ifNumber.0 interfaces.ifTable.ifEntry.ifIndex.1 interfaces.ifTable.ifEntry.ifIndex.2 interfaces.ifTable.ifEntry.ifDescr.1 interfaces.ifTable.ifEntry.ifDescr.2 interfaces.ifTable.ifEntry.ifType.1 interfaces.ifTable.ifEntry.ifType.2 interfaces.ifTable.ifEntry.ifMtu.1 interfaces.ifTable.ifEntry.ifMtu.2 interfaces.ifTable.ifEntry.ifSpeed.1 interfaces.ifTable.ifEntry.ifSpeed.2 interfaces.ifTable.ifEntry.ifPhysAddress.1 interfaces.ifTable.ifEntry.ifPhysAddress.2 interfaces.ifTable.ifEntry.ifAdminStatus.1 interfaces.ifTable.ifEntry.ifAdminStatus.2 interfaces.ifTable.ifEntry.ifOperStatus.1 interfaces.ifTable.ifEntry.ifOperStatus.2 interfaces.ifTable.ifEntry.ifLastChange.1 interfaces.ifTable.ifEntry.ifLastChange.2 interfaces.ifTable.ifEntry.ifInOctets.1

Identificatorul Obiectului (OID)


.1.3.6.1.2.1.1.1.0 .1.3.6.1.2.1.1.2.0 .1.3.6.1.2.1.1.3.0 .1.3.6.1.2.1.1.4.0 .1.3.6.1.2.1.1.5.0 .1.3.6.1.2.1.1.6.0 .1.3.6.1.2.1.1.7.0 .1.3.6.1.2.1.2.1.0 .1.3.6.1.2.1.2.2.1.1.1 .1.3.6.1.2.1.2.2.1.1.2 .1.3.6.1.2.1.2.2.1.2.1 .1.3.6.1.2.1.2.2.1.2.2 .1.3.6.1.2.1.2.2.1.3.1 .1.3.6.1.2.1.2.2.1.3.2 .1.3.6.1.2.1.2.2.1.4.1 .1.3.6.1.2.1.2.2.1.4.2 .1.3.6.1.2.1.2.2.1.5.1 .1.3.6.1.2.1.2.2.1.5.2 .1.3.6.1.2.1.2.2.1.6.1 .1.3.6.1.2.1.2.2.1.6.2 .1.3.6.1.2.1.2.2.1.7.1 .1.3.6.1.2.1.2.2.1.7.2 .1.3.6.1.2.1.2.2.1.8.1 .1.3.6.1.2.1.2.2.1.8.2 .1.3.6.1.2.1.2.2.1.9.1 .1.3.6.1.2.1.2.2.1.9.2 .1.3.6.1.2.1.2.2.1.10.1

78

interfaces.ifTable.ifEntry.ifInOctets.2 interfaces.ifTable.ifEntry.ifInUcastPkts.1 interfaces.ifTable.ifEntry.ifInUcastPkts.2 interfaces.ifTable.ifEntry.ifInNUcastPkts.1 interfaces.ifTable.ifEntry.ifInNUcastPkts.2 interfaces.ifTable.ifEntry.ifInDiscards.1 interfaces.ifTable.ifEntry.ifInDiscards.2 interfaces.ifTable.ifEntry.ifInErrors.1 interfaces.ifTable.ifEntry.ifInErrors.2 interfaces.ifTable.ifEntry.ifInUnknownProtos.1 interfaces.ifTable.ifEntry.ifInUnknownProtos.2 interfaces.ifTable.ifEntry.ifOutOctets.1 interfaces.ifTable.ifEntry.ifOutOctets.2 interfaces.ifTable.ifEntry.ifOutUcastPkts.1 interfaces.ifTable.ifEntry.ifOutUcastPkts.2 interfaces.ifTable.ifEntry.ifOutNUcastPkts.1 interfaces.ifTable.ifEntry.ifOutNUcastPkts.2 interfaces.ifTable.ifEntry.ifOutDiscards.1 interfaces.ifTable.ifEntry.ifOutDiscards.2 interfaces.ifTable.ifEntry.ifOutErrors.1 interfaces.ifTable.ifEntry.ifOutErrors.2 interfaces.ifTable.ifEntry.ifOutQLen.1 interfaces.ifTable.ifEntry.ifOutQLen.2 interfaces.ifTable.ifEntry.ifSpecific.1 interfaces.ifTable.ifEntry.ifSpecific.2 ip.ipForwarding.0 ip.ipDefaultTTL.0 ip.ipInReceives.0 ip.ipInHdrErrors.0 ip.ipInAddrErrors.0 ip.ipForwDatagrams.0 ip.ipInUnknownProtos.0 ip.ipInDiscards. ip.ipInDelivers.0 ip.ipOutRequests.0 ip.ipOutDiscards.0

.1.3.6.1.2.1.2.2.1.10.2 .1.3.6.1.2.1.2.2.1.11.1 .1.3.6.1.2.1.2.2.1.11.2 .1.3.6.1.2.1.2.2.1.12.1 .1.3.6.1.2.1.2.2.1.12.2 .1.3.6.1.2.1.2.2.1.13.1 .1.3.6.1.2.1.2.2.1.13.2 .1.3.6.1.2.1.2.2.1.14.1 .1.3.6.1.2.1.2.2.1.14.2 .1.3.6.1.2.1.2.2.1.15.1 .1.3.6.1.2.1.2.2.1.15.2 .1.3.6.1.2.1.2.2.1.16.1 .1.3.6.1.2.1.2.2.1.16.2 .1.3.6.1.2.1.2.2.1.17.1. 1.3.6.1.2.1.2.2.1.17.2 .1.3.6.1.2.1.2.2.1.18.1 .1.3.6.1.2.1.2.2.1.18.2 .1.3.6.1.2.1.2.2.1.19.1 .1.3.6.1.2.1.2.2.1.19.2 .1.3.6.1.2.1.2.2.1.20.1 .1.3.6.1.2.1.2.2.1.20.2 .1.3.6.1.2.1.2.2.1.21.1 .1.3.6.1.2.1.2.2.1.21.2 .1.3.6.1.2.1.2.2.1.22.1 .1.3.6.1.2.1.2.2.1.22.2 .1.3.6.1.2.1.4.1.0 .1.3.6.1.2.1.4.2.0 .1.3.6.1.2.1.4.3.0 .1.3.6.1.2.1.4.4.0 .1.3.6.1.2.1.4.5.0 .1.3.6.1.2.1.4.6.0 .1.3.6.1.2.1.4.7.0 .1.3.6.1.2.1.4.8.0 .1.3.6.1.2.1.4.9.0 .1.3.6.1.2.1.4.10.0 .1.3.6.1.2.1.4.11.0

79

ip.ipOutNoRoutes.0 ip.ipReasmTimeout.0 ip.ipReasmReqds.0 ip.ipReasmOKs.0 ip.ipReasmFails.0 ip.ipFragOKs.0 ip.ipFragFails.0 ip.ipFragCreates.0 ip.ipAddrTable.ipAddrEntry.ipAdEntAddr.0.0.0.0 ip.ipAddrTable.ipAddrEntry.ipAdEntAddr.127.0.0.1 ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex.0.0.0.0 ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex.127.0.0.1 ip.ipAddrTable.ipAddrEntry.ipAdEntNetMask.0.0.0.0 ip.ipAddrTable.ipAddrEntry.ipAdEntNetMask.127.0.0.1 ip.ipAddrTable.ipAddrEntry.ipAdEntBcastAddr.0.0.0.0 ip.ipAddrTable.ipAddrEntry.ipAdEntBcastAddr.127.0.0.1 ip.ipAddrTable.ipAddrEntry.ipAdEntReasmMaxSize.0.0.0.0 ip.ipAddrTable.ipAddrEntry.ipAdEntReasmMaxSize.127.0.0.1 ip.ipRouteTable.ipRouteEntry.ipRouteDest.127.0.0.0 ip.ipRouteTable.ipRouteEntry.ipRouteDest.255.255.255.255 ip.ipRouteTable.ipRouteEntry.ipRouteIfIndex.127.0.0.0 ip.ipRouteTable.ipRouteEntry.ipRouteIfIndex.255.255.255.255 ip.ipRouteTable.ipRouteEntry.ipRouteMetric1.127.0.0.0 ip.ipRouteTable.ipRouteEntry.ipRouteMetric1.255.255.255.255 ip.ipRouteTable.ipRouteEntry.ipRouteMetric2.127.0.0.0 ip.ipRouteTable.ipRouteEntry.ipRouteMetric2.255.255.255.255 ip.ipRouteTable.ipRouteEntry.ipRouteMetric3.127.0.0.0 ip.ipRouteTable.ipRouteEntry.ipRouteMetric3.255.255.255.255 ip.ipRouteTable.ipRouteEntry.ipRouteMetric4.127.0.0.0 ip.ipRouteTable.ipRouteEntry.ipRouteMetric4.255.255.255.255 ip.ipRouteTable.ipRouteEntry.ipRouteNextHop.127.0.0.0 ip.ipRouteTable.ipRouteEntry.ipRouteNextHop.255.255.255.255 ip.ipRouteTable.ipRouteEntry.ipRouteType.127.0.0.0 ip.ipRouteTable.ipRouteEntry.ipRouteType.255.255.255.255 ip.ipRouteTable.ipRouteEntry.ipRouteProto.127.0.0.0 ip.ipRouteTable.ipRouteEntry.ipRouteProto.255.255.255.255

.1.3.6.1.2.1.4.12.0 .1.3.6.1.2.1.4.13.0 .1.3.6.1.2.1.4.14.0 .1.3.6.1.2.1.4.15.0 .1.3.6.1.2.1.4.16.0 .1.3.6.1.2.1.4.17.0 .1.3.6.1.2.1.4.18.0 .1.3.6.1.2.1.4.19.0 .1.3.6.1.2.1.4.20.1.1.0.0.0.0 .1.3.6.1.2.1.4.20.1.1.127.0.0.1 .1.3.6.1.2.1.4.20.1.2.0.0.0.0 .1.3.6.1.2.1.4.20.1.2.127.0.0.1 .1.3.6.1.2.1.4.20.1.3.0.0.0.0 .1.3.6.1.2.1.4.20.1.3.127.0.0.1 .1.3.6.1.2.1.4.20.1.4.0.0.0.0 .1.3.6.1.2.1.4.20.1.4.127.0.0.1 .1.3.6.1.2.1.4.20.1.5.0.0.0.0 .1.3.6.1.2.1.4.20.1.5.127.0.0.1 .1.3.6.1.2.1.4.21.1.1.127.0.0.0 .1.3.6.1.2.1.4.21.1.1.255.255.255.255 .1.3.6.1.2.1.4.21.1.2.127.0.0.0 .1.3.6.1.2.1.4.21.1.2.255.255.255.255 .1.3.6.1.2.1.4.21.1.3.127.0.0.0 .1.3.6.1.2.1.4.21.1.3.255.255.255.255 .1.3.6.1.2.1.4.21.1.4.127.0.0.0 .1.3.6.1.2.1.4.21.1.4.255.255.255.255 .1.3.6.1.2.1.4.21.1.5.127.0.0.0 .1.3.6.1.2.1.4.21.1.5.255.255.255.255 .1.3.6.1.2.1.4.21.1.6.127.0.0.0 .1.3.6.1.2.1.4.21.1.6.255.255.255.255 .1.3.6.1.2.1.4.21.1.7.127.0.0.0 .1.3.6.1.2.1.4.21.1.7.255.255.255.255 .1.3.6.1.2.1.4.21.1.8.127.0.0.0 .1.3.6.1.2.1.4.21.1.8.255.255.255.255 .1.3.6.1.2.1.4.21.1.9.127.0.0.0 .1.3.6.1.2.1.4.21.1.9.255.255.255.255.

80

ip.ipRouteTable.ipRouteEntry.ipRouteAge.127.0.0.0 ip.ipRouteTable.ipRouteEntry.ipRouteAge.255.255.255.255 ip.ipRouteTable.ipRouteEntry.ipRouteMask.127.0.0.0 ip.ipRouteTable.ipRouteEntry.ipRouteMask.255.255.255.255 ip.ipRouteTable.ipRouteEntry.ipRouteMetric5.127.0.0.0 ip.ipRouteTable.ipRouteEntry.ipRouteMetric5.255.255.255.255 ip.ipRouteTable.ipRouteEntry.ipRouteInfo.127.0.0.0 ip.ipRouteTable.ipRouteEntry.ipRouteInfo.255.255.255.255 ip.ipRoutingDiscards.0 icmp.icmpInMsgs.0 icmp.icmpInErrors.0 icmp.icmpInDestUnreachs.0 icmp.icmpInTimeExcds.0 icmp.icmpInParmProbs.0 icmp.icmpInSrcQuenchs.0 icmp.icmpInRedirects.0 icmp.icmpInEchos.0 icmp.icmpInEchoReps.0 icmp.icmpInTimestamps.0 icmp.icmpInTimestampReps.0 icmp.icmpInAddrMasks.0 icmp.icmpInAddrMaskReps.0 icmp.icmpOutMsgs.0 icmp.icmpOutErrors.0 icmp.icmpOutDestUnreachs.0 icmp.icmpOutTimeExcds.0 icmp.icmpOutParmProbs.0 icmp.icmpOutSrcQuenchs.0 icmp.icmpOutRedirects.0 icmp.icmpOutEchos.0 icmp.icmpOutEchoReps.0 icmp.icmpOutTimestamps.0 icmp.icmpOutTimestampReps.0 icmp.icmpOutAddrMasks.0 icmp.icmpOutAddrMaskReps.0

1.3.6.1.2.1.4.21.1.10.127.0.0.0 .1.3.6.1.2.1.4.21.1.10.255.255.255.255 .1.3.6.1.2.1.4.21.1.11.127.0.0.0 .1.3.6.1.2.1.4.21.1.11.255.255.255.255 .1.3.6.1.2.1.4.21.1.12.127.0.0.0 .1.3.6.1.2.1.4.21.1.12.255.255.255.255 .1.3.6.1.2.1.4.21.1.13.127.0.0.0 .1.3.6.1.2.1.4.21.1.13.255.255.255.255 .1.3.6.1.2.1.4.23.0 .1.3.6.1.2.1.5.1.0 .1.3.6.1.2.1.5.2.0 .1.3.6.1.2.1.5.3.0 .1.3.6.1.2.1.5.4.0 .1.3.6.1.2.1.5.5.0 .1.3.6.1.2.1.5.6.0 .1.3.6.1.2.1.5.7.0 .1.3.6.1.2.1.5.8.0 .1.3.6.1.2.1.5.9.0 .1.3.6.1.2.1.5.10.0 .1.3.6.1.2.1.5.11.0 .1.3.6.1.2.1.5.12.0 .1.3.6.1.2.1.5.13.0 .1.3.6.1.2.1.5.14.0 .1.3.6.1.2.1.5.15.0 .1.3.6.1.2.1.5.16.0 .1.3.6.1.2.1.5.17.0 .1.3.6.1.2.1.5.18.0 .1.3.6.1.2.1.5.19.0 .1.3.6.1.2.1.5.20.0 .1.3.6.1.2.1.5.21.0 .1.3.6.1.2.1.5.22.0 .1.3.6.1.2.1.5.23.0 .1.3.6.1.2.1.5.24.0 .1.3.6.1.2.1.5.25.0 .1.3.6.1.2.1.5.26.0

81

tcp.tcpRtoAlgorithm.0 tcp.tcpRtoMin.0 tcp.tcpRtoMax.0 tcp.tcpMaxConn.0 tcp.tcpActiveOpens.0 tcp.tcpPassiveOpens.0 tcp.tcpAttemptFails.0 tcp.tcpEstabResets.0 tcp.tcpCurrEstab.0 tcp.tcpInSegs.0 tcp.tcpOutSegs.0 tcp.tcpRetransSegs.0 tcp.tcpConnTable.tcpConnEntry.tcpConnState.0.0.0.0.7.0.0.0.0.28677 tcp.tcpConnTable.tcpConnEntry.tcpConnState.0.0.0.0.9.0.0.0.0.6340 tcp.tcpConnTable.tcpConnEntry.tcpConnState.0.0.0.0.13.0.0.0.0.37049 tcp.tcpConnTable.tcpConnEntry.tcpConnState.0.0.0.0.17.0.0.0.0.32803 tcp.tcpConnTable.tcpConnEntry.tcpConnState.0.0.0.0.19.0.0.0.0.39032 tcp.tcpConnTable.tcpConnEntry.tcpConnLocalPort.0.0.0.7.0.0.0.28677 tcp.tcpConnTable.tcpConnEntry.tcpConnLocalPort.0.0..0.9.0.0.0.6340 tcp.tcpConnTable.tcpConnEntry.tcpConnLocalPort.0.0.0.13.0.0.0.37049 tcp.tcpConnTable.tcpConnEntry.tcpConnRemAddress.0.0.0.0.7.0.0.0.0.28677 tcp.tcpConnTable.tcpConnEntry.tcpConnRemAddress.0.0.0.0.9.0.0.0.0.6340 tcp.tcpConnTable.tcpConnEntry.tcpConnRemAddress.0.0.0.0.13.0.0.0.0.37049 tcp.tcpConnTable.tcpConnEntry.tcpConnRemAddress.0.0.0.0.17.0.0.0.0.32803 udp.udpInDatagrams.0 udp.udpNoPorts.0 udp.udpInErrors.0 udp.udpOutDatagrams.0 udp.udpTable.udpEntry.udpLocalAddress.0.0.0.0.7 udp.udpTable.udpEntry.udpLocalAddress.0.0.0.0.9 udp.udpTable.udpEntry.udpLocalAddress.0.0.0.0.13 udp.udpTable.udpEntry.udpLocalAddress.0.0.0.0.17 udp.udpTable.udpEntry.udpLocalAddress.0.0.0.0.19 udp.udpTable.udpEntry.udpLocalAddress.0.0.0.0.135

.1.3.6.1.2.1.6.1.0 .1.3.6.1.2.1.6.2.0 .1.3.6.1.2.1.6.3.0 .1.3.6.1.2.1.6.4.0 .1.3.6.1.2.1.6.5.0 .1.3.6.1.2.1.6.6.0 .1.3.6.1.2.1.6.7.0 .1.3.6.1.2.1.6.8.0 .1.3.6.1.2.1.6.9.0 .1.3.6.1.2.1.6.10.0 .1.3.6.1.2.1.6.11.0 .1.3.6.1.2.1.6.12.0 .1.3.6.1.2.1.6.13.1.1.0.0.0.0.7.0.0.0.0.28677 .1.3.6.1.2.1.6.13.1.1.0.0.0.0.9.0.0.0.0.6340 .1.3.6.1.2.1.6.13.1.1.0.0.0.0.13.0.0.0.0.37049 .1.3.6.1.2.1.6.13.1.1.0.0.0.0.17.0.0.0.0.32803 .1.3.6.1.2.1.6.13.1.1.0.0.0.0.19.0.0.0.0.39032 .1.3.6.1.2.1.6.13.1.4.0.0.0.0.7.0.0.0.0.28677 .1.3.6.1.2.1.6.13.1.4.0.0.0.0.9.0.0.0.0.6340 .1.3.6.1.2.1.6.13.1.4.0.0.0.0.13.0.0.0.0.37049 .1.3.6.1.2.1.6.13.1.5.0.0.0.0.7.0.0.0.0.28677 .1.3.6.1.2.1.6.13.1.5.0.0.0.0.9.0.0.0.0.6340 .1.3.6.1.2.1.6.13.1.5.0.0.0.0.13.0.0.0.0.37049 .1.3.6.1.2.1.6.13.1.5.0.0.0.0.17.0.0.0.0.32803 .1.3.6.1.2.1.7.1.0 .1.3.6.1.2.1.7.2.0 .1.3.6.1.2.1.7.3.0 .1.3.6.1.2.1.7.4.0 .1.3.6.1.2.1.7.5.1.1.0.0.0.0.7 .1.3.6.1.2.1.7.5.1.1.0.0.0.0.9 .1.3.6.1.2.1.7.5.1.1.0.0.0.0.13 .1.3.6.1.2.1.7.5.1.1.0.0.0.0.17 .1.3.6.1.2.1.7.5.1.1.0.0.0.0.19 .1.3.6.1.2.1.7.5.1.1.0.0.0.0.135

82

udp.udpTable.udpEntry.udpLocalAddress.0.0.0.0.161 udp.udpTable.udpEntry.udpLocalAddress.0.0.0.0.162 snmp.snmpInPkts.0 = Counter32: 14094 snmp.snmpOutPkts.0 = Counter32: 14046 snmp.snmpInBadVersions.0 snmp.snmpInBadCommunityNames.0 8 snmp.snmpInBadCommunityUses.0 snmp.snmpInASNParseErrs.0 snmp.snmpInTooBigs.0 snmp.snmpInNoSuchNames.0 snmp.snmpInBadValues.0 snmp.snmpInReadOnlys.0 snmp.snmpInGenErrs.0 snmp.snmpInTotalReqVars.0 snmp.snmpInTotalSetVars.0 snmp.snmpInGetRequests.0 snmp.snmpInGetNexts.0 snmp.snmpInSetRequests.0 snmp.snmpInGetResponses.0 snmp.snmpInTraps.0 snmp.snmpOutTooBigs.0 snmp.snmpOutNoSuchNames.0 snmp.snmpOutBadValues.0 snmp.snmpOutGenErrs.0 snmp.snmpOutGetRequests.0 snmp.snmpOutGetNexts.0 snmp.snmpOutSetRequests.0 snmp.snmpOutGetResponses.0 snmp.snmpOutTraps.0 snmp.snmpEnableAuthenTraps.0 Hardware 25.3.2.1.3.1 = "tip imprimanta" 25.3.2.1.3.2 = "tip modem" 25.3.2.1.3.3 = "MS TCP Loopback interface" 25.3.2.1.3.4 = "tip NIC"

.1.3.6.1.2.1.7.5.1.1.0.0.0.0.161 .1.3.6.1.2.1.7.5.1.1.0.0.0.0.162 .1.3.6.1.2.1.11.1.0 .1.3.6.1.2.1.11.2.0 .1.3.6.1.2.1.11.3.0 .1.3.6.1.2.1.11.4.0 .1.3.6.1.2.1.11.5.0 .1.3.6.1.2.1.11.6.0 .1.3.6.1.2.1.11.8.0 .1.3.6.1.2.1.11.9.0 .1.3.6.1.2.1.11.10.0 .1.3.6.1.2.1.11.11.0 .1.3.6.1.2.1.11.12.0 .1.3.6.1.2.1.11.13.0 .1.3.6.1.2.1.11.14.0 .1.3.6.1.2.1.11.15.0 .1.3.6.1.2.1.11.16.0 .1.3.6.1.2.1.11.17.0 .1.3.6.1.2.1.11.18.0 .1.3.6.1.2.1.11.19.0 .1.3.6.1.2.1.11.20.0 .1.3.6.1.2.1.11.21.0 .1.3.6.1.2.1.11.22.0 .1.3.6.1.2.1.11.24.0 .1.3.6.1.2.1.11.25.0 .1.3.6.1.2.1.11.26.0 .1.3.6.1.2.1.11.27.0 .1.3.6.1.2.1.11.28.0 .1.3.6.1.2.1.11.29.0 .1.3.6.1.2.1.11.30.0 1.3.6.1.2.1.25.3.2.1.3.1 1.3.6.1.2.1.25.3.2.1.3.2 1.3.6.1.2.1.25.3.2.1.3.3 1.3.6.1.2.1.25.3.2.1.3.4

83

25.3.2.1.3.5 = " drive flopy" 25.3.2.1.3.6 = "drive CD-R" 25.3.2.1.3.8 = "Fixed Disk" 25.3.2.1.3.9 = "tip tastatura" 25.3.2.1.3.10 = "tip mouse" 25.3.2.1.3.11 = "LPT1:" 25.3.2.1.3.12 = "COM1:" 25.3.2.1.3.13 = "COM2:" 25.3.2.1.3.14 = "COM3:" Procese Active 25.4.2.1.2.1 = "System Idle Process" 25.4.2.1.2.4 = "System" 25.4.2.1.2.456 = "RUNDLL32.EXE" 25.4.2.1.2.480 = "CTFMON.EXE" 25.4.2.1.2.616 = "SMSS.EXE" 25.4.2.1.2.688 = "CSRSS.EXE" 25.4.2.1.2.712 = "WINLOGON.EXE" 25.4.2.1.2.756 = "SERVICES.EXE" 25.4.2.1.2.768 = "LSASS.EXE" 25.4.2.1.2.920 = "SVCHOST.EXE" 25.4.2.1.2.964 = "SVCHOST.EXE" 25.4.2.1.2.1064 = "SVCHOST.EXE" 25.4.2.1.2.1140 = "SVCHOST.EXE" 25.4.2.1.2.1368 = "EXPLORER.EXE" 25.4.2.1.2.1400 = "SPOOLSV.EXE" 25.4.2.1.2.1536 = "ALG.EXE" 25.4.2.1.2.1548 = "Apache.exe" 25.4.2.1.2.1656 = "NPROTECT.EXE" 25.4.2.1.2.1712 = "Apache.exe" 25.4.2.1.2.1804 = "NVSVC32.EXE" 25.4.2.1.2.1896 = "TCPSVCS.EXE" 25.4.2.1.2.1916 = "WINWORD.EXE" 25.4.2.1.2.1960 = "SVCHOST.EXE" 25.4.2.1.2.1968 = "RUNDLL32.EXE" 25.4.2.1.2.2188 = "NOTEPAD.EXE" 25.4.2.1.2.2304 = "RUNDLL32.EXE"

1.3.6.1.2.1.25.3.2.1.3.5 1.3.6.1.2.1.25.3.2.1.3.6 1.3.6.1.2.1.25.3.2.1.3.8 1.3.6.1.2.1.25.3.2.1.3.9 1.3.6.1.2.1.25.3.2.1.3.10 1.3.6.1.2.1.25.3.2.1.3.11 1.3.6.1.2.1.25.3.2.1.3.12 1.3.6.1.2.1.25.3.2.1.3.13 1.3.6.1.2.1.25.3.2.1.3.14 .1.3.6.1.2.1.25.4.2.1.2.1 = "System Idle Process" .1.3.6.1.2.1.25.4.2.1.2.4 = "System" .1.3.6.1.2.1.25.4.2.1.2.456 = "RUNDLL32.EXE" .1.3.6.1.2.1.25.4.2.1.2.480 = "CTFMON.EXE" .1.3.6.1.2.1.25.4.2.1.2.616 = "SMSS.EXE" .1.3.6.1.2.1.25.4.2.1.2.688 = "CSRSS.EXE" .1.3.6.1.2.1.25.4.2.1.2.712 = "WINLOGON.EXE" .1.3.6.1.2.1.25.4.2.1.2.756 = "SERVICES.EXE" .1.3.6.1.2.1.25.4.2.1.2.768 = "LSASS.EXE" .1.3.6.1.2.1.25.4.2.1.2.920 = "SVCHOST.EXE" .1.3.6.1.2.1.25.4.2.1.2.964 = "SVCHOST.EXE" .1.3.6.1.2.1.25.4.2.1.2.1064 = "SVCHOST.EXE" .1.3.6.1.2.1.25.4.2.1.2.1140 = "SVCHOST.EXE" .1.3.6.1.2.1.25.4.2.1.2.1368 = "EXPLORER.EXE" .1.3.6.1.2.1.25.4.2.1.2.1400 = "SPOOLSV.EXE" .1.3.6.1.2.1.25.4.2.1.2.1536 = "ALG.EXE" .1.3.6.1.2.1.25.4.2.1.2.1548 = "Apache.exe" .1.3.6.1.2.1.25.4.2.1.2.1656 = "NPROTECT.EXE" .1.3.6.1.2.1.25.4.2.1.2.1712 = "Apache.exe" .1.3.6.1.2.1.25.4.2.1.2.1804 = "NVSVC32.EXE" .1.3.6.1.2.1.25.4.2.1.2.1896 = "TCPSVCS.EXE" .1.3.6.1.2.1.25.4.2.1.2.1916 = "WINWORD.EXE" .1.3.6.1.2.1.25.4.2.1.2.1960 = "SVCHOST.EXE" .1.3.6.1.2.1.25.4.2.1.2.1968 = "RUNDLL32.EXE" .1.3.6.1.2.1.25.4.2.1.2.2188 = "NOTEPAD.EXE" .1.3.6.1.2.1.25.4.2.1.2.2304 = "RUNDLL32.EXE"

84

25.4.2.1.2.2696 = "snmp.exe" 25.4.2.1.2.2764 = "snmptrap.exe" 25.4.2.1.2.3520 = "NOTEPAD.EXE" 25.4.2.1.2.3884 = "cmd.exe" 25.4.2.1.2.4080 = "snmpwalk.exe" Programe Instalate 25.6.3.1.2.1 = "Adobe Acrobat 5.0" 25.6.3.1.2.2 = "hp deskjet 640c series" 25.6.3.1.2.3 = "HyperSnap-DX" 25.6.3.1.2.4 = "myX Desktop - Dezinstalarea Programului" 25.6.3.1.2.5 = "NVIDIA Windows 2000/XP Display Drivers" 25.6.3.1.2.6 = "CD_DRV_70" 25.6.3.1.2.7 = "VIA Audio Driver Setup Program" 25.6.3.1.2.8 = "Winamp (remove only)" 25.6.3.1.2.9 = "WinRAR archiver" 25.6.3.1.2.10 = "Yahoo! Internet Mail" 25.6.3.1.2.11 = "Yahoo! Address AutoComplete" 25.6.3.1.2.12 = "Microsoft Office 2000 Professional" 25.6.3.1.2.13 = "WebFldrs XP" 25.6.3.1.2.14 = "Apache HTTP Server 1.3.29"

.1.3.6.1.2.1.25.4.2.1.2.2696 = "snmp.exe" .1.3.6.1.2.1.25.4.2.1.2.2764 = "snmptrap.exe" .1.3.6.1.2.1.25.4.2.1.2.3520 = "NOTEPAD.EXE" .1.3.6.1.2.1.25.4.2.1.2.3884 = "cmd.exe" .1.3.6.1.2.1.25.4.2.1.2.4080 = "snmpwalk.exe" .1.3.6.1.2.1.25.6.3.1.2.1 .1.3.6.1.2.1.25.6.3.1.2.2 .1.3.6.1.2.1.25.6.3.1.2.3 .1.3.6.1.2.1.25.6.3.1.2.4 .1.3.6.1.2.1.25.6.3.1.2.5 .1.3.6.1.2.1.25.6.3.1.2.6 .1.3.6.1.2.1.25.6.3.1.2.7 .1.3.6.1.2.1.25.6.3.1.2.8 .1.3.6.1.2.1.25.6.3.1.2.9 .1.3.6.1.2.1.25.6.3.1.2.10 .1.3.6.1.2.1.25.6.3.1.2.11 .1.3.6.1.2.1.25.6.3.1.2.12 .1.3.6.1.2.1.25.6.3.1.2.13 .1.3.6.1.2.1.25.6.3.1.2.14

85

Anexa 2

programe instalate.php
<body background="bk\1.gif"> <h1> <font color=#486532 size=5> <? $snmpii = snmpget( $r, $com, ".1.3.6.1.2.1.1.5.0"); $ora = date("G:i:s.....D d F Y "); echo "<u> Lista programelor instalate pe statia $snmpii la ora </u><br> $ora" ; $snmp = snmpwalkoid("$r", "$com", ".1.3.6.1.2.1.25.6.3.1.2"); //programe instalate ?> </font> </h1> <br><br> <br><a href=cuprins.html#q><font size=2> Intoarcere le pagina principala </font></a> <hr align=left size=10 color=olive> <hr align=left size=12 width=75% color=blue> <center> <table border=3 cellspacing=6 cellpadding=10 bgcolor=#d9b2a7 bordercolor =#486532> <tr> <td> <? for (reset($snmp); $i = key($snmp); next($snmp)) { echo "$snmp[$i] <br><br>"; } ?> </td> <td> <? for (reset($snmp); $i = key($snmp); next($snmp)) { echo "cu Object ID - $i<br><br> "; } ?> </td> </tr> </table> </center>

86

<br> <font size=4><b><a href=cuprins.html#q> Intoarcere le pagina principala </a></b></font> </body> <p><b> <? echo<<<INF Adresa de email a persoanei de contact pentru probleme de management este: INF; ?> <a href="mailto:cosmin_n_b@yahoo.com">Contact</a><br><br> <? echo<<<INF Numele dat statiei interogate este: INF; echo $snmpii; ?> </b>

lista proceselor.php <body background="bk\7.gif"> <h1><font color=#7d5731 size=5> <? $snmpii = snmpget( $r, $com, ".1.3.6.1.2.1.1.5.0"); $ora = date("G:i:s.....D d F Y"); echo "<u>Lista proceselor in derulare pe statia $snmpii la ora </u> <br>$ora " ; $snmp = snmpwalkoid($r, $com, ".1.3.6.1.2.1.25.4.2.1.2"); //procesele active $snmpMem = snmpwalkoid($r, $com, ".1.3.6.1.2.1.25.5.1.1.2"); //memorie ocupata de //procese ?> </font></h1> <br><br> <br><a href=cuprins.html#q><font size=2> Intoarcere le pagina principala </font></a> <hr align=left size=10 color=olive> <hr align=left size=12 width=75% color=blue> <br> <center> <table border=3 cellspacing=6 cellpadding=10 bgcolor=#dcdddc bordercolor =#7d5731> <tr bgcolor=#ccddcc> <td align = center> Procese active </td> <td align = center> OID-ul corespunzator</td>

87

<td align = center> Memorie utilizata </td> </tr> <tr> <td> <? for (reset($snmp);$i = key($snmp);next($snmp)) {echo " $snmp[$i] <p>"; } ?> </td> <td> <? for (reset($snmp);$i = key($snmp);next($snmp)) {echo " $i <p>"; } ?> </td> <td align=right> <? for (reset($snmpMem);$i = key($snmpMem);next($snmpMem)) {echo "$snmpMem[$i] Kb<p> ";} ?> </td> </tr> </table> </center> <br><br><a href=cuprins.html#q> Intoarcere le pagina principala </a> </body> <p> <? echo<<<INF Adresa de email a persoanei de contact pentru probleme de management este: INF; ?> <a href="mailto:cosmin_n_b@yahoo.com">Contact</a> <br><br> <? echo<<<INF Numele dat statiei interogate este: INF; echo $snmpii; ?>

pachete ip.php <body background="bk\91.gif"> <? $snmpii = snmpget( $r, $com, ".1.3.6.1.2.1.1.5.0"); snmp_set_quick_print(1); // astfel ca datele sa apara fara identificator de exemplu

88

//counter32, timeticks, etc ?> <u><h1><font color=#339933 size=6>Statistica IP </font></h1></u> <br><br> <br><a href=cuprins.html#q><font size=2> Intoarcere le pagina principala </font></a> <hr align=left size=10 color=olive> <hr align=left size=12 width=75% color=blue> <center>INFO : <? $tip1 = snmpget($r, $com, ".1.3.6.1.2.1.4.1.0");// Informare asupra statutului statiei if ($tip1==1) {echo "<br><b> Statia inspectata poate redirija datagrame care nu ii sunt adresate<br>(este folosita ca GATEWAY)</b><br>"; $fw = snmpget($r, $com, ".1.3.6.1.2.1.4.6.0"); echo "Au fost redirectionate, catre destinatiile cerute $fw datagrame <br><br>"; } else echo "<br><b>Statia inspectata NU poate redirija datagrame care nu ii sunt adresate</b><br><br>"; ?> <table border=3 cellspacing=6 cellpadding=10 bgcolor=#99CCCC bordercolor=#339933 > <tr> <td valign=middle> <? echo"<i><h3>Cereri de emitere de datagrame IP</h3></i>"; /*Numarul de datagrame pentru care s-a cererut transmitere de catre protocoalele care se folosesc de IP ca protocol de nivel Internet) include toate datagramele pe care protocoalele locale le-au trasferat IP in vederea transmisiei(inclusiv cele provenite de la ICMP). !!!!!!!!!!Nu sunt considerate datagramele care au trebuit transmise catre o alta adresa cre sunt date de obiectul "ipForwDatagrams(1.3.6.1.2.1.4.6)"*/ ?> </td> <td valign=middle> <? $snmp2 = snmpwalk($r,$com,".1.3.6.1.2.1.4.10");//ipOutRequests $snmpout = implode($snmp2); for($i=0; $i<strlen($snmpout); $i++) {echo "<b>$snmpout[$i]</b>";} //111====================================================== ?> </td> </tr> <tr> <td valign=middle>

89

<?echo"<i><h3>Datagrame IP primite de statia $snmpii</h3></i>";?> </td> <td valign=middle> <? $snmp1 = snmpwalk("$r",$com,".1.3.6.1.2.1.4.3");//ipInReceives $snmpin = implode($snmp1); for($i=0; $i<strlen($snmpin); $i++) {echo "<b>$snmpin[$i]</b>";} //222====================================================== ?> </td> </tr> <tr> <td valign=middle> <?echo"<i><h3>Datagrame IP primite, care au ajuns<br> la protocolul destinatie</h3></i>";// include datagramele folosite de ICMP ?> </td> <td valign=middle> <? $snmp3 = snmpwalk($r,$com,".1.3.6.1.2.1.4.9");//ipInDelivrs $snmp = implode($snmp3); for($i=0; $i<strlen($snmp); $i++) {echo "<b>$snmp[$i]</b>";} //333====================================================== ?> </td> </tr> <tr> <td valign=middle> <?echo"<i><h3> Datagrame IP ne emise </h3></i>(cauze pot fi: cablul scos sau NIC-ul)"; ?> </td> <td valign=middle> <? $snmp4 = snmpwalk($r ,$com, ".1.3.6.1.2.1.4.11"); $snmp = implode($snmp4); for($i=0; $i<strlen($snmp); $i++) {echo "<b>$snmp[$i]</b>";} //444====================================================== ?> </td> </tr> <tr> <td valign=middle> <?echo"<i><h3> Datagrame IP primite cu erori </h3></i>";?> </td> <td valign=middle>

90

<? $snmpe1=snmpget ($r, $com, ".1.3.6.1.2.1.4.4.0");//erori detectate in antet $snmpe2 = snmpget($r,$com,".1.3.6.1.2.1.4.5.0");//erori de adresa $sum=$snmpe1+$snmpe2; echo $sum; //555====================================================== ?> </td> </tr> </table> </center> <br><br> <a href=cuprins.html#q> Intoarcere le pagina principala </a> </body> <p> <? echo<<<INF Adresa de email a persoanei de contact pentru probleme de management este: INF; ?> <a href="mailto:cosmin_n_b@yahoo.com">Contact</a> <br><br> <? echo<<<INF Numele dat statiei interogate este: INF; echo $snmpii; ?>

trafic udp.php <body bgcolor=#fcdcad> <? $snmpii = snmpget( $r, $com, ".1.3.6.1.2.1.1.5.0"); snmp_set_quick_print(1); // astfel ca datele sa apara fara identificator de exemplu //counter32, timeticks, etc ?> <h1><u><font color=#5a9a45 size=6>Statistica UDP</font></u></h1> <br><br><a href=cuprins.html#q><font size=2> Intoarcere le pagina principala </font></a> <hr align=left size=10 color=olive> <hr align=left size=12 width=75% color=blue> <br>

91

<center> <table border=3 cellspacing=6 cellpadding=10 bgcolor=#f9b297 bordercolor =#5a9a45 > <tr> <td valign=middle> <?echo"<h3><i> Numarul de datagrame receptionate<br> de aplicatii</i> </h3>"; //Datagrame valide ajunse la aplicatiile care folosesc UDP ?> </td> <td valign=middle> <? $snmp1 = snmpwalk($r ,$com,".1.3.6.1.2.1.7.1"); $snmpin = implode($snmp1); for($i=0; $i<strlen($snmpin); $i++) {echo "<b>$snmpin[$i]</b>";} //111====================================================== ?> </td> </tr> <tr> <td valign=middle> <?echo"<h3> <i>Numarul de datagrame emise<br> de statia $snmpii </i> </h3>"; ?> </td> <td valign=middle> <? $snmp3 = snmpwalk($r ,$com,".1.3.6.1.2.1.7.4"); $snmpout = implode($snmp3); for($i=0; $i<strlen($snmpout); $i++) {echo "<b>$snmpout[$i]</b>";} //222====================================================== ?> </td> </tr> <tr> <td valign=middle> <?echo"<h3><i>Numarul de datagrame receptionate eronat</i> </h3> (Sunt excluse situatiile in care nu s-a gasit aplicatia destinatie )"; //acestea fac obiectul OID udpNoPorts (... .2) ?> </td> <td valign=middle> <? $snmp2 = snmpwalk($r ,$com,".1.3.6.1.2.1.7.3"); $snmpre = implode($snmp2); for($i=0; $i<strlen($snmpre); $i++) {echo "<b>$snmpre[$i]</b>";} //333======================================================

92

?> </td> </tr> <tr> <td valign=middle> <?echo"<h3><i>Numarul de datagrame receptionate pentru care<br> nu a existat o aplicatie la portul destinatar</i> </h3>"; ?> </td> <td valign=middle> <? $snmp4 = snmpwalk($r , $com ,".1.3.6.1.2.1.7.2"); $snmpna = implode($snmp4); for($i=0; $i<strlen($snmpna); $i++) {echo "<b>$snmpna[$i]</b>";} //444====================================================== ?> </td> </tr> </table> </center> <br><br> <a href=cuprins.html#q> Intoarcere le pagina principala </a> </body> <p> <? echo<<<INF Adresa de email a persoanei de contact pentru probleme de management este: INF; ?> <a href="mailto : cosmin_n_b@yahoo.com">Contact</a> <br><br> <? echo<<<INF Numele dat statiei interogate este: INF; echo $snmpii; ?>

trafic tcp.php <body background="bk\6.gif"> <? $snmpii = snmpget( $r, $com, ".1.3.6.1.2.1.1.5.0"); snmp_set_quick_print(1); // astfel ca datele sa apara fara identificator de exemplu

93

//counter32, timeticks, etc. ?> <h1><u><br><font color=#22943B size=7>Statistica TCP</font></u></h1> <br><a href=cuprins.html#q><font size=2> Intoarcere le pagina principala </font></a> <hr align=left size=10 color=olive> <hr align=left size=12 width=75% color=blue> <br> <center> <table border=3 cellspacing=6 cellpadding=10 bordercolor =#22943B > <tr> <td valign=middle>

<?echo"<h3><i> Numarul de tranzitii ale conexiunilor<br>din Closed in Send la statia $snmpii</i> </h3>(Au trecut din starea Inactiv in stare de functionare)";
?> </td> <td valign=middle> <? $snmp1 = snmpwalk($r ,$com,".1.3.6.1.2.1.6.5"); $snmpcs = implode($snmp1); for($i=0; $i<strlen($snmpcs); $i++) {echo "<b>$snmpcs[$i]</b>";} //111====================================================== ?> </td> </tr> <tr> <td valign=middle>

<?
echo"<h3><i>Numarul de tranzitii ale conexiunilor<br>din Listen in Recive la statia $snmpii</i> </h3>(Au trecut din starea Listen in stare de functionare)"; ?> </td> <td valign=middle> <? $snmp2 = snmpwalk($r ,$com,".1.3.6.1.2.1.6.6"); $snmplr = implode($snmp2); for($i=0; $i<strlen($snmplr); $i++) {echo "<b>$snmplr[$i]</b>";} //222====================================================== ?> </td>

94

</tr> <tr> <td valign=middle> <? echo"<h3> <i>Numarul de conexiuni intrerupte ale statiei $snmpii </i> </h3>"; ?> </td> <td valign=middle> <? $snmp3 = snmpwalk($r ,$com,".1.3.6.1.2.1.6.7"); $snmpci = implode($snmp3); for($i=0; $i<strlen($snmpci); $i++) {echo "<b>$snmpci[$i]</b>";} //333====================================================== ?> </td> </tr> <tr> <td valign=middle> <?echo"<h3><i>Numarul conexiuni TCP active ale statiei $snmpii</i></h3> (conexiuni HTTP, FTP,Telnet sau Mail)";?> </td> <td valign=middle> <? $snmp4 = snmpwalk($r, $com,".1.3.6.1.2.1.6.9"); $snmpCA = implode($snmp4); for($i=0; $i<strlen($snmpCA); $i++) {echo "<b>$snmpCA[$i]</b>";} //444====================================================== = ?> </td> </tr> <tr> <td valign=middle> <? echo"<h3> <i>Segmente TCP receptionate de statia $snmpii </i></h3>"; ?> </td> <td valign=middle> <? $snmp5 = snmpwalk($r ,$com,".1.3.6.1.2.1.6.10"); $snmpR = implode($snmp5); for($i=0; $i<strlen($snmpR); $i++) {echo "<b>$snmpR[$i]</b>";} //555====================================================== ?> </td> </tr>

95

<tr> <td valign=middle> <? echo"<h3><i>Segmente TCP transmise de statia $snmpii </i></h3>"; ?> </td> <td valign=middle> <? $snmp6 = snmpwalk($r ,$com,".1.3.6.1.2.1.6.11"); $snmpT = implode($snmp6); for($i=0; $i<strlen($snmpT); $i++) {echo "<b>$snmpT[$i]</b>";} //666====================================================== ?> </td> </tr> <tr> <td valign=middle> <? echo"<h3><i>Segmente TCP care au necesitat retransmisie </i></h3>"; ?> </td> <td valign=middle> <? $snmp7 = snmpwalk($r ,$com,".1.3.6.1.2.1.6.12"); $snmpRT = implode($snmp7); for($i=0; $i<strlen($snmpRT); $i++) {echo "<b>$snmpRT[$i]</b>";} //777====================================================== ?> </td> </tr> </table> </center> <br><br> <a href=cuprins.html#q> Intoarcere le pagina principala </a> </body> <p> <? echo<<<INF Adresa de email a persoanei de contact pentru probleme de management este: INF; ?> <a href="mailto:cosmin_n_b@yahoo.com">Contact</a> <br><br> <? echo<<<INF Numele dat statiei interogate este:

96

INF; echo $snmpii; ?>

trafic icmp.php <body bgcolor=#A9ACAC> <? $snmpii = snmpget( $r, $com, ".1.3.6.1.2.1.1.5.0"); snmp_set_quick_print(1); // astfel ca datele sa apara fara identificatorul de excounter32, tymetic, etc ?> <h1><u><br><font color=#0D8E96 size=7>Statistica ICMP</font></u></h1> <br><a href=cuprins.html#q><font size=2> Intoarcere le pagina principala </font></a> <hr align=left size=10 color=olive> <hr align=left size=12 width=75% color=blue> <br> <center> <table border=3 cellspacing=6 cellpadding=10 bgcolor=#B59F70 bordercolor =#0D8E96 > <tr> <td > <?echo"<h3><i> Numarul de mesaje ICMP pe care statia $snmpii<br>a incercat sa le emita</i> </h3>(Sunt incluse mesajele eronate)";?> </td> <td align=center width=40> <? $snmp1 = snmpwalk($r ,$com,".1.3.6.1.2.1.5.14"); $snmpout = implode($snmp1); for($i=0; $i<strlen($snmpout); $i++) {echo "<b>$snmpout[$i]</b>";} //111====================================================== ?> </td> </tr> <tr bgcolor=#c59F70> <td > <?echo"<h3><i>Numarul de mesaje ICMP ne emise datorita unor erori</i></h3>"; ?> </td> <td align=center> <? $snmp2 = snmpwalk($r ,$com,".1.3.6.1.2.1.5.15"); $snmpee = implode($snmp2); for($i=0; $i<strlen($snmpee); $i++)

97

{echo "<b>$snmpee[$i]</b>";} //222====================================================== ?> </td> </tr> <tr> <td > <?echo"<h3><i>Numarul de mesaje ICMP receptionate de statia $snmpii</i></h3>(Sunt incluse cele receptionate dar eronate)"; ?> </td> <td align=center> <? $snmp4 = snmpwalk("$r",$com,".1.3.6.1.2.1.5.1"); $snmpin = implode($snmp4); for($i=0; $i<strlen($snmpin); $i++) {echo "<b>$snmpin[$i]</b>";} //444====================================================== ?> </td> </tr> <tr bgcolor=#c59F70> <td r> <?echo"<h3> <i>Numarul de mesaje ICMP receptionate eronat</i></h3>"; ?> </td> <td align=center> <? $snmp5 = snmpwalk($r ,$com,".1.3.6.1.2.1.5.2"); $snmpre = implode($snmp5); for($i=0; $i<strlen($snmpre); $i++) {echo "<b>$snmpre[$i]</b>";} //555====================================================== ?> </td> </tr> <tr bgcolor=#B5aF90> <td > <?echo"<h3><i>Numarul de mesaje ICMP de tip Echo emise</i></h3>"; ?> </td>

<td align=center> <? $snmp7 = snmpwalk($r ,$com,".1.3.6.1.2.1.5.21"); $snmprn = implode($snmp7); for($i=0; $i<strlen($snmprn); $i++) {echo "<b>$snmprn[$i]</b>";}

98

//777====================================================== ?> </td> </tr> <tr bgcolor=#B5aF90> <td r> <?echo"<h3><i>Numarul de mesaje ICMP de raspuns la cele<br>de tip Echo receptionate </i></h3>"; ?> </td> <td align=center> <? $snmp8 = snmpwalk($r ,$com,".1.3.6.1.2.1.5.9"); $snmprn = implode($snmp8); for($i=0; $i<strlen($snmprn); $i++) {echo "<b>$snmprn[$i]</b>";} //888====================================================== ?> </td> </tr> </table> </center> <br><br><a href=cuprins.html#q> Intoarcere le pagina principala </a> </body> <p> <? echo<<<INF Adresa de email a persoanei de contact pentru probleme de management este: INF; ?> <a href="mailto:cosmin_n_b@yahoo.com">Contact</a> <br><br> <? echo<<<INF Numele dat statiei interogate este: INF; echo $snmpii; ?>

interfete.php <body bgcolor=#19938C> <? function Translator($a)

99

{$a=str_replace("4D", "M", $a); $a=str_replace("41", "A", $a); $a=str_replace("61", "a", $a); $a=str_replace("53", "S", $a); $a=str_replace("54", "T", $a); $a=str_replace("43", "C", $a); $a=str_replace("50", "P", $a); $a=str_replace("4C", "L", $a); $a=str_replace("6F", "o", $a); $a=str_replace("70", "p", $a); $a=str_replace("62", "b", $a); $a=str_replace("63", "c", $a); $a=str_replace("6B", "k", $a); $a=str_replace("20", ".", $a); $a=str_replace("69", "i", $a); $a=str_replace("6E", "n", $a); $a=str_replace("72", "r", $a); $a=str_replace("66", "f", $a); $a=str_replace("74", "t", $a); $a=str_replace("65", "e", $a); $a=str_replace("66", "f", $a); $a=str_replace("65", "e", $a); $a=str_replace("56", "V", $a); $a=str_replace("49", "I", $a); $a=str_replace("31", "1", $a); $a=str_replace("30", "0", $a); $a=str_replace("46", "F", $a); $a=str_replace("73", "s", $a); $a=str_replace("74", "t", $a); $a=str_replace("00", "....", $a); $a=str_replace("2F", "/", $a); $a=str_replace("45", "E", $a); $a=str_replace("68", "h", $a); $a=str_replace("64", "d", $a); $a=str_replace("75", "u", $a); $a=str_replace("6C", "l", $a); $a=str_replace("2D", "-", $a); $a=str_replace("", "", $a); $a=str_replace("", "", $a); $a=str_replace("", "", $a); $a=str_replace("", "", $a); //se mai pot adauga conversii $a=str_replace("", "", $a); echo "<font size=2>$a</font>"; } $snmpii = snmpget( $r, $com, ".1.3.6.1.2.1.1.5.0"); snmp_set_quick_print(1); // astfel ca datele sa apara fara identificatorul de excounter32, tymetic, etc ?> <br><u><h1><font color=#ca9875 size=7>Interfete </font></h1></u><br><br> <a href=cuprins.html#q><font size=2> Intoarcere la pagina principala </font></a> <hr align=left size=10 color=olive> <hr align=left size=12 width=75% color=blue> <br><br> <center> <table border=3 cellspacing=6 cellpadding=10 bordercolor =#aa5845 > <tr align= center bgcolor=#aa5845> <td ><font size=4><b>Numar interfata</b><br></font></td> <td ><font size=4><b>Status</b><br></font></td> <td ><font size=4><b>Numita</b><br></font></td> <td width=400><font size=4><b>Date informative</b><br></font></td> </tr> <tr bgcolor=#99CCdd> <td align=center> <? $snmp1 = snmpget("$r",$com,".1.3.6.1.2.1.2.2.1.1.1"); print_r($snmp1); ?>

100

</td> <td align=center> <? $snmp1s = snmpget("$r",$com,".1.3.6.1.2.1.2.2.1.8.1"); if ($snmp1s==1) echo "up"; else echo"<font color=#ff0000>down</font>"; ?> </td> <td > <? $snmp11 = snmpget("$r",$com,".1.3.6.1.2.1.2.2.1.2.1"); $snmp12 = snmpget("$r",$com,".1.3.6.1.2.1.2.2.1.3.1"); Translator($snmp11); echo"<br>"; echo"<br>"; if($snmp12==24){echo " <b>= Bucla locala creata software</b>";} elseif ($snmp12==6){echo "<b>= Placa de retea</b>";} elseif ($snmp12==23){echo "<b>= Modem</b>";} else echo "<b>O interfata</b>"; // !!!!! tipurile de interfete si numarul de referinta se gasesc in // IANAifType-MIB ?> </td> <td width=400> <? $snmp13 = snmpget("$r",$com,".1.3.6.1.2.1.2.2.1.4.1"); $snmp14 = snmpget("$r",$com,".1.3.6.1.2.1.2.2.1.10.1"); $snmp15 = snmpget("$r",$com,".1.3.6.1.2.1.2.2.1.16.1"); $snmp16 = snmpget("$r",$com,".1.3.6.1.2.1.2.2.1.14.1"); $snmpMAC = snmpget("$r",$com,".1.3.6.1.2.1.2.2.1.6.1"); echo "Dimensiunea maxima a datagramelor IP transferabile<b> MTU = $snmp13 octeti"; echo "</b><p>Traficul de iesire =<b>$snmp14 octeti</b><p>"; echo "Traficul de intrare = <b>$snmp15 octeti<p></b>"; echo "Octeti primiti eronati =<b>$snmp16 </b>"; echo "<p><font size=1>Adresa fizica $snmpMAC</font>"; //111====================================================== ?> </td> </tr> <tr bgcolor=#99BBCC> <? $snmp_2 = snmpwalkoid($r, $com, ".1.3.6.1.2.1.2.2.1.1"); for (reset($snmp_2) and $j=1; $i = key($snmp_2) and $j=2;

101

next($snmp_2) and $j++) {$i2[$j]= str_replace("iso", "1", $i);} // Necesar pentru extragerea OID a // ultimei interfete active ?> <td align=center> <? $snmp2 = snmpget("$r",$com,$i2[2]); print_r($snmp2); ?> </td>

<!--*************************************Status***************************************************--> <? $snmp_2s = snmpwalkoid($r, $com, ".1.3.6.1.2.1.2.2.1.8"); for (reset($snmp_2s) and $j=1; $i = key($snmp_2s) and $j=2; next($snmp_2s) and $j++) {$i2s[$j]= str_replace("iso", "1", $i);} ?> <td align=center> <? $snmp2s = snmpget($r,$com,$i2s[2]); if ($snmp2s==1) echo "up"; else echo"<font color=#ff0000>down</font>"; ?> </td> <!--************************************Numita****************************************************--> <? $snmp_21 = snmpwalkoid($r, $com, ".1.3.6.1.2.1.2.2.1.2"); for (reset($snmp_21) and $j=1; $i = key($snmp_21) and $j=2; next($snmp_21) and $j++) {$i21[$j]= str_replace("iso", "1", $i);} ?> <? $snmp_22 = snmpwalkoid($r, $com, ".1.3.6.1.2.1.2.2.1.3"); for (reset($snmp_22) and $j=1; $i = key($snmp_22) and $j=2; next($snmp_22) and $j++) {$i22[$j]= str_replace("iso", "1", $i);} ?> <td > <? $snmp21 = snmpget($r,$com,$i21[2]); $snmp22 = snmpget($r,$com,$i22[2]); Translator($snmp21); echo"<br>"; echo"<br>";

102

if($snmp22==24){echo "<b>= Bucla locala creata software</b>";} elseif ($snmp22==6){echo "<b>= Placa de retea</b>";} elseif ($snmp22==23){echo "<b>= Modem</b>";} else echo "<b>O interfata $snmp22</b>"; ?> </td> <!--******************************Date informative*********************************************--> <? $snmp_23 = snmpwalkoid($r, $com, ".1.3.6.1.2.1.2.2.1.4"); for (reset($snmp_23) and $j=1; $i = key($snmp_23) and $j=2; next($snmp_23) and $j++) {$i23[$j]= str_replace("iso", "1", $i);} ?> <? $snmp_24 = snmpwalkoid($r, $com, ".1.3.6.1.2.1.2.2.1.16"); for (reset($snmp_24) and $j=1; $i = key($snmp_24) and $j=2; next($snmp_24) and $j++) {$i24[$j]= str_replace("iso", "1", $i);} ?> <? $snmp_25 = snmpwalkoid($r, $com, ".1.3.6.1.2.1.2.2.1.10"); for (reset($snmp_25) and $j=1; $i = key($snmp_25) and $j=2; next($snmp_25) and $j++) {$i25[$j]= str_replace("iso", "1", $i);} ?> <? $snmp_26 = snmpwalkoid($r, $com, ".1.3.6.1.2.1.2.2.1.14"); for (reset($snmp_26) and $j=1; $i = key($snmp_26) and $j=2; next($snmp_26) and $j++) {$i26[$j]= str_replace("iso", "1", $i);} ?> <? $snmp_2M = snmpwalkoid($r, $com, ".1.3.6.1.2.1.2.2.1.6"); for (reset($snmp_2M) and $j=1; $i = key($snmp_2M) and $j=2; next($snmp_2M) and $j++) {$i2M[$j]= str_replace("iso", "1", $i);} ?> <td width=400> <? $snmp23 = snmpget("$r",$com,$i23[2]); $snmp24 = snmpget("$r",$com,$i24[2]); $snmp25 = snmpget("$r",$com,$i25[2]); $snmp26 = snmpget("$r",$com,$i26[2]);

103

$snmpMAC = snmpget("$r",$com,$i2M[2]); echo "Dimensiunea maxima a datagramelor IP transferabile<b> MTU = $snmp23 octeti"; echo "</b><p>Traficul de iesire =<b>$snmp24 octeti</b><p>"; echo "Traficul de intrare = <b>$snmp25 octeti<p></b>"; echo "Octeti primiti eronati =<b>$snmp26 </b>"; echo "<p><font size=1>Adresa fizica $snmpMAC</font>"; //222====================================================== ?> </td> </tr> </table> </center> <br><br> <a href=cuprins.html#q> Intoarcere le pagina principala </a> </body> <p> <? echo<<<INF Add Email a persoanei de contact pentru probleme de management este: INF; ?> <a href="mailto:cosmin_n_b@yahoo.com">Contact</a> <br><br> <? echo<<<INF Numele dat statiei interogate este: INF; echo "$snmpii" ?>

104

Abrevieri
A
ASN.1
Abstract Syntax Notation One Sintaxa Abstract de Notaie Unu

B
BER
Basic Encoding Rules Reguli de Codificare de Baz.

C
CM CP
Comutator de Mesaje

Comutator de Pachete

D
DoD
Departament of Defence Departamentul de aprare al SUA

F
FTP
File Transfer Protocol Protocol de Transfer al Fiierelor

I
IP
Internet Protocol Protocolul Internet Reele Digitale cu Servicii Integrate Identificator de Reea

ISDN
Integrated Services Digital Networks

IR IS ISO
International Organization for Standardization

Identificatorul de Sistem Organizaia Standardizare Internaional pentru

L
LAN
Local Area Network Reele Locale

M
MAN
Metropolitan Area Network Reea Metropolitan

105

MIB
Management Information Base

Baz de Informaii de Management Unitate Maxim de Transfer

MTU
Maximum Transfer Unit

O
OID
Object Identifier Identificatorul de Obiect Model considerat referin

OSI
Open System Inteconection

P
PDU
Protocol Data Unit Unitate de Protocol de Date Reele Publice de Date

PDN
Public Data Network

PHP
Personal Homepage Hypertext Preprocessor Limbaj de programare PHP

R
RFC
Request for Comment Documente lansate de IETF, parte din ele devenind standarde

S
ScTP
Screened UTP UTP Ecranat

SDU
Service Data Unit Unitate de Serviciu de Date Protocol Simplu de Monitorizare a Simple Gateway Monitoring Protocol Porturilor Protocol Simplu de Simple Network Management Protocol Reelei Structura Structure of Management Information Informaiei Protocol Simplu de Transfer Simple Mail Transfer Protocol Potei Electronice al de Management a Management al

SGMP SNMP SMI SMTP SMP


Simple Management Protocol

Protocolul Simplu de Management Perechi Torsadate Ecranate

STP
Shielded Twisted Pair

106

T
TCP
Tranmission Control Protocol Protocol de Control al Transmisiei Model considerat referin

TCP\IP

U
UDP
User Datagram Protocol Protocolul Datagramelor de Utilizator

UTP
Unshielded Twisted Pair Perechi Torsadate Neecranate

W
WAN
Whide Area Network) Reea Larg Rspndita Geografic

107

Bibliografie
1. William Stallings 2. William Stallings Third edition 3. Andrew S. Tanenbaum 4. Tudor Sorin sub Windows 6. Cursul Cisco Networking Academy v3.0" 7. RFC 1156 - Management Information Base for network management of TCP/IP-based internets Computer Networks. 3rd edition Crearea i programarea paginilor Web Limbajele MySQL i PHP. Programare Web Data and Computer Communication. Fifth edition SNMP, SNMPv2, SNMPv3 and RMON 1 and 2.

5. Gheorghe Marin

108

S-ar putea să vă placă și