Varios registros A que apuntan al mismo dominio parecen usarse casi exclusivamente para implementar DNS Round Robin como una técnica de equilibrio de carga barata.
La advertencia habitual contra DNS RR es que no es bueno para la alta disponibilidad. Cuando 1 IP caiga, los clientes continuarán usándolo durante minutos.
A menudo se sugiere un equilibrador de carga como una mejor opción.
Ambas afirmaciones no son completamente ciertas:
Cuando el tráfico es HTTP, la mayoría de los navegadores HTML pueden probar automáticamente el siguiente registro A si el anterior está inactivo, sin una nueva búsqueda de DNS. Lea aquí el capítulo 3.1 y aquí .
Cuando intervienen varios centros de datos, DNS RR es la única opción para distribuir el tráfico entre ellos.
Entonces, ¿es cierto que, con múltiples centros de datos y tráfico HTTP, el uso de DNS RR es la ÚNICA forma de garantizar una conmutación por error instantánea cuando un centro de datos se cae?
Gracias,
Valentino
Editar:
- Por supuesto, cada centro de datos tiene un equilibrador de carga local con repuesto dinámico.
- Está bien sacrificar la afinidad de sesión por una conmutación por error instantánea.
- AFAIK, la única forma en que un DNS puede sugerir un centro de datos en lugar de otro es responder solo con la IP (o IP) asociada a ese centro de datos. Si el centro de datos se vuelve inalcanzable, entonces todas esas IP también son inalcanzables. Esto significa que, incluso si los navegadores HTML inteligentes pueden probar instantáneamente otro registro A, todos los intentos fallarán hasta que caduque la entrada de caché local y se realice una nueva búsqueda de DNS, obteniendo las nuevas IP que funcionan (supongo que DNS sugiere automáticamente a un nuevo centro de datos cuando uno falla). Por lo tanto, el "DNS inteligente" no puede garantizar la conmutación por error instantánea.
- Por el contrario, un round-robin de DNS lo permite. Cuando un centro de datos falla, los navegadores HTML inteligentes (la mayoría de ellos) prueban instantáneamente los otros registros A en caché que saltan a otro centro de datos (en funcionamiento). Por lo tanto, DNS round-robin no garantiza la afinidad de sesión o el RTT más bajo, pero parece ser la única forma de garantizar la conmutación por error instantánea cuando los clientes son navegadores HTML "inteligentes".
Edición 2:
- Algunas personas sugieren TCP Anycast como una solución definitiva. En este documento (capítulo 6) se explica que la conmutación por error Anycast está relacionada con la convergencia BGP. Por esta razón, Anycast puede emplear de 15 minutos a 20 segundos para completarse. Son posibles 20 segundos en redes donde la topología fue optimizada para esto. Probablemente solo los operadores de CDN puedan otorgar tales fallas rápidas.
Edición 3: *
- Hice algunas búsquedas de DNS y traceroutes (tal vez algún experto puede verificar) y:
- El único CDN que usa TCP Anycast parece ser CacheFly, otros operadores como las redes CDN y BitGravity usan CacheFly. Parece que sus bordes no pueden usarse como proxies inversos. Por lo tanto, no se pueden usar para otorgar conmutación por error instantánea.
- Akamai y LimeLight parecen utilizar DNS con reconocimiento geográfico. ¡Pero! Devuelven múltiples registros A. Desde traceroutes parece que las IP devueltas están en el mismo centro de datos. Entonces, estoy desconcertado sobre cómo pueden ofrecer un SLA 100% cuando un centro de datos deja de funcionar.