ZeroShell    Forum
   Feed Feed
EnglishEnglish     ItalianoItaliano     French     Spanish                Zeroshell on LinkedIn LinkedIn       Facebook      Twitter ZeroTruth una interfaccia per il Captive Portal

      Cosa è?
      Screenshots
      Licenza
      Annunci
      Mailing List
      Forum
      English Forum
      Documentazione
      FAQ
      Hardware
      Download
      Update On-line
      Kerberos Tutorial  
      Note Legali
      Contattami


  Più in dettaglio:
      Hotspot Router
      Accounting
      Shibboleth SP
      Grafici e Prestazioni
      Net Balancer
      Router UMTS
      Proxy con Antivirus
      Filtri Web
      WiFi Access Point
      OpenVPN Client
      OpenVPN Server
      QoS
      OpenDNS
      Kerberos 5
      NIS e LDAP
      Certificati X.509
      RADIUS
      VPN
      Firewall


Valid HTML 4.01 Transitional




Incremento della banda di connessione a Internet con bilanciamento del traffico e gestione dei guasti

Lo scopo di questo documento è di descrivere la realizzazione di un router per l'accesso alla rete che utilizzi connessioni Internet multiple al fine di bilanciare le richieste della LAN verso l'esterno e di ottenere la ridondanza dell'accesso alla rete gestendo situazioni di fault di una o più linee.
Per ottenere l'obiettivo, si utilizzerà il modulo Net Balancer di Zeroshell. Infine, si esaminerà la possibilità di aggregazione (Bonding) di VPN con lo scopo di aumentare la banda di collegamento punto-punto tra sedi remote tramite Internet.

La trattazione è suddivisa nelle seguenti sezioni:
Load balancing e Failover con una ADSL e 3 UMTS/HSDPA
Load balancing e Failover con una ADSL e 3 UMTS/HSDPA. Fai click sull'immagine per ingrandire.


È davvero possibile aumentare la banda di connessione a Internet?

La risposta a questa domanda non è affermativa in assoluto. Dipende da cosa si intende con aumentare la banda di connessione a Internet. Quello che il Net Balancer sostanzialmente fa è di distribuire in round-robin (pesato) le richieste provenienti dalla LAN sui diversi gateway verso Internet. In altre parole, se sulla LAN vi è in un dato momento un solo utente, che effettua una sola connessione TCP (per esempio effettua un solo download da web), il suo traffico fluirà tutto da un singolo gateway e quindi non si gioverà del bilanciamento delle connessioni. Se invece la LAN è affollata da utenti, ognuno dei quali effettua molte richieste per volta, l'insieme di tutte le connessioni avrà mediamente a disposizione una banda maggiore, pari alla somma delle bande dei singoli accessi.
In conclusione, si deduce, che una singola connessione non potrà mai avere più banda di quella offerta da un singolo link, ma, molte connessioni contemporanee avranno mediamente a disposizione una banda complessivamente maggiore, che tenderà alla somma delle bande di tutti i link a Internet di cui si fa il bilanciamento.
Diverso è invece il discorso dell'aggregazione di VPN. In tal caso, il bilanciamento del traffico avviene al livello di Layer 2 ed è pertanto possibile ottenere un incremento di banda anche per singola connessione TCP/IP.

Configurazione dei gateway multipli di accesso a Internet

Un gateway di accesso a Internet può essere:
  • Un router, come ad esempio un router ADSL. In questo caso il gateway viene identificato nel Net Balancer dal suo indirizzo IP;
  • Un modem con cui si instaura una connessione Point-to-Point (ppp), quale un modem ADSL PPPoE oppure un modem UMTS/HSDPA. In questo caso il gateway, che per sua natura non ha un IP, viene identificato dall'interfaccia Point-to-Point assegnata.
Prima di procedere con la registrazione dei gateway nel Net Balancer è necessario assicurarsi che essi siano fisicamente e logicamente connessi al box Zeroshell. Ciò si traduce, nel caso si tratti di un router, nel connetterlo ad un'interfaccia Ethernet e nell'assegnare alla stessa un indirizzo IP appartenente alla subnet dell'indirizzo IP del router. Tanto per fissare le idee, supponiamo di connettere il router con IP 192.168.1.254 alla ETH01 assegnando a questa l'IP 192.168.1.253.
Se invece si tratta di un modem, bisogna connetterlo fisicamente al box Zeroshell via Ethernet in caso di PPPoE o USB in caso di connessione mobile 3G e creare l'interfaccia Point-to-Point rispettivamente da [Setup][Network][New PPPoE] o [Setup][Network][New 3G Modem]. Praticamente al modem verrà assegnata in automatico un'interfaccia Point-to-Point del tipo ppp0, ppp1, ... Con tale interfaccia si indicherà il modem all'interno del Net Balancer.


Configurazione di un gateway nel Net Balancer
Configurazione di un gateway nel Net Balancer. Fai click sull'immagine per ingrandire.


Cliccando sul bottone [Add] per aggiungere un nuovo gateway o [Change] per modificarlo, compare la finestra Gateway Configuration illustrata nella figura sopra. Il significato dei parametri è il seguente:

  • Description: È una descrizione testuale del gateway. Potrebbe contenere il nome dell'Internet Service Provider.
  • Status: Se impostato su Enabled il Net Balancer considera attivo il gateway e lo gestisce, altrimenti, semplicemente lo ignora. Se per esempio, ci si accorge che un collegamento a Internet fallisce troppo spesso, si può decidere di disabilitarlo amministrativamente agendo su questa voce.
  • Weight: È un numero intero che rappresenta il peso (importanza) del link. La sua funzione dipende dalla modalità in cui il Net Balancer è impostato:

    • Se la modalità è Load Balancing and Failover lo smistamento delle richieste verso Internet avviene proporzionalmente al peso. Più è alto il peso di un gateway, maggiore è la probabilità che una richiesta gli venga assegnata. Si deduce pertanto, che il peso va impostato proporzionalmete alla banda che un link può sostenere. Se tutti i link hanno la stessa portata, il peso può essere impostato a 1 per tutti i gateway. In questa maniera lo smistamento delle richieste Internet avviene uniformemente su tutti i link.
    • Se invece la modalità è soltanto Failover, uno solo dei gateway a disposizione viene utilizzato per soddisfare le richieste a Internet. Gli altri gateway vengono tenuti nello stato di Spare, pronti ad intervenire in caso di fault di quello attivo. L'ordine con cui il Net Balancer decide di attivare un gateway, dipende dal peso. Il gateway attivo è quello con peso maggiore tra quelli che non sono nello stato di Fault.
  • IP Address: Rappresenta l'indirizzo IP del gateway nell'ipotesi che si tratti di un router.
  • Network Interface: Rappresenta l'interfaccia Point-to-Point assegnata al gateway nell'ipotesi che si tratti di un modem PPPoE (xDSL o cavo) o un modem 3G (UMTS o HSDPA).
  • Timeout Coefficient: entra in gioco nella gestione del Failover di un link. Va posto su valori bassi per link veloci e non congestionati. Si può aumentare il suo valore se il link viene messo troppo spesso nello stato di Fault a causa di congestionamento. Per un link di tipo GPRS, per esempio, che classicamente ha tempi di risposta alti, bisogna impostare questo valore almeno a 4.
Conclusa la configurazione dei gateway corrispondenti ai diversi collegamenti alla WAN è già possibile attivare il Net Balancer. Esso effettuerà il load balancing delle connessioni a Internet da subito.

Fault tolerance dei collegamenti a Internet mediante il Failover Monitor

Il Net Balancer può essere impostato per funzionare in una delle seguenti due modalità che incide sul modo con cui un collegamento viene scelto per soddisfare una data richiesta verso Internet:
  • Load Balancing and Failover: le richieste di accesso a Internet vengono bilanciate automaticamente e proporzionalmente al peso (parametro Weight) di ciascun gateway. In caso di guasto di un gateway, questo viene escluso dal bilanciamento automatico evitando la perdita di pacchetti IP. È possibile forzare manualmente l'assegnazione di un certo tipo di traffico in base a opportuni criteri (IP sorgente, IP destinazione, porte TCP/UDP, ...);
  • Failover: un solo link risulta attivo per volta (quello con peso più alto fra quelli che non sono nello stato di Fault). Gli altri sono nello stato di Spare, pronti per intervenire in caso di interruzione del collegamento attivo. Benché in questa modalità non avvenga alcun bilanciamento automatico, è comunque possibile bilanciare manualmente il traffico come vedremo in seguito.

Si deduce, che la tolleranza ai guasti viene garantita indipendentemente dalla modalità di funzionamento del Net Balancer. Per isolare un link malfunzionante, ponendolo nella condizione di Fault, intervengono due meccanismi: il primo di questi controlla la connessione fisica con il gateway (modem o router). Il secondo meccanismo, denominato Failover Monitor, effettua un'analisi più accurata della linea verificando che non ci siano problemi di routing.
Poiché il primo meccanismo per il controllo dei link fisici è implicito nel Net Balancer ed è attivo automaticamente senza la necessità di configurarlo, non ci soffermiamo ulteriormente su di esso. Poniamo invece l'attenzione sul Failover Monitor, che invece, va attivato e configurato esplicitamente. L'attendibilità nella gestione del failover da parte di questo componente è fortemente influenzata dal livello di congestione delle linee dati e dal conseguente tempo di risposta sulle stesse. Se non accuratamente configurato, il Failover Monitor potrebbe porre erroneamente nella condizione di fault una linea che è invece soltanto congestionata. Peggio ancora, potrebbe far oscillare velocemente il suo stato tra Active e Fault causando la chiusura delle connessioni verso Internet. Qualora si notino anomalie di questo tipo, anche dopo aver tarato opportunamente i parametri descritti sotto, conviene disabilitare il Failover Monitor. È senz'altro preferibile non avere del tutto il Failover Monitor attivo, piuttosto che averlo, ma con funzionamento instabile. Vediamo adesso i parametri di configurazione:
  • ICMP failover checking: se impostato su Enabled attiva il Failover Monitor. Affinché il Failover Monitor inizi realmente a funzionare è necessario specificare e abilitare almeno un Failover IP Address. Tali indirizzi IP devono essere esterni alla propria LAN e raggiungibili ognuno tramite tutti i gateway.
  • Number of probes before marking DOWN: indica il numero di ping falliti prima che un link venga messo nello stato di Fault;
  • Number of probes before marking UP: indica il numero di ping consecutivi effettuati con successo necessari prima di riportare un link fuori servizio nuovamente in attività;
  • Reply timeout (seconds): rappresenta il tempo massimo da attendere per una risposta ICMP. In caso di link congestionati può essere utile aumentare questo valore. Si tenga presente che il tempo effettivo di attesa si ottiene moltiplicando questo valore per il Timeout Coefficient visto nel paragrafo precedente;
  • Pause before starting a new cycle (seconds): tra un ciclo di monitoring e il successivo viene effettuata una pausa la cui durata è rappresentata da questo valore;
  • Immediately restart PPPoE and 3G Mobile: se questa voce è abilitata, viene effettuato un reset della connessione Point-to-Point interessata dal fault. Ciò può accelerare la risoluzione del problema, ma ha lo svantaggio di richiedere la rinegoziazione del indirizzo IP se questo è assegnato dinamicamente.
Per raggiungere la configurazione ottimale del sistema di failover possono essere necessari diversi tentativi. In generale, si tratta di ottenere il giusto compromesso tra rapidità di intervento nell'isolare un collegamento a Internet non funzionante e evitare il più possibile di mettere in fault connessioni che sono soltanto congestionate.

Bilanciamento manuale del traffico

Per svariati motivi può essere necessario evitare che alcuni tipi di traffico siano bilanciati automaticamente. È necessario, in altre parole, vincolare determinate connessioni ad un certo gateway. Per far ciò, il Net Balancer mette a disposizione l'interfaccia web [Net Balancer][Balancing Rules] che appare subito molto simile all'interfaccia del Firewall e del Classificatore QoS. Infatti, le regole con cui si sceglie quali connessioni instradare manualmente su un certo gateway si impostano, come nel firewall, basandosi sugli indirizzi IP, sulle porte TCP/UDP e via dicendo.


Regola di instradamento manuale per il traffico SMTP
Regola di instradamento manuale per il traffico SMTP. Fai click sull'immagine per ingrandire.


Nell'esempio in figura, si illustra come il traffico SMTP (porta 25 TCP), generato dal server di posta elettronica con indirizzo IP 192.168.0.20, sia constretto ad uscire dal router 192.168.1.250 a cui corrisponde un link in fibra ottica.

Aggregazione di VPN e aumento di banda in layer 2

Le VPN LAN-to-LAN configurabili in Zeroshell sono ottenute con OpenVPN e interfacce virtuali TAP. Quest'ultime appaiono a tutti gli effetti come delle vere e proprie interfacce Ethernet e come tali si possono aggregare con il Bonding. Ciò è stato possibile già dalla prima release di Zeroshell. Tuttavia, affinché il bonding di VPN abbia un senso, è necessario che ogni tunnel VPN facente parte del bond fluisca su di un link Internet separato. Prima dell'introduzione del Net Balancer, ciò si otteneva con delle route statiche che richiedevano che almeno un peer avesse due IP pubblici. Adesso invece, grazie al Net Balancer, nel form di configurazione delle VPN site-to-site è possibile scegliere il gateway da cui instaurare la connessione cifrata. Ciò semplifica enormente la configurazione non richiedendo, più un doppio IP pubblico e di aggiungere route statiche.


Scelta del gateway su cui instaurare la VPN
Scelta del gateway su cui instaurare la VPN. Fai click sull'immagine per ingrandire.


Una volta create le VPN e assegnate al rispettivo gateway è possibile creare l'interfaccia bond come in figura sotto:


Creazione dell'interfaccia bond aggregando 2 VPN
Creazione dell'interfaccia bond aggregando 2 VPN. Fai click sull'immagine per ingrandire.


L'interfaccia BOND00 ottenuta è anche essa equivalente ad un'interfaccia Ethernet: gli si possono assegnare indirizzi IP, aggiungere VLAN 802.1q o la si può assegnare ad un bridge. Come già anticipato all'inizio, poiché il load balancing nei bonding avviene al livello di trame Ethernet, anche una singola connessione TCP/IP si gioverà dell'aumento di banda dovuto alla presenza di link multipli.



    Copyright (C) 2005-2016 by Fulvio Ricciardi