Charakteristika
Aplikácia
IpfixTop umožňuje v reálnom čase zobrazovať parametre IP prevádzky. Používateľské rozhranie je podobné ako v aplikácii iftop.
IpfixTop zobrazuje hodnoty parametrov prevádzky získaných analýzou informácií podanych z externeho programu
ifconfig.
Linkovanie ncurses
V programe je použitá knižnica ncurses, ktora umožňuje jednoduchymi prikazmy spravovat farby vytvarat okna a obsahuje mnoho ďalších funkcii potrebnych v našom programe na ktore som narazil pri analyze knižnice počas semestra. Používanie tychto funkcii si vyžaduje includovanie knižnice
ncurses.h a pri kompilacii je nutne prilinkovat tuto knižnicu nasledovne:
gcc nazov_programu -lncurses
Grafické zobrazovanie hodnôt na textovej obrazovke
Hodnota je zobrazovaná v podobe
pásika. Napríklad:
=======]
Tento grafický element je definovaný štvoricou:
- hodnota, ktorú zobrazuje
- maximálna zobraziteľná hodnota = rozsah
- grafická dĺžka daná počtom zobraziteľných znakov
- grafický prvok (znak, farba pozadia, farba znaku, usporiadanie znakov ...) akým sa hodnota zobrazuje
Hlavnou jednotkou je štruktúra "element", ktorá obsahuje všetky údaje ktoré definujú hlavný grafický element (vid. vyššie) samozrejme okrem hodnoty grafickej dĺžky, ktorá je závisla od velkosti okna a ncurses obsahuju premennu v ktorej je tato hodnota uložena. Podľa týchto prednastavených hodnôt sa neskôr vykresľuje "graficky" v podobe pasika. Cieľom bolo vytvoriť taky graficky element ktory by dokazal v jednom riadku zobraziť viac hodnôt napriklad tak, že by sa farbou pozadia zobrazovala prva hodnota a znakmi druha, čo sa aj podarilo.
Hodnoty ktore zobrazuje su načítavane zo súboru do ktorého ich predtým uložil externý program v našom pripade
ifconfig
Spracovanie vystupu prikazu ifconfig v bash pomocou awk
Hodnoty ktore program zobrazuje sme museli vyseparovať z vystupu programu
ifconfig. Naslehovny kod dokaže vybrat z vystupu programu ifconfig len hodnoty ktore su pre nas v tomto pripade podstatne(TX/RX bytes/packets rate, pred nimi je este uložene pomenovanie rozhrania a jeho fyzicka adresa) a uloží ich do externeho suboru.
#!/bin/bash
sudo ifconfig >ifcfg.txt
grep 'Link encap' ifcfg.txt | awk '{split($1,i," ");print i[1]}'
grep 'Link encap' ifcfg.txt | awk '{split($5,i," ");print i[1]}'
grep 'TX packets' ifcfg.txt | awk '{split($2,i," ");print i[1]}' | awk '{split($1,j,":");print j[2]}'
grep 'TX bytes' ifcfg.txt | awk '{split($6,i," ");print i[1]}' | awk '{split($1,j,":");print j[2]}'
grep 'RX packets' ifcfg.txt | awk '{split($2,i," ");print i[1]}' | awk '{split($1,j,":");print j[2]}'
grep 'RX bytes' ifcfg.txt | awk '{split($2,i," ");print i[1]}' | awk '{split($1,j,":");print j[2]}'
rm ./ifcfg.txt
Tento kod je uloženy v externom spustitelnom subore ktory je spušťany programom
IpfixTop v sekundovych intervaloch. To zabezpeči že hodnoty ktore sa tam nachadzaju netreba inak upravovať ale daju sa rovno vykresliť ako byty/pakety za sekundu.
Funkcia programu
IpfixTop zobrazuje hodnoty parametrov prevádzky získaných analýzou informácií podanych z externeho programu
ifconfig. V sučasnosti program zobrazuje prietoky lokalnymi sieťovymi kartami v podobe grafickych elementov. každa sieťova karta sa zobrazuje v dvoch riadkoch (pre prichadzajuce a odchadzajuce data). Pri každej sieťovke je aj zaznamenany udaj o nazve sieťovej karty a jej fyzicka adresa. Rozsah
merača je zobrazeny v pravom hornom rohu a automaticky sa upravuje na taku hodnotu, aby sa dali zobraziť hodnoty bez toho aby pretiekli cez okraj obrazovky. Stlačenim klavesy
n je možne rozsah znormalizovať na aktualne najvyššiu hodnotu (v pripade ak je prave prevadzka nižšia a graficke elementy su priliš kratke). Stlačenim klavesy
i je možne zobraziť nazvy zobrazovanych veličín ku každemu grafickemu elementu. Stlačenim klavesy
v sa zobrazia presne hodnoty aktualne zobrazovane grafickym elementom. Program sa ukončuje stlačenim klavesy
q.
Kam by mal smerovať vyvoj programu IpfixTop?
Vytvoriť moduly a umiestniť do nich navzajom suvisiace funkcie podľa nasledujuceho obrazku
Modul prace s elementami - bude zakryvať celu pracu so smernikmi nad elementami ako ich vytvaranie, mazanie, uprava a podobne.
Modul pre vykresľovanie elementov - jeho zakladom bude knižnica ncurses a bude obsahovať všetko potrebne pre vykresľovanie grafickych elementov na obrazovku pričom hodnoty ktore sa budu zobrazovať, mu bude poskytovať modul prace s elementami.
Modul pre načítavanie hodnot do elementov - Tento modul bude ziskavať hodnoty ktore sa maju vykresľovať na obrazovku a to z protokolu ipfix.
Modul spracovania konfiguračneho suboru - bude mať za úlohu spracovať konfiguračny subor programu v ktorom sa bude nastavovať čo chceme zobrazovať a ako to chceme zobrazovať a na jeho zaklade prisposobiť jednotlive graficke elementy.
--
StanislavLiska - 06 Mar 2007