¿Alguien puede dirigirme a información sobre el comportamiento exacto de los navegadores cuando el navegador obtiene múltiples registros A para un nombre de host dado (digamos ip1 e ip2), y uno de ellos no es accesible.
Me interesaron los detalles EXACTOS, como (pero no limitado a):
- ¿Obtendrá el navegador 2 IP del sistema operativo o solo obtendrá uno?
- ¿Qué ip intentará primero el navegador (aleatorio o siempre el primero)? Ahora, digamos que el navegador comenzó con la falla de ip1
- ¿Durante cuánto tiempo probará el navegador ip1?
- Si el usuario presiona "detener" mientras espera ip1, y luego hace clic en actualizar
- ¿Qué IP intentará el navegador?
- ¿Qué sucederá cuando se agote el tiempo de espera? ¿Comenzará a probar ip2 o dará un error? (Y si hay un error, qué ip intentará el navegador cuando el usuario haga clic en actualizar).
- Cuando el usuario hace clic en actualizar, ¿algún navegador intentará una nueva búsqueda de DNS?
Ahora supongamos que el navegador intentó trabajar ip2 primero.
- Para la siguiente solicitud de página, ¿el navegador seguirá usando ip2 o puede cambiar aleatoriamente los ips?
- ¿Durante cuánto tiempo los navegadores mantienen las IP en su caché?
- Cuando los navegadores envíen una nueva solicitud de DNS y obtengan MISMOS ips, ¿CONTINUARÁ usando la misma IP que se sabe que está funcionando o el proceso comienza desde cero y puede probar cualquiera de los dos?
Por supuesto, todo puede depender del navegador y también puede variar entre versiones y plataformas, me encantaría tener el máximo de detalles.
El propósito de esto: estoy tratando de entender qué experimentarán exactamente los usuarios cuando se use un DNS basado en round-robin y uno de los hosts falle.
Por favor, NO estoy preguntando qué tan malo es el equilibrio de carga de DNS, y por favor abstenerse de responder "no lo hagas", "es una mala idea", "necesitas latido / proxy / BGP / lo que sea" y así sucesivamente.
fuente
Respuestas:
Después de todo, tuve que hacer la "investigación" yo mismo. Aquí está el comportamiento de Chromium (versión 12.0.742.112) (que se ejecuta en ubuntu 11.04):
Por lo general, funciona así: pruebe con la 1ª ip, una vez que se agote el tiempo de espera (después de 189 segundos) pruebe con la 2ª ip. No se muestran mensajes de error hasta que se prueban todos los ips. La próxima conexión comenzará desde la primera ip nuevamente (incluso si solo falló hace un segundo y la segunda ip funcionó - al navegador no le importa)
Una cosa interesante: el intento de conexión TCP no se interrumpe cuando el usuario presiona cancelar, es decir, cuando presiono cancelar, y después de 60 segundos, haga clic en reintentar, la página se mostrará en 130 segundos (189 desde el primer intento). Pero si hago clic en cancelar y hago clic actualizar después de 190 segundos, el proceso comenzará desde el principio.
Con respecto a los artículos en la pregunta original:
No probado. Este blog indica que Chrome almacena en caché DNS por hasta 1 minuto, cuando miramos chrome: // net-internals / # dns:
Capacidad: 100 Tiempo de vida (ms) para entradas exitosas: 60000 Tiempo de vida (ms) para entradas fallidas: 0
Si la primera IP funciona, el proceso será el mismo y siempre tendrá éxito en el primer intento.
fuente
En lugar de decirle a la gente lo que no quieres, ¿por qué no explicar lo que estás tratando de lograr?
Si todo lo que busca son datos conocidos, vaya e investíguese, o lea la documentación de cualquier navegador (hay cientos) del que está hablando.
Sin embargo, puede ayudarlo saber que esto no tiene nada que ver con DNS.
Si un navegador recibe una solicitud, primero busca en sus diversas cachés para ver si la URL, o si no la URL, entonces el nombre de host, ya está presente.
Si no, golpeará el sistema de resolución para resolver el nombre de host.
Si la IP que recupera no responde, seguramente la almacenará en caché internamente como un resultado de búsqueda negativo , por lo que solicitar directamente la misma URL nuevamente con la esperanza de obtener un registro A diferente para él probablemente no servirá para nada, ya que lo hará. ha almacenado el resultado del nombre de host junto con el resultado negativo de IP.
O bien, podría proporcionar más información.
EDITAR: veo que proporcionaste alguna información entre todos los exigentes y la serie inteligente.
Muy bien:
También parece no saber que los registros DNS se almacenan en caché en todas partes, especialmente en los clientes. Estos registros caducan, dependiendo de lo que pretendía el propietario del dominio o de los cachés configurados entre usted y él. Es común una hora a un día, así que no espere que el solucionador haga otra consulta DNS si presiona actualizar como un loco.
fuente