Tinklu duomenu srautu analize
5 (100%) 1 vote

Tinklu duomenu srautu analize

1. Įvadas 6

2. Analitinė apžvalga 8

2.1. Duomenų srautų informacijos surinkimo metodai 8

2.2. Eksportuojamų duomenų saugojimo ir analizės priemonės 14

2.3. Duomenų paruošimas vartotojui 17

3. Specifikacija 19

3.1. Projektuojamas objektas 19

3.2. Objekto paskirtis 19

3.3. Vykdomos funkcijos 19

3.4. Reikalavimai aparatūrinei posistemei 19

3.5. Reikalavimai informacinei posistemei 20

3.6. Reikalavimai vartotojo sąsajai 20

3.7. Reikalavimai programinei įrangai 21

3.8. Reikalavimai sistemos aptarnavimui 21

3.9. Reikalavimai dokumentacijai 22

4. Aparatūrinė posistemė 23

4.1. Aparatūrinės posistemės struktūrinė schema 23

4.2. Aparatūrinės įrangos parinkimas ir pagrindimas 24

4.2.1. Srautą generuojantis įrenginys 24

4.2.2. Srautą priimantis ir analizuojantis įrenginys 24

4.2.3. Asmeninis kompiuteris 25

4.2.4. Papildoma tinklo įranga 25

4.2.4.1. Generuojančio ir analizuojančio įrenginų sujungimas 26

4.2.4.2. Kitų komponentų sujungimas 26

4.2.4.3. Jungčių elementai ir kiti papildomi įrankiai 26

4.2.5. Nepertraukiamos srovės šaltinis 27

4.3. Kompiuterinės sistemos architektūros parinkimas 27

4.4. Kompiuterinio tinklo jungimas 27

4.4.1. Kompiuterinio tinklo topologijos parinkimas 27

4.4.2. Kompiuterinio tinklo planas 27

5. Informacinė posistemė 28

5.1. Informacijos srautų analizė ir projektavimas 28

5.1.1. NetFlow duomenų kaupimas 30

5.1.2. Pirminis NetFlow srautų apdorojimas 31

5.1.3. Antrinis NetFlow srautų apdorojimas 32

5.1.4. Ataskaitų pateikimas 34

5.1.4.1. Realaus laiko ataskaitos 35

5.1.4.2. Laiko juostos ataskaitos 37

5.2. Duomenų bazės projektavimas 38

5.2.1. Duomenų bazės lentelės 39

5.2.2. Lentelių laukelių reikšmės 39

6. Vartotojo sąsajos posistemė 41

6.1. Vartotojo sąsajos funkcijos 42

6.2. Vartotojo sąsajos planas 42

6.2.1. Realaus laiko posistemė 43

6.2.1.1. Realaus laiko posistemės schema 43

6.2.1.2. Realaus laiko posistemės vartotojo sąsaja 43

6.2.2. Laiko juostos posistemė 47

6.2.2.1. Laiko juostos posistemės schema 47

6.2.2.2. Laiko juostos posistemės vartotojo sąsaja 48

6.2.3. Archyvo peržiūros posistemė 51

7. Eksperimentinė dalis 52

7.1. Srautų duomenų saugojimo naudojant DBVS eksperimentas 52

7.1.1. Duomenų bylų apdorojimo programos eksperimentas 52

7.1.1.1. Duomenų bylų analizės srautams Lietuvoje eksperimentas 53

7.1.2. Duomenų kėlimo į MySQL DB eksperimentas 53

7.1.2.1. Lietuvos srautų duomenų kėlimo į DB eksperimentas 54

7.1.3. Programų apjungimo eksperimentas 54

7.1.3.1. Apjungimo programos „afprt“ eksperimentas 55

7.2. Eksperimento rezultatai 56

8. Išvados Error! Bookmark not defined.

9. Literatūros sąrašas 58

Anotacija

Darbo tikslas sukurti vieningą kompiuterinių tinklų duomenų srautų stebėjimo ir analizės sistemą LitNET akademinio tinklo valdymo centrui. Sistemos tikslas yra pateikti duomenų srautų ataskaitas vartotojui parankiu būdu, atspindėti padėtį tinkle bei saugoti tinklo srautų duomenis nuoseklesnei analizei.

Annotation

The main goal of this project is to create one centrialized system, developed to track computer data network flows for LitNET academical networks NOC. The main aim for this system is to represent network state in easy understandable form, reflect the situation in network and store data flows for further analysis.

1. Įvadas

Interneto paslaugų tiekimu užsiimančioms organizacijoms aktuali problema yra duomenų, kuriuos siunčia ir gauna klientai, apskaita. Šis projektas yra skirtas duomenų srautų analizei bei jų pateikimui vartotojui. Organizacija, kuriai yra ruošiamas projektas, yra LitNET (Lietuvos mokslo ir studijų kompiuterių tinklas). Turint didelį tinklą (šiuo atveju išdėstytą visoje Lietuvos Respublikos teritorijoje), aktualu žinoti, kokį duomenų srautą sunaudoja viena ar kita organizacija, universitetai, jų padaliniai ar mokyklos, kurios taip pat prijungtos prie LitNET tinklo.

LitNET tinklas įsteigtas 1991 metais ir šiuo metu jis pilnai funkcionuoja. Ruošiant projektą reikia išanalizuoti esamą tinklo struktūrą ir įvertinti jo galimybes tam, kad pilnai ir efektyviai išnaudoti dabartinę infrastruktūrą bei, minimaliai ją pakeičiant, pritaikyti duomenų srautams matuoti ir rezultatam apdoroti. Naudojantis analizės rezultatais, reikia atrasti tinkamiausią mechanizmą, parinkti bei suderinti tarpusavyje atitinkamas technologijas jam įgyvendinti.

Pirmiausia reikia parinkti duomenų srautų eksportavimo metodą bei technologiją ar Interneto protokolus, kuriuos naudos sistema tarnybiniams duomenims perduoti. Visa tai ir papildomos duomenų surinkimo programinės įrangos parinkimas aprašoma analitinėje apžvalgoje. Tinklo plėtra, atnaujinimas, naujų protokolų diegimas bei kiti patobulinimai neturi įtakoti sistemos darbą, todėl parenkamas standartizuotas, visuotinai pripažintas ir nuolat tobulinamas metodas. Jis taip pat minimaliai išnaudoja aparatūrinės įrangos bei tinklo pralaidumo resursus, kad kuo mažiau įtakoti viso tinklo darbą. Surinkimui naudojama programinė įranga parenkama taip, kad jos galimybių pakaktų sistemai realizuoti, tačiau ji nebūtų per sudėtinga ir tokiu būdų būtų naudojama kuo mažiau duomenis apdorojančios įrangos resursų. Parenkant programinę įrangą taip pat atsižvelgiama į jos kainą, todėl geriausia įranga – nemokama įranga.

Srautų matavimo duomenis reikia
išgauti iš tuos srautus maršrutizuojančių bei komutuojančių įrenginių. Srautų informacijos saugojimui ir apdorojimui taip pat naudojama specifinė aparatūrinė įranga. Visi šie sistemos elementai bei pati tinklo jungimo schema aptariami aparatūrinės posistemės projekte. Aparatūrinė įranga ir tinklo struktūra parenkama taip, kad tenkintų atitinkamo eksportavimo metodo įdiegimui keliamus reikalavimus. Aparatūra ir tinklo topologija yra suderinama su visais metodo pritaikymui reikalingais Interneto standartais. Informaciją surenkančios aparatūrinės įrangos techniniai parametrai parenkami taip, kad serveris būtų pakankamai spartus ir atliekant analizę nebūtų užlaikymų.

Už metodo ir eksportuojamų duomenų saugojimą, specifikacijos sudarymą bei specifinės aparatūros parinkimo projektą atsakingas projekto bendraautorius Vytautas Bruzgulis.

Informacija apie praėjusius duomenų srautus turi būti surenkama, išanalizuojama ir saugoma. Informacinės posistemės projekte aprašoma viskas, kas susiję su analizuojamos informacijos apdorojimu ir saugojimu. Surenkamų duomenų formatą reglamentuoja pasirinktas srautų eksportavimo metodas, todėl jis tiesiogiai įtakoja ir analizavimo mechanizmą. Pagal pradinį formatą išrenkama reikalinga informacija ir vėliau patalpinama į duomenų struktūras, kurių turinys analizuojamas ir sistemizuojamas. Galutinė informacija išsaugoma taip, kad vėliau ją būtų galima patogiai pasiimti, todėl saugojimui naudojama duomenų bazė. Jos struktūra parenkama taip, kad išrinkti reikiamus duomenis būtų patogu ir tai reikalautų kuo mažiau sistemos resursų.

Išsaugotus rezultatus reikia pateikti jais besidominčiam vartotojui, jam patogia forma, todėl reikalinga nesudėtinga ir kartu daug galimybių leidžianti vartotojo sąsaja, kurios projektas pateikiamas vartotojo sąsajos dalyje. Ataskaitų pateikimo vartotojui mechanizmas projektuojamas kuo mažiau priklausomas nuo vartotojo naudojamos aparatūrinės bei programinės įrangos, operacinės sistemos. Vartotojas turi galimybę keisti užklausos parametrus ir kuo lanksčiau manipuliuoti gautais rezultatais, kaip to reikalaujama specifikacijoje.

Eksperimentinėje dalyje aprašoma vienos konkrečios projekto funkcijos realizacija su konkrečiais duomenimis ir laukiamais konkrečiais rezultatais. Vykdomas pirminės duomenų analizės ir eksportavimo į duomenų bazę eksperimentas.

Eksportuojamos informacijos surinkimą, saugojimą, pateikimą vartotojui bei eksperimentinę dalis atliko projekto bendraautorius Vaidotas Januška.

2. Analitinė apžvalga

Tinklų duomenų srautų analizės ir apskaitos sistema atlieka keletą pagrindinių funkcijų: duomenų srautų informacijos surinkimas, jos analizė, apdorojimas, saugojimas ir pateikimas vartotojui. Įgyvendinant tokią sistemą, svarbiausia yra teisingai parinkti reikiamas technologijas, įgalinančias atlikti kiekvieną funkciją bei optimaliai jas visas sujungti į vientisą mechanizmą.

Sistemos funkcijoms atlikti reikalingi trys pagrindiniai komponentai: duomenų srautų informaciją eksportuojantis įrenginys, šią informaciją priimantis, apdorojantis, saugojantis bei pateikiantis vartotojams įrenginys ir vartojo įrenginys, skirtas rezultatų apžvalgai. Visų trijų tipų įranginių skaičius gali būti didesnis, negu vienas, todėl esant reikalui, informacija turi būti atitinkamai paskirstyta tarp jų, kad išvengti pakartotino tos pačios informacijos apdorojimo [CESNET].

2.1. Duomenų srautų informacijos surinkimo metodai

Norint gauti informaciją apie tinklu praėjusius duomenų srautus, reikalingas metodas jai apskaičiuoti bei perduoti iš srautus praleidinėjančio įrenginio į informaciją surenkantį.

Kolkas vienas iš populiariausių metodų, naudojamų tinklo resursų panaudojimui įvertinti yra serverių ir terminalų žurnalų failų analizavimas. Šis metodas nors ir populiarus, turi svarbų trūkumą: jo taikymas apribotas atitinkamų tinklo elementų registravimo galimybių. Be to, registracijos žurnalai nesuteikia galimybės įvertinti paslaugų diferenciacijos. Taigi, toks būdas nėra pakankamai lankstus šiuolaikinėms tinklo topologijoms ir paslaugų įvairovei analizuoti [IPmeter].

Šiuo metu Internete vyrauja dviejų tipų tinklo stebėjimo bei analizės metodologijos: aktyvi ir pasyvi [SLAC].

Aktyviai stebint tinklo parametrus, į tinklą įterpiami testiniai paketai arba tokie paketai siunčiami serveriams bei aplikacijoms. Pagal juos vėliau yra atliekami matavimai ir gaunama informacija apie tinklo būklę. Toks metodas sukuria papildomą srautą, todėl tikrasis pralaidumas arba jo parametrai nėra korektiški . Aktyvų metodą tikslinga naudoti tuo atveju, kai reikia pamatuoti tinklo pralaidumo parametrus [SLAC]. Šio projekto esmė yra matuoti tinklu praėjusių duomenų kiekius, todėl aktyvų metodą naudoti netikslinga. Be to, aktyvaus metodo sukurtas papildomas srautas turės įtakos bendram srauto kiekiui, o tai nėra pageidautina šioje situacijoje.

Pasyvios metodologijos esmė yra ta, kad įrenginiai, naudojami srautams stebėti, nesikiša į paties srauto tėkmę, o tiesiog analizuoja arba tiesiog skaičiuoja praeinančius paketus. Tokie įrenginiai gali būti specialios paskirties įrenginiai, kaip pvz. paketų gaudiklis (Sniffer), arba jie gali būti įterpiami į sudėtingesnius įrenginius, kaip maršrutizatorius, komutatorius ar net
galinius įrenginius. Tokiems matavimams yra sukurtos specialios technologijos, populiariausios iš kurių yra puotolinis stebėjimas RMON, paprastas tinklo stebėjimo protokolas (SNMP) bei NetFlow. Pasyviai apklausiant įrenginius nekuriami papildomi tinklo srautai, todėl jų poveikis yra minimalus [SLAC].

Tokio tipo metodus rekomenduojama naudoti norint surasti problemas tinkle (pvz. identifikuoti neveikiančius tinklo segmentus) bei tinklu praėjusios informacijos kiekiams matuoti [SLAC]. Taigi, pasyvaus matavimo metodologija geriau atitinka sistemai keliamus reikalavimus.

2.1.1. RMON metodas

Nuotolinis valdymas (Remote MONitoring) – tai standartizuotas tinklo monitoringo protokolas, įgalinantis įvairių tinklo įrenginių apsikeitimą tinklo stebėjimo informacija su monitoringo sistemomis. RMON suteikia tinklo administratoriams laisvės pasirenkant tinklo valdymo užklausas pagal tai, kokio tipo informacijos apie tinklą jie nori. [RMON]

RMON specifikuotas jo vartotojų bendruomenės padedant IETF. 1995 metais jis tapo standartu, kaip RFC 1757. Pirmojoje RMON versijoje buvo numatytos devynios tinklo parametrų, kurios paprastai reikalingos adminstratoriams, grupės [RMON].

Pagrindinis RMON trūkumas yra tai, kad jis nepateikia labai reikalingos informacijos apie tinklo OSI lygmenį (Network Layer) [RMON2].

1997 metais išleistas RFC 2021 specifikuoja naują, antrąją RMON versiją, kuri praplečia senąjį standartą dešimčia naujų grupių, nurodančių, kaip gauti duomenis iš tinklo lygmens [RMON2].

Nors antroji RMON versija ir suteikia žymiai daugiau galimybių matuoti įvairius tinklo parametrus, jos darbo mechanizmas išliko toks pats, kaip ir pirmosios versijos, t.y. užklausti įmanoma tik apibrėžtų grupių tipo informacijos [RFC2021].

Nors RMON specifikacijoje ir yra numatyti būdai dalinai matuoti ir apsikeisti informacija apie individualaus IP adreso sugeneruotus duomenų srautus, ateityje to gali nepakakti, todėl renkantis RMON metodą gali atsirasti sunkumų sprendžiant su tinklo praplečiamumu bei naujų technologijų diegimu susijusias problemas.

2.1.2. SNMP metodas

Paprastas Tinklo Valdymo Protokolas (SNMP) – tai aplikacijų lygmens protokolas, kuris palengvina valdymo informacijos apsikeitimą tarp tinklo įrenginų. Šis protokolas priklauso perdavimo kontrolės protokolo/Interneto protokolo (TCP/IP) protokolų šeimai. SNMP leidžia tinklo administratoriams valdyti tinklo našumo parametrus, rasti ir spręsti problemas tinkle bei planuoti tinklo praplėtimą [CISCO-SNMP].

Tinklo valdymo sistema, paremta SNMP sudaryta iš dviejų pagrindinių elementų tipų: vadovų ir agentų. Vadovas – tai tarsi valdymo pultas, kurio pagalba tinklo administratorius atlieka tinklo valdymo funkcijas. Agentai suteikia prieigą prie konkretaus įrenginio, kuris yra valdomas per atitinkamą sąsają. Valdomi įrenginiai: komutatoriai, maršrutizatoriai, serveriai bei kita įranga turi parametrų rinkinius, vadinamus objektais. Objektais gali būti techninės įrangos, konfigūraciniai, našumo ar kitos statistikos parametrai bei kita, kas tiesiogiai susiję su konkretaus įrenginio darbu. Šie objektai yra surūšiuoti bei išdėstyti virtualioje duomenų bazėje, vadinamoje valdymo informacijos baze (MIB). SNMP suteikia galimybę vadovams ir agentams komunikuoti, tam, kad apsikeisti valdymo informacijos bazėje esančių objektų reikšmėmis [SNMP-ARCH].

2.1 pav. SNMP architektūra

Siekiant padaryti SNMP kuo paprastesniu protokolu, į jo standartinę specifikaciją įtraukta ribota komandų ir atsakymų aibė. Valdančioji sistema, norėdama gauti konkretaus objekto arba jų aibės reikšmes, siunčia komandą Get arba GetNext. Norint pakeisti kokio nors objekto reikšmę, iš valdančiosios sistemos reikia siųsti komandą Set.Valdomas agentas gali siųsti įvykio pranešimą (trap) valdančiajai sistemai, taip nurodydamas iš anksto apibrėžtos sąlygos tenkinimą, pvz.: viršijus atitinkamo parametro nustatytą maksimalią leistiną reikšmę. Pagrindinės penkios SNMP operacijos yra tokios [SNMP-ARCH]:

• get (objekto reikšmės gavimo užklausa)

• get next (paeiliui einančių objektų aibės reikšmių gavimo užklausa)

• get response (atsakymas į get arba get next užklausas)

• set (objekto reikšmės pakeitimo operacija)

• trap (asinchroninė pranešimo siuntimo operacija)

SNMP užklausoms siųsti naudojama TCP/IP protokolų šeima. Kadangi SNMP negarantuoja patikimo duomenų persiuntimo, užklausoms naudojamas vartotojo datagramų transportinio lygmens protokolas (UDP). Pagrindinės SNMP transportavimo sąvybės [SNMP-ARCH]:

• Agentai klausosi UDP 161 porto

• Atsakymai siunčiami atgal užklausiusiajai valdančiajai sistemai iš dinamiškai parinkto porto, bet dauguma agentų tam taip pat naudoja 161 portą.

• Didžiausias SNMP pranešimas gali būti ne didesnis, kaip didžiausias UDP paketas (65507 baitai)

• Visi SNMP siunčiami paketai turi būti ne mažesni, kaip 484 baitai

• Asinchroniškai siunčiami įvykių pranešimai gaunami per 162 portą.

• UDP paketai tinkamesni tokiems persiuntimams, negu TCP, nes UDP reikalavimai tinklui yra minimalūs

• Tiek agentai, tiek valdančios sistemos yra patys atsakingi už klaidų kontrolę ir atstatymą

SNMP, kaip ir kitų Interneto srautus reguliuojančių protokolų standartus sudarinėja Interneto inžinerijos užduočių grupė (IETF) [SNMP]. Šiuo
IETF yra standartizavusi tokias SNMP versijas:

• SNMP versija 1 (SNMPv1) yra dabartinė standartinė SNMP versija. Ji aprašyta RFC 1157 ir yra galutinis IETF standartas [SNMP].

• SNMP versija 2 (SNMPv2) dažnai vadinama bendrijų eilutėmis paremtu SNMP. Techniškai ši SNMP versija vadinama SNMPv2c. Standartas aprašytas dokumentuose: RFC 1905, RFC 1906 ir RFC 1907 [SNMP].

• SNMP versija 3 (SNMPv3) yra naujausia SNMP versija. Ji standartizuota dokumentuose: RFC 2271, RFC 2272, RFC 2273, RFC 2274 ir RFC 2275 [SNMPv3-RFC].

Tiek 1 ir 2 SNMP versijos yra pakankamai panašios, tačiau SNMPv2 turi keletą naujų patobulinimų, tokių kaip papildomos protokolo operacijos (get bulk, notification, inform, report). SNMPv3 be viso to yra pagerintos saugumo bei nuotolinio konfigūravimo galimybės [SNMP-DIFF].

SNMP, kaip protokolas, teikia visas galimybes pilnaverčiam tinklo (tame tarpe ir jo pralaidumo) stebėjimui: protokolas paprastas (tarnybiniais pranešimais tinklas apkraunamas minimaliai, greitas apsikeitimas duomenimis, ribota užklausų tipų aibė nesąlygoja painiavos), tiek sinchroninių, tiek asinchroninių užklausų buvimas suteikia galimybę sukurti praktiškai bet kokio tipo duomenų apsikeitimą, SNMPv3 saugumo patobulinimai užtikrina, kad duomenų negalės suklastoti tretieji asmenys, egzistuoja nemokamų SNMP produktų, įskaitant ir paties protokolo realizacijas. Tačiau protokolas turi ir neigiamų sąvybių: UDP transportas, nors ir greitas, negarantuoja patikimo duomenų perdavimo, todėl jie gali būti ir prarandami, asinchroninių pranešimų mechanizmas nėra pakankamai lankstus, SNMP sukurtas kuo platesniam panaudojimui, todėl norint jį pritaikyti specializuotoms užduotims, reikės daugiau resursų, nei naudojant specializuotas aplikacijas ar protokolus.

2.1.3. NetFlow metodas

NetFlow technologija suteikia bazines galimybes matavimams atlikti, įskaitant tinklo srautų apskaitą, tinklo paslaugų apmokestinimą konkrečiam vartotojui, tinklo planavimą, paskirstytų paslaugos draudimo (DDOS) atakų stebėjimą, tinklo stebėjimą tiek paslaugų tiekėjams, tiek klientams. NetFlow teikia vertingą informaciją apie tai, kas naudojasi tinklu, kokios programos naudojamos, kada tinklas išnaudojamas ir kokie srautai perduodami [NETFLOW].

Tinklo srovė (flow) – tai viena kryptimi nuo konkretaus siuntėjo iki konkretaus gavėjo praėjusių duomenų paketų seka. Tinklo srovės identifikuojamos pagal siuntėjo ir gavėjo IP adresus bei transportinio lygmens protokolo portų numerius. NetFlow taip pat panaudoja IP protokolo tipo, paslaugos tipo (ToS) ir sąsajos, per kurią gaunami duomenys identifikatoriaus laukus, srovėms identifikuoti [NETFLOW1].

Nepalaikantys NetFlow tinklo įrenginiai kiekvieną atėjusį paketą analizuoja atskirai. NetFlow pagalba, įvairūs parametrai taikomi tik pirmajam srovės paketui. Iš pirmojo paketo gauta informacija yra panaudojama NetFlow atsargos atminties įrašui sudaryti. Po to sekantys tos pačios srovės paketai apdorojami pagal vieną ir tą pačią politiką, taip mažiau apkraunant tinklo įrenginį [NETFLOW1].

Naudojant NetFlow galima realizuoti keletą svarbių klientams aplikacijų [NETFLOW1]:

• Apskaita/Apmokestinimas – NetFlow duomenys leidžia atlikti tikslius matavimus (informaciją apie srovę sudaro IP adresai, paketų ir baitų kiekiai, laiko žymės, paslaugos tipo numeris, portų numeriai ir kt.) lanksčiai ir detalizuotai resursų panaudojimo apskaitai. Paslaugų tiekėjai gali panaudoti šio tipo informaciją pereinant nuo vienodo apmokestinimo prie sudėtingesnių apmokestinimo mechanizmų, paremtų dienos laiko, pralaidumo panaudojimo, konkrečios programos panaudojimo, paslaugos kokybės ir kt. Parametrų apmokestinimo. Verslo įmonės gali panaudoti šio tipo informaciją atskirų departamentų apmokestinimui arba atskirų resursų panaudojimo kaštams skaičiuoti.

• Tinklo planavimas ir analizė – NetFlow duomenys suteikia svarbią informaciją sudėtingiems įrankiams, kaip pvz. Netsys, kad optimizuoti tiek strateginį tinklo planavimą (su kuriais kaimynais sudarinėti tarpusavio ryšius, pagrindinio tinklo planavimą, maršrutizavimo politikos planavimą), tiek taktinius tinklo inžinerijos sprendimus (pvz. linijos pralaidumo padidinimas) – taip minimizuojant visą tinklo valdymo kainą bei padidinant tinklo našumą, pralaidumą ir patikimumą.

• NetFlow monitoringas – NetFlow duomenys suteikia galimybes ilgalaikam, artimam realaus laiko monitoringui. Srovėmis paremti analizės metodai gali būti naudojami, kad grafiškai pavaizduoti tiek susijusius su individualiais maršrutizatoriais srautus, tiek viso tinklo srautus, taip palengvinant galimų problemų atpažinimą.

• Aplikacijų monitoringas ir profiliavimas – NetFlow duomenys leidžia tinklo administratoriams gauti detalų konkrečių programų panaudojimo tinkle vaizdą atitinkamu laiko intervalu. Šią informaciją paslaugų tiekėjai gali panaudoti planuodami priskirti programoms tinklo resursų (pvz. žiniatinklio serverio dydžiui ir buvimo vietai priskirti).

• Vartotojų monitoringas ir profiliavimas – Netflow duomenis tinklo administratorius gali panaudoti, norėdamas sužinoti kiek tinklo resursų sunaudoja kiekvienas jo vartotojas. Tokia informacija vėliau galima panaudoti planuojant ir priskiriant prieigos prie tinklo parametrus bei potencialioms saugumo skylėms atrasti ir sutvarkyti.

• NetFlow
duomenų saugojimas – NetFlow duomenis galima saugoti archyve vėlesniam išgavimui ir analizei. Tai įpač naudinga Interneto paslaugų tiekėjams, kadangi NetFlow duomenys leidžia jiems nuodugniai tirti savo tinklą. Be to, NetFlow duomenys suteikia Interneto rinkos tyrėjams galimybę sužinoti, „kas“, „ką“, „kada“ ir „kiek laiko“ darė tinkle.

NetFlow metodas yra parinktas kaip standartinis Interneto monitoringo ir apskaitos metodas. Šiuo metu IETF yra suformuota darbo grupė, kuri tobulina IPFIX protokolą, paremtą NetFlow metodu [IPFIX].

IPFIX srovių informacija yra skelbiama nepertraukiamai ir nesinchroniškai. Kai konkreti srovė pasibaigia, informacija apie ją yra išsiunčiama specialiai nurodytam kolektoriui. Procesas yra vienkryptis, t.y. eksportuotojas nežino, ar kolektorius gavo jo siunčiamą informaciją. Tai sutaupo tinklo resursus, tačiau esant labai apkrautam tinklui dėl to galimas srovių informacijos praradimas. IPFIX srovių informaciją perduoda UDP transportiniu protokolu. Principinė IPFIX architektūros schema atrodo taip [IPFIX]:

2.2 pav. IPFIX architektūra

NetFlow metodas nuo pat jo sukūrimo buvo vystomas atsižvelgiant į tinklo apskaitos ir monitoringo reikalavimus. Jis sukurtas, kad naudotų kiek galima mažiau tinklo ir jo įrenginių resursų, teikiama informacija leidžia susidaryti pilnavertį įspūdį apie konkrečiu laiko momentu esančią situaciją tinkle, atitinkamai keisti tinklo nustatymus, planuoti jo plėtimąsi bei analizuoti galimus probleminius segmentus. NetFlow duomenų paketo struktūra parinkta atsižvelgiant į tai, kad juose esanti informacija bus ne tik analizuojama, bet ir archyvuojama, todėl NetFlow tikslinga naudoti ilgo laiko tinklo analizės sistemose [NetFlow1].

2.1.4. Išvada

Projektuojamai duomenų srautų analizės sistemai tikslingiausia naudoti NetFlow metodą. Jis sukurtas ir pritaikytas būtent tokio tipo sistemoms, todėl atitinka visus funkcinius reikalavimus. Jis pakankamai paprastas, todėl neapkrauna tiek tinklo, tiek jo įrenginių, o minimalus tarnybinis srautas užtikrina, kad srautų matavimai bus tikslūs. Jis turi didelį įvairių tinklo parametrų rinkinį, todėl gali būti nesunkiai praplečiamas, atsiradus naujiems tinklo analizės reikalavimams. Jo duomenų tipai sumodeliuoti taip, kad srautų informaciją būtų patogu ir optimalu saugoti vėlesniai analizei, o projektuojamoji sistema kaip tik ir atlikinės tokio tipo analizę.

2.2. Eksportuojamų duomenų saugojimo ir analizės priemonės

Parinkus duomenų eksportavimo mechanizmą, sekantis etapas yra gaunamų duomenų saugojimas bei analizė. Šiam tikslui reikia parinkti su eksportuojamais duomenimis suderinamą programinę įrangą. Projektas yra ruošiamas pelno nesiekiančiai organizacijai, todėl geriausia būtų pasinaudoti atviro kodo programine įranga.

2.2.1. Caida‘os programa Cflowd

Programa Cflowd skirta Cisco Catalyst maršrutizatorių eksportuojamiems srautams kaupti. Tai atviro kodo programinis paketas. Jis sudarytas iš pagrindinių surinkimo, saugojimo ir analizės modulių ir naudoja arts++ bibliotekų rinkinį. Šis paketas leidžia surinkti eksportuojamus duomenis, juos analizuoti ir pagal rezultatus planuoti tinklo plėtrą arba stebėti statistikas. Taip pat cflowd leidžia pagal gaunamus NetFlow duomenis tirti saugumo incidentus, atsekant konkrečias sroves [CFLOWD].

Principinė cflowd veikimo schema pavaizduota 2.3 paveiksle.

2.3 pav. Paketo Cflowd veikimo schema

Cflowd duomenų kaupimas yra realizuojamas dviejomis pakopomis. Pirmoji pakopa renka UDP protokolu siunčiamus duomenis atskiruose mazguose ir juos akumuliuoja. Antrojoje pakopoje surinkti duomenys tam tikrais laiko intervalais perduodami TCP protokolu ir išsaugomi diskuose [CFLOWD].

2.2.2. Mark Fullmer’io Flow-tools paketas

Flow-Tools – taip pat atviro kodo paketas, kuris gali kaupti bei dalinai analizuoti eksportuojamus srautus. Flow-tools gali apdoroti NetFlow informaciją, generuojamą Cisco ir Juniper maršrutizatorių. Paketo įdiegimui užtenka standartinių Linux OS bibliotekų [FLOW-TOOLS].

Principinė šio paketo veikimo schema pavaizduota 2.4 paveiksle.

2.4 pav. Paketo Flow-tools veikimo schema

Tiek duomenų kaupimo, tiek saugojimo funkcijos atliekamos tame pačiame mazge (vienos pakopos procesas). Duomenų surinkimas vykdomas realiu laiku tiesiai iš eksportuojančių įrenginių.Transportui naudojamas UDP protokolas.

2.2.3. Cisco produktas CiscoWorks

Šis Cisco siūlomas standartinis paketas be viso kito skirtas ir eksportuojamų duomenų saugojimui bei analizei, tačiau jis yra mokamas ir net nėra galimybės jį realiai išbandyti [CISCOWORKS].

2.2.4. Išvada

CiscoWorks programinis paketas yra mokamas bei apie jį nėra pakankamai informacijos, todėl jis netinka šio projekto įgyvendinimui.

Cflowd programinis paketas reikalauja dviejų pakopų – tai papildomi resursai. Šiam paketui reikalingos papildomos arts++ bibliotekos, o tai reiškia, jog sistemos migracijos metu gali kilti papildomų problemų. Galutiniam duomenų surinkimui naudojamas TCP protokolas, kuris yra žymiai lėtesnis ir labiau apkraunantis tinklą, nei UDP. Pirminių duomenų rinkimas vykdomas tam tikrais laiko intervalais, todėl negalima turėti realiu laiku surinktų duomenų.

Flow-tools paketas yra lankstus, nereikalauja papildomų bibliotekų. Duomenys kaupiami realiu laiku tiesiai
eksportuojančių įrenginių. Siuntimui naudojamas UDP protokolas, kuris įgalina greitesnį apdorojimą ir mažesnį tinklo apkrovimą, lyginant su TCP. Duomenų kaupimui naudojama viena pakopa, todėl reikia mažiau resursų. Taip pat šis programinis paketas turi labai lankstų saugojimo mechanizmą, daug dalinei analizei skirtų pagalbinių programėlių bei saugojimui naudoja suspaudimo algoritmus.

Labiausiai užduotyje keliamus reikalvimus atitinka, Flow-tools programinis paketas, kuris yra ir nemokamas.

Paketų savybių apibendrinimas pateiktas 2.1 lentelėje.

2.1 lentelė.Duomenų srautų kaupimo ir analizės programinių paketų savybių palyginimas

Charakteristika Programinio paketo pavadinimas

Cflowd Flow-tools CiscoWorks

Licencija Nemokamas Nemokamas Mokamas

Naudojami protokolai UDP,TCP UDP Nepakanka duomenų

Duomenų surinkimas dviejų pakopų vienos pakopos

Duomenų surinkimo intervalai nustatytais laiko intervalais realaus laiko surinkimas

Papildomi reikalavimai sistemai arts++ biblioteka nėra

Filtravimo mechanizmas yra yra

2.3. Duomenų paruošimas vartotojui

Pasirinktas Flow-tools paketas atlieka saugojimą ir dalinę analizę (reikalingos informacijos filtravimo funkciją), tačiau užduoties realizavimui tokios analizės nepakanka. Pilnai analizei atlikti reikalinga papildoma programinė įranga kurią reikės sukurti. Išanalizuotų duomenų saugojimui geriausia naudoti DBVS (duomenų bazės valdymo sistemą). Čia vėlgi reikėtų atkreipti dėmesį į tai, jog organizacija, kuriai ruošiamas projektas, nėra pelno siekianti, todėl geriausia jog DBVS būtų atviro kodo programa.

Iš populiariausių nemokamų DBVS, veikiančių SQL pagrindu, optimaliausia yra MySQL [MYSQL]. Ji yra paprasta, lengvai administruojama ir lanksti konfigūracijai (norint pasiekti optimaliausią našumą, nereikia daug pastangų).

3. Specifikacija

3.1. Projektuojamas objektas

Mūsų projektuojamas objektas – duomenų registravimo ir analizės sistema, paremta NetFlow technologija.

3.2. Objekto paskirtis

Pagrindinė projektuojamo objekto paskirtis – tinklo srauto duomenų, teikiamų NetFlow protokolu, kaupimas, analizavimas ir pateikimas vartotojui priimtna forma.

3.3. Vykdomos funkcijos

Pagrindinės funkcijos, kurias turės vykdyti objektas, yra:

• Pirminis duomenų surinkimas iš eksportuojančio įrenginio.

• Surinktų duomenų analizė.

• Duomenų valdymas.

• Duomenų pateikimas vartotojui.

3.4. Reikalavimai aparatūrinei posistemei

Pagrindiniai reikalavimai aparatūrinei posistemei yra:

• Bent vienas įrenginys, generuojantis ir NetFlow protokolu sugeneruotus duomenis eksportuojantis į tinklą, prie kurio yra prijungtas. Tai gali būti Cisco Catalyst, palaikantis NetFlow arba maršrutizatorius su įdiegta Linux operacine sistema bei nemokama NetFlow eksportuojančia programine įranga.

• Bent vienas įrenginys, surenkantis NetFlow protokolu išsiųstą informaciją iš tinklo, prie kurio yra prijungtas. Tai turėtų būti x86 architektūros kompiuteris, turintis bent vieną 1000 Mbps tinklo plokštę, įvesties bei išvesties įrenginius, reikalingus jam konfigūruoti (klaviatūra, monitorius), papildomo maitinimo šaltinio, bent dviejų kietųjų diskų (kad būtų įmanoma panaudoti RAID technologiją). Šis įrenginys turi turėti galimybę pasiekti generuojantį įrenginį per kompiuterinį tinklą.

• Bent vienas kompiuteris, kuriame galima būtų (per vartotojo sąsają) valdyti analizuojantį įrenginį bei iš jo gauti reikiamą statistinę informaciją. Tai turėtų būti kompiuteris, su pagrindiniais įvesties ir išvesties įrenginiais (klaviatūra, pelė, monitorius, spausdintuvas), bet viena 100MBps tinklo plokšte ir galimybe pasiekti informaciją apdorojantį įrenginį kompiuteriniu tinklu.

• Tinklo įranga, reikalinga sujungti visus aukščiau išvardintus įrenginius. Tai: UTP 5 kategorijos kabelis su antgaliais, jei nėra galimybės sujungti įrenginius tiesiogiai, tarpiniai įrenginiai (koncentratoriai, stiprintuvai, bridžai bei papildomas kabelis ir kištukai), kabelių tvirtinimo priemonės (loveliai, antgaliukai kištukams, laido laikikliai). Taip pat vienmodinis optinis kabelis su antgaliukais (kad prijungti srautą generuojantį įrenginį).

• Bent vienas nepertraukiamos srovės šaltinis (UPS), pakankamai galingas, kad išmaitintų tiek srauto generatorių(s), tiek srauto analizatorių.

3.5. Reikalavimai informacinei posistemei

Pagrindiniai reikalavimai informacinei posistemei yra:

• Nemokama, SQL sintaksę palaikanti duomenų bazė. Tai turėtų būti MySQL duomenų bazė su galimybe ją konfigūruoti optimizavimo tikslams.

• Nemokama operacinė sistema, kurioje galima būtų paleisti duomenų bazę ir duomenis apdorojančias programas. Tai turi būti Linux operacinė sistema, su galimybe ją pilnai konfigūruoti.

3.6. Reikalavimai vartotojo sąsajai

Pagrindiniai reikalavimai vartotojo sąsajai yra:

• Galimybė peržiūrėti realaus laiko srautų ataskaitas. Galimybė matyti į kiekvieną IP adresą atsiųstos bei iš jo realiu laiku išsiųstos informacijos kiekį. Galimybė matyti nurodyto IP adreso detalią srautų informaciją. Galimybė matyti su konkrečiu IP adresu susijusius srautus, praėjusius vien tik Lietuvos tinklais realiu laiku. Galimybė peržiūrėti pilną realaus laiko
sesijų sąrašą su jų metu praėjusios informacijos kiekiais bei iš jų išskirti tik Lietuvos tinklais praėjusius srautus.

• Galimybė peržiūrėti pasirinkto laiko intervalo vienerių metų ribose bei pasirinktos adresų erdvės srautų ataskaitas. Galimybė matyti šiuos srautus išskirstytus į srautus LitNET tinklais, srautus Lietuvos tinklais ir srautus pasauliniais tinklais. Galimybė kiekvienai kategorijai ir kiekvienam IP adresui matyti detalų srovių sąrašą su kiekvienos iš jų pradžios bei pabaigos laikais.

• Galimybė matyti bendrą viso LitNET tinklo panaudojimo ataskaitą pasirinktam mėnesiui. Galimybė matyti daugiausiai panaudojamų transportinio protokolo portų sąrašą su konkrečiais jais praėjusios informacijos kiekiais. Galimybė matyti labiausiai naudojamų protokolų numerių sąrašą su konkrečiais kiekvienu jų praėjusios informacijos kiekiais. Galimybė kiekvienam bet kurio sąrašo elementui peržiūrėti detalią informaciją, kurioje būtų matomi išskristyti srautai į praėjusius LitNET tinklais, praėjusius Lietuvos tinklais ir praėjusius pasaulio tinklais.

Pagrindiniai reikalavimai vartotojui, norinčiam naudotis projektuojama sistema:

• Operacinė sistema, galinti per kompiuterinį tinklą TCP/IP protokolu pasiimti atitinkamą informaciją iš http serverio, esančio informaciją apdorojančiame įrenginyje.

• Programinė įranga, palaikanti http protokolą, kuri galėtų tinkamai atvaizduoti reikiamą informaciją (dauguma modernių grafinių www naršyklių, tokios kaip IE 6.0, Netscape 7.0, Opera 7.21 tinka šiems tikslams).

3.7. Reikalavimai programinei įrangai

Pagrindiniai reikalavimai programinei įrangai yra:

• Nemokama programinė įranga, kurios pagalba būtų galima programuoti C++ kalba, kompiliuoti programas bei atlikti kitas reikalingas užduotis, susijusias su saugumu, patikimumu bei duomenų analize (gcc, iptables, crontab, syslog-ng).

• Nemokama programinė įranga, surenkanti duomenis iš generuojančio įrenginio bei juos apdorojanti pagal tam tikrus filtrus: Mark Fullmer’io Flow-tools paketas.

• Papildoma programinė įranga, nustatanti atitinkamus filtrus ir, pagal juos atrinkusi aukščiau minėtos programos pateikiama informaciją, ją atitinkamai apdorojanti. Tai turi būti C++ programavimo kalba rašytos programos, pritaikytos Linux operacinei sistemai bet turinčios galimybą apsikeisti reikalinga informacija su duomenų baze.

• Papildoma programinė įranga, sugebanti paimti reikiamą informaciją iš duomenų bazės ir pagal ja sugeneruoti www puslapį su aiškiai matoma statistine informacija, bei galimybe parodyti papildomą informaciją apie vartotojo parinktą objektą (detalesnius skaičius, grafikus).

3.8. Reikalavimai sistemos aptarnavimui

Pagrindiniai reikalavimai sistemos aptarnavimui yra:

• Bent vienas tinklo administratorius, sujungiantis ir sutvritinantis tinklo kabelius, sukonfigūruojantis generuojantį įrenginį bei papildomus tinklo įtaisus. Jis taip pat turėtų užtikrinti tinklo funkcionalumą bei generuojančio įtaiso, analizuojančio įtaiso ir galutinių vartotojų kompiuterių tarpusavio pasiekiamumą

• Bent vienas sistemos administratorius, prižiūrintis analizuojantį įrenginį bei užtikrinantis, kad visi servisai, reikalingi sėkmingai eksploatuoti sistemą, veiktų patikimai ir optimaliai. Jis taip pat turėtų užtikrinti minėtos įtaiso saugumą bei darbo stabilumą, nuolat atnaujinti programinę įrangą ir rūpintis, kad nebūtų prarasti duomenys.

3.9. Reikalavimai dokumentacijai

Pagrindiniai reikalavimai dokumentacijai yra:

• Bent minimalus vartotojo vadovas, kuriame aprašytos pagrindinės vartotojo sąsajos atliekamos funkcijos. Tai turėtų būti pateikta www puslapyje, kaip pagalbos sritis arba dokumentuota popieriuje.

4. Aparatūrinė posistemė

4.1. Aparatūrinės posistemės struktūrinė schema

4.1 pav. Aparatūrinės posistemės struktūrinė schema

Kaip matyti iš aukščiau pateiktos struktūrinės schemos, NetFlow srautą generuojantys įrenginiai yra tiesiogiai (fiziškai) sujungti tiek su Internetu, tiek su organizacijos tinklu, tiek su srautą analizuojančiu įrenginiu. Tai reiškia, kad bet kokie kreipimaisi į organizacijos tinklą arba į srautą analizuojantį įrenginį bei atitinkamai bet kokie kreipimaisi tiek iš srautą analizuoančios įrangos, tiek iš organizacijos tinklo bus užregistruoti NetFlow srautą genruojančiuose įrenginiuose.

Realiai duomenų srautai siunčiami tik fizinėmis jungtimis. Loginė jungtis tarp vartotojų įrangos ir srautą analizuojančio įrenginio nėra tiesioginė. Fiziškai šie duomenys iš pradžių eina per Internetą, tada per vieną iš generuojančių įrenginių ir tik po to patenka į srautus analizuojantį įrenginį (tokiu būdu jie taip pat užregistruojami NetFlow srautą generuojančiuose įrenginiuose).

Kiekvienas tiek organizacijos tinkluose, tiek bet kur Internete esantis vartotojo įrenginys unikaliai identifikuojamas IP adresu. Pagal IP adresus kompiuteriai identifikuojami ir analizuojant srautus. Kliento kompiuteris taip pat turi unikalų IP adresą, tačiau šiame kontekste klientas yra ne analizuojamas tinklo elementas, o tinklu reikalingą informaciją gaunantis asmuo.

4.2. Aparatūrinės įrangos parinkimas ir pagrindimas

Pagal specifikacijos punktą 3.4
aparatūrinei posistemei) galima pastebėti, jog pagrindiniai reikalavimai yra:

• Srautą generuojantis įrenginys

• Srautą surenkantis ir analizuojantis įrenginys

• Asmeninis kompiuteris

• Tinklo įranga, apjungianti aukščiau paminėtus komponentus bei riemonės jam sujungti

• Nepertraukiamos srovės šaltinis

4.2.1. Srautą generuojantis įrenginys

„LitNET“, kuriai ir yra ruošiamas šis projektas, šiuo metu jau turi specifikacijoje nurodytus reikalavimus atitinkančią įrangą, todėl tikslingiausia projekto įgyvendinimui ją ir naudoti.

Konkretus įrenginys, kuris priklauso „LitNET“, yra Cisco Catalyst 6500 serijos komutatorius/maršrutizatorius. Jame pilnai realizuotas NetFlow technologijos palaikymas, o tai ir yra pagrindinis reikalavimas generuojančiam įrenginiui. Toks įrenginys turi praleisti kuo didesnę srauto dalį, tuomet pateikiami NetFlow duomenys atspindės viso tinklo būseną. „LitNET“ priklausantis Cisco Catalyst įrenginys priklauso stuburiniam tinklui ir maršrutizuoja visą tarpmiestinį bei tarptautinį srautą. Pagrindiniai šio įrenginio parametrai ir palaikomos technologijos pateiktos 1 priede.

4.2.2. Srautą priimantis ir analizuojantis įrenginys

Priimtiems srautams analizuoti reikalinga papildoma (pagal užsakymą kuriama) programinė įranga, kurios specializuotuose įrenginiuose nėra. Be to apdorotai informacijai saugoti reikės didelių atminties resursų. Šiems reikalavimams įvykdyti vienareikšmiškai geriausias sprendimas yra panaudoti paprastą kompiuterį (serverį).

Kad nekiltų papildomų problemų diegiant programinę įrangą, geriausia naudoti populiarios ir pasaulyje pripažintos architektūros serverį. Konkrečiai šiuo atveju patogu pasirinktas x86 architektūros procesorių, kadangi nors ir nebūdama pati optimaliausia, tai viena iš dažniausiai naudojamų ir todėl pakankamai pigiai atsieinančių procesoriaus architektūrų, kuri pilnai tenkina programinės įrangos palaikymo ir darbo greičio reikalavimus.

Kad užtikrinti pakankamai efektyvų ir greitą užduočių atlikimą, rekomenduojami kai kurie serverio parametrai:

• Pentium 4, 3.0 GHz, 800MHz FSB procesorius, palaikantis Hyper Threading technologiją.

• 1 Gb dual DDR, 400MHz operatyvioji atmintis.

• Intel SW875S-1 pagrindinė plokštė (su Intel valdančiąja mikroschema) bei integruotos 1 Gbps ir 100 Mbps tinklo plokštės, SATA RAID valdiklis.

• Du WD 200 Gb talpos, 7200 rpm SATA kietieji diskai.

• Papildoma klaviatūra, pelytė ir monitorius (patogesniam administravimui).

Kietuosius diskus rekomenduojama sujungti pagal RAID 1 technologiją. Taip bus automatiškai kuriama atsarginė duomenų kopija, todėl darbas bus patikimesnis. Taip pat rekomenduojama prijungti serverį prie nepertraukiamos srovės šaltinio, kad darbas nebūtų nutraukiamas net dingus elektros srovei.

Nesant pakankamo vėdinimo patalpose, kuriose stovės serveris, rekomenduojama įdėti papildomą(us) ventiliatorių(us), kad įranga neperkaistų.

4.2.3. Asmeninis kompiuteris

Asmeninis kompiuteris reikalingas galiniams vartotojams, norintiems matyti galutinius sistemos rezultatus. Kadangi jie bus pateikiami per Web sąsają, toks kompiuteris turėtų būti pakankamai galingas, kad būtų galima pakankamai greitai naršyti internete. Bet kuris modernus asmeninis kompiuteris su įdiegta atitinkama programine įranga yra pakankamai galingas, kad galėtų tarnauti kaip galinio vartotojo įranga, peržiūrint sistemos pateikiamas srautų statistikas.

Komfortabilesniam darbui galima įsigyti didesnį ir geresnių parametrų monitorių.

4.2.4. Papildoma tinklo įranga

Projektui realizuoti, reikia visus aukščiau aptartus komponentus sujungti į vientisą kompiuterinį tinklą pagal 4.1 punkte (aparatūrinės posistemės struktūrinė schema) pateiktą struktūrinę schemą.

4.2.4.1. Generuojančio ir analizuojančio įrenginų sujungimas

Norint išgauti iš aparatūros visą teikiamą duomenų persiuntimo greitį, tikslinga būtų naudoti 1 Gbps prievadus generuojančiam ir analizuojančiam įrenginiams sujungti, tačiau generuojančio įrenginio prievadais išeina optiniai signalai, o analizuojančio serverio tinklo plokštė dirba gigabitinio ethernet pagrindu (elektriniai signalai). Tai reiškia, jog reikalinga papildoma tinklo įranga šioms skirtingoms terpėms sujungti tarpusavyje.

Šiuo metu „LitNET“ serverinėje (kur ir bus dislokuoti įrenginiai) yra keletas tinklo komutatorių, turinčių tiek optinius, tiek ethernet (100 Mbps ir 1 Gbps) prievadus ir komutuojančių duomenis tarp jų. Patogiausioje vietoje šiuo metu stovi HP Procurve 6108 komutatoriai, todėl vieną iš jų ir panaudosime jungčiai sukurti.

HP Procurve 6108 – tai 2 OSI lygmenyje dirbantis komutatorius, turintis aštuonis 100 Mbps Ethernet prievadus, du 1 Gbps Ethernet prievadus ir du optinius prievadus.

Pagrindinės HP Procurve 6108 komutatoriaus galimybės pateikiamos 2 priede.

4.2.4.2. Kitų komponentų sujungimas

Kadangi projektas turi būti pritaikytas jau veikiančiam tinklui, geriausia nekeisti esančios tinklo padėties (jei tai nėra būtina sėkmingam projekto įgyvendinimui).

Minėtas NetFlow generatorius, kaip matyti iš struktūrinės schemos, turi turėti bent vieną susijungimą su Internet tinklu bei su organizacijos (šiuo atveju LitNET) tinklu. Dabartinė situacija yra ta, jog šios jungtys jau veikia,
papildomi jungimai nebereikalingi.

Vartotojo įranga gali būti prijungta prie tinklo iš bet kurios vietos tiek internete, tiek organizacijos tinkle. Kadangi tokios įrangos funckiją pilnai gali atlikti bet kuris modernus asmeninis kompiuteris, pajungtas į Internetą, papildomų jungčių kurti nereikia. Visgi jei norima išskirti atskirą vartotojo kompiuterį organizacijos viduje, jam prijungti užteks paprasto UTP 5 kategorijos vytos poros kabelio su antgaliais ir bet kokio komutatoriaus, turinčio Ethernet 10/100 Mbps prievadą. Abu šiuos komponentus „LitNET“ tinklas jau turi.

4.2.4.3. Jungčių elementai ir kiti papildomi įrankiai

Tinklui sujungti gali reikėti papildomų kabelio antgalių bei įrankio jiems uždėti ant kabelio. „LitNET“ visa šita įranga jau yra, todėl papildomų išlaidų šiems priedams nereikės.

Vedant naują laidą, patogumo ir racionalumo dėlei vertėtų jį pritvirtinti palei patalpos grindų kampus arba palei sienas. Tam galima panaudoti elementarias vinutes su plasmasiniais antgaliukais kabeliui prilaikyti. Jeigu kabelių kiekis didesnis, tada geriau panaudoti specialius lovelius, tvirtinamus prie patalpos sienų.

4.2.5. Nepertraukiamos srovės šaltinis

Kiekvienam elektros energiją vartojančiam įrenginiui kenkia įtampos svyravimai arba pasikartojantis elektros energijos dingimas/atsiradimas. Elektros tinklų bendrovės negali užtikrinti, jog energija organizacijai bus teikiama pastoviai ir be sutrikimų, todėl reikalinga papildoma aparatūrinė įranga, kad išlyginti įtampos svyravimus bei tęsti maitinimą net tuo atveju, kai dingsta maitinimas iš elektrinės.

„LitNET“ šiuo metu yra nusipirkusi du nepertraukiamos srovės šaltinius, veikiančius paraleliniu režimu. Prie jų ir būtų tikslingiausia prijungti visą aparatūrą.

Nepertraukiamos srovės šaltiniai – tai SOCOMEC gaminiai.

4.3. Kompiuterinės sistemos architektūros parinkimas

Nors klientų gali buti keletas, tačiau duomenis valdantis įrenginys yra vienas, todėl priimtiniausias sprendimas – naudoti dvitaškę (kliento – serverio) kompiuterinės sistemos architektūrą. Tokia architektūra yra paprasta, lengvai įgyvendinama programiškai bei jos pilnai pakanka projektui įgyvendinti.

4.4. Kompiuterinio tinklo jungimas

Teisingai ir optimaliai sujungtas tinklas – esminis tikslas įgyvendinant šį projektą. Tai galima pasiekti sudarant optimalią tinklo topologiją ir naudojant tinkamiausias reikiamą tinklo perdavimo greitį užtikrinančią įrangą.

4.4.1. Kompiuterinio tinklo topologijos parinkimas

„LitNET“ tinklas šiuo metu vidiniams sujungimams daugiausia naudoja Ethernet technologiją. Tiek fiziniai, tiek loginiai sujungimai realizuoti pagal žvaigždės topologiją.

Projekto aparatūrinė įranga sukomplektuota taip, kad sujungimams taip pat patogiausia būtų naudoti Ethernet, jungiant žvaigždės topologija, todėl paprasčiausia ir patogiausia rinktis būtent tokią topologiją.

Jungiant žvaigžde, visi tinklo komponentai prijungiami prie vieno tranzitinio tinklo įrenginio, per kurį gali bendrauti vienas su vienu, vienas su keliais bei vienas su visais. Taip formuojamas vienas potinklis. Toks jungimo būdas patogus tuo, kad norint pasiekti visų potinklio komponentų tarpusavio ryšį, nereikia vesti atskiros linijos nuo kiekvieno kliento prie kiekvieno, kad sudaryti taip vadinamą „full mesh“, todėl esant n klientų reikalingos tik n linijų.

4.4.2. Kompiuterinio tinklo planas

4.8 pav. Kompiuterinio tinklo sujungimo planas.

Sutartiniai ženklai:

5. Informacinė posistemė

5.1. Informacijos srautų analizė ir projektavimas

Bet kokioje informacinėje sistemoje neišvengiamai vyksta duomenų apsikeitimas tarp jos sudedamųjų dalių. Duomenų srautų valdymą tikslinga suskirstyti į atskiras funkcijas. Atlikus tai, žymiai supaprastėja projektuojamos sistemos duomenų srautų valdymo realizacija.

Šiame projekte pagrindinės funkcijos susijusios su duomenų apsikeitimu yra:

• NetFlow srautu gautos informacijos kaupimas

• pirminių srautų apdorojimas ir vertimas antriniais duomenimis

• antrinių duomenų apdorojimas ir eksportavimas į duomenų bazę

• apdorotos informacijos išrinkimas iš duomenų bazės ir ataskaitų vartotojui formavimas

Šio projekto pagrindinius informacijos srautus galima grafiškai pateikti taip:

5.1 pav. Pagrindiniai duomenų srautai.

Informacijos srautų modelio centre yra „NetFlow analizės sistema“. Kaip matyti iš paveikslėlio, gaunami duomenys yra NetFlow duomenų srautas, iš kurio ir bus sudaryta visa statistika, ir ataskaitų užklausų duomenys, kuriuos paduoda vartotojas, norėdamas gauti ataskaitą. Rezultatai – tai trijų tipų ataskaitos ir srautų duomenys, laikomi duomenų bazėje. Šį procesą galima skirstyti į keturis smulkesnius procesus, kurie atliktų 5.1 punkte minėtas duomenų srautų apdorojimo funkcijas.

5.2 pav. Pagrindiniai procesai

Paveikslėlyje 5.2 pateikti pagrindiniai procesai, atliektantys specializuotas duomenų srautų valdymo užduotis. Kaip matome, pagrindinis procesas suskirstytas į keturias dalis, atliekančias veiksmus su duomenimis, skirtais būtent joms. Toks palaipsninis apdorojimas sukuria bendrą hierarchiją.

5.1.1. NetFlow duomenų kaupimas

NetFlow
duomenų srautų kaupimo procesas atlieka pradinę duomenų kaupimo funkciją. Šis procesas sudarytas iš dviejų dalių: „Srautų priėmimo iš tinklo“ ir „Pirminių duomenų saugojimo“. Šių funkcijų tarpusavio duomenų ir resursų mainai pavaizduoti 5.3 paveiksle.

5.3 pav. NetFlow srautų kaupimo funkcijų sąveika

„Srautų priėmimas iš tinklo“ skirtas tinklo įrenginio eksportuojamiems duomenims surinkti. Panaudodamas kompiuterinį tinklą, procesas gauna IP paketus, kuriuos išanalizuoja, atmesdamas nereikalingą tarnybinę tinklo informaciją ir perduodamas tik naudingus NetFlow duomenis antrajam, pirminių duomenų saugijomo procesui.

„Pirminių duomenų saugojimo“ funkcija, gavusi duomenis iš surenkančiosios funkcijos, juos surašo į failą NetFlow formatu. Šią funkciją atlieka flow-tools paketo sudedamoji dalis: programa flow-capture.

Visa tai vyksta realiu laiku, t.y. kai tik ateina naujas pranešimas iš tinklo apie atsiradusį susijungimą, iškarpoma tarnybinė tinklo informacija ir šie duomenys talpinami faile. Kad būtų patogiau, flow-capture keičia failą, į kurį įrašinėja duomenis kas penkiolika minučių.

Patogumo dėlei laikinieji failai gali būti pavadinti, įrašant laiko intervalą, kuriuo buvo renkami srautai.

5.1.2. Pirminis NetFlow srautų apdorojimas

Pagrindinė valdymo programa iškviečia pirminių duomenų analizės procesą du kartus per valandą.

Šis procesas sudarytas iš trijų funkcijų: „pirminių duomenų nuskaitymo“, „pirminių duomenų analizės“ ir „išanalizuotų duomenų vertimo antriniais ir saugojimo“. Funkcijos vykdomos nuosekliai viena po kitos. Jų tarpusavio sąveika pavaizduota 5.4 pav.

5.4 pav.Pirminio duomenu apdorojimo funkcijų tarpusavio sqveika

Aukščiau pateiktame paveiksle matyti, kad vienos funkcijos rezultatai atiduodami kitai funkcijai kaip pradiniai duomenys.

Pirminių duomenų nuskaitymo funkcija iš flow-capture programa sukurtų failų nuskaito pradinius duomenis ir juos perduoda analizuojančiajai funkcijai. Šiuos veiksmus galima atlikti, naudojant flow-tools paketo programą flow-cat. Taip pat čia panaudojama programavimo kalbos PHP funkcija, kuri sugeneruoja atitinkamą kintamąjį, nurodantį kelius iki reikalingų nuskaityti failų.

Gavusi nuskaitytus duomenis, analizės funkcija šiuos duomenis išanalizuoja ir atfiltruoja nereikalingus įrašus pagal konfigūracijos metu nurodytus filtrus. Tai atlieka programa flow-nfilter. Išanalizuoti ir atfiltruoti NetFlow duomenys atiduodami trečiajai funkcijai, kaip pradiniai duomenys.

Duomenų saugojimo ir vertimo antriniais funkcija atfiltruotus duomenis iš NetFlow protokolu perduodamo formato, paverčia antrinio apdorojimo procesui suprantamu formatu. Taip pertvarkyti duomenys išsaugomi laikinuose failuose, kuriuos ir naudos antrinio apdorojimo programa bei realaus laiko ataskaitų generavimo procesas. Visus šiuos veiksmus gali atlikti programa flow-print.

5.1.3. Antrinis NetFlow srautų apdorojimas

Antrinio apdorojimo metu, pagrindinė paleidžiamoji programa iškviečia atitinkamą procesą, kuris nuskaito pirminio apdorojimo procedūros įrašytą laikinąjį failą, iš jo atrenka reikalingus duomenis pagal užduotą kriterijų bei sumuoja vienodų narių srautus. Gautas rezultatas patalpinamas į duomenų bazę, iš kurios ims duomenis ataskaitų pateikimo procesas. Šis procesas informacijos srautų kaupime ir apdorojime yra galutinis.

Konkrečiai šiame projekte reikia pateikti dviejų tipų duomenis apie srautus: rūšiuojant ir grupuojant pagal siuntėjo bei pagal gavėjo IP adresus. Šiems veiksmams realizuoti paprasčiausia išskirti dvi funkcijas, analizuojančias duomenis pagal raktu užduotą parametrą. Šių funkcijų informacijos srautai pavaizduoti 5.5 paveiksle.

5.5 pav. Antrinio apdorojimo funkcijų tarpusavio sqveika

Iš pateiktos schemos matyti, jog tiek gaunami duomenys paduodami į abi funkcijas, tiek rezultatai grąžinami į duomenų bazę, tačiau nors funkcijos naudoja tą patį duomenų failą, jų gaunami rezultatai yra skirtingi ir yra talpinami į skirtingas vietas duomenų bazėje. Funkcijų užduotims atlikti šiuo atveju yra realizuota atskira programa ftdsp.

Šio proceso rezultatas yra pradiniai duomenys vartotojo sąsajos proceso realizacijai.

5.1.4. Ataskaitų pateikimas

Visi procesai aprašyti iki šiol buvo atsakingi už informacijos srautų patekimą į duomenų bazę, kuri yra pagrindinis informacijos šaltinis ataskaitų pateikimo funkcijai.

Ataskaitos šiame projekte yra trijų tipų: realaus laiko, laiko juostos ir archyvo. Kiekvienai suformuoti ir pateikti išskirkime atskirą procesą.

Šių procesų tarpusavio sąveika parodyta 5.6 paveiksle.

5.6 Ataskaitų pateikimo pagrindinių funkcijų tarpusavio sąveika

Pagrindinės ataskaitas paruošiančios funkcijos sąveikauja nepriklausomai viena nuo kitos, kaip matyti jų saveikos schemoje, pateiktoje aukščiau. Šias funkcijas valdo pagrindinis ataskaitų pateikimo procesas, tačiau tiek kiekvienos funkcijos pradiniai duomenys, tiek pateikiami rezultatai yra gaunami atskirai, todėl visų funkcijų darbas gali būti atliekamas lygiagrečiai.

Tiek laiko juostos, tiek archyvo ataskaitų formavimo procesai duomenis ima iš to paties šaltinio: duomenų bazės, o realaus laiko ataskaitų generavimo procesas naudoja pirminio duomenų apdorojimo sukurtą laikiną
Kiekvieno proceso grąžinami rezultatai yra skirtingi, kadangi formuojamos skirtingo tipo ataskaitos. Šie procesai savo rezultatų netalpina į duomenų bazę, o pateikia per vartotojo sąsają.

Realaus laiko ataskaitų pateikimo procedūra yra skirtinga, nei kitos. Ji gauna vartotojo užklausą ir pasiima duomenis, reikalingus ataskaitai formuoti iš laikino failo, todėl jiems apdoroti šiam procesui reikalingos papildomos programos, kurias naudojo antrinio apdorojimo procesas: flow-cat, flow-nfilter ir flow-print. Taip pat šis procesas naudoja dar vieną flow-tools paketo programą flow-stat, skirtą generuoti surūšiuotoms statistikoms. Galutiniai šio proceso rezultatai yra sugeneruotas realaus laiko ataskaitos www puslapis, kuris sugeneruojamas PHP pagalba.

Laiko juostos ir archyvo procesai generuoja atitinkamai vartotojo nurodyto laiko intervalo ataskaitas arba vartotojo nurodyto datos intervalo ataskaitas. Duomenys paimami iš duomenų bazės, o galutiniai rezultatai – www puslapiai – generuojami PHP pagalba.

Šiuos procesus galima suskirstyti į smulkesnes paprogrames, atliekančias konkretesnes funkcijas.

5.1.4.1. Realaus laiko ataskaitos

Realaus laiko ataskaitos skirtos pateikti duomenų srautų dydžius realiu laiku, t.y. uždavus užklausą, turi būti paimami esamos situacijos duomenys ir iš jų sugeneruojama atitinkama ataskaita.

Šio projekto realaus laiko ataskaitos pateikia 100 daugiausiai srauto atidavusių IP adresų ir jų atiduotą srautą. Visą tai galima išskirti į tris paprogrames: „duomenų paruošimą ataskaitoms“, „bendros ataskaitos pateikimą“ ir „pasirinkto IP adreso ataskaitos pateikimą“. Jų tarpusavio sąveika pavaizduota 5.7 paveiksle.

5.7 Realaus laiko ataskaitų pateikimo pagrindinių funkcijų tarpusavio sąveika

Visos trys paprogramės veikia nuosekliai viena po kitos ir yra valdomos pagrindinio ataskaitų valdymo proceso.

Kaip matome, pradinius duomenis gauna pirmoji duomenų paruošimo funkcija. Tai vartotojo užklausa ir pirminio apdorojimo rezultatai. šiuos duomenis funkcija apdoroja panašiai, kaip tai darė antrinio apdorojimo procesas, bei pagal nustatytus kriterijus atrenka 100 daugiausiai baitų sunaudojusių IP adresų, kuriuos surūšiuoja ir rezultatus pateikia bendros ataskaitos formavimo paprogramei kaip duomenis.

Bendros ataskaitos pateikimo funkcija iš gautų duomenų panaudodama programinę kalbą PHP suformuoja www puslapį ir jį pateikia vartotojui per vartotojo sąsają. Šiame puslapyje vartotojas gali užklausti parodyti detalesnę pasirinkto IP adreso statistiką. Kai taip įvyksta, ši funkcija perduoda vartotojo parinktus duomenis į detalios atsakaitos funkciją.

Pasirinkto IP adreso ataskaitos formavimo funkcija gauna iš bendros ataskaitos formavimo funkcijos parametrą, kuriame nurodytas konkretus IP adresas. Jos veiksmus galima suskirstyti į dvi dalis: viso srauto ataskaitos generavimą ir Lietuvos srauto ataskaitos generavimą. Šių dviejų paprogramių tarpusavio sąveika parodyt 5.8 pav.

5.8 pav. Pasirinkto IP adreso ataskaitos generavimo funkcijų tarpusavio sąveika

Matome, kad gautus šios funkcijos gauna tuos pačius duomenis ir rezultatus pateikia tose pačiose realaus laiko ataskaitose.

Viso srauto atasakaitos generavimo funkcija, panaudodama PHP sugeneruoja puslapį, kuriame atvaizduoja kiek atitinkamas IP adresas išsiuntė duomenų į viso pasaulio Internet tinklą.

Lietuvos srauto ataskaitos generavimo funkcija generuodama atskaitą nurodo tik tuos skaičius, kuriuos parinktas IP adresas išsiuntė Lietuvos tinkluose.

5.1.4.2. Laiko juostos ataskaitos

Laiko juostos ataskaitų pateikimo procesas panašus į realaus laiko ataskaitų pateikimo procesą, tačiau gali šiuo procesu suformuotos ataskaitos yra informatyvesnės ir šiek tiek detalesnės.

Procesą susikirstome į tris dalis: „bendros ataskaitos formavimą“, „pasirinkto IP adreso ataskaitos formavimą“ bei „srautų pagal tinklus ataskaitų formavimą“.

Visų šių funkcijų tarpusavio sąveika parodyta 5.9 pav.

5.9 pav. Pasirinkto IP adreso ataskaitos generavimo funkcijų tarpusavio sąveika

Kaip matyti, funkcijos pradinius duomenis ima iš duomenų bazės ir iš vartotojo užklausos. Tiek bendros, tiek detalios ataskaitos formavimo funkcijos gauna duomenis iš duomenų bazės, tačiau bendros ataskaitos formavimo funkcija perduoda vartotojo užklausą apie konkretų IP adresą konretaus adreso ataskaitos generavimo funkcijai, o ši savo ruožtu perduoda šiuos duomenis ataskaitų pagal tinklus generavimo funkcijai. Visi rezultatai išvedami į bendrą www puslapį. Ataskaitų generavimui visos trys funkcijos naudoja PHP priemones.

Srautų pagal tinklus generavimo funkciją patogu išskirti į tris elementaresnius veiksmus atliekančias paprogrames: „srautų LitNET tinkle ataskaitos formavimą“, „srautų Lietuvos tinklais ataskaitos formavimą“ ir „visų srautų ataskaitos formavimą“.

Jų tarpusavio sąveika parodyta 5.10 pav.

5.10 pav. Srautų pagal tinklus ataskaitų generavimo funkcijų tarpusavio sąveika

Iš aukščiau pateiktos schemos matyti, jog visos funkcijos duomenis gauna vienu metu, todel jos gali veikti nepriklausomai viena nuo kitos.

Duomenys imami iš vartotojo užklausos ir iš duomenų bazės. Naudojant PHP priemones yra sugeneruojamas ataskaitos www puslapis, kuriame ir yra patalpinama atitinkama informacija.
bazės projektavimas

Šis projektas skirtas tinklų duomenų srautų analizavimui bei jų saugojimui. Kaip minėta, organizacija, kuriai ruošiamas projektas, apima visą Lietuvą, todėl duomenų kiekiai bus dideli. Esant tokiems dideliems duomenų kiekiams, racionaliausia būtų juos saugoti struktūrizuotai ir suspaustai. Optimalų duomenų saugojimą, suskirstymą, rūšiavimą ir kitas operacijas užtikrina duomenų bazė, o greitą ir pakankamai patogų duomenų apsikeitimą įgalina duomenų bazės valdymo sistema. Projekte pasirinkta DBVS yra MySQL (žr. punktą 3.5).

5.2.1. Duomenų bazės lentelės

Projektuojant duomenų bazę svarbiausia atsižvelgti į tai, kokius duomenis mes turime saugoti, kad ji būtų funkcionali ir atliktų konkrečią projekte užduotą užduotį. Iš informacijos srautų ir analizės dalies (žr. 5.1.4.2 punktą) matyti, jog žemiausia detalizacijos pakopa yra sudaryta laiko juostos realizacijoje. Joje srautai skirtstomi į srautus LitNET tinkle, Lietuvos tinklais ir Kitais tinklais. Siekiant realizuoti tokią detalizaciją, duomenų bazėje esančios lentelės tūrėtų buti tokios:

5.11 pav.Duomenų bazės lentelių fizinis modelis

Paveikslėlyje (žr. pav. 5.11) pateiktas projekte naudojamos duomenų bazės lentelių fizinis modelis. Kiekviena iš lentelių yra nepriklausoma viena nuo kitos ir neturi jokių ryšių su kitomis lentelėmis.

5.2.2. Lentelių laukelių reikšmės

Kaip matome 5.11 paveikslėlyje, lentelių struktūra yra beveik vienoda. Toks vienodumas leidžia manipuliuoti duomenimis turint tik vieną parametą, pvz IP adresą, kadangi lentelių laukelių reikšmės loginiam lygmenyje atitinka tuos pačius parametrus.

Pirmieji trys laukeliai kiekvienos lentelės yra indeksuoti, tai paspartina duomenų paiešką duomenų bazėje (išnaudojama MySQL galimybė turėti atskirai indeksų failą).

Lentelių paskirtis pateikta lentelėje pateiktoje žemiau (žr. 5.1 lentelę).

5.1 lentelė. Lentelių funkcijos

Pavadinimas Funkcijos

lntraff Lentelė skirta duomenų srautams LitNET tinklu apskaitai saugoti

lttraff Lentelė skirta duomenų srautams Lietuvos ISP tinklais apskaitai saugoti

othertraff Lentelė skirta duomenų srautams iš LitNET tinklo (atmetant Lietuvos IPT tinklus) į kitus apskaitai saugoti.

Kadangi loginiam lygmenyje lentelių laukelių reikšmės atitinka viena kitą, bendras lentelių visų laukelių aprašymas pateikiamas lentelėje žemiau (žr. 5.2 lentelę).

5.2 lentelė. Lentelių laukelių reikšmės ir tipai. Tęsinys kitame puslapyje

Laukelio pavadinimas Funkcijos,reikšmė Tipas

ip Saugomas IP adresas, kurio kaip siuntėjo ir gavėjo srautai bus skaičiuojami. bigint, sudarytas iš vienolikos skaitmenų.

stime Skaičiuojamų srautų laiko intervalo pradžios žymeklis. datetime kintamasis.

etime Skaičiuojamų srautų laiko intervalo pabaigos žymeklis datetime kintamasis

oc_in_ln IP adreso kaip gavėjo oktetų kiekis per laiko intervalą LitNET tinkle bigint, sudarytas iš dvidešimties skaitmenų

oc_out_ln IP adreso kaip siuntėjo oktetų kiekis per laiko intervalą LitNET tinkle bigint, sudarytas iš dvidešimties skaitmenų

oc_in_lt IP adreso kaip gavėjo oktetų kiekis per laiko intervalą Lietuvos IPT tinklais bigint, sudarytas iš dvidešimties skaitmenų

oc_out_lt IP adreso kaip gavėjo oktetų kiekis per laiko intervalą Lietuvos IPT tinklais bigint, sudarytas iš dvidešimties skaitmenų

5.2 lentelės tęsinys

Laukelio pavadinimas Funkcijos,reikšmė Tipas

oc_in_other IP adreso kaip gavėjo oktetų kiekis per laiko intervalą iš LitNET tinklo į kitus, išskyrus Lietuvos IPT tinklus bigint, sudarytas iš dvidešimties skaitmenų

oc_out_other IP adreso kaip gavėjo oktetų kiekis per laiko intervalą iš LitNET tinklo į