domenica 30 settembre 2012

Multi WAN con pfSense - Parte 1

Dopo qualche giorno di latitanza dovuta all'altra mia passione ovvero la Protezione Civile, torno con una serie di articoli dedicati alla configurazione di pfSense per sfruttare più connessioni WAN. 

Introduzione

In Italia la banda larga continua a latitare, i problemi infrastrutturali e lo scarso interesse da parte degli operatori hanno fatto si che l'Italia sia finita tra le cenerentole modiali per la connettività.
Nonostante ciò, rimane la necessità per molte aziende di dotarsi di connessioni affidabili e con banda superiore alla media.

Se non si ha la possibilità finanziaria per pagare lo scavo per l'interramento della fibra dalla centrale all'azienda o la possibiliutà di permettersi una connessione SHDSL basata su affasciamento di doppini da 2 Mbps, rimane una sola soluzione: aggregare più connessioni ADSL a basso costo per ottenere più link e più banda.

Un tempo per poter aggregare più connessioni era necessario ricorrere a firewall o router di fascia alta dal costo proibitivo, con pfSense si ha la possibilità di aggregare più connessioni senza sborsare un euro se non il costo dell'hardware.

Aggregare per l'affidabilità

Aggregare più connessioni può essere utile per aumentare l'affidabilità della connettività aziendale, per ottenere questo risultato è opportuno considerare quelli che possono essere i rischi. Sostanzialmente i rischi che vanno dal nostro router ad internet possono essere due:
  1. Guasti agli apparati/rete del provider;
  2. Guasti al link fisico tra la centrale e la nostra azienda.
Per mitigare questi due rischi possiamo metere in atto i seguenti accorgimenti:
  1. Scegliere provider differenti per la fornitura di connettività;
  2. Scegliere percorsi differenti di accesso alle centrali. In questo caso le possibilità sono diverse, in alcuni casi è possibile ottenere connettività con cavi che seguono tragiti differenti e sono attestati a centrali differenti, in altri casi è possibile valutare l'utilizzo di connettività differenti combinando connessioni ADSL via doppino telecfonico con connessioni UTMS, WIMAX o satellitari. Tutte queste modalità sono supportate in modo egregio da pfSense, personalmente mi è capitato di configurare sistemi pfSense in cui la connettività ADSL classica venisse accoppiata con altre 2 connessioni UTMS.

Aggregare per aumentare la banda

Aggregare più connessioni può essere utile anche per aumentare la banda complessiva disponibile. Qui occorre fare una precisazione, aggregare più connessioni non consente di usufruire di una velocità di picco pari alla soma della banda delle singole connessioni ma semplicemente di poter suddividere la banda complessiva su più richieste. 
pfSense alloca le risorse secondo una politica round robin, questo fa si che le risorse vengano suddivise equamente tra le varie richieste ma senza tener conto dell'effettivo peso delle richieste.
Per chiareire meglio facciamo un esempio, supponiamo di avere un azienda con due connessioni: Wan1 e Wan2 e 3 utenti che chiameremo A, B e C
L'utente A effettua una richiesta HTTP di download di un file di 100 MB, pfsense alloca la sua richiesta alla Wan1. Successivamente B richiede la visualizzazione di una pagina qualsiasi del peso di pochi KB, pfSense alloca la sua richiesta alla Wan2. Subito dopo C effettua un download via FTP di un file di 500 MB e pfSense alloca la sua richiesta sulla risorsa Wan1.
A questo punto abbiamo due richieste su Wan1 per un download complessivo di 600 MB mentre su Wan2 una sola richiesta di pochi KB.
Questo è un caso limite ma comunque possibile, nella realtà la probabilità ci viene in aiuto e fa si che mediamente il traffico allocato alle due connessioni sia quasi identico.

Outbound Vs Inbound

L'aggregazione di più connessioni wan risolve il problema del traffico dall'interno della nostra rete verso l'esterno, sia che si tratti di download che di upload ma, cosa succede se una delle nostre connession cade e noi tendiamo di accedere dall'esterno? Sfortunatamente pfSense può venirci in aiuto solo per quanto gli compete e quindi tutto il traffico generato dalla nostra LAN ma, abbiamo ancora du carte da giocare che ci permettono di recuperare un minimo di disponibilità dei servizi erogati tramite la nostra connettività.

La prima carta ce la giochiamo attraverso il DNS round robin, in modo similare a quanto visto per l'allocazione delle risorse fatte da pfSense. Questa tecnica è molto semplice da mettere in atto ma anche poco efficace. Per sfruttare questa possibilità occorre avere un IP pubblico per ogni connessione e registrare nel DNS autoritativo per il nostro dominio una entry per ogni IP. Es. se avessimo 3 connessioni internet con i seguenti IP pubblici: 1.2.3.4 - 4.3.2.1 - 5.6.7.8 e volessimo ospitare in casa un sito web per esempio www.pfsenseitaly.com, ci basterebbe creare 3 record A  come segue:
www.pfsenseitaly.com   A     1.2.3.4
www.pfsenseitaly.com   A     4.3.2.1
www.pfsenseitaly.com   A     5.6.7.0
In questo modo ad ogni richiesta il nostro dns fornirà un IP diverso ed avremo così la possibilità di essere raggiunti attraverso più connessioni. Cosa succede se una delle due connessioni cade? Molto semplice il traffico che il DNS dirigerà verso quest'IP verrà perso poichè l'host non risponde. Nel nostro esempio perderemmo il 33,33% del traffico.Questo è dovuto al fatto che la soluzione non implementa alcun meccanismo per determinare quali connessioni sono UP e quali DOWN.
Questa soluzione è molto semplice, poco costosa ma poco efficace e può essere accettabile solo in determinate situazioni.

A questo punto potremmo giocarci la seconda carta che segue un po' la logica della prima ma aggiunge uno step in più e che ci permette di far si che pfSense sia parte attiva nel processo di determinazione di quali connessioni sono realmente funzionanti. Questa soluzione prevede l'utilizzo dei DDNS ovvero dei Dynamic DNS. Attivando il servizio di Dynamic DNS sarà pfSense a comunicare al server DNS quae connessione utilizzare per contattarlo, pertanto avremo una soluzione aggiornata quasi in tempo reale. In una soluzione che non sia mission critical e che sia a basso costo, questo può essere un ottimo stratagemma per rendere i nostri servizi sempre raggiungibili attraverso l'utilizzo di più connessioni.

A questo punto dovrebbe essere chiaro quali sono le potenzialità e quali i punti deboli di una soluzione multi wan. Nel prossimo articolo vedremo come iniziare a configurare il nostro sistema per sfruttarne tutte le potenzialità.
Posta un commento