Com fer un segiment d'una ADSL: Ús d'ample de banda i si està penjada o no amb cacti.
Una ADSL sobre XDSI que funiona amb un Nokia M1112 no proporciona ni snmp ni un "watchdog" que reinicii la connexió quan es penja (no és que passi sovint, però si de tant en tant quan es tracta d'una connexió a 2 Megues..). Per resoldre-ho, es pot fer via un script... és una d'aquelles coses coses que un cop fetes, t'en oblides de manera que val més documentar-ho. A més, és interessant com a exemple: En cas de tractar-se d'un altre router, es pot canviar fàcilment per adaptar-ho a les noves necessitats fent servir el mateix sistema canviant el diàleg.
En primer lloc, es tracta de construir un script, que en aquest cas és el que executarà el cacti (normalment cada 5 minuts) i que ens fa la doble funció: En primer lloc mira si la connexió a internet funciona, en cas de que sí, ens proporciona una sortida indicant-nos tota la informació sobre estadístiques de comunicació que hi ha al router, i en cas de que no, el reinicia per tal de intentar establir la connexió de nou.
Aquest script està fet amb TCL i requereix del paquet expect, que en un guinux ja ens l'hauriem de trovar instal·lat
En el meu cas, l'scrpit és el següent:
#!/usr/bin/expect --
#
# Modifiqueu:
# %PASSWORD% per la paraula de pas del reouter
# %IPDELROUTER% per la IP del Router
# %PROMPT% pel prompt que et proporciona el router
# guifi.net i la seva IP, per una IP que gestionis tu, o ben coneguda pero estable
#
exp_version -exit 5.0
set timeout 60
set force_conservative 1 ;
if {$force_conservative} {
set send_slow {1 .010}
proc send {ignore arg} {
sleep .2
exp_send -s -- $arg
}
}
puts "\n"
spawn host guifi.net
expect -exact "guifi.net has address 80.32.45.226" {puts "Router Nokia M1112 ok\n"
spawn telnet %IPDELROUTER%
expect "ogin-id:*"
send -- "adminttd\r"
expect "assword:*"
send -- "%PASSWORD%\r"
expect "%PROMPT%>"
send -- "sh atm\r"
expect "%PROMPT%>"
send -- "sh st\r"
expect "%PROMPT%>"
send -- "log\r"
;exit}
send_user "\ reset del router ADSL Nokia M1112: "
spawn telnet %IPDELROUTER%
expect "ogin-id:*"
send -- "adminttd\r"
expect "assword:*"
send -- "%PASSWORD%\r"
expect "%PROMPT%>"
send -- "reload\r"
expect -gl "\\\[*]\$*"
puts "\n"
exit
close
Un cop tenim aquest script, li donem els permisos d'execució i el provem. Veureu que en principi fa tota la feina, si hi ha internet, ens diu quants bytes a rebut i enviat i tota la resta de informació estadística, i en cas de no haver-hi connexió a internet, simplement envia la comanda reload, que és la que reinicia el router, per tant intentarà connectar-se de nou.
Ara ja només queda "netejar" la sortida amb un altre script perquè en el cas de que no estigui penjat, obtenir la informació, en aquest cas de bytes enviats i rebuts. Aquest és l'script que li direm al cacti que faci servir per a obtenir la informació estadística.
#!/usr/bin/perl
#
# adsl.pl
#
# Autor : Ramon Roca# Date : 06/25/04 # Version : 0.1 # Description : Script to output the bandwith usage of a Nokia M1112 device. # Output is @queue = `/var/www/cacti/scripts/m1112.sh|grep payload`; @tx = split " ",$queue[0]; @rx = split " ",$queue[1]; print "tx:" .$tx[2] . " rx:" . $rx[2];
Adoneu-vos que m1112.sh és l'altre script que hem fet avans.
A partir d'aquí, seguint la resta d'instruccions del cacti per a incorporar una nova gràfica...
Per a més informació sobre aquests scripts i/o altres routes, això ho he tret fent collage de www.adslnet.ws i www.bandaancha.st
Nota: Potser hauria de fer alguna explicació més sobre el cacti? 
En tot cas, de moment en podeu veure exemples si aneu a mirar l'Estat de la Xarxa de guifi.net


