En general, el proceso de consulta DNS se realiza en dos partes:
- La consulta de un nombre comienza en un equipo cliente y se pasa al solucionador, el servicio Cliente DNS, para proceder a su resolución.
- Cuando la consulta no se puede resolver localmente, se puede consultar a los servidores DNS según sea necesario para resolver el nombre.
Estos dos procesos se detallan en las secciones siguientes.
Parte 1: el solucionador local
En la figura siguiente se muestra un resumen del proceso de consulta DNS completo.
Como se muestra en los pasos iniciales del proceso de consulta, en un programa del equipo local se utiliza un nombre de dominio DNS. A continuación, la solicitud se pasa al servicio Cliente DNS para proceder a su resolución mediante la información almacenada en la caché local. Si se puede resolver el nombre consultado, se responde a la consulta y el proceso finaliza.
La caché del solucionador local puede incluir información de nombres obtenida de dos orígenes posibles:
- Si un archivo Hosts está configurado localmente, las asignaciones de nombre a dirección de host de ese archivo se cargan previamente en la caché cuando se inicia el servicio Cliente DNS.
- Los registros de recursos obtenidos en las respuestas de consultas DNS anteriores se agregan a la caché y se mantienen durante un período.
Si la consulta no coincide con una entrada de la caché, el proceso de resolución continúa con la consulta del cliente al servidor DNS para resolver el nombre.
Parte 2: consultar un servidor DNS
Como se indicó en la figura anterior, el cliente consulta un servidor DNS preferido. El servidor real utilizado durante la parte de la consulta inicial cliente-servidor del proceso se selecciona de una lista global. Para obtener más información acerca de cómo se compila y se actualiza esta lista global, vea Características del cliente.
Cuando el servidor DNS recibe una consulta, primero comprueba si puede responder la consulta con autoridad en función de la información de registro de recursos contenida en una zona configurada localmente en el servidor. Si el nombre consultado coincide con un registro de recursos correspondiente en la información de zona local, el servidor responde con autoridad y usa esta información para resolver el nombre consultado.
Si no existe ninguna información de zona para el nombre consultado, a continuación el servidor comprueba si puede resolver el nombre mediante la información almacenada en la caché local de consultas anteriores. Si aquí se encuentra una coincidencia, el servidor responde con esta información. De nuevo, si el servidor preferido puede responder al cliente solicitante con una respuesta coincidente de su caché, finaliza la consulta.
Si el nombre consultado no encuentra una respuesta coincidente en su servidor preferido, ya sea en su caché o en su información de zona, el proceso de consulta puede continuar y se usa la recursividad para resolver completamente el nombre. Esto implica la asistencia de otros servidores DNS para ayudar a resolver el nombre. De forma predeterminada, el servicio Cliente DNS solicita al servidor que utilice un proceso de recursividad para resolver completamente los nombres en nombre del cliente antes de devolver una respuesta. En la mayor parte de los casos, el servidor DNS se configura, de forma predeterminada, para admitir el proceso de recursividad como se muestra en el gráfico siguiente.
Para que el servidor DNS realice la recursividad correctamente, primero necesita información de contacto útil acerca de los otros servidores DNS del espacio de nombres de dominio DNS. Esta información se proporciona en forma de sugerencias de raíz, una lista de los registros de recursos preliminares que puede utilizar el servicio DNS para localizar otros servidores DNS que tienen autoridad para la raíz del árbol del espacio de nombres de dominio DNS. Los servidores raíz tienen autoridad para el dominio raíz y los dominios de nivel superior en el árbol del espacio de nombres de dominio DNS. Para obtener más información, vea Actualizar sugerencias de raíz.
Un servidor DNS puede completar el uso de la recursividad utilizando las sugerencias de raíz para encontrar los servidores raíz. En teoría, este proceso permite a un servidor DNS localizar los servidores que tienen autoridad para cualquier otro nombre de dominio DNS que se utiliza en cualquier nivel del árbol del espacio de nombres.
Por ejemplo, piense en la posibilidad de usar el proceso de recursividad para localizar el nombre "host-b.ejemplo.microsoft.com." cuando el cliente consulte un único servidor DNS. El proceso ocurre cuando un servidor y un cliente DNS se inician y no tienen información almacenada en la caché local disponible para ayudar a resolver la consulta de un nombre. El servidor supone que el nombre consultado por el cliente es para un nombre de dominio del que el servidor no tiene conocimiento local, según sus zonas configuradas.
Primero, el servidor preferido analiza el nombre completo y determina que necesita la ubicación del servidor con autoridad para el dominio de nivel superior, "com". A continuación, utiliza una consulta iterativa al servidor DNS "com" para obtener una referencia al servidor "microsoft.com". Después, desde el servidor "microsoft.com" se proporciona una respuesta de referencia al servidor DNS para "ejemplo.microsoft.com".
Finalmente, se entra en contacto con el servidor "ejemplo.microsoft.com.". Ya que este servidor contiene el nombre consultado como parte de sus zonas configuradas, responde con autoridad al servidor original que inició la recursividad. Cuando el servidor original recibe la respuesta que indica que se obtuvo una respuesta con autoridad a la consulta solicitada, reenvía esta respuesta al cliente solicitante y se completa el proceso de consulta recursiva.
Aunque el proceso de consulta recursiva puede usar muchos recursos cuando se realiza como se describe anteriormente, tiene algunas ventajas en el rendimiento para el servidor DNS. Por ejemplo, durante el proceso de recursividad, el servidor DNS que realiza la búsqueda recursiva obtiene información acerca del espacio de nombres de dominio DNS. Esta información se almacena en la caché del servidor y se puede utilizar de nuevo para ayudar a acelerar la obtención de respuestas a consultas subsiguientes que la utilizan o concuerdan con ella. Con el tiempo, esta información almacenada en caché puede crecer hasta ocupar una parte significativa de los recursos de memoria del servidor, aunque se limpia siempre que el servicio DNS se activa y desactiva.