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

Len textová verzia
 
Drafts < QoSProjekt < TWiki
r4 - 26 Nov 2007 - 23:40:20 - TomasPeterYou are here: TWiki >  QoSProjekt Web  >  VisualizaciaSiete > Drafts

IPFIX (IP Flow Information eXport)

What is IPFIX?

The IETF has been working to standardize NetFlow?. The effort is named IPFIX, which stands for IP Flow Information eXport. The IETF considered working implementations as a starting point, and elected to work from Cisco NetFlow? version 9. Version 9 extends classic NetFlow? by using templates to describe the flow records. This provides extensibility.

The IPFIX protocol provides network administrators with access to IP flow information.The protocol is used to transfer IP flow data from IPFIX exporters to collectors.

The IPFIX standard also allows for sampled data, which alleviates the burden on devices of classifying and reporting on each and every packet. Cisco is recommending random sampling (probabilistic sampling) to ensure you don't miss flows, for example when there are recurrent (periodic) data patterns.

IPFIX terminology

  • Observation Point

An Observation Point is a location in the network where IP packets can be observed. Examples include: a line to which a probe is attached, a shared medium, such as an thernet-based LAN, a single port of a router, or a set of interfaces (physical or logical) of a router. Note that every Observation Point is associated with an Observation Domain (defined below), and that one Observation Point may be a superset of several other Observation Points. For example one Observation Point can be an entire line card. That would be the superset of the individual Observation Points at the line card's interfaces.

  • Observation Domain

An Observation Domain is the largest set of Observation Points for which Flow information can be aggregated by a Metering Process. For example, a router line card may be an observation domain if it is composed of several interfaces, each of which is an Observation Point. Each Observation Domain presents itself to the Collecting Process using an Observation Domain ID to identify the IPFIX Messages it generates. Every Observation Point is associated with an Observation Domain. It is recommended that Observation Domain IDs are also unique per IPFIX Device.

  • IP Traffic Flow or Flow

A Flow is defined as a set of IP packets passing an Observation Point in the network during a certain time interval. All packets belonging to a particular Flow have a set of common properties. Each property is defined as the result of applying a function to the values of:

1. One or more packet header fields (e.g. destination IP address), transport header fields (e.g. destination port number), or application header field (e.g. RTP header fields)

2. One or more characteristics of the packet itself (e.g. number of MPLS labels)

3. One or more fields derived from packet treatment (e.g. next hop IP address, output interface)

A packet is said to belong to a Flow if it completely satisfies all the defined properties of the Flow.

  • Flow Key

Each of the fields which

1. Belong to the packet header (e.g. destination IP address)

2. Are a property of the packet itself (e.g. packet length)

3. Are derived from packet treatment (e.g. AS number)

and which are used to define a Flow are termed Flow Keys.

  • Flow Record

A Flow Record contains information about a specific Flow that was observed at an Observation Point. A Flow Record contains measured properties of the Flow (e.g. the total number of bytes for all the Flow's packets) and usually characteristic properties of the Flow (e.g. source IP address).

  • Metering Process

The Metering Process generates Flow Records. Inputs to the process are packet headers and characteristics observed at an Observation Point, and packet treatment at the Observation Point (for example the selected output interface).

The Metering Process consists of a set of functions that includes packet header capturing, timestamping, sampling, classifying, and maintaining Flow Records.

The maintenance of Flow Records may include creating new records, updating existing ones, computing Flow statistics, deriving further Flow properties, detecting Flow expiration, passing Flow Records to the Exporting Process, and deleting Flow Records.

  • Exporting Process

An Exporting Process sends Flow Records to one or more Collecting Processes. The Flow Records are generated by one or more Metering Processes.

  • Exporter

A device which hosts one or more Exporting Processes is termed an Exporter.

  • IPFIX Device

An IPFIX Device hosts at least one Exporting Process. It may host further Exporting processes and arbitrary numbers of Observation Points and Metering Process.

  • Collecting Process

A Collecting Process receives Flow Records from one or more Exporting Processes. The Collecting Process might process or store received Flow Records, but such actions are out of scope for this document.

  • Collector

A device which hosts one or more Collecting Processes is termed a Collector.

  • Template

A Template is an ordered sequence of <type, length> pairs, used to completely specify the structure and semantics of a particular set of information that needs to be communicated from an IPFIX Device to a Collector. Each Template is uniquely identifiable by means of a Template ID.

BasicMeter

Measurement and evaluation project of QoS? parameters in computer networks.

This project, analyses and evaluates the QoS? parameters in computer networks. It introduces a simple and modular design of meter. We have experimentally measured bandwidth, packet rate one-way delay, jitter and packet loss of multiple data flows. It has been agreed that our meter should be implemented according to requirements of IETF Draft - IPFIX.

Basic Components of the BasicMeter

  • Collector?

  • Analyzer?

Vizualizačný model

Modul pre vizualizáciu prevádzky a topológie sieťových infraštruktúr je nástroj, ktorý produkuje esteticky prijateľné schémy sieťových topológií, založený na plne automatickom princípe bez zásahu človeka. Tento programový modul je časťou informačného systému pre centralizovanú správu počítačovej siete - Synets. Synets predstavuje ucelený nástroj umožňujúci získať celkový prehľad o aktuálnom dianí v sieti - pohľad na celkovú topológiu, popis jednotlivých prvkov pripojených do siete, služby poskytované jednotlivými stanicami/servermi.

Analýza algoritmického riešenia

Z troch možných algoritmických riešení:

  • 1. Navrhnúť vlastný algoritmus pre rozmiestňovanie jednotlivých uzlov grafu a spôsob ich prepojenia. Uvedený algoritmus následne implementovať do produktu použitím dostupných technológií - V prípade úspešného použitia tohto riešenia by aplikácia pre vizualizáciu mala úplnú podporu zo strany algoritmu, lebo ten by bol vyvíjaný presne podľa potrieb projektu. Pri reálnej tvorbe aplikácií však nie je stále dosiahnutá plná zhoda medzi požiadavkami a produktmi, preto by mohol nastať prípad, keď by požiadavky projektu neboli splnené. Je spojený s množstvom chýb nových programov.

  • 2. Použiť existujúce riešenie v podobe komplexnej aplikácie - neexistuje aplikácia, ktorá by riešila všetky úlohy špecifikované pre daný projekt.

  • 3. Použiť aplikáciu, ktorá sa dá použiť ako čiastkový výsledok a ten následne implementovať do riešenia úlohy - existuje aplikácia Graphviz, ktorá rieši problematiku generovania grafov pomocou rôznych postupov. Táto aplikácia zároveň ponúka podporu výstupu vo viacerých grafických formátoch a podporu klikacích máp, čo je dôležitý faktor pre použitie v prostredí internetových stránok.

Tretia možnosť bola najprijateľnejšou voľbou, keďže existuje aplikácia - Graphviz, ktorá umožňuje vykresnelnie grafu, čo je potrebné pre vykreslenie topológie, keďže jej základnou vykresľovacou množinou sú uzly a hrany (sieťové zariadenia a linky).

Analýza dátového modelu

Požiadavkami bola výkonnosť a efektívnosť. Tu taktiež spadali do úvahy 3 riešenia:

  • 1. Na ukladanie dát použiť "klasický" súborový systém - výhodou neexistencia problémov s inštaláciou a konfiguráciou tejto techniky. Nevýhodou je však jej neefektívnosť a nevýkonnosť. V prípade väčšieho množstva dát by prehľadávanie disku spôsobilo rapídny pokles výkonnosti celého servera.

  • 2. Použiť relačnú databázu - možnosť pokročilého vyhľadávania dát a indexácie údajov, ktorá predstavuje výrazné zefektívnenie práce s dátami. Nevýhodou je však prílišná individualita poskytnutého riešenia.

  • 3. Použiť aplikáciu adresárových služieb - použitie adresárovej služby X.500 alebo protokolu LDAP; LDAP predstavuje zjednodušenie X.500. Pri výbere tejto technológie vo výraznej miere zavážili aj potreby ostatných podprojektov projektu Synets, pre ktoré je výhodnejšie používať LDAP ako databázy.

Analýza implementácie

Bolo potrebne nájsť prostredie, ktoré by podporovalo www aplikácie a ich tvorbu, kde boli zvažovane: jazyk JAVA alebo skriptovací jazyk PHP. Ako základ takmer každej stránky je použitý jazyk HTML, ktorý nepodporuje tvorbu dynamických stránok, preto bol zvolený jazyk PHP.

Popis funkcie vizualizačného modulu

Tento modul je predstavuje príklad aplikácie, ktorá nadväzuje na výsledky inej aplikácie. Samotný modul pre vizualizaciu totiž generuje vstupný súbor pre aplikáciu Graphviz, ktorá na základe tohto súboru vytvára grafický výstup, ktorý je následne opäť pomocou vizualizačného modulu implementovaný do finálnej aplikácie. Najprv sa načítajú údaje z dátového modelu aplikácie. Tie sa pretransformujú do zdrojového súboru grafu. Z neho sa pomocou aplikácie Graphviz vytvorí grafická forma výstupu, ktorá sa vloží do internetovej stránky. Kedže táto stránka môže obsahovať; aj odkazy na stránky s detailmi, nepriamo tak ovplyvňuje výber dát, ktoré sa následne opäť vyberú z adresárovej štruktúry kvôli vygenerovaniu novej topológie.

Prvú fázu tvorí otvorenie súboru na zápis pomocou funkcií na to určených a zapísanie údajov, ktoré sú vyžadované v úvode súboru reprezentujúceho textovú formu topológie siete. V tejto fáze ide iba o sekvenčné zapisovanie vopred pripravených dát do súboru. V druhej fáze sa algoritmus rozhoduje, ktoré kroky bude potrebné koľkokrát opakovať. Táto časť úlohy pozostáva z prechádzania zoznamu zariadení a ich zapisovaní do súboru. Každé sieťové zariadenie, ktoré je pridané do súboru je následne objektom prehľadávania a do súboru sú pridané všetky ostatné zariadenia, na ktoré sa toto zariadenia odkazuje v rámci atribútov svojich rozhraní. V poslednej fáze generovania zdrojového súboru grafu sa opäť iba sekvenčne zapíšu dáta do súboru, ktorý sa následne uzavrie. Po vygenerovaní súboru sa tento posunie na spracovanie externej aplikácii, ktorá podľa neho vygeneruje prezerateľnú formu výstupu. Tento obrazový výstup je odovzdaný riadeniu modulu a ten ho vloží do pripravenej www stránky.

Implementácia modulu

Obsahuje 4 triedy:

1. GenDot?() - zabezpečuje generovanie textového súboru reprezentujúceho graf siete. Má 4 členské metódy:

  • _construct()

  • _destruct()

  • _GenAct()

  • _GenOfficial()

Metódy construct() a destruct() primitívne funkcie, ktoré sú použité pri definovaní všetkých tried.

Funkcia GenAct? () má parametre $dn a $name. Parameter $dn predstavuje rozlišovacie meno (Distinguished name), ktoré predstavuje uzol, z ktorého sa začína generovať graf. Parameter $name je definovaný v používateľskom formulári a predstavuje názov vytváraného grafu. V rámci tejto triedy sa vytvárajú inštancie vložených tried ldapf unctions () a UseFile? (). Členské metódy týchto tried sú následne použité.

Na úvod sa volá metóda connect (), ktorá sa pripojí na server, na ktorom je nainštalovaná aplikácia pre adresárové služby. Funkciou bind() sa používateľ autentifikuje na danom serveri. Ďalšia je funkcia open() z triedy UseFile?(). Táto funkcia otvorí súbor s právom zápisu, ktorý je jej daný ako parameter. Za ňou nasleduje funkcia write () z tej istej triedy, ktorá zapíše hlavičku grafu do súboru. Potom sa prehľadá vetva obsahujúce sieťové zariadenia a u každého z nich sa do súboru zapíšu informácie o uzle v grafe a volá sa funkcia findinterfaces() z triedy ldapfunctions(). Podrobný popis tejto metódy bude v rámci jeho triedy. Za touto funkciou sa vykoná už len zápis konca súboru pomocou metódy write () a uzavrie sa súbor a spojenie so serverom prostredníctvom funkcií close () pre zodpovedajúce triedy.

Funkcia GenOf? f icial () je veľmi podobná predchádzajúcej funkcii. V podstate vykonáva tie isté operácie, ale sú v nej pozmenené rozsahy údajov, aby sa anonymní používatelia nedostali k citlivým dátam o sieti.

2. ldap_functions() - zabezpečuje vykonávanie operácií s adresárovou službou LDAP. Obsahuje 9 verejných metód:

  • _construct() - konštruktor triedy ldapf unctions ()

  • _destruct() - deštruktor triedy ldapf unctions ()

  • bind() - autentifikuje sa po pripojení na server

  • connect() - pripojí sa na LDAP server

  • konvert() - vyberá z celého mena počítača iba jeho poslednú zložku

  • find_devices - funkcia pre nájdenie zariadení uložených vo vetve switch

  • find_interfaces() - funkcia pre zisťovanie rozhraní pre dané zariadenie

  • print_attributes - funkcia pre vypísanie atribútov daného portu na zariadení

  • print_host_attributes - táto funkcia vypíše atribúty pre host na ktorý ukazuje aktuálne DN

3. UseFile?() - obsahuje metódy pre prácu so súborom (otvorenie, zápis, zatvorenie

  • _construct() - konštruktor triedy UseFile? ()

  • _destruct() - deštruktor triedy UseFile? ()

  • open - funkcia open otvorí súbor, do ktorého sa bude generovať DOT zdrojový kód

  • write - funkcia Write zapíše daný text do špecifikovaného súboru

  • close - funkcia close uzavrie otvorený súbor, ktorý je jej daný ako parameter

4. visualization() - základná a povinná trieda pre vizualizačný modul. Má tieto metódy:

  • _construct() - konštruktor triedy visualization ()

  • _destruct() - deštruktor triedy visualization ()

  • initailized() - overí správne zavedenie modulu

  • ActualTopology() - vytvorí úvod ku generovaniu aktuálnej topológie

  • OfficialTopology () - vytvorí úvod ku generovaniu oficiálnej topológie

V prípade bezproblémového zavedenia modulu dáva metóda initailized() na výstupe návratovú hodnotu typu BOOL. Táto hodnota reprezentuje výsledok správnej inicializácie modulu a slúži pre potreby overenia inicializácie. V tejto metóde môže prebehnúť napr. kontrola závislosti na iných moduloch, ktorá ak zistí, že niektorý modul nie je ini-cializovaný, vráti hodnotu FALSE.

Metódy ActualTopology?() a OfficialTopology?() zobrazia formulár pre nastavenie parametrov vygenerovaného súboru. Potvrdením tohto formulára sa pomocou Javacriptu v novom okne otvorí súbor generate.php, ktorý na základe prijatých parametrov volá metódy triedy GenDot? (), ktoré vygenerujú obrázok a klikaciu mapu schémy.

Modulárny IS

Modulárny informačný systém tvorí základné komunikačné rozhranie pre správu počítačovej siete založenej na centralizovanom riešení prostredníctvom adresárových služieb LDAP.

Pre programovú realizáciu informačného systému bol zvolený skriptovací jazyk PHP s objektovým prístupom. Definovanie modulov je riešené prostredníctvom tried, ktorých meno sa musí zhodovať s menom modulu informačného systému. Definícia samotnej triedy ako aj jej náväznosti na iné zdrojové kódy príslušného modulu sú uložené v osobitnom adresári pre moduly pod názvom príslušného modulu. Tento osobitný adresár symbolizujúci prvky modulu musí obsahovať súbor definovanej triedy modulu v súbore s rovnakým názvom ako je názov triedy, ktorá definuje modul.

Základný modul base, ktorý zabezpečuje načítanie všetkých modulov má jeden konfiguračný súbor pre nastavenia modulov, ktoré sa majú pri načítaní stránky aktivovať. Nakoľko je každý modul definovaný svojou vlastnou triedou, je možné vytvoriť inštanciu celého modulu (jeho triedy) pri prvotnom prístupe používateľa na stránku informačného systému. Inštanciu modulu je vhodné vytvárať iba raz pri prvotnom prístupe a následne už len zabezpečovať vyvolávanie jednotlivých metód zvoleného modulu z už existujúcej inštancie. Prenos inštancií vytvorených modulov pri opätovnom načítaní stránky a prechode po stránkach je potrebné zabezpečiť prostredníctvom globálnych premenných, ktorých hodnota sa zachováva aj pri tejto akcii. Inicializácie jednotlivých premenných, ktoré sa používajú vo vnútri modulu je možné realizovať v konštruktore triedy. Toto je možné docieliť prostredníctvom relačných premenných (SESSION), ktorých hodnotu si ukladá webový server interne vzhľadom na nadviazané spojenia s klientom. Pre potreby overenia funkčných vlastností modulu je dôležitá inicializácia modulu.

Inicializácia modulu

Moduly informačného systému môžu byť medzi sebou rôznym spôsobom poprepájané a nadväzovať na metódy, ktoré poskytujú. Preto vzniká potreba inicializácie modulu pred vytvorením samotnej inštancie triedy modulu tak, aby bolo možné preveriť funkčnosť samotného modulu. Túto úlohu plní metóda initialized(), ktorá ako návratovú hodnotu uvádza pravdivostnú hodnotu TRUE ak je modul korektne inicializovaný a FALSE v prípade nesprávnej inicializácie alebo nesplnenia podmienok závislostí na iných moduloch.

V prípade správnej inicializácie modulu je jeho inštancia uložená v relačnej premennej SESSION[‘MODULE_INSTANCE_${názov_modulu}‘]. Takýmto spôsobom je možné priamo v ľubovoľnom module vyvolávať jednotlivé metódy iného modulu prostredníctvom relačnej premennej. Z dôvodu overenia závislostí na moduloch v procese inicializácie je potrebné evidovať informáciu o správnych inicializáciách modulov. Ak je modul správne inicializovaný, relačná premenná SESSION[‘INITIALIZED_MODULE_${názov_modulu}’] má hodnotu TRUE.

Každý z modulov môže mať potrebu vykonania niektorých svojich intrerných akcií ešte pred vyvolaním metódy realizujúcej jeho funkciu. V prípade opätovnej inicializácie modulov pri každom prístupe na stránku by túto úlohu mohla plniť metóda initialized(), ktorá by jednak odovzdala informáciu o správnej inicializácii modulu a jednak by umožnila vykonanie základných akcií, ktoré je potrebné vykonať pre správne fungovanie modulu. Nakoľko proces inicializácie nemá zmysel robiť viacnásobne pri každom prístupe na stránku pokiaľ sú už moduly inicializované prvým prístupom používateľa – je vhodné definovať nepovinné metódy modulov, ktoré umožňujú vykonanie potrebných akcií pre fungovanie modulu za každým sprístupnením stránky informačného systému. Túto úlohu plní nepovinná metóda OnPageLoad(). Ak táto metóda existuje, vyvolá sa po inicializáciách jednotlivých modulov, pred zavolaním funkcie modulu gui, ktorá realizuje vizualizáciu prostredia samotného informačného systému.

Vzhľadom na potreby vizualizácie informácií jednotlivých modulov je vhodné definovať nepovinnú metódu, ktorá zabezpečuje vyžiadanie plného názvu modulu v používateľsky zrozumiteľnej podobe. Touto nepovinnou metódou je metóda GetLongName(), ktorej návratovou hodnotou je plné meno modulu v ktorom sa príslušná metóda nachádza.

Modul vizualizácie grafického rozhrania informačného systému (modul gui) sprístupňuje metódy jednotlivých modulov, ktoré reprezentujú ich funkcionalitu prostredníctvom tlačidiel ponuky, ktorá je dostupná používateľovi informačného systému v grafickom rozhraní. Nakoľko informačný systém slúži ako ucelený nástroj pre správu počítačovej siete pre viacerých správcov, ktorí môžu mať rozdielne prístupové práva v rámci správy siete, je potrebné zaviesť metódy, ktorými modul odovzdá informáciu informačnému systému o rozsahu potrebných prístupových práv pre vykonanie zvolenej metódy modulu.

Každý z modulov môže obsahovať nepovinnú metódu GetSecurityObjects(), ktorej návratovou hodnotou je pole možných atribútov vyskytujúcich sa v danom module pre potreby autorizácie používateľa. Štruktúra každého indexovaného prvku poľa "bezpečnostných objektov" je daná atribútmi, ktoré popisuje trieda SecurityObject modulu security.

Jednou zo základných potrieb informačného systému je vzájomná výmena informácií medzi modulmi. Na systémovej úrovni je toto realizované prostredníctvom relačných (SESSION) premenných.

Modul gui umožňuje vizualizáciu funkcií jednotlivých modulov prostredníctvom ponuky. Vzhľadom na to, že každý z modulov poskytuje špecifické metódy, je potrebné vytvoriť globálne definované metódy platné pre všetky moduly, ktoré budú odovzdávať informáciu o zobrazovaných položkách v ponuke. Modul gui definuje pre všetky moduly nepovinnú metódu GetMenuItems?(), ktorá vracia zoznam položiek príslušného modulu zobrazovaných v ponuke s definovaním obsluhy zobrazovanej položky metódou.

Riešenie

Z funkčných blokov informačného systému vyplýva, že celá aplikácia má 3 úrovne. Prvou je LDAP server a jeho adresárová služba. Druhou úrovňou je Apache web server s modulom PHP, ktorý podľa požiadaviek v spracovanom zdrojovom kóde uloženom v súboroch PHP komunikuje s SQL serverom a výsledný vygenerovaný HTML kód (www stránku) odosiela klientskej stanici.

Základný princíp spracovania modulov tvorí ich načítanie, inicializácia a vyvolávanie vzájomne prístupných metód prostredníctvom komunikačného prostredia realizovaného cez relačné premenné.

MODULY, TRIEDY, METÓDY

Modul Base

Trieda Base_functions zabezpečuje základné prostriedky pre inicializáciu a načítanie modulov. Obsahuje následovné metódy:

  • Base_functions(), ktorý slúži ako konštruktor triedy. Zabezpečuje inicializáciu a vytvorenie inštancie modulu zaznamenávania udalostí pre potreby zabezpečenia informačného systému

  • Init(), ktorá zabezpečuje nastavenie premenných používaných v informačnom systéme

  • Load_modules($MODULES_LOAD,$MODULES_DIR), ktorá zabezpečuje načítanie modulov definovaných parametrom MODULES_LOAD a adresárom v ktorom sa moduly nachádzajú (dané parametrom MODULES_DIR)

  • Load_module($MODULE_NAME,$MODULES_DIR), ktorá umožňuje načítanie príslušného modulu z adresára. Meno modulu je dané parametrom $MODULE_NAME a adresár modulov parametrom $MODULES_DIR

  • InitModules() je metóda zabezpečujúca inicializáciu všetkých modulov prostredníctvom metódy InitModule?

  • InitModule($MODULE_NAME), ktorá slúži pre inicializáciu modulu daného na vstupe v parametri $MODULE_NAME. Zabezpečuje vytvorenie inštancií modulu a ich relačných premenných pre potreby kontroly správneho vytvorenia inštancie

  • LoadOnPageMethods() slúži preskúmanie výskytu nepovinnej metódy OnPageLoad?(), ktorá sa môže vyskytovať v každom module. Zabezpečuje vyvolanie tejto metódy pri štarte stránky informačného systému

Trieda AAA, ktorá je súčasťou základného modulu Base umožňuje zaznamenávanie dianí v informačnom systéme. Zaznamenávanie udalostí tvorí základný prvok bezpečnosti informačného systému. Táto trieda poskytuje nasledovné metódy:

  • LogEvent($SPRAVA), ktorá zabezpečuje zaznamenávanie bežných udalostí v systéme

  • LogWarning($SPRAVA), ktorá zabezpečuje zaznamenávanie upozorňujúcich správ na nejakú aktivitu, ktorá vážne neohrozuje funkčnosť informačného systému

  • LogError($SPRAVA), ktorá umožňuje zaznamenávanie diania v informačnom systéme narušujúceho jeho bezproblémový chod

Trieda SESSION tohoto modulu zabezpečuje inicializáciu relačných premenných po načítaní definícií tried. Poskytuje nasledovné metódy:

  • SESSION(), ktorá je konštruktorom triedy a zabezpečuje spustenie systémuu relačných premenných (session_start)

  • REGISTER($PAR,$VAL), ktorá umožňuje zaregistrovanie relačnej premennej z názvom $PAR a hodnotou $VAL

Modul configuration

Modul configuration tvorí základný konfiguračný modul pre prácu s LDAP adresárovou službou. Trieda configuration obsahuje premenné:

  • LdapServer, pre uchovávanie informácie o LDAP serveri

  • LdapServerPort, pre uchovávanie informácie o porte na ktorom je adresárová služba dostupná

  • LdapLogin, pre uchovávanie prístupových údajov na LDAP server (prihlasovacie meno)

  • LdapPassword, pre uchovávanie prístupového hesla k LDAP serveru

  • LdapRoot, pre uchovávanie informácie o koreňovom adresári adresárovej služby LDAP vzhľadom na informačný systém

  • LdapModuleRoot, pre uchovávanie informácie koreňového adresára pre moduly informačného systému

Súčasťou tejto triedy sú nasledovné metódy:

  • configuration(), ktorá slúži ako koštruktor triedy a zabezpečuje nastavenie premenných tejto triedy podľa súboru config-ldap.php

  • initialized(), ktorá vždy vráti hodnotu TRUE nakoľko modul nemá žiadne závislosti na iných moduloch

  • getLdapServer(), ktorá slúži pre odovzdávanie informácie IP adresy LDAP servera

  • getLdapLogin(), ktorá odovzdáva ako návratovú hodnotu prístupové práva k LDAP-u (prihlasovacie meno)

  • getLdapPassword(), ktorá slúži pre odovzdávanie prihlasovacieho hesla k adresárovej službe LDAP-u

  • getLdapRoot(), ktorá ako návratovú hodnotu vracia hodnotu premennej LdapRoot? – teda koreňový adresár v LDAP-e pre potreby informačného systému

  • getLdapModuleRoot(), ktorá vracia hodnotu premennej LdapModuleRoot?

Modul gui

Trieda gui zabezpečuje základné funkcie poskytujúce vizualizáciu grafického rozhrania ako aj jeho komponentov horného a ľavého menu. Táto trieda používa jedinú globálnu premennú v rámci triedy (AAA), ktorá zabezpečuje zaznamenávanie diania. Táto trieda poskytuje nasledovné metódy:

  • gui(), ktorá je konštruktorom triedy a zabezpečuje inicializáciu triedy AAA

  • initialized(), ktorá vracia vždy návratovú hodnotu TRUE, nakoľko modul nemá žiadne závislosti na iných moduloch

  • GetLongName(), ktorá vracia plné meno modulu „Modul gui“

  • GenerateGUI(), ktorej úlohou je zobrazenie základného komunikačného rozhrania informačného systému

  • GenerateUpperMenu(), ktorá generuje hornú ponuku grafického rozhrania

  • GenerateLeftMenu(), ktorá generuje ľavé menu pre príslušnú položku horného menu

  • GenerateRightPage(), ktorá zabezpečuje vygenerovanie pravej časti stránky informačného systému. Zabezpečuje lokalizáciu a vyvolanie metódy pre príslušnú položku menu

  • GenerateEmptyPage(), ktorá generuje prázdnu informačnú stránku s informačným dialógom upozorňujúcim na neexistujúcu stránku

  • GenerateIntroductionPage(), ktorá zabezpečuje vygenerovanie úvodnej stránky pri prvotnom prístupe na stránku informačného systému

Modul ldap

Úlohou modulu LDAP je poskytovanie informácií potrebných pre prístup k LDAP serveru ostatným doplnkovým modulom. Trieda ldap obsahuje premenné:

  • AAA, pre potreby vytvorenia inštancie zaznamenávania udalostí

  • LdapBind, pre potreby vykonávania operácií nad údajmi v už inicializovanom spojení LDAP servera

  • LdapConnect, pre potreby prístupu k ldap serveru vytvorením inštancie prístupu

Trieda ldap poskytuje nasledovné metódy:

  • ldap, ktorá slúži ako konštruktor triedy incializujúca záznam diania v premennej AAA

  • initialized(), ktorá ako návratovú hodnotu uvádza TRUE v prípade, že už bol inicializovaný modul configuration na ktorom modul ldap závisí

  • Md5_ldap($ret), ktorá zabezpečuje zašifrovanie vstupného reťazca $ret rovnakým algoritmom šifrovania, aký sa používa pre ukladanie hesiel v LDAP-e. Táto metóda sa využíva pre potreby overenia a uloženia nového hesla používateľa do LDAP-u tak, aby bolo heslo použiteľné aj v iných aplikáciách

  • Connect(), ktorá ako návratovú hodnotu vracia smerník na spojenie LDAP servera bez nutnosti zadania prístupových údajov LDAP servera (adresa, port)

  • Bind($ConnectionInfo), ktorá sa pripája automaticky k spojeniu LDAP servera $ConnectionInfo bez potreby zvolenia autentifikácie. Samotné autentifikačné údaje sú automaticky sprístupnené z modulu configuration

Modul login

Modul login zabezpečuje proces autentifikácie pri prihlasovaní sa do informačného systému. Taktiež poskytuje prvky overovania bezpečného prístupu k rozhraniu a sadu dialógov, ktoré sú potrebné pre prihlásenie/odhlásenie zo systému. Trieda login poskytuje nasledovné metódy:

  • login, ktorá slúži ako konštruktor triedy a inicializuje záznam diania v premennej AAA

  • Initialized(), ktorá definuje závislosť na module ldap a v prípade jeho správnej inicializácie vracia návratovú hodnotu TRUE.

  • GetLongName(), ktorá vracia plné meno modulu "Modul login"

  • GetMenuItems(), ktorá definuje položku horného menu Prihlásenie/odhlásenie zo systému a položky ľavého menu: Zmena osobných údajov, prihlásenie do systému, odhlásenie zo systému, informácie o prihlasovaní

  • OnPageLoad(), ktorá sa načítava pri každom prístupe na stránku. V tejto metóde je zabezpečené overovanie prihlasovacích údajov.

  • LoginDialog(), ktorá zabezpečuje zobrazenie prihlasovacieho dialógu

  • LoginDialogInfo(), ktorá zobrazuje informácie o prihlasovaní

  • ChangeData(), ktorá zobrazuje dialóg zmeny údajov prihláseného používateľa

Modul messages

Trieda messages poskytuje priestor pre zobrazovanie chybových hlášok ľubovoľných modulov v jednotnom vzhľade. Táto trieda poskytuje metódy:

  • messages(), ktorá slúži ako konštruktor a inicializuje premennú AAA pre potreby zaznamenávania udalostí

  • initialized(), ktorá stále vracia návratovú hodnotu TRUE, nakoľko tento modul nemá žiadne závislosti na iných moduloch systému.

  • ShowMessage($topic,$message), ktorá zobrazuje hlášku alebo formulár obsahujúci nadpis podľa vstupnej premennej $topic a správu podľa vstupnej premennej $message.

  • InformationalMessage($topic,$message), ktorá slúži na zobrazenie informačnej správy s príslušnými vstupnými parametrami nadpisu správy a samotným textom správy.

  • ErrorMessage($topic,$message), ktorá slúži na zobrazenie chybovej hlášky

  • WarningMessage($topic,$message), ktorá slúži na zobrazenie upozorňujúcej správy

Modul menu

Modul menu plní jedinú úlohu, ktorou je definícia triedy MenuItem? pre potreby stanovenia údajovej štruktúry pre zobrazované položky v ponuke. Trieda MenuItem?, ktorá je súčasťou tohoto modulu obsahuje nasledovné premenné:

  • ItemName, ktorá obsahuje informáciu mena položky

  • ItemDescription, ktorá obsahuje informáciu udávajúcu popis položky

  • ItemClass, ktorá definuje triedu v ktorej sa vyskytuje vyvolávaná metóda prislúchajúca položke ponuky

  • ItemMethod, ktorá obsahuje informáciu mena vyvolávanej metódy pri voľbe akcie príslušnej položky

  • ItemLocation, ktorá eviduje umiestnenie položky v ponuke. K dispozícii je voľba umiestnenia v hornom menu (top) alebo v ľavom menu (left)

  • ItemFilter, ktorá obsahuje informáciu autorizačného pravidla pre prístup k zvolenej metóde

  • ShowType, ktorá uchováva informáciu o tom, za akých okolností sa má položka zobraziť. Táto položka môže nadobúdať hodnoty: Logged (keď je používateľ prihlásený), Not_logged (keď používateľ nie je prihlásený a teda sa jedná o anonymný prístup), Both (v oboch prípadoch nezávisle od toho, či je používateľ prihlásený alebo nie).

Trieda MenuItem definuje nasledovné metódy:

  • MenuItem(), ktorá slúži ako konštruktor a nastavuje preddefinované nastavenia (filter, popis, umiestnenie)

  • setName($name), ktorá slúži na nastavenie mena položky ponuky podľa zvoleného vstupného parametra

  • getName(), ktorá ako návratovú hodnotu poskytuje informáciu mena položky

  • setDescription($description), ktorá umožňuje nastavenie popisu zvolenej položky

  • getDescription(), ktorá ako návratovú hodnotu uvádza popis položky

  • setClassName($ClassName), ktorá nastavuje meno triedy v ktorej sa vykonáva zvolená metóda pri akcii príslušnej položky

  • getClassName(), ktorá umožňuje vrátenie informácie o názve triedy v ktorej sa nachádza vykonávaná metóda

  • setClassMethod($ClassMethod), ktorá umožňuje nastavenie mena metódy, ktorá sa vyvolá v prípade akcie príslušnej položky

  • getClassMethod(), ktorá ako návratovú hodnotu vracia meno mentódy vykonávajúcej sa pri plnení funkcie položky

  • setLocation($Location), ktorá umožňuje nastavenie umiestnenia tlačidla

  • getLocation(), ktorá zabezpečuje odovzdanie informácie o definovanom umiestnení položky prostdedníctvom návratovej hodnoty

  • setItemFilter($filter), ktorá nastavuje filter pri prístupe na stránku popisujúc autorizačné pravidlá pre overenie prístupu.

  • getItemFilter(), ktorá ako návratovú hodnotu vracia autorizačný filter pre zobrazovanie a sprístupnenie zvolenej metódy príslušnej položky.

  • setShowingType($ShowType), ktorá definuje spôsob zobrazovania položky v menu

  • getShowingType()_, slúži na zistenie spôsobu zobrazovania tlačidla v položkách menu

Modul security

Modul security pozostáva z dvoch tried a zabezpečuje základné prvky bezpečnosti pri prístupe k informačnému systému a jednak autentifikačné a autorizačné metódy. Trieda security obsahuje nasledovné metódy:

  • security(), ktorá slúži ako konštruktor triedy a zabezpečuje inicializáciu sledovania udalostí v informačnom systéme

  • initialized(), ktorá vracia návratovú hodnotu TRUE za každých okolností, nakoľko modul nie je závislý od iných modulov

  • GetSecurityObjects(), ktorá je nepovinná a definuje atribúty LDAPu, ktoré sa používajú v procesoch autorizácie. V tejto metóde je definované autorizačné pravidlo pre prístup k samotnému LDAPu podľa filtra accessTo=SynetsIS.

  • getLongName(), ktorá vracia plné meno modulu „Modul security“

  • CheckSecurity(), ktorá sa načítava pri spúšťaní stránky a zabezpečuje preverenie obsahu premenných na výskyt nepovolených znakov.

  • IsUserLogged(), ktorá slúži ostatným modulom na indikovanie, či je používateľ prihlásený do informačného systému

  • ShowVariables(), ktorá slúži na výpis používaných premenných informačného systému, ktoré nie sú vizualizované

  • Authenticate($login,$password), ktorá preveruje platnosť prihlasovacieho mena a hesla pre prístup do informačného systému.

  • Authorize($AuthorizationRule), ktorá umožňuje autorizáciu používateľa podľa parametricky zadaného pravidla

Druhou triedou je trieda _SecurityObject definujúca správanie sa bezpečnostných atribútov pre potreby autorizácie. Táto trieda je používaná ako položka zabezpečovacích prvkov, pričom využíva dve premenné:

  • AttributeName, ktorá udržiava informáciu o mene atribútu

  • AttributeDecscription, ktorá udržiava informáciu o popise tlačidla.

Trieda SecurityObject, ktorá je súčasťou modulu security obsahuje nasledovné metódy:

  • setAttributeName($Name), ktorá zabezpečuje nastavenie mena atribútu podľa vstupnej premennej $Name

  • getAttributeName(), ktorá slúži na prebratie informácie o mene atribútu

  • setAttributeDescription($description), na nastavenie popisu bezpečnostného prvku

  • getAttributeDescription(), ktorá slúži na vrátenie informácie popisu bezpečnostného prvku.

Modul usersmanagement

Trieda usersmanagement obsahuje metódy pre správu používateľov informačného systému. Tieto metódy sú nasledovné:

  • usersmanagement, ktorá slúži ako konštruktor triedy.

  • initilized(), ktorá vracia vždy hodnotu TRUE nezávisle od ostatných modulov.

  • GetLongName(), ktorá vracia plné meno modulu „Modul usersmanagement“.

  • GetMenuItems(), ktorá vracia zoznam definovaných položiek horného menu „Správa používateľov IS“ a položky ľavého menu: Pridávanie používateľa, Editovanie/odoberanie používateľa.

  • ShowBase(), ktorá umožňuje zobrazenie úvodnej stránky pri voľbe daného modulu.

  • ShowSecurityObjects(), ktorá slúži na znázornenie príslušnosti atribútov LDAP-u k funkciám poskytovaným informačným systémom.

  • EditDeleteUser(), ktorá slúži na úpravu používateľských údajov alebo jeho zmazania.

  • EditUser($login, $dn), ktorá zabezpečuje úpravu údajov zvoleného používateľa. Informácie upravovaného používateľa sú na vstup ako parametre metódy.

Modul dostupnost_serverov

Trieda a modul dostupnost_serverov umožňujú sledovanie štatistickej dostupnosti sledovaných zariadení. Táto trieda poskytuje nasledovné metódy:

  • dostupnost_serverov(), ktorá slúži ako konštruktor triedy.

  • Initialized(), ktorá vracia hodnotu TRUE za každých okolností, nakoľko modul nemá závislosť na iných moduloch.

  • getLongName(), ktorá vracia plné meno modulu „Dostupnosť serverov“

  • GetMenuItems(), ktorá vracia zoznam položiek zobrazených v ponuke: Dostupnosť serverov, server merkúr, server venuša, server zem.

  • getSecurityObjects(), ktorá definuje bezpečnostné atribúty LDAP-u:
  1. SynetsIS?:dostupnost_serverov, SynetsIS?:dostupnost_serverov:merkur,
  2. SynetsIS?:dostupnost_serverov:venusa, SynetsIS?:dostupnost_serverov:zem.

  • stats_base(), ktorá slúži na zobrazenie základných štatistík dostupnosti serverov.

  • merkur_stats(), ktorá slúži na zobrazenie detailnej štatistiky dostupnosti servera merkúr.

  • venusa_stats(), ktorá slúži na zobrazenie detailnej štatistiky dostupnosti servera venuša.

  • mars_stats(), ktorá slúži na zobrazenie detailnej štatistiky dostupnosti servera zem.

Modul server_stats

Trieda _server_stats poskytuje metódy, ktoré zabezpečujú sledovanie štatistík vyťaženia jednotlivých serverov. Táto trieda poskytuje nasledovné metódy:

  • server_stats(), ktorá slúži ako konštruktor triedy.

  • Initialized(), ktorá vracia za každých okolností hodnotu TRUE, nakoľko systém nemá nadväznosti na iné informačné systémy.

  • GetMenuItems(), ktorá definuje nasledovné položky ponuky: Štatistiky serverov, server merkúr, server venuša, server zem, server mars.

  • GetSecurityObjects(), ktorá definuje bezpečnostné atribúty LDAP-u:
  1. SynetsIS?:server_stats, SynetsIS?:server_stats:merkur,
  2. SynetsIS?:server_stats:venusa, SynetsIS?:server_stats:zem,
  3. SynetsIS?:server_stats:mars.

  • merkur_stats(), ktorá poskytuje detailnú štatistiku servera merkúr.

  • venusa_stats(), ktorá poskytuje detailnú štatistiku servera venuša.

  • zem_stats(), ktorá poskytuje detailnú štatistiku servera zem.

  • mars_stats(), ktorá poskytuje detailnú štatistiku servera mars.

  • Stats_base(), ktorá zobrazuje základnú štatistiku vyťaženia procesorov virtuálnych serverov.

Modul sprava_pouzivatelov

Primárnou úlohou modulu sprava_pouzivatelov je zabezpečiť jednoduché komunikačné dialógy pomocou ktorých je možné pracovať s používateľmi, ktorí využívajú registrované služby. Trieda sprava_pouzivatelov obsahuje nasledovné metódy:

  • sprava_pouzivatelov(), ktorá je použitá ako konštruktor triedy

  • initialized(), ktorá za každých okolností vracia hodnotu TRUE, nakoľko neexistuje náväznosť na iné moduly.

  • GetLongName(), ktorá vracia plné meno modulu „Modul správa používateľov“.

  • GetMenuItems(), ktorá vracia zoznam definovaných položiek v ponuke grafického rozhrania. V tejto metóde sú definované 4 položky: Správa používateľov, pridávanie používateľa, odoberanie a editovanie používateľa, správa používateľských skupín.

  • GetSecurityObjects(), ktorá definuje zoznam použiteľných atribútov LDAP-u:
  1. SynetsIS?:sprava_pouzivatelov,
  2. SynetsIS?:sprava_pouzivatelov:add, SynetsIS?:sprava_pouzivatelov:delete,
  3. SynetsIS?:sprava_pouzivatelov:edit,
  4. SynetsIS?:sprava_pouzivatelov:groupsmanagement.

  • ShowBase(), ktorá slúži na zobrazenie základnej stránky informačného systému pre zvolenú položku.

  • Adduser(), ktorá zabezpečuje vykreslenie dialógu pre pridávanie používateľa služieb.

  • GroupManagement(), ktorá slúži na generovanie dialógov pre správu používateľov.

Modul sprava_zariadeni

Trieda sprava_zariadeni poskytuje komunikačné rozhranie prostredníctvom sady dialógov, ktorých primárnym účelom je správa zariadení vyskytujúcich sa v počítačovej sieti. Táto trieda poskytuje metódy:

  • sprava_zariadeni(), ktorá je použitá ako konštruktor triedy.

  • initialized(), ktorej návratová hodnota je za každých okolností TRUE.

  • GetLongName(), ktorá vracia plný názov modulu „Modul správa zariadení“

  • GetMenuItems(), ktorý popisuje nasledovné položky menu: Správa zariadení a sietí, pridávanie zariadenia, odoberanie a editovanie zariadenia. Taktiež definuje položky pre pridávanie, odoberanie a editovanie sietí.

  • GetSecurityObjects(), ktorá definuje autorizačné pravidlá následovne:
  1. SynetsIS?:sprava_zariadeni, SynetsIS?:sprava_zariadeni:add,
  2. SynetsIS?:sprava_zariadeni:edit, SynetsIS?:sprava_zariadeni:delete,
  3. SynetsIS?:sprava_zariadeni:networkmanagement:add,
  4. SynetsIS?:sprava_zariadeni:networkmanagement:edit,
  5. SynetsIS?:sprava_zariadeni:networkmanagement:delete.

  • ShowBase(),ktorá vyvoláva generovanie úvodnej stránky pri prístupe k modulu.

  • AddDevice(), ktorá vyvoláva sadu dialógov pre pridávanie zariadenia do počítačovej siete.

  • EditDeleteDevice(), ktorá slúži na zobrazenie všetkých evidovaných zariadení a poskytne možnosť úpravy nastavení zvoleného zariadenia, prípadne jeho odstránenie.

  • NetworkManagement(), ktorá vyvoláva sadu dialógov pre prácu so sieťami nadefinovanými v informačnom systéme.

  • NetworkManagementAdd(), ktorá vyvoláva sadu dialógov pre pridávanie bezdrôtovej siete.

  • NetworkManagementEdit(), ktorá vyvoláva sadu dialógov pre editovanie prvkov evidovaných v informačnom systéme.

Modul statistiky_sluzieb

Modul statistiky_sluzieb poskytuje sledovacie nástroje pre kontrolu vyťaženia služieb. Táto trieda statistiky_sluzieb definuje nasledovné metódy:

  • statistiky_sluzieb(), ktorá je použitá ako konštruktor a zabezpečuje inicializáciu premennej pre sledovanie diania v informačnom systéme.

  • initialized(), ktorého návratová hodnota je TRUE za každých okolností bez náväznosti na iné moduly.

  • GetLongName(), ktorá definuje plné meno modulu „Modul štatistiky služieb“.

  • GetMenuItems(), ktorá popisuje nasledovné položky ponuky: Štatistiky služieb, E-mailový server merkúr, E-mailový server venuša, DNS server mars.

  • GetSecurityObjects(), ktorá definuje nasledovné autorizačné pravidlá:
  1. SynetsIS?:statistiky_sluzieb, SynetsIS?:statistiky_sluzieb:merkur,
  2. SynetsIS?:statistiky_sluzieb:venusa, SynetsIS?:statistiky_sluzieb:zem,
  3. SynetsIS?:statistiky_sluzieb:mars.

  • stats_base(), ktorá vyvoláva prehľadovú štatistiku služieb poštového servera merkúr.

  • merkur_stats(), ktorá realizuje generovanie detailnej štatistiky poštového servera merkúr.

  • venusa_stats(), ktorá realizuje generovanie detailnej štatistiky poštového servera venuša.

  • mars_stats(), ktorá zobrazuje podrobnú štatistiku dotazov DNS servera.
Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r4 < r3 < r2 < r1 | 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