¿Es posible que un nombre de dominio tenga varias direcciones IP correspondientes?

86

Por ejemplo, cuando nos conectamos a www.example.com, al principio intentamos conectarnos a 192.0.2.1. Y si el primer intento falla, lo intentamos 192.0.2.222.

¿Es posible? ¿Podemos registrar varias direcciones IP de respaldo para un nombre de dominio?

firia2000
fuente
No funcionará exactamente de esta manera (con Round-Robin). Si consulta el host varias veces, le devolverá diferentes direcciones IP cada vez que realice la consulta y no solo cuando falle un host.
karatedog
@karatedog, estaba asumiendo que la conexión de socket intentará conectarse a la siguiente IP si no puede conectarse a la primera
Akash Kava
4
@AkashKava: una sola conexión tiene varios pasos internos. Simplificado: una aplicación consulta el DNS y obtiene una dirección IP. Luego se conecta a esa dirección IP. Si esa conexión falla, la aplicación no volverá al primer paso y volverá a consultar el DNS, solo si está codificada explícitamente para hacer esto. Y consultar un servidor DNS varias veces no necesariamente le da una dirección IP diferente. Entonces, en resumen, el DNS estándar no se puede usar con fines de equilibrio de carga.
karatedog
¿Podemos utilizar esta técnica para escalar varios balanceadores de carga?
Vikas Verma

Respuestas:

62

Esto es DNS por turnos. Esta es una solución bastante simple para el equilibrio de carga. Por lo general, los servidores DNS rotan / mezclan los registros DNS para cada solicitud de DNS entrante. Desafortunadamente, no es una solución real para la conmutación por error. Si uno de los servidores falla, algunos visitantes aún serán dirigidos a este servidor fallado.

Jens Bradler
fuente
3
Depende de sus expectativas con respecto al tiempo de recuperación. Si el servicio proporcionado puede estar inactivo durante algunos segundos o minutos, puede actualizar el DNS en consecuencia (por ejemplo, eliminar las IP de los sistemas fallidos). Si esto no es aceptable, el DNS no puede ayudarlo y debe usar balanceadores de carga y una estructura de red de alta disponibilidad.
Jens Bradler
¿Sabes cómo el cliente elige su ip de la lista? ¿Es una selección aleatoria o el cliente debe elegir el primero de la lista? Porque en el primer caso el round / robin no es muy útil.
Tobia
El trabajo del servidor DNS es mezclar o rotar los registros. La mayoría de los clientes utilizarán solo el primer registro. Por ejemplo, Bind9 se puede configurar para aplicar diferentes ordenaciones a este tipo de conjunto de registros: bind.isc.org/doc/arm/9.13/Bv9ARM.ch05.html#rrset_ordering
Jens Bradler
¿Podemos utilizar esta técnica para escalar varios balanceadores de carga?
Vikas Verma
45

Puedes hacerlo. Eso es lo que también hacen los grandes.

Primera consulta:

» host google.com 
google.com has address 74.125.232.230
google.com has address 74.125.232.231
google.com has address 74.125.232.232
google.com has address 74.125.232.233
google.com has address 74.125.232.238
google.com has address 74.125.232.224
google.com has address 74.125.232.225
google.com has address 74.125.232.226
google.com has address 74.125.232.227
google.com has address 74.125.232.228
google.com has address 74.125.232.229

Siguiente consulta:

» host google.com
google.com has address 74.125.232.224
google.com has address 74.125.232.225
google.com has address 74.125.232.226
google.com has address 74.125.232.227
google.com has address 74.125.232.228
google.com has address 74.125.232.229
google.com has address 74.125.232.230
google.com has address 74.125.232.231
google.com has address 74.125.232.232
google.com has address 74.125.232.233
google.com has address 74.125.232.238

Como puede ver, la lista de direcciones IP cambió, pero el orden relativo entre dos direcciones IP se mantuvo igual.

Actualización: Veo varios comentarios que se jactan de que el DNS round-robin no es conveniente para la conmutación por error, así que aquí está el resumen: DNS no es para conmutación por error. Entonces, obviamente, no es bueno para la conmutación por error. Nunca fue diseñado para ser una solución para fallas.

karatedog
fuente
1
¿Tenemos que habilitar algo para que este Round Robin funcione o lo hace automáticamente cada servidor DNS? Tengo un linux y un MS DNS.
Akash Kava
3
¿Por qué Google haría esto si no cubre la conmutación por error?
Joseph Persie
12
@JosephPersie: porque DNS no se usa para conmutación por error. Al dar varias direcciones IP al mismo nombre de dominio, las solicitudes entrantes simplemente se dividen entre los servidores que escuchan esas direcciones IP. Piense en ello como un equilibrio de carga de primer nivel, sin verificación de estado del backend. No necesita esto, si no tiene miles de servidores :-)
karatedog
¿Qué sucede cuando el balanceador de carga está inactivo y la solicitud se reenvía al mismo balanceador?
Jitendra Vispute
1
@JitendraVispute: DNS no conoce el servicio detrás de la dirección IP que devuelve. En resumen, si hay un servidor roto o un servicio roto detrás de una dirección IP que acaba de ser devuelta por el servidor DNS, la solicitud a esa IP fallará.
karatedog
2

Sí, esto es posible, pero no conveniente como dijo Jens. Uso de equilibradores de carga de próxima generación como Alteon, que utiliza un protocolo propietario llamado DSSP (Protocolo de estado de sitio distribuido) que realiza comprobaciones periódicas del sitio para asegurarse de que el servicio esté disponible tanto a nivel local como global, es decir, en diferentes áreas geográficas. Sin embargo, debe delegar la URL o el servicio en el dispositivo en su DNS maestro configurándolo como un servidor de nombres autorizado para esa IP o servicio. Al hacer esto, el dispositivo responde consultas de DNS donde resolverá la IP que tiene un servicio por Round-Robin o no está congestionada según como hayas elegido entre varias métricas.

Ezra A. Mosomi
fuente
1
Esto suena más a publicidad que a otra cosa, y los balanceadores de carga no tienen un desempeño estelar en el mundo del DNS (con respecto a la especificación). Y para ser precisos: "en tu DNS Maestro para delegar la URL o el Servicio" no existe el concepto de URL o servicio en los servidores de nombres / DNS, cuando delegas delegas una zona (dominio) a otros servidores de nombres. "como un servidor de nombres autorizado para esa IP o servicio". en consecuencia, los servidores de nombres tienen autoridad para zonas / dominios, no para direcciones IP o servicios.
Patrick Mevzek
Desde el punto de vista funcional, funcionan, ha sido el estándar de facto para todos los CDN usar los balanceadores de carga para manejar esto de manera efectiva, ya que pueden combinar funciones avanzadas como GEO-LOCATION para proporcionar direcciones IP que están incluso cerca de usted o para el servidor que es altamente receptivo entre otras métricas.
Ezra A. Mosomi
1
Y presentan muchos problemas al mismo tiempo. No hay solución milagrosa, todo tiene características e inconvenientes. Cualquier servidor de nombres puede realizar una ubicación geográfica y responder con una IP diferente según el cliente, sin necesidad de equilibradores de carga para eso. Incluso hay un estándar que ayuda: EDNS Client Subnet.
Patrick Mevzek