Record multipli A che puntano allo stesso dominio sembrano essere usati quasi esclusivamente per implementare DNS Round Robin come tecnica di bilanciamento del carico a basso costo.
Il solito avvertimento contro DNS RR è che non è buono per l'alta disponibilità. Quando 1 IP scende, i client continueranno a usarlo per minuti.
Un bilanciamento del carico viene spesso suggerito come una scelta migliore.
Entrambe le affermazioni non sono completamente vere:
Quando il traffico è HTTP, la maggior parte dei browser HTML è in grado di provare automaticamente il record A successivo se il precedente è inattivo, senza una nuova ricerca DNS. Leggi qui il capitolo 3.1 e qui .
Quando sono coinvolti più data center, DNS RR è l'unica opzione per distribuire il traffico su di essi.
Quindi, è vero che, con più data center e traffico HTTP, l'uso di DNS RR è l'UNICO modo per garantire il failover istantaneo quando un data center fallisce?
Grazie,
Valentino
Modificare:
- Ovviamente ogni data center ha un Load Balancer locale con hot spare.
- È OK sacrificare l'affinità di sessione per un failover immediato.
- AFAIK l'unico modo per un DNS di suggerire un data center invece di un altro è rispondere con solo l'IP (o IP) associato a quel data center. Se il data center diventa irraggiungibile, anche tutti questi IP sono irraggiungibili. Ciò significa che, anche se i browser HTML intelligenti sono in grado di provare immediatamente un altro record A, tutti i tentativi falliranno fino a quando la voce della cache locale non scade e non viene eseguita una nuova ricerca DNS, recuperando i nuovi IP funzionanti (suppongo che DNS suggerisca automaticamente a un nuovo data center in caso di errore). Pertanto, "DNS intelligente" non può garantire il failover immediato.
- Al contrario, un round robin DNS lo consente. Quando un data center fallisce, i browser HTML intelligenti (la maggior parte di essi) provano istantaneamente gli altri record A memorizzati nella cache saltando a un altro data center (funzionante). Pertanto, il round robin DNS non assicura l'affinità di sessione o il RTT più basso, ma sembra essere l'unico modo per garantire il failover istantaneo quando i client sono browser HTML "intelligenti".
Modifica 2:
- Alcune persone suggeriscono TCP Anycast come soluzione definitiva. In questo articolo (capitolo 6) viene spiegato che il failover di Anycast è correlato alla convergenza BGP. Per questo motivo Anycast può impiegare da 15 minuti a 20 secondi per essere completato. 20 secondi sono possibili su reti in cui la topologia è stata ottimizzata per questo. Probabilmente solo gli operatori di CDN possono garantire così rapidi fallimenti.
Modifica 3: *
- Ho fatto alcune ricerche DNS e traceroute (forse qualche esperto può ricontrollare) e:
- L'unica CDN che utilizza TCP Anycast sembra essere CacheFly, altri operatori come le reti CDN e BitGravity usano CacheFly. Sembra che i loro bordi non possano essere usati come proxy inversi. Pertanto, non possono essere utilizzati per garantire il failover istantaneo.
- Akamai e LimeLight sembrano usare DNS geo-compatibili. Ma! Restituiscono più record A. Da traceroutes sembra che gli IP restituiti si trovino sullo stesso data center. Quindi, sono perplesso su come possano offrire uno SLA al 100% quando un data center fallisce.