La possibilità di visualizzare grafici statistici al fine di valutare l’utilizzo della banda di accesso a Internet è considerata una caratteristica opzionale di un router. Tuttavia, la conoscenza di queste informazioni è importante per capire se nell’accesso a Internet sono presenti delle inefficienze dovute ad una cattiva ripartizione della banda tra i tipi traffico (VoIP, WWW, P2P, FTP, …) concorrenti nell’utilizzo del collegamento a Internet.
Molti router esportano via SNMP (Simple Network Management Protocol) il valore dei contatori di traffico entrante e uscente per ognuna delle interfacce di rete. Tramite un software come MRTG (Multi Router Traffic Grapher) è possibile effettuare ripetutamente, ad intervalli regolari di tempo, delle interrogazioni SNMP verso tali router e memorizzarne i contatori di traffico. Fatto ciò, MRTG permette di analizzare graficamente, tramite un web browser, l’andamento del traffico entrante e uscente dalle interfacce del router.
Esempio di grafico MRTG relativo al traffico classificato come WWW
Zeroshell non segue questa strategia di esportazione tramite SNMP (vedi nota *), ma integra MRTG direttamente al suo interno, permettendo così l’analisi di parametri che vanno ben oltre quelli ottenibili tramite SNMP. In virtù di ciò, si possono analizzare i seguenti parametri, direttamente dall’interfaccia web di Zeroshell:
- Carico di sistema
- Numero di connessioni (TCP/UDP) attive da e verso Internet;
- Traffico entrante e uscente da un’interfaccia, sia essa una scheda Ethernet, una VLAN 802.1q, una VPN, un bridge, un bond, un collegamento PPPoE (es. ADSL) o un collegamento cellulare 3G (es. UMTS/HSDPA);
- Traffico classificato dal traffic shaping in una determinata classe di QoS (VoIP, HTTP, peer to peer, …) in rapporto al traffico globale uscente da un’interfaccia;
- Bilanciamento del traffico Internet sui diversi Gateway WAN (Load Balancing e Failover) confrontato con il traffico totale da e verso Internet.
Il resto del documento è suddiviso nelle seguenti sezioni:
- Carico medio di sistema
- Connessioni TCP/UDP attive
- Traffico entrante e uscente da un’interfaccia di rete
- Grafici sul traffico suddiviso per classi di QoS
- Ripartizione del traffico sui Gateway Internet in load balancing
- Attivazione di MRTG su Zeroshell
- Chiavi di attivazione
Carico medio di sistema
L’informazione statistica riguardante il Load Average non riguarda direttamente il traffico di rete, ma è comunque utile per capire se le risorse hardware del router (il processore in particolare) siano un collo di bottiglia per la LAN e rallentino le connessioni indipendentemente dalla banda disponibile sui link di accesso a Internet. Per ottenere il grafico del carico di sistema cliccare sul link [Graphics] nel riquadro in alto a destra. Apparirà una finestra come quella mostrata sotto.
Grafico relativo al carico di sistema
Viene preso in considerazione il carico medio calcolato ogni 5 minuti moltiplicato per 100. La percentuale di utilizzo del sistema (riportata tra parentesi tonde) tiene conto del numero di CPU del router. In altre parole, supponendo un carico pari a 100 su di un sistema con 2 processori, la percentuale di utilizzo indicata è del 50%. Quindi la soglia critica per cui il router può essere sospettato di essere un collo di bottiglia è 200 pari al 100% di utilizzo.
I fattori che maggiormente contribuiscono all’uso di CPU in maniera intensiva sono in ordine crescente:
- Regole Firewall, classificazione QoS e Load Balancing manuale
- Regole Firewall e QoS che utilizzino i filtri Layer 7 per effettuare il DPI in presenza di un numero elevato di connessioni. Si noti che i filtri L7 ispezionano il contenuto dei pacchetti solo appena una connessione viene stabilita, mentre il resto dell’identificazione avviene a cura del Connection Tracking. Con ciò si evidenzia, che i filtri di livello applicativo caricano il sistema non tanto in funzione della banda utilizzata, ma in base al numero di nuove connessioni TCP/UDP che vengono aperte.
- Scrivere nei log il risultato del Connection Tracking. Tenere traccia delle connessioni TCP/UDP non è una funzionalità molto dispendiosa in termini di CPU. Tuttavia lo diventa se si configura il sistema per registrare le connessioni (IP sorgente, porta sorgente, IP destinazione, porta destinazione) nei log.
- Captive Portal attivo in una LAN in cui ci siano molti client attivi, ma non ancora autenticati. Spesso la presenza di WORM o altro software che utilizzano le porte TCP 80 e 443 non per effettuare le classiche richieste HTTP/HTTPS, possono peggiorare la situazione.
- Utilizzo del transparent proxy http con antivirus (ClamAV) o filtro sui contenuti web (DansGuardian). Infatti, il dover esaminare il contenuto delle pagine web inevitabilmente impegna duramente la CPU. In questi casi è necessario assicurare anche la presenza di un’adeguata quantità di RAM che eviti il ricorso ad operazioni di swap su disco.
Connessioni TCP/UDP attive
L’andamento del numero di connessioni attive è un buon indice per monitorare l’attività di rete. Per esempio un alto numero di connessioni potrebbe far sospettare la presenza di scambio di file mediante tecniche P2P.
Grafico relativo al numero di connessioni attive
Si tenga presente il fatto, che diversamente da ciò che avviene su alcuni router che dimenticano le connessioni TCP trascorso un breve periodo di timeout, Zeroshell è configurato per tener traccia delle connessioni che non scambiano traffico anche per lunghi periodi di tempo (si pensi alle sessioni SSH interattive in IDLE da giorni). Ciò, se da una parte è un vantaggio, dall’altra, in presenza di connessioni non chiuse correttamente, può portare alla memorizzazione di connessioni ormai non più attive da tempo. Se si vuole impostare un timeout per le connessioni TCP, impostare il parametro /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_established al numero di secondi dopo cui, in caso di inattività, una connessione deve essere ritenuta scaduta e quindi cancellata dalle tabelle del Connection Tracking.
Traffico entrante e uscente da un’interfaccia di rete
L’uso classico che si fa di MRTG è quello che permette di monitorare il traffico delle interfacce di rete di un router sia in upstream che in downstream. Sullo stesso grafico è tracciato in VERDE il traffico entrante, mentre in BLU quello uscente.
Grafico relativo al traffico entrante e uscente da un’interfaccia di rete
Le percentuali sono riferite, quando possibile, alla banda massima che l’interfaccia può supportare. Zeroshell permette di ottenere il grafico del traffico in download/upload dei seguenti tipi di interfaccia: Ethernet, VPN, PPPoE e 3G. Vale lo stesso per le combinazioni di interfacce come bond e bridge e per le VLAN 802.1q. Inoltre, se si sfrutta Zeroshell come Access Point Wi-Fi con SSID multipli, per ognuno degli SSID è possibile avere il grafico del traffico.
Grafici sul traffico suddiviso per classi di QoS
Se su di un’interfaccia di rete è attivo il traffic shaping è possibile visualizzare i grafici relativi al traffico uscente classificato per tipologia di traffico. In BLU viene tracciato il diagramma del traffico totale uscente dall’interfaccia, mentre in VERDE il traffico classificato nella classe QoS scelta.
Grafico relativo al traffico per classe QoS
Con il colore AMBRA è rappresentata la percentuale di utilizzo della classe QoS rispetto al traffico totale dell’interfaccia. Così, dalla figura mostrata sopra, si deduce facilmente che il traffico VoIP uscente dall’interfaccia ETH03 è mediamente il 4% del totale del traffico, con punte che raggiungono il 33%.
Ripartizione del traffico sui Gateway Internet in load balancing
Grazie al Net Balancer Zeroshell può distribuire il traffico di accesso a Internet su collegamenti WAN multipli che possono essere xDSL, 3G o altro. Il bilanciamento può essere automatico con Round-Robin pesato o manuale con delle regole (simili a quelle del Firewall e del classificatore QoS) che impongono a determinate tipologie di traffico di usare un determinato gateway. Nel caso di load balancing automatico, risulta utile consultare un grafico di ripartizione del traffico per capire se i gateway vengono sfruttati in maniera proporzionale alla banda massima disponibile di cui dispongono. In caso contrario, si può intervenire modificando il peso dei gateway. Tale parametro è infatti direttamente proporzionale alla probabilità che una connessione venga smistata su tale collegamento.
Grafico relativo alla ripartizione del traffico su di un gateway Internet
Con il colore VERDE viene indicato il traffico entrante e uscente dal gateway scelto, mentre con il BLU il traffico Internet totale.
Il rapporto in percentuale tra il traffico che avviene sul link scelto e il traffico globale è rappresentato in colore AMBRA.
Attivazione di MRTG su Zeroshell
MRTG è configurabile su Zeroshell a partire dalla release 1.0.beta11 di quest’ultimo come update esterno (C110). Nelle versioni successive, MRTG sarà incluso direttamente nella distribuzione e non richiederà pertanto l’installazione manuale come update. Nella release 1.0.beta11, l’installazione di MRTG avviene digitando i seguenti comandi tramite una console VGA/SERIALE o connessione SSH:
cd /Database wget http://www.zeroshell.net/listing/C110-MRTG-Statistics-beta11-v2.tar.bz2 tar xvfj C110-MRTG-Statistics-beta11-v2.tar.bz2 cd C110 ./install.sh |
Dopo aver installato il software appariranno dei pulsanti/link [Graphics] utilizzando i quali si accede alla finestra web di gestione di MRTG (vedi figure sopra). Il link [Graphics] più facilmente raggiungibile è quello che compare nel riguadro in alto a destra che riporta le informazioni di sistema. Se subito dopo l’installazione tale link non è visibile premere il [Refresh] di tale riquadro.
Chiavi di attivazione
Diversamente dalle altre funzionalità di Zeroshell, alcuni dei grafici statistici vengono generati soltanto se attivati mediante una chiave di attivazione. Non necessitano di essere sbloccati i seguenti grafici:
- Carico di sistema
- Numero di connessioni attive
- Traffico entrante/uscente su VPN, bridge, bond, PPPoE e UMTS/HSDPA
- Classi QoS collegate a VPN, bridge, bond, PPPoE e UMTS/HSDPA
Mentre i seguenti grafici necessitano dello sblocco mediante chiave di attivazione:
- Traffico entrante/uscente sulle interfacce Ethernet/Wireless e VLAN 802.1q
- Classi QoS collegate a interfacce Ethernet/Wireless
- Load balancing di collegamenti Internet
Le chiavi
di attivazione sono legate al MAC address delle schede di rete. Per
ognuna delle schede di rete presenti nel sistema è necessaria una chiave
di attivazione distinta per ottenere il relativo grafico. Tuttavia,
attivando il grafico di un’interfaccia Ethernet si attivano
automaticamente, con la stessa chiave, i grafici delle relative VLAN e
classi QoS. Nel caso si definiscano più SSID su di una stessa scheda di
rete Wi-Fi, basta attivare il grafico relativo ad un SSID affinché gli
altri grafici relativi agli altri SSID siano sbloccati automaticamente.
Come già detto, le chiavi di attivazione
dipendono esclusivamente dal MAC delle interfacce Ethernet/Wireless e di
conseguenza, qualora Zeroshell sia reinstallato sullo stesso hardware o
semplicemente si crei un nuovo profilo di configurazione, le chiavi di
attivazione già ottenute possono essere riutilizzate con successo.
Le chiavi di attivazione vengono generate in base ai Feature Code comunicati
via e-mail (vedi https://www.zeroshell.org/activation) ed possibile
comunicare più di un Feature Code nella stessa richiesta. Per
l’ottenimento delle chiavi di attivazione è richiesto un contributo allo
sviluppo di Zeroshell che al momento si concretizza in una delle
seguenti possibilità:
- Realizzazione di un documento in formato html o pdf riguardante un aspetto della configurazione di Zeroshell. Può trattarsi anche di una semplice descrizione della propria esperienza nell’uso di Zeroshell. Nel documento deve essere specificato l’autore ed eventualmente (opzionale) un riferimento al suo e-mail mediante cui possa essere contattato per delucidazioni dai lettori. Eventuali aggiornamenti del testo sono a cura dell’autore che lo ospita in uno spazio web a cui ha accesso in modifica. L’URL del documento verrà collegato nella sezione di documentazione.
- Una modesta donazione mediante PayPal. Il ricavato verrà utilizzato per l’acquisto di hardware da testare ed eventualmente supportare qualora non lo sia già e per la copertura di spese di gestione.
La
produzione di documentazione è senz’altro il contributo più gradito con
cui si spera di dare un aiuto concreto a chi voglia configurare e
utilizzare Zeroshell. La donazione mediante Paypal è da scegliere
soltanto quando non si ha il tempo o la possibilità di contribuire
mediante documentazione.
Si noti peraltro, che il meccanismo
dell’attivazione mediante chiave, non influisce sul pacchetto MRTG il
cui codice sorgente è stato compilato così come disponibile sul suo sito
ufficiale. L’attivazione riguarda invece un plug-in esterno, scritto
appositamente per Zeroshell, mediante cui MRTG è configurato per
raccogliere i dati statistici.
Note:
(*) Se invece di utilizzare il pacchetto MRTG integrato si preferisce esportare i contatori di traffico mediante SNMP e utilizzare un pacchetto di monitoring esterno, installare il pacchetto net-snmp compilato per Zeroshell.