Diciamo che ho 2 IP per un determinato dominio (DNS round robin).
Se uno degli IP non risponde, i client proveranno a connettersi all'altro IP? o non riusciranno a stabilire una comunicazione con il dominio?
Diciamo che ho 2 IP per un determinato dominio (DNS round robin).
Se uno degli IP non risponde, i client proveranno a connettersi all'altro IP? o non riusciranno a stabilire una comunicazione con il dominio?
Risposte:
Il round robin DNS non è un buon sostituto per un bilanciamento del carico. Il server DNS continuerà a distribuire l'IP del nodo inattivo, quindi alcuni dei tuoi utenti accederanno al tuo servizio e altri no.
Quando il client esegue la query DNS, il server DNS restituisce tutti gli indirizzi IP associati a quel nome. La magia viene eseguita dal server DNS ruotando l'ordine di tale elenco per ogni query. Tuttavia, spetta all'applicazione implementare la capacità di "scorrere" l'elenco finché non trova un IP che funzioni. E la maggior parte delle applicazioni non lo fa.
Windows Telnet, stranamente, è un'applicazione che è abbastanza intelligente da percorrere l'elenco collegato degli IP restituiti. Puoi vedere questo comportamento da solo se provi a telnet a google.com, ad esempio. Noterai che alla fine fallirà molto tempo. Questo perché google.com ha molti indirizzi IP e il client Telnet stava provando tutti.
L'uso di un bilanciamento del carico lascerà comunque un singolo punto di errore. Se il bilanciamento del carico non è in linea, il sito Web non funziona.
Conterary alla risposta di cui sopra, La maggior parte dei clienti HTTP già DO supporto cercando ogni indirizzo IP restituito da una query DNS fino a quando uno ritorna con una risposta valida. Vedi qui:
http://blog.engelke.com/2011/06/07/web-resilience-with-round-robin-dns/
Sembra che l'autore abbia testato i seguenti browser e li abbia trovati funzionanti.
Chrome 11 su Windows 7
Firefox 4.0 su Windows 7
Internet Explorer 8 su Windows 7
Opera 11 su Windows 7
Safari 5 su Windows 7
Internet Explorer 7 su Windows XP (dopo un notevole ritardo)
Firefox 4.0 su Windows XP (dopo un notevole ritardo)
Browser nativo Android su Android 2.3.3
Browser nativo iPhone su iOS 4.3.3
L'uso del round robin non farà tutte le funzionalità di un server di bilanciamento del carico, cose come la possibilità di monitorare i tempi di risposta da entrambi i server e instradare più traffico verso uno, se l'altro non risponde così velocemente come dovrebbe). Per resilienza, direi che Round Robin DNS è probabilmente una soluzione migliore in quanto non esiste più un singolo punto di errore.
Sebbene il DNS round robin in genere non abbia feedback sullo stato dei server per cui fornisce gli indirizzi, può essere utile se si dispone di una sorta di bilanciamento del carico (inclusi i trucchi basati sul router) per ciascuno di quegli indirizzi.
Ci sono trucchi per aggiornare il DNS quando le cose falliscono; in tal caso, il DNS round robin con TTL opportunamente brevi può essere un pseudo-bilanciamento del carico.