No, non sono diventato matto. Non ancora, per lo meno. Ma già da più di un mese il Mascheroni non è più dotato di un solo Router (quell’apparato che garantisce a tutta la rete della scuola l’accesso ad Internet).
Purtroppo, a causa di un guasto avvenuto di domenica (a scuola chiusa, senza un’immediata possibilità di intervenire) l’unico router principale che c’era fino ad un paio di mesi fa si è fermato. Avendo i backup pronti e funzionanti non è stato affatto un problema farlo ripartire il lunedì successivo: in 3 minuti il router era di nuovo up & running. Sta di fatto che la scuola (ed i servizi Internet offerti), sono rimasti offline per una giornata.
Questo router rappresentava quello che in gergo tecnico si chiama “single point of failure”, quel dispositivo che, se si rompe, non fa funzionare nient’altro. Per ovviare a futuri guasti mi sono documentato ed ho implementato una soluzione efficace per ridondare questo prezioso dispositivo. La soluzione è stata quella di usare il protocollo Common Address Redundancy Protocol: CARP
Il CARP è un sistema che sincronizza in tempo reale due router, attraverso un’interfaccia ethernet dedicata. La sua particolarità è che non solo sono sincronizzate le regole di routing e di firewall, ma anche gli stati: ciò permette il passaggio dal router attivo (detto “master”) al passivo (detto “slave”) senza che l’utente finale se ne accorga. Tutto continua a funzionare, senza alcuna perdita di connessione! Ed il passaggio da un router all’altro (gestito attraverso l’interfaccia di sincronizzazione) è automatico, senza la necessità di staccare o attaccare un cavo ethernet. Come spesso accade in informatica per astrarre problemi complessi, alcuni elementi del CARP sono “finti”, virtualizzati.
L’implementazione non è stata troppo complicata: utilizzando pfSense (una distribuzione opensource per firewall/router basata su freeBSD), la configurazione del CARP è stata fatta dall’interfaccia web. Così come la configurazione del secondo router è stata relativamente veloce: ho preso un vecchio backup e ho opportunamente modificato i vari indirizzi IP (in modo da non farli collidere con l’attuale router).
Il sistema è stato dapprima testato in una rete dedicata di sviluppo e la messa in produzione dei due router è stata fatta un martedì sera, durante una conferenza di Noesis (in modo da arrecare il minor disservizio possibile)