Sí, la mayoría de los navegadores de los últimos 5-10 años probarán los otros registros A si uno no responde. Esto a veces se denomina "reintento del navegador" o "reintento del cliente" aparentemente. Prácticamente solo encontrará cosas al respecto en el contexto de las diversas vulnerabilidades del navegador que esta característica permite contra los sitios que no lo usan (consulte Reenlazado de DNS y fijación de DNS , fijación de anti-dns, fijación de anti-anti-dns, anti-anti -anti-dns pinning , y así sucesivamente). Es una mala reputación, pero prueba que existe.
Casi todos los navegadores sí reciben la lista completa de registros A, y sí comprueban otros si falla el que está usando. Puede esperar que cada cliente tenga una espera de 30 segundos cuando intente acceder por primera vez a un sitio cuando un servidor está inactivo, hasta que se conecte a una dirección de trabajo. El navegador almacenará en caché qué dirección funciona y continuará usando esa para futuras solicitudes a menos que también falle, luego tendrá que buscar en la lista nuevamente. Entonces 30 segundos de espera en la primera solicitud, bien después.
Pero no es algo que necesariamente desee usar, tendrá muchas advertencias sobre la compatibilidad del navegador, la compatibilidad del sistema operativo, la compatibilidad del proxy, los encabezados de control de caché tendrán efectos extraños sobre si recuerda qué IP están caídas o si comienza a tener esa espera de 30 segundos en cada solicitud, las personas que escriben clientes personalizados para su sitio terminarán usando gethostbyname en lugar de getaddrinfo y no podrán manejar la conmutación por error, todo tipo de problemas potenciales.
Tampoco puede confiar en múltiples registros A para permitir servidores "maestros" y "esclavos", porque nunca sabrá qué dirección va a elegir un navegador de la lista. Todos deben ser tan capaces de manejar visitantes si se ejecutan, porque cualquiera podría obtener tráfico si está activo. Un navegador podría pensar que su tercer servidor fuera de la lista es el más atractivo, tal vez parece el más cercano, y elegirá ese a pesar de que los tres todavía están activos.
Pero si puede vivir con las limitaciones y tener un sistema HTTP razonablemente simple con el que pueda predecir la interacción del navegador, funcionará.
Oh, también tendrás que lidiar con muchas personas que te dicen que esto no existe (ya que eso era cierto hace 15 años). Pero puede intentar hacer telnet a un nombre de dominio con varios registros A, algunos con direcciones IP muertas y algunos buenos, si necesita probarlo (sí, incluso el telnet viejo y bueno ahora usa getaddrinfo y maneja múltiples registros A con gracia en estos días) - imprimirá una buena lista de las IP que está intentando hasta que finalmente tenga éxito.
Tenga en cuenta que Windows Vista implementa las partes estúpidas de RFC3484 (es decir, el backporting de IPV6 a IPV4) y preferirá la dirección IP que comparte la mayoría de los bits de prefijo con la dirección IP del usuario en lugar de elegir uno al azar. Dado que la mayoría de los usuarios tienen direcciones IP que comienzan con 192.168, eso significa que cualquiera de sus direcciones IP comparte la mayoría de los bits de prefijo con los que obtendrá la mayor parte del tráfico de Vista. Microsoft solucionó este bit particular de idiotez en Windows 7 y versiones posteriores, por lo que ya no es un problema tan grande como solía ser.
fuente
Esta es una técnica básica de distribución de equilibrio de carga de DNS: DNS Round Robin. Esto no tiene nada que ver con el navegador, depende de la implementación del solucionador y del caché local / remoto de la dirección DNS. Los cambios son que si un servidor falla, debido al almacenamiento en caché en la capa DNS, su sitio web puede ser inaccesible.
Consulte aquí para obtener una explicación básica sobre Round Robin DNS en WikiPedia.
fuente
nslookup cnn.com
en Windows comohost cnn.com
en Linux devuelve una lista de direcciones IP, por lo que definitivamente depende de la implementación del navegador .El sistema operativo determina qué IP usar, no el navegador. Windows redondea la lista devuelta (en la lista pasada de DNS), aunque continuará utilizando la misma dirección hasta que DNS se vacíe o se agote el tiempo de espera. * Las implementaciones de ix dependen en parte de la implementación de la pila tcp incluida, pero generalmente también siguen un método round robin.
fuente
InetAddress.getAllByName("example.com")
, obtengo una lista con todas las direcciones IP, por lo que puedo elegir iniciar una conexión TCP a todas ellas si lo deseo. Y es lo mismo si lo usagetaddrinfo()
en C. Por lo tanto, definitivamente es una elección que hacen los desarrolladores y no el sistema operativo. El servidor DNS solo decide en qué orden se devuelve la lista de direcciones IP.