Tenemos dos servidores DNS listados en nuestro registro NS. Anoche, uno de nuestros servidores DNS se cayó. Como se esperaba, algunos servidores DNS no estaban resolviendo nuestros nombres de host. Supuse que esto sería temporal y comenzaría a funcionar una vez que el TTL de nuestros registros NS expire (1 hora).
Más de una hora después, todavía recibía tiempos de espera de DNS de los escritorios que usaban servidores Earthlink, Verizon y OpenDNS. Probé para ver si el otro servidor DNS estaba respondiendo:
dig @ns2.example.com www.example.com +short
Esto funcionó.
Mis preguntas:
- ¿Alguien tiene una respuesta de por qué otros servidores DNS no estaban llegando a nuestro otro servidor DNS incluso después de que expiró el TTL?
- ¿Los servidores DNS prefieren el servidor DNS principal de un dominio (del
SOA
registro)? - ¿Hay algún algoritmo utilizado para elegir un servidor de nombres de los registros NS disponibles? Supongo que esto es específico de la implementación, pero tal vez hay algunos estándares que se aplican aquí.
domain-name-system
bind
isp
Belmin Fernandez
fuente
fuente
Respuestas:
Esta es una desafortunada irritación. Se supone que varios servidores DNS deben aumentar la confiabilidad, pero en la práctica con frecuencia tiene el efecto inverso.
El problema es que el cliente solo espera tanto tiempo por una respuesta, y el servidor espera aproximadamente la misma cantidad de tiempo. Digamos que tiene dos servidores DNS, A y B. Digamos que A está funcionando y B ha fallado. Esto pasa:
El cliente se conecta al servidor de nombres Z y le solicita la información. Z elige B y envía una consulta.
El cliente agota el tiempo de espera porque el servidor de nombres Z no respondió.
El cliente intenta el servidor de nombres Y. Y elige B y envía una consulta.
El servidor de nombres Z agota el tiempo de espera e intenta A. Obtiene la respuesta correcta, pero el cliente ya no espera.
El cliente agota el tiempo de espera porque el servidor de nombres Y no respondió.
El cliente se da por vencido y sus dos servidores de nombres no responden.
El servidor de nombres Y agota el tiempo de espera e intenta A. Obtiene la respuesta correcta, pero el cliente ya no espera.
Y no hay una buena solución. Cuanto más espere para ver si un servidor de nombres responde, más tiempo tendrá que esperar porque el servidor de nombres que está esperando espera más. Podría decirse que el problema era que Y y Z no renunciaron a B lo suficientemente rápido.
Esencialmente, si alguno de sus servidores de nombres está fuera, algunos clientes, por pura mala suerte, se quedarán sin tiempo porque probaron solo los malos.
En el lado positivo, si tiene dos servidores de nombres y uno falla, aproximadamente el 75% de los servidores de nombres obtendrán una respuesta, en lugar del 0%.
fuente
Z
) no almacenará en caché qué servidor de nombres utilizó por última vez que funcionó?