Toto je vyrovnávacia pamäť Google pre http://wiki.cnl.tuke.sk/QoSProjekt/InformacnyModel. Je to snímka stránky, ako sa zobrazila dňa 25. mar. 2009 22:22:37 GMT. Aktuálna stránka sa odvtedy mohla zmeniť. Viac informácií

Len textová verzia
 
InformacnyModel < QoSProjekt < TWiki
r8 - 27 Feb 2008 - 15:38:35 - MarianSmolejYou are here: TWiki >  QoSProjekt Web  >  KonformitaBMsIPFIX > InformacnyModel

1. ÚVOD

Nesmierne rýchly vývoj v oblasti Internetu kladie veľké nároky na jeho spoľahlivosť, kvalitu a rýchlosť. Počet používateľov Internetu každým dňom narastá, tak ako narastá počet Internetových domén a samotných počítačov v sieti. Štatistiky hovoria za seba. V roku 1995 používalo Internet 16 miliónov ľudí, na konci roku 2000 to bolo už 361 miliónov a dnes to je vyše 1,262 miliárd používateľov. Narastá počet používateľov, teda narastá aj množstvo prenášaných dát a tým sa celá sieť stáva zložitejšou. Preto je nevyhnutné pri správe sietí poznať čo tvorí sieťovú prevádzku v jednotlivých bodoch siete, následne túto prevádzku správne analyzovať, spracovať, zobraziť a prípadne i archivovať. Zachytenie a spracovanie informácií sieťovej prevádzky zabezpečujú systémy pre export informácií.
V tejto práci bude analyzovaný protokol IPFIX (IP Flow Information Export), ktorého schvaľovanie má na starosti skupina IETF (Internet Engineering Task Force) , a ktorý sa stáva štandardom pre export informácií a postupne nahrádza doteraz používaný protokol firmy Cisco, NetFlow? v9.
Z dôvodu potreby merania tokov a monitorovania parametrov v sieťach, špecialne QoS? (Quality of Services) parametrov, a teda vytvorenia nástroja, ktorý by toto monitorovanie zabezpečoval v súlade so štandardom IPFIX, sa v Laboratóriách počítačových sietí na Technickej univerzite v Košiciach pracuje na projekte QoS?@Lab BasicMeter, v rámci ktorého je vyvíjaný nástroj BEEM ako najspodnejšia vrstva architektúry BasicMeter.
Hlavným cieľom tejto práce je práve analyzovanie spomínaného nástroja BEEM a následné zosúladenie meracieho a exportovacieho procesu podľa najnovších pravidiel štandardu IPFIX, prípadne rozšírenie škály pozorovaných parametrov v sieti.

2. BLIŽŠIA ŠPECIFIKÁCIA ZADANIA

Úlohou tejto práce je zhodnotiť konformitu nástroja BEEM, analyzovať nezrovnalosti v rámci štandardu IPFIX a navrhnúť a neskôr aj implementovať riešenie pre úpravu nástroja a jeho exportovacej časti smerujúce k čo najlepšiemu súladu so súčasnými požiadavkami protokolu IPFIX. Na dosiahnutie tohto cieľa je potrebné:

  • Analyzovať vlastnosti štandardu IPFIX
  • Analyzovať súčasný stav nástroja BEEM
  • Vyhodnotiť nezrovnalosti medzi analyzovaným štandardom a nástrojom BEEM
  • Navrhnúť samotné riešenie zabezpečenia konformity nástroja BEEM s protokolom IPFIX
  • Implementovať navrhnuté riešenie (Implementácia sa však bude týkať až prípadnej bakalárskej práce v letnom semestri.)

3. ANALÝZA PROBLEMATIKY

Na úvod je potrebné spomenúť najzákladnejšie termíny, ktoré sa v popisoch štandardu IPFIX používajú.

3.1 Terminológia

  • Pozorovací bod (Observation point)
Pod týmto pojmom rozumieme miesto v sieti, kde sú pozorované IP pakety. Týmto miestom môže byť port na smerovači, prípadne pracovnej stanici, alebo množina fyzických, či logických rozhraní smerovača. Jeden pozorovací bod môže taktiež reprezentovať množinu ďalších pozorovacích bodov.

  • Pozorovacia doména (Observation domain)
Pozorovacia doména je najväčšia množina pozorovacích bodov z ktorých môže merací procese zbierať informácie o tokoch. Každá pozorovacia doména je kolektoru reprezentovaná unikátnym ID kvôli identifikácii IPFIX správ, ktoré generuje.

  • IP tok (IP Traffic Flow or Flow)
IP tok je definovaný ako množina IP paketov, ktoré prejdú pozorovacím bodom za určitý časový interval. Všetky pakety prislúchajúce jednému toku majú množinu spoločných vlastností.

  • Kľúč toku (Flow key)
Ktorékoľvek pole, ktoré patrí do hlavičky paketu (napr. IP adresa), je vlastnosťou samotného paketu (napr. dĺžka paketu), alebo je derivované zo spracovania paketu. (napr. číslo autonómneho systému)

  • Záznam toku (Flow record)
Záznam toku obsahuje informácie o špecifikovanom toku, ktorý bol pozorovaný v pozorovacom bode. Záznam obsahuje merané vlastnosti (napr. celkový počet bajtov pre všetky pakety toku) a charakteristické vlastnosti (napr. zdrojová IP adresa).

  • Merací proces (Metering process)
Merací proces generuje záznamy tokov. Vstupom do procesu sú hlavičky paketov, ich pozorované charakteristiky ako aj spracovanie paketu v pozorovacom bode (napr. zvolené výstupné rozhranie). Všetky merania musia byť prevádzané z pohľadu pozorovacieho bodu. Merací proces pozostáva z množiny funkcií, ktorá zahŕňa odchytávanie hlavičiek paketov, časové značkovanie, vzorkovanie, filtrovanie, klasifikáciu a správu záznamov tokov.

  • Exportovací proces (Exporting process)
Exportovací proces posiela záznamy o tokoch jednému, alebo viacerým zhromažďovacím procesom. Záznamy sú generované jedným, alebo viacerými meracími procesmi.

  • Exportér (Exporter)
Zariadenie, ktoré obsahuje jeden, alebo viac exportovacích procesov sa nazýva exportér.

  • IPFIX zariadenie (IPFIX device)
Zariadenie, ktoré obsahuje najmenej jeden pozorovaí bod, merací proces a exportovací proces, sa nazýva IPFIX zariadenie.

  • Zhromažďovací process (Collecting process)
Zhromažďovací proces prijíma záznamy tokov z jedného alebo viacerých exportovacích procesov. Tento proces môže ďalej spracovávať, alebo uskladňovať obdržané záznamy, ale tieto činnosti sú mimo záber tejto práce.

  • Zhromažďovač (Collector)
Zariadenie, ktoré obsahuje, najmenej jeden zhromažďovací proces sa nazýva zhromažďovač.

  • Šablóna (Template)
Šablóna je usporiadaná sekvencia ,typ, dĺžka, párov, používaná na komplexnú špecifikáciu a sémantiku určitej množiny informácií, ktorá má byt’ prenesená z IPFIX zariadenia do zhromažďovača. Každá šablóna je unikátne identifikovaná svojím ID.

  • IPFIX správa (IPFIX message)
IPFIX správa predstavuje dáta, ktorých zdrojom je exportovací proces, ktoré prenášajú IPFIX záznamy tohoto exportovacieho procesu, a ktorých cieľ je zhromažďovací proces. IPFIX správa je zapuzdrená na transportnej vrstve.

  • Informačný element (Information element)
Informačný element je opis atribútu, ktorý je nezávislý od protokolu a kódovania. Informačný model IPFIX opisuje základnú množinu informačných elementov pre IPFIX.Typ asociovaný s informačným elementom indikuje obmedzenia, čo môže daný typ obsahovať a takisto určuje správny typ kódovania pre použitie v IPFIX.

3.2 Architektúra nástroja BasicMeter

Nástroj BEEM (BasicmEter? Exporting and Measuring process) je, ako už bolo spomenuté, najspodnejšou vrstvou architektúry BasicMeter-a. Okrem BEEM-u ju tvoria ešte ďalšie dve základné vrstvy, a to kolektor JXColl - Java XML Collector (zhromažďovač informácií o meraní tokov v sieťach) a BMAnalyzer –BasicMeter Analyzer (teda analyzátor, ktorý zabezpečuje grafický výstup pre celú meraciu platformu). Prvé dva nástroje nemajú grafické rozhranie, spúšťajú sa z príkazového riadka. BasicMeter bol vytvorený ako nástroj pre neintruzívne (pasívne) merania, teda pri meraní sa negeneruje žiadna dodatočná prevádzka tak, ako to je pri intruzívnych (aktívnych) meraniach. Využíva sa výlučne existujúca prevádzka. Štruktúra celej platformy BasicMeter-a je uvedená na obrázku nižšie.

bm.jpg
Obr. 1 Koncepcia meracieho nástroja BasicMeter

SQL databáza nie je súčasťou špecifikácie IPFIX, preto je vyznačená čiarkovane. Exportované informácie je vo všeobecnosti možné ukladať na akéhokoľvek dátové zariadenie.
Samotný nástroj BEEM, ktorého sa táto práca prioritne týka, je implementáciou meracieho a exportovacieho procesu. Zabezpečuje odchytávanie paketov, následnú klasifikáciu do tokov na základe definovanej šablóny a odoslanie vyššej vrstve architektúry, kolektoru JXColl, a to všetko vo formáte v čo najväčšej miere konformnom so štandardom IPFIX.
Súčasťou programu je spracovanie konfiguračného súboru programu vo formáte XML. V tomto súbore je možné meniť niektoré parametre, napríklad parameter spôsobu vzorkovania, definovať šablónu, teda informačné elementy, ktoré budú zaradené do toku, atď.
Samotné odchytávanie paketov je realizované pomocou berkeleyského paketového filtra (Berkeley Packet Filter - BPF) prítomného v jadrách väčšiny unixových operačných systémov. Prenášané sú len pakety so žiadanou informáciou, čo prispieva k zvýšeniu výkonnosti meracieho nástroja.
Štandard IPFIX (ako je uvádzané v RFC2119) udáva tri základné stupne povinnosti, čo sa týka špecifikácie požiadaviek. Tieto tri stupne povinnosti zastupujú tri slová, ktoré sa v dokumentoch uvádzajú zväčša kapitálkami. Sú to slová MUST, SHOULD a MAY. K MUST a SHOULD existuje aj záporný ekvivalent, teda MUST NOT a SHOULD NOT.

  • MUST - táto požiadavka je explicitne vyžadovaná pre použitie IPFIX protokolu na export nameraných dát. Všetky takto označené požiadavky musia byť v programových implementáciách splnené. V jednotlivých dokumentoch sa môže vyskytnúť aj ekvivalent REQUIRED alebo SHALL
  • MUST NOT - alebo SHALL NOT jednoznačne zakazuje špecifikáciu daného prvku, danej požiadavky;
  • SHOULD - alebo RECOMMENDED - táto požiadavka je síce vyžadovaná, ale nie je povinná pre základnú funkciu IPFIX protokolu. Jej použitie však zlepší funkčnosť a použiteľnosť štandardného exportu;
  • SHOULD NOT - alebo NOT RECOMMENDED použitie tejto požiadavky poukazuje na situáciu, kedy daná časť štandardu môže byť za určitých okolností špecifikovaná, no jej plná implementácia by mala byť dôsledne zvážená.
  • MAY - časti štandardu označované týmto slovom sú pri implementácii plne voliteľné a ich vynechanie nemá vplyv na funkciu protokolu

3.3 Informačný model pre IPFIX

3.3.1 Špecifikácia informačných elementov

Všetky informačné elementy špecifikované pre IPFIX protokol musia (MUST) mať definované nasledujúce vlastnosti:

  • name - jedinečné a zmysluplné meno pre informačný element (začína malým písmenom);
  • elementID -jedinečný číselný identifikátor informačného elementu
    • 0 -rezervované ID;
    • 1-127 -ID informačných elementov kompatibilných so štandardom NetFlow9?;
    • 128-32767 - ostatné elementID;
  • description - bližší popis daného elementu;
  • dataType - jeden z abstraktných dátových typov (unsigned8, unsigned16, unsigned32, unsigned64, signed8, signed16, signed32, signed64, float32, float64, boolean, macAddress, octetArray, string, dateTimeSeconds, dateTimeMilliseconds, dateTimeMicroseconds, dateTimeNanoseconds, ipv4Address, ipv6Address)
  • status -stav daného informačného elementu;
    • current (súčasný)
    • deprecated (neschválený)
    • obsolete (zastaralý)

3.3.2 Sémantika dátových typov
-popisuje význam dátových typov informačného modelu IPFIX;
  • quantity - (množstvo) hodnota prislúchajúca záznamu (record)
  • totalCounter - (počítadlo) celočíselná hodnota. Inkrementuje sa až pokiaľ nedosiahne hranicu príslušného dátového typu. Potom sa "resetne" späť na nulu, čo je vlastne aj jeho počiatočná hodnota.
  • deltaCounter - podobné vlastnosti ako totalCounter, avšak s tým rozdielom, že deltaCounter sa vynuluje po každom expirovaní jeho hodnoty - "obsahu";
  • identifier - celočíselná hodnota - identifikátor;
  • flags - celočíselné hodnoty, ktoré reprezentujú a bližšie špecifikujú množinu bitových polí (set of bit fields) . Majú byť (SHOULD) typu unsigned. Nad týmito hodnotami je vhodné vykonávať iba logické operácie.

3.3.3 Logické rozdelenie informačných elementov
Informačné elementy sú rozdelené do dvanástich kategórií na základe ich významu a použitia.
  1. Identifiers -(Identifikátory) jednoznačne identifikujú jednotlivé komponenty IPFIX architektúry (napr. lineCardId, portId, flowId, templateId, observationPointId,...);
  2. Metering and Exporting Process Configuration -elementy tejto skupiny popisujú konfiguráciu meracieho a exportovacieho procesu (napr. exporterIPv4Address, exporterTransportPort, collectorIPv4Address, collectorInterface,...);
  3. Metering and Exporting Process Statistics -štatistické elementy meracieho a exportovacieho procesu (napr. ignoredPacketTotalCount, exportedMessageTotalCount,...);
  4. IP Header Fields -polia IP hlavičky (napr. ipVersion, sourceIPv4Address, destinationIPv4Address, ipTTL,...);
  5. Transport Header Fields -polia hlavičiek transportných protokolov (napr. udpSourcePort, tcpSourcePort,...);
  6. Sub-IP Header Fields -polia Sub-Ip hlavičky (napr. sourceMacAddress, vlanId, mplsTopLabelTTL,...);
  7. Derived Packet Properties -vlastnosti odvodené z elementov v hlavičke paketu (napr. ipNextHopIPv4Address, mplsTopLabelIPv4Address,...);
  8. Min/Max Flow Properties -Minimálne/Maximálne vlastnosti toku (napr. minimumIpTotalLength, minimumTTL,...);
  9. Flow Time Stamps -časové značky toku (napr. flowStartSeconds, flowEndSeconds, flowStartMilliseconds,...);
  10. Per-Flow Counters -počítadlá (napr. octetDeltaCount, packetTotalCount,...);
  11. Miscellaneous Flow Properties -ďalšie rôzne vlastnosti toku (flowActiveTimeout, flowIdleTimeout, flowEndReason, flowDurationMilliseconds, flowDurationMicroseconds, flowDirection);
  12. Padding -(v tejto kategórii je iba jeden element: paddingOctets);

Podrobné rozdelenie všetkých informačných elementov ako aj ich charakteristiky sú uvedené v rfc Information model for IPFIX

4. ANALÝZA SÚČASNÉHO STAVU

Táto práca čiastočne nadväzuje na diplomovú prácu Miroslava Potockého, Analýza, návrh implementácie a vlastná implementácia štandardov IPFIX a PSAMP v meracom nástroji BasicMeter z roku 2006, v ktorej sa autor venuje popisom štandardov IPFIX a PSAMP, no v neposledneom rade aj konformite vtedajšieho stavu meracieho nástroja BasicMeter so spomenutými štandardami. Odvtedy však nástroj BasicMeter a konkrétne aj BEEM prešiel niekoľkými zmenami. Nasledujúci popis súčasneho stavu sa bude týkať nástroja BEEM verzie 20070105.

Informačné elementy protokolu IPFIX sú v programe BEEM definované v hlavičkovom súbore ipfix_def.h ako konštanty, kde jednotlivým názvom, ktoré väčšinou zodpovedajú názvom podľa IPFIX, sú priradené im prislúchajúce ID čísla, tzv. elementID. Ďalej je tam vytvorená štruktúra ipfix_field_type_t ktorá má bližšie identifikovať typ informačného elementu pre export.
V hlavičkovom súbore ipfix_fields.h je zase vytvorené pole už spomínanej štruktúry ipfix_field_type_t, v ktorom sú uložené definície pre kódovanie a dĺžku informačných elementov IPFIX protokolu.

V súčasnej verzii BEEM-u (konkrétne v hlavičkovom súbore ipfix_def.h a zároveň v ipfix_fields.h) nie sú vôbec definované nasledujúce informačné elementy informačného modelu IPFIX (Jednotlivé informačné elementy sú i tu zaraďované do jednotlivých spomínaných kategórií. Číslo v zátvorke vedľa každého informačného elementu reprezentuje identifikátor informačného elementu - elementID):

2. kategória: METERING AND EXPORTING PROCESS CONFIGURATION
collectorIPv4Address (211), collectorIPv6Address (212), collectorTransportProtocol (215), collectorTransportPort (216), exporterTransportPort (217)

4. kategória: IP HEADER FIELDS
ipTotalLength (224)

5. kategória: TRANSPORT HEADER FIELDS
tcpWindowScale (238)

6. kategória: SUB-IP HEADER FIELDS
postMplsTopLabelExp (237)

7. kategória: DERIVED PACKET PROPERTIES
mplsVpnRouteDistinguisher (90)

10. kategória: PER-FLOW COUNTERS
tcpSynTotalCount (218), tcpFinTotalCount (219), tcpRstTotalCount (220), tcpPshTotalCount (221), tcpAckTotalCount (222), tcpUrgTotalCount (223)

11. kategória: MISCELLANEOUS FLOW PROPERTIES
flowDirection (61)

Ostatné informačné elementy informačného modelu IPFIX sú buď v spomínanom hlavičkovom module definované, prípadne sú definované pod iným názvom, pričom vo väčšine prípadov tieto elementy odlišuje iba názov a ich podstata je rovnaká. No vyskytujú sa taktiež aj prípady, kedy pod daným elementID je v BEEM-e definovaný úplne iný element ako by mal byť podľa informačného modelu IPFIX. (Napríklad pod elemntID 213 sa podľa informačného modelu má skrývať element collectorInterface, no v BEEM-e je pod týmto ID definovaný element headerLengthIPv4)


To, že väčšina elementov je v BEEM-e správne definovaná podľa informačného modelu IPFIX neznamená, že všetky tieto elementy sú aj prakticky využité, a teda, že ich možno zaradiť do toku a následne odoslať kolektoru. V konfiguračnom súbore config.xml je možnosť nastaviť, ktoré informačné elementy sa budú brať pri filtrovaní paketov a následnom exporte do úvahy. Nie je však možné nastaviť ľubovoľné informačné elementy. Špecifikovať je možné iba elementy, ktoré sú danou verziou programu podporované, teda tie, ktoré je program schopný zachytiť a zaradiť do toku.

V súčasnej spomínanej verzii BEEM-u sú podporované iba nasledujúce informačné elementy:

packetTotalCount
Popis: Celkový počet prichádzajúcich paketov do pozorovacieho bodu, počítaných od doby, kedy sa merací process pre tento bod (re-)inicializoval.
Abstraktný dátový typ (ADT): unsigned64
Sémantika dátového typu (SDT): totalCounter
ElementId?: 86
Status: current
Units: packets
octetTotalCount
Popis: Celkový počet oktetov v prichádzajúcich paketoch do pozorovacieho bodu, počítaných od doby, kedy sa merací proces pre tento bod (re-)inicializoval.
ADT: unsigned64
SDT: totalCounter
ElementId?: 85
Status: current
Units: octets
octetTotalSumOfSquares
Popis: Celkový súčet všetkých squared numbers of octets v prichádzajúcich paketoch do pozorovacieho bodu, počítaných od doby, kedy sa merací proces pre tento bod (re-)inicializoval.
ADT: unsigned64
ElementId?: 199
Status: current
Units: octets
flowStartNanoseconds
Popis: Absolútna časová značka prvého paketu v toku.
ADT: dateTimeNanoseconds
ElementId?: 156
Status: current
Units: nanoseconds
flowEndNanoseconds
Popis: Absolútna časová značka posledného paketu v toku.
ADT: dateTimeNanoseconds
ElementId?: 157
Status: current
Units: nanoseconds
sourceIPv4Address
Popis: Zdrojová IPv4 adresa v hlavičke IP paketu.
ADT: ipv4Address
SDT: identifier
ElementId?: 8
Status: current
destinationIPv4Address
Popis: Cieľová IPv4 adresa v hlavičke IP paketu.
ADT: ipv4Address
SDT: identifier
ElementId?: 12
Status: current
sourceTransportPort
Popis: Zdrojový port v hlavičke paketu transportného protokolu (UDP, TCP, SCTP). Tento element môže byť (MAY) v budúcnosti použitý pre transportné protokoly so 16 bitovým označením zdrojového portu.
ADT: unsigned16
SDT: identifier
ElementId?: 7
Status: current
destinationTransportPort
Popis: Cieľový port v hlavičke paketu transportného protokolu (UDP, TCP, SCTP). Tento element môže byť (MAY) v budúcnosti použitý pre transportné protokoly so 16 bitovým označením cieľového portu.
ADT: unsigned16
SDT: identifier
ElementId?: 11
Status: current

5. NÁVRH RIEŠENIA

V rámci bakalárskej práce, ktorá by mala nadväzovať na tento semestrálny projekt, je potrebné rozšíriť teoretickú analýzu protokolu IPFIX ako aj analýzu meracieho nástroja BasicMeter, predovšetkým jeho spodnej vrstvy - BEEM.
Z praktickej stránky je potrebné zosúladiť jednotlivé moduly BEEM-u so súčasným štandardom IPFIX. Takisto by sa mali v BEEM-e (v hlavičkovývh súboroch ipfix_def.h a ipfix_fields.h) presne dodefinovať všetky známe informačné elementy, aby zodpovedali informačnému modelu IPFIX tak ako v identifikátoroch (ElementID?) , tak aj v názvoch. Zároveň by sa mala doplniť podpora viacerých informačných elementov, ktorá je v súčasnosti obmedzená na spomínaných deväť informačných elementov.

6. ZÁVER

Tento semestrálny projekt je úvodom k bakalárskej práci. Niektoré veci je potrebné ešte doplniť, možno opraviť a dotiahnúť do konca. Preto je ešte predčasné vyvodiť nejaký ucelený záver.
Ďalší postup je načrtnutý v návrhu riešenia (vyššie) .

7. ZOZNAM POUŽITÝCH ZDROJOV

  1. POTOCKÝ, M.: Analýza, návrh implementácie a vlastná implementácia štandardov IPFIX a PSAMP v meracom nástroji BasicMeter Diplomová práca, Košice: KPI FEI TUKE, 2006

  1. QUITTEK, J. - BRYANT, S. - CLAISE, B. - AITKEN, P.: Information Model for IP Flow Information Export [online draft], Publikované vo februári 2007, URL: http://www.ietf.org/internet-drafts/draft-ietf-ipfix-info-15.txt

  1. BRADNER, S.: Request for Comments: 2119 - Key words for use in RFCs to Indicate Requirement Levels [online], Publikované v marci 1997, URL: http://www.ietf.org/rfc/rfc2119.txt

  1. MALATA, O.: Analýza možnosti využitia nameraných údajov v architektúre IPFIX Semestrálny projekt, Košice: FEI TUKE, 2006

  1. URL: http://www.internetworldstats.com

  1. Zdrojové texty BEEM-u, verzie 20070105

-- MarianSmolej - 20 Jan 2008

toggleopenShow attachmentstogglecloseHide attachments
Topic attachments
I Attachment Action Size Date Who Comment
jpgjpg bm.jpg manage 36.0 K 21 Jan 2008 - 02:38 MarianSmolej Koncepcia BasicMeter-a
Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r8 < r7 < r6 < r5 < r4 | More topic actions
 
Powered by TWiki
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback