¿Es el DNS round-robin una posible solución para alta disponibilidad?


Respuestas:


13

DNS round robin no es un buen sustituto para un equilibrador de carga. El servidor DNS continuará entregando la IP del nodo que está inactivo, por lo que algunos de sus usuarios accederán a su servicio y otros no.

Cuando el cliente realiza la consulta DNS, el servidor DNS devuelve todas las direcciones IP asociadas con ese nombre. La magia la realiza el servidor DNS rotando el orden de esa lista para cada consulta. Sin embargo, depende de la aplicación implementar la capacidad de "recorrer" la lista hasta que encuentre una IP que funcione. Y la mayoría de las aplicaciones no hacen eso.

Windows Telnet, por extraño que parezca, es una de esas aplicaciones que es lo suficientemente inteligente como para recorrer la lista vinculada de IP devueltas. Puede ver este comportamiento usted mismo si intenta hacer telnet a google.com, por ejemplo. Notarás que lleva mucho tiempo finalmente fallar. Esto se debe a que google.com tiene muchas direcciones IP y el cliente telnet estaba probando cada una.


Entiendo que los clientes siempre obtienen ambas IP del NS. Es solo que por defecto eligen el primero de la lista. Pero, ¿y si el primero está caído? ¿intentarán con el segundo?
GetFree

99
Depende totalmente de la aplicación. Si hablamos de navegadores web, por ejemplo, la mayoría de los navegadores web modernos recorrerán la lista hasta que tengan éxito, algunos navegadores (generalmente los más antiguos) simplemente fallarán después de que se intente la primera IP fallida. Más información: nber.org/sys-admin/dns-failover.html y blog.engelke.com/2011/06/07/web-resilience-with-round-robin-dns
Ryan Ries

Según los enlaces que proporcionó, parece que funciona. Al menos para clientes HTTP (que es lo que me importa en este momento). Todos los navegadores modernos e incluso los clientes HTTP de nivel inferior conmutan por error a otra IP en la lista.
GetFree

Sí. Solo quería darle la advertencia de que depende de la aplicación. YMMV, etc.
Ryan Ries

@RyanRies, ¿el RFC da alguna recomendación con respecto al comportamiento del cliente? ¿Cumple Telnet cuando prueba todas las IP en lugar de simplemente usar la primera?
Pacerier

14

El uso de un equilibrador de carga seguirá dejando un solo punto de falla. Si su equilibrador de carga se desconecta, su sitio web se cae.

Conterary a la respuesta anterior, la mayoría de los clientes HTTP ya HACER apoyo tratando cada dirección IP de regresar de una consulta DNS hasta que se regresa con una respuesta válida. Por favor mira aquí:

http://blog.engelke.com/2011/06/07/web-resilience-with-round-robin-dns/

Parece que el autor ha probado los siguientes navegadores y descubrió que funcionan bien.

Chrome 11 en Windows 7
Firefox 4.0 en Windows 7
Internet Explorer 8 en Windows 7
Opera 11 en Windows 7
Safari 5 en Windows 7
Internet Explorer 7 en Windows XP (después de un retraso notable)
Firefox 4.0 en Windows XP (después de un retraso notable)
Navegador nativo de Android en el
navegador nativo de Android 2.3.3 iPhone en iOS 4.3.3

El uso de round robin no hará todas las características de un servidor de equilibrio de carga, como ser capaz de monitorear los tiempos de respuesta de ambos servidores y enrutar más tráfico a uno, si el otro no responde tan rápido como debería). Para la resistencia, diría que Round Robin DNS es probablemente una mejor solución ya que ya no hay un solo punto de falla.


Vea el segundo comentario en la respuesta aceptada
GetFree

2

Si bien el DNS de round robin generalmente no tiene comentarios sobre el estado de los servidores para los que proporciona direcciones, puede ser útil si tiene algún tipo de equilibrador de carga (incluidos trucos basados ​​en enrutadores) para cada una de esas direcciones.

Hay trucos para actualizar DNS cuando las cosas fallan; Si esto sucede, el DNS round-robin con TTL adecuadamente cortos puede ser un seudo balanceador de carga.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.