Google
Web dns.bdat.net

Cómo funcionan las consultas DNS

Cuando un cliente DNS necesita buscar un nombre que se utiliza en un programa, consulta los servidores DNS para resolver el nombre. Cada mensaje de consulta que envía el cliente contiene tres grupos de información, que especifican una pregunta que tiene que responder el servidor:

Por ejemplo, el nombre especificado podría ser el nombre completo de un equipo, como "host-a.ejemplo.microsoft.com.", y el tipo de consulta especificado para buscar un registro de recursos de dirección (A) por ese nombre. Considere una consulta DNS como una pregunta de un cliente a un servidor en dos partes, como "¿Tiene algún registro de recursos de dirección (A) de un equipo llamado 'nombrehost.ejemplo.microsoft.com'?". Cuando el cliente recibe una respuesta del servidor, lee e interpreta el registro de recursos A respondido, y aprende la dirección IP del equipo al que preguntó por el nombre.

Las consultas DNS se resuelven de diferentes formas. A veces, un cliente responde a una consulta localmente mediante la información almacenada en la caché obtenida de una consulta anterior. El servidor DNS puede utilizar su propia caché de información de registros de recursos para responder a una consulta. Un servidor DNS también puede consultar o ponerse en contacto con otros servidores DNS en nombre del cliente solicitante para resolver el nombre por completo y, a continuación, enviar una respuesta al cliente. Este proceso se llama recursión.

Además, el mismo cliente puede intentar ponerse en contacto con servidores DNS adicionales para resolver un nombre. Cuando un cliente lo hace, utiliza consultas adicionales e independientes en función de respuestas de referencia de los servidores. Este proceso se llama iteración.

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.

Estos dos procesos se detallan en las secciones siguientes.

Parte 1: el solucionador local

El siguiente gráfico 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 el nombre consultado se puede resolver, 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 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 el gráfico 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.

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 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 con una respuesta de su caché que concuerda al cliente solicitante, la consulta se finaliza.

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 recursión 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 pregunta al servidor si va a utilizar un proceso de recursión 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 recursión como se muestra en la ilustración siguiente.

../ms-its/D/\WINNT\Help\DNSconcepts.chm///CHM=NTArt.chm FILE=s04ag_DNSconcepts.gif

../ms-its/D/\WINNT\Help\DNSconcepts.chm///CHM=NTArt.chm FILE=s04ag_DNSconcepts.gif

Para que el servidor DNS realice la recursión correctamente, primero necesita información de contacto útil acerca de los otros servidores DNS en el 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.

Mediante el uso de las sugerencias de raíz para encontrar los servidores raíz, un servidor DNS puede completar el uso de la recursión. En teoría, este proceso permite a un servidor DNS localizar los servidores que tienen autoridad en 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 recursión 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. Se supone que el nombre consultado por el cliente es para un nombre de dominio del que el servidor no tiene conocimiento, 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 recursión. 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 el proceso de consulta recursiva se completa.

Aunque el proceso de consulta recursiva puede usar muchos recursos cuando se realiza como se describe arriba, tiene algunas ventajas en el rendimiento para el servidor DNS. Por ejemplo, durante el proceso de recursión, 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 la respuesta de consultas subsiguientes que la utilizan o concuerdan con ella. A lo largo del tiempo, esta información almacenada en caché puede crecer hasta ocupar una parte significativa de los recursos de memoria del servidor, aunque se limpie siempre que el servicio DNS se activa y desactiva.

Respuestas de consultas alternativas

En las afirmaciones anteriores acerca de las consultas DNS se supone que el proceso finaliza con una respuesta positiva devuelta por el cliente. Sin embargo, las consultas también pueden devolver otras respuestas. Las más habituales son:

Una respuesta con autoridad es una respuesta positiva devuelta al cliente y entregada con el bit de autoridad activado en el mensaje DNS para indicar que la respuesta se obtuvo de un servidor con autoridad directa para el nombre consultado.

Una respuesta positiva puede estar formada por el registro de recursos consultado o por una lista de registros de recursos (también llamada un RRset) que se ajusta al nombre de dominio DNS consultado y el tipo de registro especificado en el mensaje de la consulta.

Una respuesta de referencia contiene registros de recursos adicionales no especificados por el nombre o el tipo en la consulta. Si el proceso de recursión no se admite, se devuelve al cliente este tipo de respuesta. Los registros no se destinan a actuar como respuestas de referencia útiles que el cliente puede utilizar para continuar la consulta mediante la iteración.

Una respuesta de referencia contiene datos adicionales como registros de recursos (RR) distintos de los del tipo consultado. Por ejemplo, si el nombre de host consultado era "www" y no se encontró ningún registro de recursos de dirección (A) para este nombre en esta zona pero, en su lugar, se encontró un registro de recursos de CNAME para "www", el servidor DNS puede incluir esa información cuando responda al cliente.

Si el cliente puede utilizar la iteración, puede hacer consultas adicionales con la información de referencia en un intento de resolver completamente el nombre por sí mismo.

Una respuesta negativa del servidor puede indicar que se encontró uno de los dos resultados posibles mientras el servidor intentaba procesar y resolver de forma recursiva la consulta completa, y con autoridad:

El solucionador devuelve el resultado de la consulta, en forma de respuesta positiva o negativa, al programa solicitante y almacena en caché la respuesta.

De forma predeterminada, los servidores DNS de Windows 2000 utilizan varios temporizadores predeterminados cuando realizan una consulta recursiva y se ponen en contacto con otros servidores DNS. Éstos son:

En la mayor parte de los casos, estos parámetros no necesitan ajustarse. Sin embargo, si utiliza búsquedas recursivas en un vínculo WAN de baja velocidad, podría realizar ligeros ajustes en estos valores para mejorar el rendimiento del servidor y completar la consulta.