Che cos’è un floating IP?

In maniera approssimativa si potrebbe dire che Internet consista in una serie di computer cluster, i quali sono connessi tra loro tramite dei fili, dei cavi in fibra ottica e ricevitori senza fili, che si scambiano dati utilizzando una “lingua” comune. Questo standard comune e fondamentale, che può essere inteso appunto come la lingua di comunicazione, è l’Internet Protocol (IP). I dati vengono disposti in maniera tale che solo i computer che condividono lo stesso protocollo, li possono interpretare.

Innanzitutto un cosiddetto indirizzo IP (conosciuto anche solo come “IP”) rende i dispositivi digitali rintracciabili in una rete. Tale indirizzo è dunque un prerequisito irrinunciabile per inviare i pacchetti elettronici in maniera affidabile. È proprio partendo da questa base che gli apparecchi comunicano tra di loro, come ad esempio su Internet. L’indirizzo IP serve a far sì che i dati del mittente giungano al destinatario corretto, come ad esempio da un browser ad un web server e viceversa. Un indirizzo IP può dunque essere assegnato ad un singolo apparecchio o anche contemporaneamente ad altri diversi e ugualmente un singolo dispositivo può avere più indirizzi IP allo stesso momento.

Per capire esattamente cosa sia un floating IP, bisogna innanzitutto conoscere le differenze tra un indirizzo IP dinamico ed uno statico.

IP dinamico

Nella maggior parte dei casi in cui un computer si collega ad Internet, gli verrà assegnato dal provider (Internet Service Provider o abbreviato ISP) un IP dinamico. Gli indirizzi IP dinamici sono lo standard e sono economicamente convenienti sia per l’utente che per il fornitore. Questi indirizzi sono contrassegnati e vengono assegnati ad un singolo terminale solo temporaneamente e vengono riassegnati dopo un certo periodo, stabilito in maniera fissa (ad esempio ogni 24 ore) o in maniera irregolare. L’utente ottiene dunque dal proprio Internet Service Provider un nuovo e dinamico indirizzo IP per il proprio computer, mentre il suo indirizzo precedente viene assegnato ad un altro utente.

IP statico

Un IP statico, al contrario, assomiglia ad un indirizzo postale o ad un numero di telefono e viene assegnato ad un dispositivo permanentemente. Gli indirizzi IP statici si possono trovare soprattutto nei web server o nei mail server ed in particolare dove offerte e contenuti delle pagine web devono essere raggiungibili tramite un URL fisso, così che sia possibile (ri)trovare utenti e procedure senza difficoltà. Anche computer in una rete o periferiche come stampanti possiedono indirizzi IP fissi, in modo che i singoli apparecchi possano comunicare tra di loro all’interno della rete.

Per evitare che un utente debba memorizzarsi una sequenza complessa di cifre, è possibile assegnare ad un IP statico un nome di dominio (in inglese “Domain Name”), come ad esempio www.example.org. Il numero IP, ovvero “il numero di connessione” di un apparecchio in rete, verrà quindi convertito possibilmente in un nome facile da ricordare. Questa caratteristica è generalmente riservata agli IP statici, visto che per gli indirizzi IP dinamici, che cambiano continuamente, risulterebbe praticamente senza senso.

Floating IP: definizione

Un floating IP è di norma un indirizzo IP pubblico e instradabile che non viene assegnato automaticamente ad un’istanza. Invece un responsabile di un determinato processo ordina questi indirizzi IP ad una o più istanze in maniera temporanea e a seconda della propria necessità. L’istanza in questione dispone quindi sia di un IP statico per la comunicazione tra due istanze in una parte privata e non instradabile della rete, sia di un floating IP assegnato in maniera manuale. Questo rende i servizi dell’istanza, ossia di una rete, riconoscibili e perciò raggiungibili per gli utenti, eccezion fatta per un Cloud.

Nel caso in cui il server non dovesse essere raggiungibile, un simile IP, anche se dinamico, “fluttua” (dall’inglese “floating”) verso un’altra unità attiva della rete, di modo che assuma senza ritardi la funzione di un’altra istanza non più attiva e risponda al suo posto alle richieste in entrata.

Come viene generato un floating IP?

L’utente si collega ai floating IP per i propri progetti attingendo a diversi pool, configurati dall’amministratore di sistema e messi a disposizione come risorse del server. Non appena un utente sceglie un floating IP, ne diventa automaticamente il “proprietario”. In qualunque momento può assegnare un’istanza, toglierla ed assegnarla ad un’altra. Anche quando un’istanza viene terminata, l’utente non perde il floating IP assegnato, ma rimane a sua disposizione come sua risorsa ed in qualunque momento può essere riassegnato ad un’altra istanza.

Il motivo principale per l’utilizzo di più pool paralleli di floating IP è il fatto che ogni pool sia gestito da provider diversi e che possa essere assegnato anche da altre reti esterne. In questo modo viene assicurato che venga mantenuta la connettibilità, ovvero la raggiungibilità, persino quando un provider dovesse risultare non disponibile a causa di un malfunzionamento.

Quando vengono utilizzati i floating IP?

Garantire la massima disponibilità possibile rientra tra i fattori più importanti di ogni ambiente di produzione. In rete anche una sola falla di sicurezza può portare ad un crash del programma. Ovviamente i programmatori dormono sonni tranquilli, coscienti del fatto che i loro programmi sono stati concepiti per resistere a tutti gli scenari immaginabili. Dunque l’obbiettivo è quello di preparare un’infrastruttura, in cui sia garantito il minore tempo possibile di inattività (downtime in inglese).

Un indirizzo IP floating può ad esempio servire come un indirizzo flessibile per il load balancing (indirizzo di bilanciamento del carico), così da compensare il carico massimo, ovvero di ripartire il traffico di rete in entrata tra diversi nodi. In questo caso per nodi si intendono degli apparecchi, i quali collegano assieme due (o più) mezzi di trasmissione di una rete di telecomunicazione. Come su un computer, dove i processi vengono distribuiti tra più processori, anche tramite load balancing, il carico viene ripartito tra più sistemi paralleli, in modo da riuscire a gestire un gran numero di richieste simultanee o di operazioni particolarmente pesanti.

Failover e switchover

Quando un load balancer primario o un application server centrale di un cluster diventa irraggiungibile, un indirizzo IP floating configurato a dovere può trovare e reindirizzare ad un application server ridondante (o molto simile) ancora funzionante o assegnarlo ad un load balancer secondario. In questo caso l’indirizzo IP “fluttua” verso l’unità attiva, che ha quindi il compito di portare avanti immediatamente i processi richiesti. Un tale “cambio imprevisto” tra due servizi di rete viene chiamato “failover”. Soprattutto per i programmi di lavoro aziendali, è particolarmente consigliabile adottare una protezione di questo tipo.

Un “cambiamento pianificato” da un sistema primario ad uno secondario viene invece chiamato “switchover”. In questo caso la trasmissione di servizi non viene attivata in seguito a degli errori, bensì nella maggior parte dei casi viene impostata direttamente dall’amministrazione di sistema. Ad esempio, una motivazione tipica per uno switchover è la manutenzione di routine del server primario o secondario, mentre un’istanza parallela ne fa temporaneamente le veci.

Che vantaggi offre un indirizzo IP floating?

I vantaggi di un floating IP risiedono chiaramente nella sua flessibilità, cioè la sua caratteristica di poter essere assegnato liberamente e in base alle necessità. Gli indirizzi IP floating sono adatti per essere utilizzati in casi di failover e switchover: ad esempio, per riuscire ad effettuare un upgrade di un’applicazione o di un intero sito web senza difficoltà nel minor tempo di inattività possibile; mentre viene eseguito un aggiornamento su di un’istanza, un’altra si prende in carico la gestione del traffico. Una volta che l’aggiornamento è andato a buon fine, il traffico dati viene reindirizzato verso l’unità aggiornata.

Un ulteriore vantaggio è quello che anche quando molte istanze vengono assegnate ad un singolo servizio, agli utenti compare comunque l’indirizzo IP del server (e non l’eventuale floating IP).