Tinklu duomenu srautu analize

1. Įvadas 62. Analitinė apžvalga 82.1. Duomenų srautų informacijos surinkimo metodai 82.2. Eksportuojamų duomenų saugojimo ir analizės priemonės 142.3. Duomenų paruošimas vartotojui 173. Specifikacija 193.1. Projektuojamas objektas 193.2. Objekto paskirtis 193.3. Vykdomos funkcijos 193.4. Reikalavimai aparatūrinei posistemei 193.5. Reikalavimai informacinei posistemei 203.6. Reikalavimai vartotojo sąsajai 203.7. Reikalavimai programinei įrangai 213.8. Reikalavimai sistemos aptarnavimui 213.9. Reikalavimai dokumentacijai 224. Aparatūrinė posistemė 234.1. Aparatūrinės posistemės struktūrinė schema 234.2. Aparatūrinės įrangos parinkimas ir pagrindimas 244.2.1. Srautą generuojantis įrenginys 244.2.2. Srautą priimantis ir analizuojantis įrenginys 244.2.3. Asmeninis kompiuteris 254.2.4. Papildoma tinklo įranga 254.2.4.1. Generuojančio ir analizuojančio įrenginų sujungimas 264.2.4.2. Kitų komponentų sujungimas 264.2.4.3. Jungčių elementai ir kiti papildomi įrankiai 264.2.5. Nepertraukiamos srovės šaltinis 274.3. Kompiuterinės sistemos architektūros parinkimas 274.4. Kompiuterinio tinklo jungimas 274.4.1. Kompiuterinio tinklo topologijos parinkimas 274.4.2. Kompiuterinio tinklo planas 275. Informacinė posistemė 285.1. Informacijos srautų analizė ir projektavimas 285.1.1. NetFlow duomenų kaupimas 305.1.2. Pirminis NetFlow srautų apdorojimas 315.1.3. Antrinis NetFlow srautų apdorojimas 325.1.4. Ataskaitų pateikimas 345.1.4.1. Realaus laiko ataskaitos 355.1.4.2. Laiko juostos ataskaitos 375.2. Duomenų bazės projektavimas 385.2.1. Duomenų bazės lentelės 395.2.2. Lentelių laukelių reikšmės 396. Vartotojo sąsajos posistemė 416.1. Vartotojo sąsajos funkcijos 426.2. Vartotojo sąsajos planas 426.2.1. Realaus laiko posistemė 436.2.1.1. Realaus laiko posistemės schema 436.2.1.2. Realaus laiko posistemės vartotojo sąsaja 436.2.2. Laiko juostos posistemė 476.2.2.1. Laiko juostos posistemės schema 476.2.2.2. Laiko juostos posistemės vartotojo sąsaja 486.2.3. Archyvo peržiūros posistemė 517. Eksperimentinė dalis 527.1. Srautų duomenų saugojimo naudojant DBVS eksperimentas 527.1.1. Duomenų bylų apdorojimo programos eksperimentas 527.1.1.1. Duomenų bylų analizės srautams Lietuvoje eksperimentas 537.1.2. Duomenų kėlimo į MySQL DB eksperimentas 537.1.2.1. Lietuvos srautų duomenų kėlimo į DB eksperimentas 547.1.3. Programų apjungimo eksperimentas 547.1.3.1. Apjungimo programos „afprt“ eksperimentas 557.2. Eksperimento rezultatai 568. Išvados Error! Bookmark not defined.9. Literatūros sąrašas 581. ĮvadasInterneto 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 par…ametrus 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žvalgaTinklų 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 metodaiNorint 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 valdy…mo 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 metu 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 (tarny…biniais 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).

• Va…rtotojų 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ūraNetFlow 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ėsParinkus 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 iš 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ų palyginimasCharakteristika Programinio paketo pavadinimas Cflowd Flow-tools CiscoWorksLicencija Nemokamas Nemokamas MokamasNaudojami 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 yra2.3. Duomenų paruošimas vartotojuiPasirinktas 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. Specifikacija3.1. Projektuojamas objektasMūsų projektuojamas objektas – duomenų registravimo ir analizės sistema, paremta NetFlow technologija.3.2. Objekto paskirtisPagrindinė projektuojamo objekto paskirtis – tinklo srauto duomenų, teikiamų NetFlow protokolu, kaupimas, analizavimas ir pateikimas vartotojui priimtna forma.3.3. Vykdomos funkcijosPagrindinė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 posistemeiPagrindiniai 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ąsajaiPagrindiniai 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 įrangaiPagrindiniai 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 aptarnavimuiPagrindiniai 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 dokumentacijaiPagrindiniai 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ė schema4.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 pagrindimasPagal specifikacijos punktą 3.4 (Reikalavimai 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 šaltinis4.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 įrenginysPriimtiems 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 kompiuterisAsmeninis 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 įrangaProjektui 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ų sujungimasNorint 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ų sujungimasKadangi 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, todėl 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 įrankiaiTinklui 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 šaltinisKiekvienam 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 parinkimasNors 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 jungimasTeisingai 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 planas4.8 pav. Kompiuterinio tinklo sujungimo planas.Sutartiniai ženklai:5. Informacinė posistemė5.1. Informacijos srautų analizė ir projektavimasBet 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ų kaupimasNetFlow 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ų apdorojimasPagrindinė 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ų apdorojimasAntrinio 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ų pateikimasVisi 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ą failą. 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 ataskaitosRealaus 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 ataskaitosLaiko 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.5.2. Duomenų 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ėsProjektuojant 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ėsKaip 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 Funkcijoslntraff Lentelė skirta duomenų srautams LitNET tinklu apskaitai saugotilttraff Lentelė skirta duomenų srautams Lietuvos ISP tinklais apskaitai saugotiothertraff 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 puslapyjeLaukelio 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ęsinysLaukelio 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 į kitus, išskyrus Lietuvos IPT tinklus bigint, sudarytas iš dvidešimties skaitmenų

Saugant IP adresą, vartojama funkcija INET_ATON, kuri duotąjį IP adresą verčia į dešimtainį skaičių. Toks vertimas palengvina IP adresų erdvės paiešką duomenų bazėje. INET_ATON funkcija vartojama: INET_ATON(‘IP_ADRESAS’). Laiko intervalą nusakantys laukeliai stime ir etime yra datetime tipo, tad savyje turi informaciją tokią kaip metai, mėnuo, diena, valanda, minutės, sekundės. Šitoks intervalo formatas leidžia saugoti didelę laiko dalį apimančią infromaciją. Laukai oc_in_ln ir oc_out_ln informaciją saugo bigint formate, be jokių reikšmės dydžio apribojimų, kadangi srautų kiekiai yra nenusakomos apimties. Toks neapibrėžtinumas leidžia nekeisti lentelės laukelio tipo išaugus srautams nei kad būtų buve numatyta projekte.6. Vartotojo sąsajos posistemė6.1. Vartotojo sąsajos funkcijosNorint pasinaudoti šio projekto vartotojo sąsaja užtenka darbo vietoje turėti įdiegtą vieną iš interneto naršyklių, kurios pateikos 3.6 punkte – Reikalavimai vartotojo sąsajai.

Pagrdindinės vartotojo sąsajos atliekamos funkcijos:

• tinklų duomenų srautų pateikimas realaus laiko rėžime• tinklų duomenų srautų pateikimas iš DBVS• detalizuotas konkrečių duomenų srautų pateikimas realaus laiko rėžime• detalizuotas konkrečių duomenu srautų pateikimas iš DBVS• grafinis realaus laiko detalizuotų srautų pateikimas• grafinis konkrečių duomenų srautų vaizdavimas naudojant DBVS• mėnesinės ir savaitinės duomenų srautų ataskaitų pateikimas6.2. Vartotojo sąsajos planas6.1 pav. Pagrindinės programos struktūra

Pagrindinės programos posistemių funkcijos:

• realaus laiko posistemė atlieka realaus laiko duomenų srautų pateikimą, jų detalizavimą bei grafinį pateikimą• laiko juostos posistemė pateikia norimo laiko intervalo duomenų srautus, juos leidžia detalizuoti, pateikti grafinį apipavidalinimą• archyvo peržiūros posistemė įgalina peržiūrėti globalizuotas mėnesines ar savaitines duomenų srautų ataskaitas

Kadangi vartotojo sąsaja realizuota dinamių Interneto puslapių pagalba, tad žodžis “puslapis” bus traktuojami kaip sistema ir posistemė.6.2.1. Realaus laiko posistemė6.2.1.1. Realaus laiko posistemės schema6.2 pav. Realaus laiko posistemės schema6.2.1.2. Realaus laiko posistemės vartotojo sąsajaPagrindinis vartotojo sąsajos puslapis (toliau aprašant kitas posistemes minimas nebus, tad aprašomas kartu su šia posisteme):

6.3 pav. Pagrindinis vartotojo sąsajos puslapis

Kiekvienas mygtukas iškviečia atitinkamą vartotojo sąsajos puslapį: RealTime – realaus laiko duomenų posistemė TimeLine – laiko juostos duomenų posistemė Archyvas – globalizuotų mėnesinių ir savaitinių ataskaitų posistemė

6.4 pav. Realaus laiko posistemės aplinkos pagrindinis langas

Realaus laiko posistemė turėtų kiekvienos užklausos metu gauti realaus laiko parametrus pati. Naudojant tam tikrą algoritmą, ši posistemė turi susigeneruoti bylos su duomenimis pavadinimą bei kelią iki jos dinamiškai. Tai leidžia vartotojui nuspaudus mygtuką „Generate“ gauti realaus laiko duomenų srautus. Nuspaudus šį mygtuką, vartotojas turetėtų gauti dinamiškai sugeneruotą duomenų srautų lentelę, kurią sudaro TOP100 srautų pagal siuntėjo/gavėjo adresą, rikiuojant mažėjimo tvarka, pagal išsiųstų/gautų duomenų kiekį.

6.5 pav. Realaus laiko srautų TOP100 lentelė

Kad realaus laiko duomenų srautų posistemė atliktų visas jai priklausančias funkcijas, prie kiekvieno iš gavėjo/siuntėjo IP adreso turi būti punktas „List“ (žr.6.5 pav). Šio punkto pagalba turi būti realizuota realaus laiko duomenų srautų detalizavimo funkcija.

6.6 pav. Detalizuotas realaus laiko duomenų pateikimas pasirinkus IP adresą.

Pagal vartotojo poreikius, siekiant atlikti dar gilesnę ir konkretesnę informacijos detalizaciją, turi būti realizuotos dar dvi svarbios funkcijos, atliekamos mygtukų „::Srautai tik Lietuvoje::“ ir „::Pilnas sesijų sarašas::“ pagalba. Nuspaudęs mygtuką „::Srautai tik Lietuvoje::“, vartotojas turėtų gauti informaciją apie konkretaus IP adreso išsiųstus/gautus duomenis Lietuvos duomenų perdavimo tinklais (žr. 6.6 pav).

6.7 pav. IP adreso detalizuotas Visų ir Lietuvos duomenų srautų pateikimas

Rezultatai turėtų būti gražinami skirtingose naršyklės lango pusėse, tačiau tame pačiame lape. Tai suteiktų vartotojui galimybę greičiau ir lengviau vizualiai sulyginti duomenų srautų kiekius.Mygtukai “::Pilnas sesijų sarašas::” turėtų būti abiejuose detalizuotų srautų dalyse. Jie turėtų būti paskutiniai detalizacijos etape. Taip pat būtina, jog šių mygtukų veikimas neturėtų įtakos vienas kito veikimui. Jie turi nepriklausomai analizuoti tik tą srautų dalį, kuri jam priklauso (pvz tik Lietuvos arba Visus). Vartotojo patogumui , pilnas sesijų sarašas turi būti pateikiamas mažėjimo tvarka, pagal išsiustų/gautų duomenų lauką. Tai palengvintu didžiausių srautų aptikimą iš vieno taško į kitą, kas leistų greitai reaguoti į esamą situaciją tinkle. Pateikiamos lentelės laukai susideda iš “Source IP” (duomenų srauto šaltinis), “Destination IP” (duomenų srauto galutinis taškas), “Octets” (oktetų arba kitaip sakant baitų kiekis) bei “Packets” (paketų kiekis). Turi išlikti galimybė vartotojui grįžti atgal į bendrą sąrašą (t.y į pradinį, be sesijų sąrašo). Tam tikslui naudojamas mygtukas “::Bendras informacija::” (žr. 6.7,6.8 pav). Siekiant dar labiau susparastinti vartotojo aplinką, visi baitų kiekiai turi būti išreiškiami į greitai ir lengvai suprantamą formatą (pvz. MB-MBytes, KB-KBytes, GB-GBytes ir panašiai). Šis kriterijus turi būti taikomas visose sistemos posistemėse. Paskutinė realaus laiko posistemės funkcija, atliekanti duomenų pateikimą grafiškai, turėtų pateikti grafiką TOP10 adresų, pagal jų procentalias apimtis viso srauto atžvilgiu.

6.8 pav. Viso srauto pilnas sesijų sąrašas

6.9 pav. Lietuvos srautų pilnas sesijų sąrašas6.2.2. Laiko juostos posistemė6.2.2.1. Laiko juostos posistemės schema6.10 Laiko juostos posistemės schema6.2.2.2. Laiko juostos posistemės vartotojo sąsaja6.11 pav. Laiko juostos posistemės pagrindinis puslapis

Laiko juostos pagrindinis puslapis pavaizduotas 6.11 paveikslėlyje. Kadangi, kaip jau pats pavadinimas sako, bus dirbama su laiko intervalais, reikalingas laiko nustatymas intervalu NUO-IKI. Kita labai svarbi informacija, kurią turi pateikti vartotojas yra IP adreso arba adresų erdvės įvedimas. IP adreso įvedimui reikalingas vienas laukas, talpinantis iki 15 simbolių. Vartotojo patogumui, adresų erdvė turėtų būt įvedama dviem skirtingom formom – pateikiant tinklo kaukę arba prefiksą. Tai sutaupytų laiko jei reiktų atlikti vartotojui vertimą iš vieno metodo į kitą. Visi veiksmai susiję su duomenų gavimu, turi būti pagrįsti informacijos ėmimu iš duomenų bazės, kurioje saugomi sutvarkyti ir dalinai išanalizuoti duomenų srautai su laiko intervalais ir kita atributika. Tai užtikrina žymiai spartesnį duomenų pateikimą, nei kad jų analizę naudojant senųjų srautų failus. Toks metodas infomacijos pateikimo spartos požiūriu lenkia realaus laiko informacijos apdorojimą. Turint visus reikiamus parametrus ir paspaudus mygtuką „Submit Query“bus atlikta srautų duomenų paieška duomenų bazėje ir pateikta vartotojui (žr. 6.12 pav).

6.12 pav. Laiko juostos pateikimas su pasirinktais parametrais

Puslapyje turi būti pateiktos ne tik duomenų lentelės, bet kartu ir vartotojo pasirinkti parametrai. Tai palengvina navigacija ir leidžia bet kuriuo momentu sužinoti jų reikšmes. Rezultatus reiktų pateikti šiais laukeliais:• IP adresas• Baitai į IP• Baitai iš IP• Details (detalizacija)Vaizduojant pirmuosius tris laukelius reikalingas papildomas jų apdorojimas, nes tie laukeliai turi atspindėti unikalių adresų duomenų srautus. Norint detalizuoti unikalių IP adresų srautus reikalingas ketvirtasis „Details“ laukelis. Šiame laukelyje esantis mygtukas „View“ (peržiūrėti) turi atlikti būtent pasirinkto unikalaus IP adreso srautų detalizaciją laiko intervale (žr. 6.13 pav).

6.13 pav. Detalizuota laiko juostos ataskaita pasirinkus tam tikrą IP adresą

Detalizuotoje laiko juostos ataskaitoje turi būti paminėtas ne tik laiko ribų pasirinkimas, bet ir konkretus, detalizuojamas, IP adresas. Srautų ataskaitos turi būti pateiktos tam tikrais laiko intervalais, būtent tokiais, kokie yra naudojami duomenų bazėje. Tai užtikrina duomenų korektiškumą ir autentiškumą. Grafinio pateikimo funkcijai realizuoti, reiktų pateikti duomenų srautų kitimo grafiką laiko juostoje. Vartotojui tai suteiktų vizualų ir lengvai suprantamą duomenų srautų kitimo vaizdą. Toks vizualinis duomenų pateikimas padėtų nustatant laiko periodus kada tinkle yra didžiausi apkrovimai, individualaus kliento/padalinio srautų poreikius ir pan. Laiko juostoje duomenų srautai skirstomi į atskirų tinklu srautus (žr. 6.13 pav). Tai labai svarbus punktas, nes tai nulemia duomenų kanalų plėtimo/mažinimo galimybes taip, kad jie atitiktų poreikius. Įvedus IP adresą ir jo kaukę arba prefiksą pradinių duomenų įvedimo puslapyje, turi būti atliktas automatinis adresų erdvės ribų paskaičiavimas. Reikia realizuoti du nustatymo metodus – kai žinoma kaukė arba kai žinomas prefiksas. Toks lankstumas turi leisti laisvai pasirinkti bet kokį žinomą IP tinklo adresą ir naudojant kaukę arba prefiksą sužinoti būtent to tinklo kitų IP adresų srautų ataskaitas. Tada galima lyginti jį kaip organizacinį vienetą su visa organizacija ir panašiai.6.2.3. Archyvo peržiūros posistemė

6.14 pav. Archyvo peržiūros posistemės schema

Archyvo peržiūros posistemė turi įgalinti mus peržiūrėti mėnesines srautų ataskaitas. Jos turi būt pateiktos globalizuotai – organizacijos mastu. Vizualiai atspindėti srautų kiekius pagal IP protokolus bei aplikacijas. Tokių duomenų pateikimas leistu vesti pastovią statistiką, stebėti paslaugų poreikį tinkle ir daryti atitinkamas išvadas. Svarbi ir srautų detalizacija, kuri susidėtų iš ataskaitų apie srautus užsienio tinklais (Internet tinklu), LitNET tinklais bei Lietuvos IPT tinklais. Šitokios pateikiamos ataskaitos yra vertinga informacija siekiant toliau plėsti bei renovuoti ryšio linijas ne tik organizacijos ribose, bet kartu atsižvelgiant i pralaidumų poreikius su Lietuvos IPT bei Internet tinklu. Tai padėtų užtikrinti geresnės tinklo paslaugų kokybės garantavimą ateityje.7. Eksperimentinė dalis7.1. Srautų duomenų saugojimo naudojant DBVS eksperimentasNorint, jog vartotojo sąsajos posistemė “Laiko juosta” funkcionuotų pagal reikalavimus (minėtus 6.2.2.2 punkte – duomenys turi būti imami iš DB), reikia atlikti dalines duomenų srautų bylų analizes ir jas patalpinti į DB. Specifikacijoje siūloma naudoti MySQL DBVS (žr 3.5 punktą). Eksperimentas atliekamas naudojant Debian – Linux OS šeimos atstovę.7.1.1. Duomenų bylų apdorojimo programos eksperimentasPrieš keliant duomenis į duomenų bazę, reikia juos gauti iš srautų duomenų failų, apdoroti ir paruošti eksportavimui į duomenų bazę. Tam tikslui reiktų naudoti tarpinę programą, kuri tai atliktu. Programa turėtų būti paleidžiama sisteminės fiksuoto laiko užduočių vykdymo programos „crontab“. Kad užtikrinti duomenų išbaigtumą, geriausia šios programos pagalba analizuoti prieš valandą ar dvi užbaigtas duomenų srautų bylas.Tai susiję su kaikurių srautų persikėlimu į kitos valandos failą, nes srautai registruojami tik jiems užsibaigus. Pvz. jei srautas prasidėjo 14 valandą 58 minutės ir baigėsi 15 valandą 5 minutės, tai jis bus 15 valandos srautų byloje. Iš čia seka išvada, jog analizuojant 14 valandos srautus, jis bus pamestas. Tad reikia ne tik analizuoti valandos ar dviejų senumo bylas, bet kartu ir dviejų valandų rėžiuose. Eksperimento metu naudojama PHP programavimo kalba parašyta programa. Šios programos pagrindiniai užvadiniai yra – sugeneruoti kelius iki analizuojamų duomenų srautų bylų, sugeneruoti dalinę analizę atliekančioms paprogramėms atitinkamus filtrus ir iškviesti dalinės analizes paprogrames, perduodant joms filtrų ir duomenų srautų bylų kelius. Gautas rezultatas turi būti saugomas atskiroje byloje, kuria naudosis duomenų DB kėlimo programa.7.1.1.1. Duomenų bylų analizės srautams Lietuvoje eksperimentasDuomenų srautų Lietuvos tinklais analizės eksperimente bus naudojama PHP programavimo kalba rašyta programa LTdump.php . Ji automatiškai pasiima sistemos laiką, sugeneruoja kelius iki srautų duomenų failų, sugeneruoja tarpinių dalinės analizės programų filtrus ir paleidžia bendrą apdorojimo mechanizmą.mauras:/var/www/lvc/flow/bin# php4 -q LTdump.phpVykdau : flow-cat /data/2003/2003-12/2003-12-04/ft-v07.2003-12-04.23* | flow-nfilter -Fcollect -f/var/www/lvc/flow/tltraff/filters/collect.cfg | flow-print -f0 | awk ‘{if ($2 != “SrcIPaddress”) print $2,$4,$8,$9}’ > /var/www/lvc/flow/tltraff/filters/temp/tmp.datVykdau : flow-cat /data/2003/2003-12/2003-12-05/ft-v07.2003-12-05.00* | flow-nfilter -Fcollect -f/var/www/lvc/flow/tltraff/filters/collect.cfg | flow-print -f0 | awk ‘{if ($2 != “SrcIPaddress”) print $2,$4,$8,$9}’ >> /var/www/lvc/flow/tltraff/filters/temp/tmp.dat7.1 pav. LTdump.php programos išvedamas tekstas

Paveikslėlyje 7.1 matyti programos dinamiškai sugeneruoti keliai iki srautų duomenų bylų bei visų tarpinių programų paleidimas su atitinkamais atributais. Programa taip pat sugeneruoja specialų srautų filtrą collect.cfg , kurį naudoja tarpinė dalinės analizės programa „flow-nfilter“. Rezultatai pateikiami byloje tmp.dat.7.1.2. Duomenų kėlimo į MySQL DB eksperimentasTurint duomenų bylų apdorojimo programos rezultatus, reikia juos eksportuoti į duomenų bazę. Šios dalies realizacijai reikia greito didelių duomenų kiekių rušiavimo ir apdorojimo algoritmo. Vienas iš variantų yra binarinio medžio panaudojimas. Eksperimentinė programa rašyta naudojant C programavimo kalba, Linux sisteminei terpei. Reikia numatyti, jog programa turi leisti pasirinkti pagal ka bus sumuojami unikalių IP adresų srautai – pagal Source (šaltinio) ar Destination (gavėjo) laukus bei kokių tinklų tai duomenų srautai. Tinklų duomenų srautai gali būti trejopi – Lietuvos tinklų, LitNET tinklo ir kiti (visi srautai iš LitNET organizacijos į pasaulinį tinklą, atmetant srautus Lietuvos tinklais). Programa atliekanti šią užduotį turi būti leidžiama iškart po bylų apdorojimo programos, naudojant tą pačią sisteminę fiksuoto laiko darbų programą „crontab“.7.1.2.1. Lietuvos srautų duomenų kėlimo į DB eksperimentasEksperimentinės programos ftdsp (akronimas Flow Tools Data Summing Program arba Flow Tools Duomenų Sumavimo Programa) raktų paaiškinimas:mauras:/var/www/lvc/flow/bin# ./ftdsp -hProgramos raktu paaiskinimas:-V – versijos info; -h – informacija apie raktus (dabar ja skaitote)-i – kelias iki analizuojamo failo; -o – kelias iki rezultatu failo-s – dirbama su source lauku; -d – dirbama su destination lauku.-l – LitNET srautu eksportavimas i LitNET srautu DB-t – Lietuvos srautu eksportavimas i Lietuvos srautu DB-r – srautu eksportavimas i Other srautu DB7.2 pav. ftdsp programos raktų aprašymas

Programos nustatymas ir paleidimas srautų Lietuvos tinklais analizės eksperimentui:

mauras:/var/www/lvc/flow/bin# ./ftdsp -i /var/www/lvc/flow/tltraff/filters/temp/tmp.dat -o /dev/null -s -tSkirtingi nariai: 520prisijungem prie db , pradesim eksportuoti…Baigta.mauras:/var/www/lvc/flow/bin# ./ftdsp -i /var/www/lvc/flow/tltraff/filters/temp/tmp.dat -o /dev/null -d -tSkirtingi nariai: 522prisijungem prie db , pradesim eksportuoti…Baigta.7.3 pav. ftdsp programos darbo metu išvedamas tekstas

Paveikslėlyje 7.3 pavaizduotas eksperimentinės programos „ftdsp“ veikimas. Pagal reikalavimą, programa leidžia pasirinkti analizuojamų srautų kryptį – analizuoti įeinančius unikalius srautus ar analizuoti išeinančius unikalius srautus. Pateiktame eksperimente unikalių srautų apdorojimas buvo įvykdytas abiem pusėm, duomenys sukelti į Lietuvos tinklų srautų duomenų bazę.7.1.3. Programų apjungimo eksperimentasSiekiant supaprastinti duomenų dalinės analizės ir eksprotavimo mechanizmą, reiktų turėti programas apjungiančią autonominę programą. Ją leidžiant iš sisteminės fiksuoto laiko darbų programos „crontab“ būtų atliekami visų srautų apdorojimo uždaviniai nuosekliai, kaip kad pateikta eksperimente. Nuoseklumo užtikrinimui ši programa turėti pirma vykdyti srautų duomenų failų analizę, o poto iškviesti duomenų eksportavimo į duomenų bazę programą. Kadangi srautai dedami į atskiras duomenų bazes, ji šią procedurą tūrėtų atlikti tris kartus, naudojant skirtinas apdorojimo programas (kaip pvz LTdump.php – Lietuvos srautams, LNdump.php – LitNET srautams, OTHERdump.php – Internet srautams iš/į LitNET) bei manipuliuodama eksportavimo į DB programos raktus. Eksperimento tikslais sumodeliuota apjungimo programa/skriptas „afprt“ (akronimas All Flow Programs Run Together).7.1.3.1. Apjungimo programos „afprt“ eksperimentasPrograma veikia savarankiškai, be jokių papildomų raktų. Visą reikiama informacija apie apjungiamų programų parametrus yra integruota.

Generuojamas LitNET srautu tmp failas …Vykdau : flow-cat /home/ftp/video/2003/2003-12/2003-12-04/ft-v07.2003-12-04.23* | flow-nfilter -Fcollect -f/var/www/lvc/flow/tltraff/filters/collect.cfg | flow-print -f0 | awk ‘{if ($2 != “SrcIPaddress”) print $2,$4,$8,$9}’ > /var/www/lvc/flow/tltraff/filters/temp/tmp.datVykdau : flow-cat /home/ftp/video/2003/2003-12/2003-12-05/ft-v07.2003-12-05.00* | flow-nfilter -Fcollect -f/var/www/lvc/flow/tltraff/filters/collect.cfg | flow-print -f0 | awk ‘{if ($2 != “SrcIPaddress”) print $2,$4,$8,$9}’ >> /var/www/lvc/flow/tltraff/filters/temp/tmp.datAprodojamas LitNET srautu tmp failas ir duomenis dedami i duomenu baze Kvieciu programa afprt ir analizuojupagal Destination lauka:Skirtingi nariai: 1660prisijungem prie db , pradesim duomenu talpinima…Baigta.analizuoju pagal Source lauka:Skirtingi nariai: 953prisijungem prie db , pradesim duomenu talpinima…Baigta.Generuojamas Lietuvos srautu tmp failas …Vykdau : flow-cat /home/ftp/video/2003/2003-12/2003-12-04/ft-v07.2003-12-04.23* | flow-nfilter -Fcollect -f/var/www/lvc/flow/tltraff/filters/collect.cfg | flow-print -f0 | awk ‘{if ($2 != “SrcIPaddress”) print $2,$4,$8,$9}’ > /var/www/lvc/flow/tltraff/filters/temp/tmp.datVykdau : flow-cat /home/ftp/video/2003/2003-12/2003-12-05/ft-v07.2003-12-05.00* | flow-nfilter -Fcollect -f/var/www/lvc/flow/tltraff/filters/collect.cfg | flow-print -f0 | awk ‘{if ($2 != “SrcIPaddress”) print $2,$4,$8,$9}’ >> /var/www/lvc/flow/tltraff/filters/temp/tmp.datAprodojamas Lietuvos srautu tmp failas ir duomenis dedami i duomenu bazeKvieciu programa afprt ir analizuojupagal Destination lauka:Skirtingi nariai: 3528prisijungem prie db , pradesim duomenu talpinima…Baigta.Analizuoju pagal Source lauka:Skirtingi nariai: 2709prisijungem prie db , pradesim duomenu talpinima…

Baigta.7.4 pav. Eksperimentinės programų apjungimo programos afprt išvedamas tekstas

Paveikslėlis 7.4 demonstruoja kaip atskiros eksperimentinės programos gali būti sujungtos į vieną bendrą grandį. Tokia realizacija leidžia programom užduotą darbą atlikti nuosekliai, rezultatų apdorojimą perduodant tolyn link paskutinės apdorojimo grandies. Šios programos darbo rezultatai yra pagrindinis duomenų šaltinis „Laiko juostos“ posistemės realizacijojai. Tai buvo pagrindinis šio eksperimento tikslas.7.2. Eksperimento rezultataiAtlikus eksperimentą duomenų bazė pasipildė informacija apie srautus tiek LitNET tinklu, tiek Lietuvos ITP tinklais. Turint visus duomenis duomenų bazėje, juos galime be papildomų išorinių algoritmų rikiuoti, sumuoti, riboti išvedamų narių kiekį bei atmetinėti mus nedominančius narius. Visas šias funkcijas atlieka MySQL DBVS. Duomenų bazės turinio ištraukos po eksperimento pateikiamos žemiau.

mysql> select * from lttraff order by oc_in_lt DESC limit 15;+————+———————+———————+————+———–+| ip | stime | etime | oc_in_lt | oc_out_lt |+————+———————+———————+————+———–+| 3252371540 | 2003-10-28 13:30:00 | 2003-10-28 13:59:00 | 1999795289 | 40859061 || 3252393669 | 2003-10-28 12:30:00 | 2003-10-28 12:59:00 | 1977201256 | 38996508 || 3252393667 | 2003-10-28 15:00:00 | 2003-10-28 15:30:00 | 1745449748 | 38474831 || 3586007072 | 2003-12-05 01:30:00 | 2003-12-05 01:59:00 | 1658386537 | 34542188 || 3252378499 | 2003-10-28 14:30:00 | 2003-10-28 14:59:00 | 1598389865 | 32084697 || 3252398094 | 2003-10-28 12:30:00 | 2003-10-28 12:59:00 | 1516030577 | 26291230 || 3560636617 | 2003-10-28 15:00:00 | 2003-10-28 15:30:00 | 1498378308 | 28378017 || 3252396162 | 2003-10-28 13:30:00 | 2003-10-28 13:59:00 | 1460896343 | 21316169 || 3252396276 | 2003-10-28 14:00:00 | 2003-10-28 14:30:00 | 1414967545 | 26047629 || 3252373304 | 2003-10-28 14:00:00 | 2003-10-28 14:30:00 | 1410038318 | 28218074 || 3252396162 | 2003-10-28 14:00:00 | 2003-10-28 14:30:00 | 1351992600 | 23435077 || 3252371137 | 2003-10-28 15:00:00 | 2003-10-28 15:30:00 | 1347401240 | 41305410 || 3252398094 | 2003-10-28 14:00:00 | 2003-10-28 14:30:00 | 1316988788 | 16172354 || 3252398094 | 2003-10-28 14:30:00 | 2003-10-28 14:59:00 | 1266672487 | 36431064 || 3252396285 | 2003-10-28 15:00:00 | 2003-10-28 15:30:00 | 1169589685 | 22688676 |+————+———————+———————+————+———–+15 rows in set (0.36 sec)mysql> select * from lntraff order by oc_in_ln DESC limit 15;+————+———————+———————+————+———–+| ip | stime | etime | oc_in_ln | oc_out_ln |+————+———————+———————+————+———–+| 3252371540 | 2003-10-28 13:30:00 | 2003-10-28 13:59:00 | 1999002559 | 40580164 || 3252393669 | 2003-10-28 12:30:00 | 2003-10-28 12:59:00 | 1977201256 | 38996508 || 3252393667 | 2003-10-28 15:00:00 | 2003-10-28 15:30:00 | 1745449748 | 38474831 || 3252378499 | 2003-10-28 14:30:00 | 2003-10-28 14:59:00 | 1598053584 | 32081720 || 3252398094 | 2003-10-28 12:30:00 | 2003-10-28 12:59:00 | 1516028381 | 26164398 || 3252396276 | 2003-10-28 14:00:00 | 2003-10-28 14:30:00 | 1414930391 | 26047377 || 3252373304 | 2003-10-28 14:00:00 | 2003-10-28 14:30:00 | 1410038318 | 28218074 || 3252371137 | 2003-10-28 15:00:00 | 2003-10-28 15:30:00 | 1346911235 | 33832731 || 3252396285 | 2003-12-05 01:30:00 | 2003-12-05 01:59:00 | 1340497366 | 37721701 || 3252398094 | 2003-10-28 14:00:00 | 2003-10-28 14:30:00 | 1316657324 | 15495273 || 3252398094 | 2003-10-28 14:30:00 | 2003-10-28 14:59:00 | 1266672279 | 36408528 || 3252396285 | 2003-10-28 15:00:00 | 2003-10-28 15:30:00 | 1165889446 | 21922557 || 3252370713 | 2003-12-05 01:30:00 | 2003-12-05 01:59:00 | 1151127465 | 688939 || 3252371137 | 2003-12-05 01:30:00 | 2003-12-05 01:59:00 | 1106323898 | 45603741 || 3252371042 | 2003-10-28 14:00:00 | 2003-10-28 14:30:00 | 1076856229 | 25044517 |+————+———————+———————+————+———–+15 rows in set (0.92 sec)7.5 pav. Duomenų lentelės duomenų bazėje pavyzdys

Kaip matome, duomenų bazės laukeliai užsipildė tinklo duomenų srautų informacija. Dominančio kompiuterio IP adresas kaip matome yra konv…ertuojamas į sveiką skaičių, kas palengvina manipuliaciją jais. Tokiu būdu mes galime atlikinėdami paiešką naudoti paprastus palyginimo operatorius. Eksperimentinės programos metu fiksuotas srautų laikas taip pat sėkmingai suvestas i lenteles, kartu ir duomenų srautų informacija.

8. Darbo rezultatas

Projekto kūrimo metu buvo susipažinta su organizacijos, kuriai ruošiamas projektas, tinklo infrastruktūra ir ją minimaliai pakeičiant buvo pritaikytas sprendimas. Realizavimui buvo pasirinktos progresyvios šiuolaikinės duomenų eksportavimo technologijos, taip pat pasinaudota atviro kodo programomis. Tinklo duomenų srautų eksportavimui buvo pasirinktas Cisco kompanijos sukurtas NetFlow metodas, kuris IETF buvo pripažintas geriausiu kandidatu į naują duomenų srautų eksportavimo metodą IPFiX. Šio metodo pagrindu parinktas Cisco kompanijos Catalyst 6500 serijos maršrutizatorius, kuris atitinka LitNET masto organizacijos stuburinio mazgo poreikius ir eksportuodamas duomenis netrikdo srautų maršrutizavimo ir komutavimo proceso. Eksportuojamų duomenų kaupimui parinktas atviro kodo programinis paketas Flow-tools. Šis programinis paketas labai lankstus, nereikalauja papildomų sisteminių bibliotekų ir veikia visose UNIX/Linux genties operacinėse sistemose. Toks lankstumas leido pasirinkti Debian – Linux genties OS, kuri naudojama srautus kaupiančiame serveryje, parinktame pagal specifinius reikalavimus. Naudojant C programavimo kalbą buvo sukurta eksportuojamų duomenų analizės ir saugojimo MySQL duomenų bazėje programa. Naudojant šią programą, sėkmingai atliktas duomenų analizės bei saugojimo eksperimentas. Programos darbo pagrindu, suprojektuota ir realizuota vartotojo sąsajos posistemė. Posistemės realizacija atlikta naudojant WWW technologiją kartu su PHP programavimo kalba. Tai suteikia dinamiškumo ir leidžia vartotojui iš bet kur pasiekti srautų analizės duomenis naudojant Interneto naršyklę ir nereikalauja specifinės operacinės sistemos.9. Literatūros sąrašas1. MySQL: The World’s Most Popular Open Source Database. [interaktyvus]Atnaujinta gruodžio 11,2003. Žiūrėta gruodžio 17,2003. Prieiga per Internetą 2. Cisco Systems, Inc. [interaktyvus] Atnaujinta Gruodžio 17,2003. Žiūrėta Gruodžio 17,2003. Prieiga per Internetą 3. flow-tools. [interaktyvus] Atnaujinta gruodžio 4, 2003. Žiūrėta gruodžio 17,2003. Prieiga per Internetą 4. cflowd: Traffic Flow Analysis Tool – CAIDA : TOOLS : measurement : cflowd. [interaktyvus] Atnaujinta birželio 14,2002. Žiūrėta gruodžio 17,2003. Prieiga per Internetą 5. IP Flow Information Export (ipfix) Charter. [interaktyvus] Atnaujinta gruodžio 15,2003. Žiūrėta gruodžio 17,2003. Prieiga per Internetą 6. RFC 1157 (rfc1157) – Simple Network Management Protocol (SNMP). [interaktyvus] Atnaujinta kovą,1990. Žiūrėta gruodžio 17. Prieiga per Internetą 7. HP ProCurve Networking. [ineraktyvus] Atnaujinta gruodžio 16,2003. Žiūrėta gruodžio 17,2003. Prieiga per Internetą 8. [CESNET] https://jerry.cesnet.cz/pam2001/accounting.html9. [IPmeter] http://www.mirrors.wiretapped.net/security/network-monitoring/ipmeter/ipmeter-doc/whitepaper.pdf10. [SLAC] http://www.slac.stanford.edu/comp/net/wan-mon/passive-vs-active.html11. [RMON] http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/rmon.htm12. [RMON2] http://www.networkcomputing.com/903/903f1.html13. [RFC2021] http://www.faqs.org/rfcs/rfc2021.html14. [CISCO-SNMP] http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/snmp.htm15. [SNMP] Essential SNMP. Douglas Mauro, Kevin Shmidt. O‘reily, 2001. 291 psl.16. [SNMPv3-RFC] http://www.lafn.org/~aw585/snmp2.html17. [SNMP-ARCH] http://www2.rad.com/networks/1995/snmp/snmp.htm18. [SNMPv1] http://www.javvin.com/protocolSNMPv1.html19. [SNMP-DIFF] http://www.javvin.com/protocolSNMP.html20. [NETFLOW] http://www.cisco.com/warp/public/732/Tech/nmp/netflow/21. [NETFLOW1] http://www.cisco.com/warp/public/cc/pd/iosw/ioft/neflct/tech/napps_wp.htm22. [IPFIX] http://www.ietf.org/internet-drafts/draft-ietf-ipfix-protocol-03.txt23. [CFLOWD] http://www.caida.org/tools/measurement/cflowd/24. [FLOW-TOOLS] http://www.splintered.net/sw/flow-tools/25. [CISCOWORKS] http://www.cisco.com/en/US/products/sw/cscowork/26. [MYSQL] http://www.mysql.com

1 Priedas. Cisco Catalyst 6500 serijos specifikacija

Apibūdinimas SpecifikacijaĮterptinis valdymas NetFlow duomenų eksportavimas TopN prievadų ataskaita RMON agentas HC RMON (Didelės talpos, 64-bitų skaitliukai) Komutuojamų prievadų analizatorius (SPAN) ir praplėstasis SPAN Keli vienalaikiai SPAN Nuotolinis SPAN Filtruotas SPAN Syslog palaikymas Telnet/komandinės eilutės sąsajų palaikymas IP TraceRoute Sričių vardų serverio (DNS) paslauga Tinklo laiko protokolas (NTP) Cisco įrenginių atradimo protokolas (CDP) 2 versija VLAN Trunking protokolas (VTP) IEEE bendrinis atributų registravimo protokolas (GARP) IEEE GARP VLAN registravimo protokolas (GVRP) VLAN užklausų protokolas (VQP) Paprastas tinklo valdymo protokolas (SNMP) versijos 1, 2, 3 SNMP MIB-II palaikymas SNMP MIB priedai ir pagerinimai • Cisco-Switch-Engine MIB • Cisco-Memory-Pool MIB • Entity-MIB • TraceRoute MIB SNMP asinchroniniai pranešimai Keleto modulių atsiuntimas Keletas numatytųjų IP šliuzų Prisijungimo prie valdymo pulto žinutėPraplečiamumas IP keleto lygmenų komutavimas IP Multicast keleto lygmenų komutavimas IPX keleto lygmenų komutavimas Daugiaprotokolis maršrutizavimas: Appletalk, DECnet, Vines, OSI ir CLNS IP maršrutizavimo protokolai: RIPv1/v2, OSPF, IGRP, EIGRP, BGP4, IS-IS Didelių gigabitinio ethernet kadrų komutavimas Pagreitintas apkrovim…o paskirstymas IEEE GARP Multicast registravimo protokolas (GMRP) Greitas EtherChannel/Gigabit EtherChannel/PAgP ISL Trunking 802.1Q / 802.1p Dinaminis Trunking protokolas (DTP) Dinaminis VLAN VMPS klientas VTP, VTP 2 versija VTP atkirtimasApkrovimo valdymas Protokolų filtravimas Interneto grupių valdymo protokolo (IGMP) šnipas Broadcast sulaikymas Linijos apkrautumo išlyginimas Greitas EtherChannel (FEC) / Gigabitinis EtherChannel (GEC)Tinklo atsistatymas Atsarginiai prižiūrėtojai su Aktyvia linija BackboneFast atsistatymas PortFast atsistatymas FEC/GEC IP adresu paremtas apkrovimo paskirstymas FEC/GEC Accross Line moduliai Vienkryptės linijos aptikimas (UDLD) Tarpkomutatorinės linijos (ISL) 802.1Q Persidengiančio medžio protokolas Persidengiantys medžiai kiekvienam VLAN Greito maršrutizatoriaus pakeitimo protokolas (HSRP) Trumpiausio kelio atidarymas pirmiausia (OSPF) Patobulintas interneto šliuzų maršrutizavimo protokolas (EIGRP) EherChannel serveriamsSaugumo paslaugos Prievadų saugumas TACACS+autentifikacija RADIUS autentifikacija Leidžiamų IP sąrašas Įvairūs pranešimai, siunčiami pažeidus saugumo reikalavimus Pažangūs sluoksnių 2/3/4 leidimo sąrašai VLAN viduje (VACL) Pažangūs sluoksnių 2/3/4 leidimo standartiniai ir patobulintisąrašai tarp VLAN Atsispindintys ACL Dinaminiai ACL Strategija paremtas maršrutizavimas Tinklo adresų transliavimasPaslaugos kokybė IP prioritetų aptikimas ir klasifikavimas 802.1Q/802.1p aptikimas ir klasifikavimas IP diferencijuotų paslaugų paketų aptikimas ir klasifikavimas Apkrovimo strategijos Perkrovos išvengimas (WRED numetimo reikšmės prievaduose) Srauto praleidimo planavimas COPS/RSVP Prievado lygmens užlaikymo ir numetimo limitų nustatymasMulticast Cisco grupų valdymo protokolas (CGMP) Nuo protokolo nepriklausomas Multicast (PIM) (retas ir tankus režimai) IGMP/IGMP šnipas IEEE GARP Multicast registracijos protokolas (GMRP)

2 priedas. HP procurve galimybės• Saugių Soketų Lygmuo (SSL): užkoduoja visą HTTP srautą, leisdamas saugų prisijungimą prie narškle paremtos valdymo sąsajos • VLAN: palaiko iki 30 prievadais paremtų VLAN‘ų, GVRP ir 802.1Q VLAN žymėjimą • Srauto prioritetai (802.1p): leidžia realaus laiko srauto klasifikavimą į aštuonis priorotetų lygius, sužymėtus keturioms eilėms • RMON ir komutatoriaus stebėjimas (SMON): suteikia stebėjimo ir raportavimo galimybes statistikai, archyvavimui bei aliarmams. • Steko galimybė: per vieną IP adresą valdomas virtualiam stekui, sudarytam iš iki 16 komutatorių, tokių kaip 1600m, 2400m, 2424m, 2512, 2524, 4000m, 8000m, 2650, ir 4100gl• HP auto-MDIX: automatiškai susireguliuoja darbui tiek su tiesioginiu, tiek su verstu kabeliu visuose ethernet prievaduose • VLAN grupių registravimo protokolas: automatiškai apsimoko ir dinamiškai registruoja VLAN‘us kiekviename prievade • Cisco aptikimo protokolas (CDP): įgalina realaus laiko mazgų pririšimą prie komutatoriaus prievadų • Patogūs prievadų vardai: leidžia kiekvienam prievadui priskirti tekstinį vardą• Suradimas-sutaisymas-ir-informavimas: automatiškai suranda ir pataiso dažnas tinklo problemas bei informuoja administratorių • Saugus prisijungimas valdymui: visi prisijungimo duomenys, jungiantisCLI, GUI ar MIB yra saugiai užkoduojami SSHv2, SSL, ir/arba SNMPv3 • 16 Gbps prievadų tarpusavio sujungimas: neblokuojama kabelio greičio pralaidumui architektūra• Dviasmenis funkcionalumas: 10/100/1000 arba mini-GBIC prievadai galimiems optiniams kabeliams, pvz: Gigabit-SX, -LX, arba -LH sujungti• 3 lygmens statiniai maršrutai: įgalina VLAN-su-VLAN komunikaciją IP tinkluose ir iki 16 išorinių maršrutų – įskaitant ir vieną maršrutą pagal nutylėjimą – IP tinkluose• Patikimo atsistatymo Persidengiančio medžio Protokolas (802.1w): padidina tinklo gyvavimo laiką, kadangi greitai atsistato, kai neveikia kai kurios linijos • 802.3ad Linijos agregavimo kontrolės protokolas (LACP) ir… HP trunking: palaiko iki 6 trunk‘ų, kuriuose galima sudėti po 4 linijas (prievadus) • Cisco greitas EtherChannel® (FEC): palaiko Cisco patentuotą FEC trunking protkolą • 802.1x ir RADIUS tinklinis prisijungimas: kontroliuoja prievadais paremtus leidimus autentifikacijai