Soluzione dei problemi

L'organizzazione di una struttura di supporto alla rete diventa importante a seconda del tipo di apparecchiature utilizzate. Diversamente dalle connessioni su cavo, nelle reti wireless i problemi sono spesso invisibili e possono richiedere molto tempo e conoscenze in più per essere analizzati e risolti. Interferenze, vento e nuovi ostacoli fisici possono guastare una rete che ha funzionato per molto tempo. In questo capitolo dettaglieremo una serie di strategie utili per creare un team che possa supportare efficentemente la rete.

Formare un team

In ogni villaggio, famiglia o compagnia c'è qualcuno che ha interesse verso la tecnologia. Ci sono quelli che crimpano i cavi dell'antenna, cambiano il cavo della televisione o saldano un pezzo alla bicicletta. Queste persone saranno interessate alla rete e vorranno imparare quanto più possibile al riguardo. Anche se queste persone saranno risorse inestimabili, bisognerà evitare di impartire tutta la conoscenza specifica ad una sola persona. Se l'unico specialista perde interesse o trova un altro lavoro porterà la conoscenza via con se.

Ci sono anche molti giovani ambiziosi, teenager o adulti, che saranno interessati avendo anche il tempo di ascoltare, imparare e dare un aiuto con la rete. Saranno sicuramente di aiuto e impareranno velocemente ma il team del progetto deve porre l'attenzione su coloro che potranno supportare la rete per i prossimi mesi ed anni. I giovani possono spostarsi per l'università o trovare un lavoro, specialmente i più ambiziosi che tendono a farsi coinvolgere. Spesso i ragazzi hanno una piccola influenza sulla comunità mentre invece una persona più grande sarà probabilmente più capace di prendere decisioni che impatteranno positivamente la rete nel suo complesso. Anche se magari hanno meno tempo a disposizione per imparare e sembrano meno interessati, coinvolgere e formare persone più grandi può risultare fondamentale.

Quindi, una strategia chiave per formare un team di supporto, consiste nel bilanciare e distrubire la conoscenza su coloro che possono supportare la rete nel lungo termine. Bisogna coinvolgere i giovani, ma evitare di fargli accumulare l'uso e la conoscenza di questi sistemi. Bisogna trovare le persone che sono impegnate nella comunità, che vi siano radicate, che possano essere motivate ed insegnare a loro. Una strategia complementare è quella di suddividere in comparti le funzioni e i compiti e documentare tutte le metodologie e le procedure. In questo modo sarà più facile addestrare le persone, ed in caso sostituirle con un piccolo sforzo.

Per fare un esempio, una volta in un sito di progetto, il team di training ha selezionato un brillante neolaureato che era tornato nel suo villaggio. Questi era molto motivato ed ha imparato in fretta, per questo gli è stato insegnato più di quanto previsto, tanto che è diventato capace di affrontare una grande varietà di problemi, dal riparare un PC al sistemare i cavi Ethernet. Sfortunatamente, due mesi dopo il lancio del progetto, gli è stato offerto un impiego pubblico ed ha lasciato la comunità. Anche l'offerta di una paga migliore non è bastata a trattenerlo dato che la prospettiva di stabilità che l'impiego pubblico gli offriva era troppo appetibile. Tutta la conoscenza sulla rete e sul come supportarla è sparita con lui. Il team di training è dovuto tornare e ricominciare daccapo. La strategia successiva è stata di suddividere le funzioni e formare le persone che erano radicate permanentemente nella comunità: le persone con casa e figli, e con un lavoro stabile. Questo ha richiesto tre volte il tempo necessario a formare il neolaureato, ma in questo modo questa formazione potrà rimanere al servizio della comunità per molto più tempo.

Anche se questo ci può far pensare che dovremmo scegliere personalmente chi coinvolgere, non è necessariamente questo l'approccio migliore. Spesso è meglio cercare un'organizzazione locale che possa fare da partner o un manager locale, e lavorare con loro per trovare il giusto team tecnico. Valori, storia, politiche locali e molti altri fattori saranno importanti per loro, anche se rimarranno completamente incomprensibili per le persone che non fanno parte di quella comunità. L'approccio migliore è di guidare i partner locali, fornirgli i criteri, assicurarsi che li abbiano compresi ed impostare chiari limiti e confini. Questi limiti dovrebbero comprendere regole riguardo patrocinio, nepotismo e favoritismo, anche se queste regole devono aver considerazione della situazione locale. Potrebbe risultare impossibile stabilire che non è possibile assumere parenti, potrebbe esser meglio fornire un sistema di controlli ed equilibri. Se a candidarsi è un parente, dovrebbero esserci criteri chiari ed una seconda autorità che decida riguardo la candidatura. Allo stesso tempo è importante che il partner locale non veda messa in discussione la sua capacità dagli organizzatori del progetto, compromettendo così la propria capacità di amministrazione. Saranno i più indicati a giudicare chi può lavorare meglio con loro stessi. Se vengono formati bene per questo processo, allora tutti i nostri requisiti dovrebbero esser soddisfatti.

La soluzione dei problemi ed il supporto in ambito tecnologico sono un'arte astratta. La prima volta che vediamo un a pittura astratta ci appare come una serie di schizzi di vernice casuali. Dopo aver riflettuto sulla composizione per un pò di tempo, iniziamo ad apprezzare il lavoro nel suo complesso e la sua "invisibile" coerenza ci appare più chiara. Il neofita in una rete wireless può vedere le antenne, i cavi e i computer, ma può richiedergli un pò di tempo per capire che si tratta di una rete "invisibile". Nelle aree rurali, può spesso accadere che le persone debbano fare uno grosso sforzo di comprensione per apprezzare la rete invisibile che gli viene semplicemente piazzata nel villaggio. Per questo è necessario un'approccio graduale per avvicinare più facilmente le persone al supporto dei sistemi tecnologici. Il miglior metodo è il coinvolgimento. Una volta che sono stati scelti i partecipanti e si sono impegnati nel progetto bisogna coinvolgerli il più possibile. Lasciarli "guidare". Dar loro la crimpatrice o la tastiera e mostrargli come fare il lavoro. Anche se non c'è tempo per spiegare ogni dettaglio, anche se richiedesse più tempo, devono essere fisicamente coinvolti, non solo vedere il risultato di quel che è stato fatto ma anche quanto e che lavoro è stato eseguito.

Il metodo scientifico è insegnato in tutte le scuole occidentali. Molte persone lo imparano sin dal momento in cui arrivano alle lezioni di scienza alle scuole superiori. Prendere una serie di variabili, quindi lentamente eliminare le variabili tramite test binari fino a rimanere con una o poche possibilità. Con queste possibilità in mente, si completa l'esperimento. Dopodichè si testa per vedere se l'esperimento fornisce risultati simili a quanto atteso. In caso negativo si ricalcolano i risultati attesi e si prova ancora. Il contadino tipico potrebbe esser stato introdotto al concetto, ma probabilmente non avrà la possibilità di risolvere problemi complessi. Anche se ha familiarità con il metodo scientifico, potrebbe non pensare di applicarlo ai problemi reali.

Questo metodo è molto efficiente, anche se lungo. Può essere velocizzato facendo assunzioni logiche. Ad esempio, se un access point che funziona da tempo a volte smette di funzionare dopo un temporale, si può sospettare di problemi legati all'alimentatore e saltare così la maggior parte della procedura di risoluzione dei problemi. Alle persone incaricate di supportare la tecnologia dovrebbe venir insegnato a risolvere i problemi con questo metodo dato che ci saranno occasioni in cui il problema non sarà nè noto nè evidente. Un semplice albero delle decisioni o un diagramma di flusso che testi queste variabili può essere stilato per eliminare le variabili ed isolare il problema. Ovviamente il diagramma non dovrebbe essere seguito ciecamente.

Spesso è più semplice insegnare questo metodo usando dapprima un problema non tecnologico. Far sviluppare ai propri studenti una procedura di risoluzione dei probemi su qualcosa di semplice e familiare, ad esempio, una televisione alimentata a batterie. Iniziare sabotando la televisione dando loro una batteria non carica. Disconnettendo l'antenna. Inserendo un fusibile guasto. Testare gli studenti, spiegando bene che ogni problema mostrerà sintomi specifici e indirizzarli verso il modo in cui procedere. Una volta che hanno riparato il televisore, facciamoli applicare questa procedura ad un problema più complicato. In una rete possiamo cambiare un indirizzo IP, scambiare o rompere i cavi, usare l'SSID sbagliato o orientare l'antenna nella direzione sbagliata. E' importante che gli studenti sviluppino una metodologia e delle procedure per risolvere questi problemi.

La tecnica corretta per la risoluzione dei problemi

Nessuna metodologia di risoluzione può coprire completamente tutti i problemi che si incontrano quando si lavora con le reti wireless. Ma, spesso, i problemi si riducono ad uno degli errori più comuni. Qui vengono elencati pochi semplici punti da tenere a mente per far lavorare nella giusta direzione i propri sforzi per la soluzione dei problemi.

Non è plausibile che le persone che progettano la rete restino a telefono 24 ore al giorno per risolvere i problemi quando arrivano. Il team di troubleshooting deve avere buone capacità di soluzione dei problemi ma potrebbe non essere competente abbastanza per configurare un router da zero o crimpare un pezzo di LMR-400. E' spesso molto più efficiente avere una serie di componenti di backup a portata di mano e addestrare il team a sostituire l'intera parte guasta. Questo può significare avere un access point o un router preconfigurati e chiusi in un armadietto, chiaramente etichettati e con i cavi e gli alimentatori di backup. Il team può sostituire il componente guasto e spedirlo ad un esperto per la riparazione, o fare in modo di farsi spedire un'altro componente di backup. Mantenendo al sicuro le componenti di backup e rimpiazzandole quando vengono usate si può far risparmiare un sacco di tempo a tutti.

Problemi di rete comuni

Spesso i problemi di connettività sono causati da componenti guaste, maltempo o semplicemente cattive configurazioni. Una volta che la nostra rete è connessa ad Internet o aperta al pubblico, una considerevole serie di minacce arriveranno dagli stessi utenti della rete. Queste minacce spaziano dal benigno al totalmente maligno ma avranno tutte impatto sulla rete se non è correttamente configurata. Questa sezione riguarda alcuni problemi comunemente riscontrabili una volta che la rete venga usata dalla razza umana attuale.

Siti ospitati localmente

Se un'università ospita il suo sito web localmente, i visistatori del sito all'esterno del campus e nel resto del mondo si contenderanno la banda Internet con lo staff dell'università. A questi si aggiungono gli accessi automatici degli spider dei motori di ricerca che periodicamente scansioneranno l'intero sito. Una soluzione a questo problema è di usare uno split DNS ed un mirror. L'università replicherà una copia del suo sito su di un server, diciamo, di una compagnia di hosting Europea, ed utilizzerà uno split DNS per redirigere tutti gli utenti esterni alla rete universitaria verso il sito mirror, mentre gli utenti interni alla rete universitaria accederanno allo stesso sito localmente. I dettagli su come effettuare questa configurazione sono forniti nel capitolo tre.

figure-8.1-ita.png

Figura 8.1: Nell'Esempio 1, tutto il traffico del sito web che proviene da Internet deve attraversare il VSAT. Nell'Esempio 2 il sito web pubblico è ospitato su un servizio Europeo e viene mantenuata una copia su di un server interno per accessi locali molto veloci. Questa configurazione migliora la connessione VSAT e riduce i tempi di caricamento per gli utenti del sito web.

Proxy aperti

Un server proxy dovrebbe esser configurato per accettare solo connessioni provenienti dalla rete dell'università, non dal resto di Internet. Questo per evitare che altre persone vi si connettano ed utilizzino il proxy aperto per una serie di scopi come l'evitare di pagare collegamenti internazionali. Il modo di configurarlo dipende dal tipo di proxy server che si utilizza. Ad esempio è possibile specificare il range di indirizzi IP utilizzati nella rete del campus. /!\ LA FRASE è INCOMPLETA NELLA VERSIONE ORIGINALE! /!\

/!\ Host a ritrasmissione aperta (Open relay hosts) /!\

Un server mail mal configurato sarà scovato dalle persone senza scrupoli di Internet e usato come macchina di ritrasmissione per /!\ email di massa /!\ e spam. Lo fanno per nascondere la vera sorgente dello spam ed evitare di essere scoperti. Per trovare host che inoltrano apertamente (open relay host n.d.t.) i test seguenti dovrebbero essere eseguiti sul vostro mail server (o sul server SMTP che lavora come relay host sul perimetro della rete del campus). Usare telnet per aprire una connessione alla porta 25 del server in questione (con alcune versioni di Windows telnet potrà esser necessario digitare 'set local_echo' per rendere visibile il testo):

telnet mail.uzz.ac.zz 25

Quindi, se è possibile aprire una sessione da linea di comando (come nell'esempio che segue), il server è un host open relay:

MAIL FROM: spammer@waste.com 
250 OK - mail from <spammer@waste.com> 
RCPT TO: innocent@university.ac.zz 
250 OK - rcpt to spammer@waste.com 

In caso contrario, la risposta al primo MAIL FROM dovrebbe essere qualcosa del tipo:

550 Relaying is prohibited. 

All'indirizzo http://www.ordb.org/ è disponibile anche un tester online. Il sito contiene anche informazioni su questa problematica. Dal momento che le i /!\ bulk emailers /!\ hanno sistemi automatizzati per trovare questi host open relay, un'organizzazione che non protegge il proprio sistema email ha quasi la certezza che il proprio server venga trovato ed abusato. Configurare un server mail per non essere un open relay host consiste nello specificare le reti e gli host che sono autorizzati ad inoltrare le email tramite il suo MTA (Sendmail, Postfix, Exim, o Exchange). Tipicamente si specifica il range di indirizzi della rete del campus.

Peer-to-peer networking

L'abuso di banda dei programmi di scambio file su peer-to-peer (P2P) come Kazaa, Morpheus, WinMX e BearShare può essere prevenuto nei modi seguenti:

Programmi che si installano da soli (tramite Internet)

Esistono programmi che si installano da soli automaticamente e poi continuano ad usare banda come, ad esempio, il cosiddetto Bonzi-Buddy, il Microsoft Network ed alcuni tipi di worm. Alcuni di questi programmi sono spyware e continuano ad inviare informazioni sulle abitudini di navigazione dell'utente ad aziende da qualche parte in Internet. Questi programmi sono prevedibili in qualche caso con l'educazion dell'utente e bloccando il PC per prevenire accessi amministrativi per utenti normali. In altri casi, ci sono soluzioni software per trovare e rimuovere questi programmi problematici, come Spychecker (http://www.spychecker.com/), Ad-Aware (http://www.lavasoft.de/), o xp-antispy (http://www.xp-antispy.de/).

Aggiornamenti di Windows

Gli ultimi sistemi operativi Microsoft Windows danno per scontato che un computer con una connessione LAN abbia un buon collegamento ad Internet e automaticamente scaricano patch di sicurezza, bug fix ed aggiornamenti dal sito Web della Microsoft. Questo può consumare la gran parte della banda a disposizione su collegamenti economici a Internet. I due approcci possibili a questo problema sono:

Bloccare il sito di aggiornamento di Windows sul proxy server non è una buona soluzione perchè il servizio di aggiornamento di Windows (Aggiornamento Automatico) continua a riprovare sempre più aggressivamente, e se lo fanno tutte le workstation, il proxy server sarà pesantemente caricato. L'estratto seguente proviene dal log del proxy (log accessi di Squid) dove è stato impostato di bloccare i file cabinet di Microsoft (.cab).

Gran parte del log di Squid appare così:

2003.4.2 13:24:17 192.168.1.21 http://windowsupdate.microsoft.com/ident.cab  *DENIED* Banned extension .cab GET 0 
2003.4.2 13:24:18 192.168.1.21 http://windowsupdate.microsoft.com/ident.cab *DENIED* Banned extension .cab GET 0 
2003.4.2 13:24:18 192.168.1.21 http://windowsupdate.microsoft.com/ident.cab *DENIED* Banned extension .cab HEAD 0 
2003.4.2 13:24:19 192.168.1.21 http://windowsupdate.microsoft.com/ident.cab *DENIED* Banned extension .cab GET 0 
2003.4.2 13:24:19 192.168.1.21 http://windowsupdate.microsoft.com/ident.cab *DENIED* Banned extension .cab GET 0 
2003.4.2 13:24:20 192.168.1.21 http://windowsupdate.microsoft.com/ident.cab *DENIED* Banned extension .cab GET 0 
2003.4.2 13:24:21 192.168.1.21 http://windowsupdate.microsoft.com/ident.cab *DENIED* Banned extension .cab GET 0 
2003.4.2 13:24:21 192.168.1.21 http://windowsupdate.microsoft.com/ident.cab *DENIED* Banned extension .cab GET 0 
2003.4.2 13:24:21 192.168.1.21 http://windowsupdate.microsoft.com/ident.cab *DENIED* Banned extension .cab HEAD 0 

Anche se questo può essere tollerabile per pochi client, il problema cresce significativamente man manco che gli host si aggiungono alla rete. Invece che forzare un proxy a servire richieste che falliranno sempre, ha molto più senso redirigere i client Software Update verso un server di aggiornamento locale.

Programmi che presuppongono una gran disponibilità di banda

Oltre Windows updates, molti altri programmi e servizi fanno conto che la banda non sia un problema e, per questo, consumano banda per ragioni che l'utente non può prevedere. Ad esempio i pacchetti antivirus (come il Norton antivirus) si aggiorna periodicamente in modo automatico da Internet. Sarebbe meglio che questi aggiornamenti fossero distribuiti da un server locale.

Altri programmi, come il video player RealNetworks, scaricano automaticamente aggiornamenti e pubblicità, ma fanno anche l'upload delle abitudini d'uso verso un sito su Internet. Applet dall'aspetto innocuo (come Konfabulator e Dashboard widgets) contattano continuamente degli host in Internet per avere informazioni aggiornate. Si può trattare di richieste con una piccola esigenza di banda (come gli aggiornamenti sul tempo o sulle notizie), o di richieste molto piò onerose (come le webcam). Potrebbe essere necessario moderare queste applicazioni o bloccarle del tutto.

Le ultime versioni di Windows e Mac OS X hanno anche un servizio di sincronizzazione del tempo. Connettendosi a time server su Internet, il servizio assicura la precisione dell'ora mostrata dall'orologio del computer. E' meglio installare un time server locale e distribuire il segnale orario esatto da lì invece che sprecare la banda verso Internet con queste richieste.

Traffico Windows sul collegamento ad Internet

I computer Windows comunicano tra loro tramite il NetBIOS e il Server Message Block (SMB). Questi protocolli si lavorano sopra il TCP/IP o altri protocolli di trasporto. Si tratta di un protocollo che usa un processo di elezione per determinare quale computer sarà il master browser. Il master browser è un computer che mantiene la lista di tutti gli altri computer, condivisioni e stampanti che si possono vedere in Risorse di Rete o Connessioni di Rete. Le informazioni riguardo le condivisioni disponibili sono anche inviate a tutti (broadcast) ad intervalli regolari.

Il protocollo SMB è pensato per le LAN ed è fonte di problemi nel momento in cui il computer Windows è connesso ad Internet. Se il traffico SMB non è filtrato tenderà a propagarsi attraverso il collegamento ad Internet, sprecando la bandwidth dell'organizzazione. Le seguenti misure possono essere adottati per prevenire questo comportamento:

Worms e virus

Worm e virus possono generare una quantità enorme di traffico. Il worm W32/Opaserv, ad esempio, è ancora presente nonostante sia piuttosto vecchio. Si diffonde tramite le condivisioni Windows e viene rilevato dalle altre persone in Internet perchè tenta di diffondersi ancora. Per questo è essenziale che una protezione antivirus sia installata su di ogni PC. Così come è essenziale far capire all'utente i rischi connessi all'esecuzione degli allegati e al rispondere alle email non attese. Bisognerebbe osservare la regola di non tenere alcun servizio non utilizzato su workstation e server. Un PC non dovrebbe avere condivisioni di rete se non fa da file server; un server, a sua volta, non dovrebbe eseguire servizi non necessari. I server Windows e Unix, ad esempio, hanno normalmente attivi i servizi di web server. Questi servizi dovrebbero essere disabilitati qualora i server ricoprano un'altra funzione; meno servizi sono attivi su un computer, meno possibilità di "exploit" ci saranno.

Inoltri ciclici di email

Talvolta i problemi possono essere causati da un singolo utente. Prendiamo ad esempio il caso di un utente il cui account all'università è configurato per inoltrare tutta la posta al suo account su Yahoo. L'utente va in vacanza. Tutte le email speditegli durante la sua assenza vengono ancora inoltrate all'account su Yahoo che è limitato a soli 2 MB. Quando la casella su Yahoo si riempie, inizia a far rimbalzare le email indietro verso l'account dell'università, che immediatamente le re-inoltra indietro verso la casella Yahoo. In questo modo si crea un ciclo di email in grado di inviare centinaia di migliaia di email avanti e indietro, generando un grosso traffico capace di compromettere i mail server.

Esistono funzionalità per alcuni programmi di mail server in grado di riconoscere questi cicli o loop. Dovrebbero essere attivi per default. Gli amministratori dovrebbero assicurarsi di non disattivare queste funzionalità per errore, e di evitare di installare SMTP forwarder che modificano l'intestazione (header n.d.t.) delle email con il risultato che il mail server non riesca a riconoscere il loop di email.

Download di file di grandi dimensioni

Un utente può avviare molti download contemporaneamente, o scaricare file di grandi dimensioni come le immagini ISO da 650 MB. In questo modo, un singolo utente può utilizzare la maggior parte della banda. La soluzione a questo tipo di problema si può trovare con il training, download offline e monitoring (compreso il monitoring in tempo reale come spiegato nel capitolo sei). Il download offline può essere implementato in almeno due modi:

Inviare file di grandi dimensioni

Quando gli utenti devono spedire file di grandi dimensioni a collaboratori da qualche parte su Internet, dovrebbe venir loro mostrato come schedulare l'upload. In Windows, l'upload ad un server FTP remoto può essere fatto utilizzando uno script FCP che consiste in un file di testo che contiene i comandi FTP, qualcosa di simile all'esempio seguente (salvato come c:\ftpscript.txt):

open ftp.ed.ac.uk 

gventer 
mysecretword 
delete data.zip 
binary 
put data.zip 
quit

Per eseguirlo, al prompt dei comandi basta digitare:

ftp -s:c:\ftpscript.txt

Su computer con Windows NT, 2000 e XP il comando può essere salvato in un file del tipo transfer.cmd, e schedulato per essere eseguito di notte utilizzando la funzione Scheduled Tasks - Operazioni Pianificate (Avvio -> Impostazioni -> Pannello di Controllo -> Operazioni Pianificate). In Unix, lo stesso risultato può essere ottenuto utilizzando at o cron.

Utenti che scambiano file

Gli utenti spesso desiderano scambiarsi file di grandi dimensioni. Se il destinatario è locale, può risultare molto dispendioso, in termini di banda, inviare questi file tramite Internet. Sui server Windows / Samba / Web o Novell dovrebbero esser create delle cartelle condivise dove gli utenti possano mettere file di grandi dimensioni per scambiarli con gli altri utenti.

Altrimenti è possibile scrivere un front-end web che accetti grandi file e li ospiti in un'area di download. Dopo aver fatto l'upload, l'utente riceve un URL che punta al file. A questo punto potrà dare questo URL ai suoi collaboratori locali o internazionali che potranno effettuare il download del file tramite l'URL fornita. Questo è ciò che l'Università di Bristol ha realizzato con il suo sistema FLUFF. L'Università offre strutture per l'upload di grandi file (FLUFF) disponibili tramite http://www.bristol.ac.uk/fluff/. A questi file può accedere chiunque conosca la loro posizione. Il vantaggio di quest'approccio è che gli utenti possono dare agli utenti esterni l'accesso ai loro file, mentre il metodo della condivisione di rete può andar bene solo per gli utenti interni al campus. Un sistema di questo tipo può essere implementato facilmente con uno script CGI utilizzando Python e Apache.