Lamentablemente, la respuesta aquí es "depende". Los factores de los que depende variarán según el dominio y la configuración de los servidores propietarios, así como la configuración de su propio DNS local.
Primero, por ejemplo, con respecto a los registros NS devueltos: está perfectamente permitido aleatorizar el orden en que se devuelven esos registros, por lo que el orden puede diferir cada vez que lo solicite. Por otro lado, eso no lo hacen todas las implementaciones de DNS, por lo que bien podría obtener una lista ordenada estáticamente. El punto es que no puedes estar seguro.
A continuación, algunas implementaciones de DNS consultarán cada NS en paralelo y usarán la que responda primero. Otros llegarán a cada uno, determinarán el más rápido sobre un número determinado de solicitudes y lo utilizarán. O simplemente podría ser un round robin.
Existen múltiples RFC para DNS, dos de los más útiles que he encontrado son:
http://www.faqs.org/rfcs/rfc1912.html
http://www.faqs.org/rfcs/rfc1033.html
Me doy cuenta de que esto es algo así como una falta de respuesta, sin nada definitivo que pueda quitar, pero dado lo anterior, la única forma verdadera de determinar el comportamiento de un dominio dado es probar.
La implementación más común que he visto a nivel del cliente, como los ISP en todo el mundo, es la siguiente:
Este proceso se repite para CADA búsqueda de registros. Sin embargo, solo la primera consulta hace todo el trabajo; las IP del servidor de nombres se almacenarán en caché después de eso y las consultas posteriores al servidor DNS de caché del ISP podrán saltar rápidamente al paso 8.
Ahora, en cuanto a la aleatorización del paso 8, funciona en un nivel de registro. Digamos que el suscriptor de banda ancha de ese ISP preguntó sobre los siguientes registros:
Cada registro se manejará como su propia "entidad" separada, almacenada en caché y buscada de forma independiente. Entonces, digamos que el suscriptor y el ISP nunca antes han encontrado el dominio y ambos tienen registros en caché completamente cero. Las búsquedas pueden ser las siguientes:
Cada vez que los registros en caché caducan, el proceso se repite, por lo que ni siquiera sabe que las solicitudes posteriores para ese registro volverán a utilizar el mismo servidor.
Por lo tanto, su mayor objetivo es asegurarse de que todos sus servidores DNS estén completamente sincronizados entre sí, reflejando perfectamente cada registro DNS en cada servidor. Usted nunca se sabe qué servidor de un cliente DNS estará llegando y no se puede confiar en absoluto en ningún orden. No existe tal cosa.
Además, como mencionó Adam C, los servidores DNS a nivel de servidor (example.com) podrían devolver registros NS y aleatorizar el orden de los mismos. Es muy común que los servidores DNS normales estén aleatorizando sus registros NS con la mínima posibilidad de que una implementación de DNS deficiente siempre elija el primer servidor de nam devuelto. Sin embargo, los servidores de nombres ROOT TLD (mencionados anteriormente) nunca aleatorizarán la lista, y su lista es lo que realmente importa a la hora de resolver el dominio. Es por eso que la mayoría de las implementaciones eligen un servidor aleatorio de las listas de servidores de nombres, para evitar golpear siempre el mismo servidor y sobrecargarlo.
Muy bien, ese es tu manual sobre cómo funciona DNS y lo que debes recordar.
Descargo de responsabilidad: los objetivos más altos en la vida que la administración de DNS pueden estar disponibles, pero se venden por separado, use su imaginación. ;-)
fuente