V tomto modelovom príklade si ukážeme, akým spôsobom s využitím routera CISCO 2511 môžeme jednoduchým spôsobom vytvoriť prehľad o vyťažení prenosového pásma zákazníkov, ktoré im bolo určené. V modelovom príklade si dáme na mušku zákazníka tester, pre ktorého sme vyčlenili na routeri prenosové pásmo o kapacite 64kbs súčtom pre traffic dnu i von. Nás nebude zaujímať, koľko dát tieklo smerom dnu a von, ale iba ich súhrn.
Takže na routeri sme si už pri určovaní prenosového pásma určili access-list, napríklad nasledovne:
access-list 140 permit ip any host 111.111.111.111 access-list 140 permit ip host 111.111.111.111 any
a na rozhraní, ktorým je realizovaný prístup do internetu, sme aktivovali shaper
traffic-shape group 140 64000 8000 2000 2000
Sledovanie súhrnu trafficu môžeme teda uskutočnovať prostredníctvom príkazu
show tr s
ktorý nám pre jednotlivé access-listy zobrazuje počet packetov a bytov dát, ktoré shaperom presli, ako aj počet packetov a bytov dát, ktoré boli shaperom spomalené. Využijeme teda hodnotu bytov prejdených shaperom daného access-listu, ktorá je priatym slovom v danom riadku.
Aby sme však mohli zvonku pristupovať jednoducho k týmto údajom, je potrebné, aby sme si narouteri nastavili vzdialený prístup prostredníctvom služby rsh. To docielime veľmi jednoducho nasledovným spôsobom.
ip rcmd rsh-enable ip rcmd remote-host root 111.111.111.222 root enable
kde 111.111.111.222 je ip adresa stroja, na ktorom beží skript pre zber dát pre mrtg a root efektívny užívateľ, pod ktorým beží mrtg. Teraz si jednoducho overíme či je služba rsh zvonku prístupná a to
rsh 111.111.111.254 sh tr s
kde 111.111.111.254 je ip adresa routera. Na termináli by sa nám mal vypísať výsledok požadovaného príkazu. Takže získali sme prístup i informáciám a teraz si vytvoríme jednoduchý skript pre parsovanie údajov, napríklad s názvom _tester
#!/bin/bash rsh 62.168.111.254 sh tr s | grep "Et0 140"| awk '{printf $5}'
ktorý nám zabezpečí vypísanie aktuálnej hodnoty pre počet bytov prejdených shaperom pre daný access-list. Teraz nám už iba zostáva vytvoriť si konfiguračný súbor pre mrtg ako napríklad:
WorkDir: /home/httpd/mrtg.mojadomena.cz-443/html/pos/ Options[_]: growright, bits Target[tester]: `/mrtg/bin/_pos` SetEnv[tester]: MRTG_INT_IP="111.111.111.111" MRTG_INT_DESCR="Ethernet0" MaxBytes[tester]: 96000 Title[tester]: Tester zakaznik PageTop[tester]: <H1>TESTER ZAKAZNIK</H1> <TABLE> <TR><TD>System:</TD> <TD>Tester zakaznik </TD></TR> <TR><TD>Max Speed:</TD> <TD>Linka 64 kb/s</TD></TR> </TABLE>
Výsledkom môže byť výstupný graf ako napríklad tento:
Samozrejme monitorovať môžeme týmto spôsobom aj stroje v sieti, pre ktoré linku obmedzovať nechceme. Jednoducho nastavíme shaping na reálne nedosiahnuteľné hodnoty a efekt je rovnaký.
Ďalšia situácia môže nastať, ak by sme chceli monitorovať zvlášť traffic z internetu smerom dnu a von samostatne. Potom by bolo potrebné vytvoriť dva samostatné access-listy ako napríklad
access-list 140 permit ip any host 111.111.111.111 access-list 141 permit ip host 111.111.111.111 any
a shaping na zariadení, cez ktoré sa realizuje prístup do internetu
traffic-shape group 140 64000 8000 2000 2000 traffic-shape group 141 64000 8000 2000 2000
a upraviť skript pre mrtg pre zber dát z oboch listov
#!/bin/bash rsh 62.168.111.254 sh tr s | grep "Et0 140"| awk '{printf $5 \n}' rsh 62.168.111.254 sh tr s | grep "Et0 141"| awk '{printf $5}'
a dosiahneme výsledný graf na aký sm sme zvyknutí pri klasickom riešení. Pri tomto prípade si však treba uvedomiť, že obsiahnuté budú dáta o toku iba z objemu packetov, ktoré sú routované zo sledovaného stroja von za router, čiže samozrejme pri používaní proxy serveru tam traffic idúci cez neho nebude. Ten je však možné monitorovať parsovaním ipchains na proxy serveri. S malými úpravami bude možné použiť tento princíp aj na routeroch inej značky pri rovnakom princípe.
V ďalších pár dieloch si ukážeme ďalšie zaujímavé praktické využitia mrtg.