Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se proporciona información general sobre el proceso de consulta del Sistema de nombres de dominio (DNS) y se explica cómo resuelven las consultas los servidores DNS. También se describe cómo usan los servidores DNS la recursividad y la iteración para resolver consultas.
Funcionamiento de las consultas de DNS
Cuando un cliente DNS necesita buscar un nombre, consulta a los servidores DNS para resolverlo. Cada mensaje de consulta que envía el cliente contiene tres fragmentos de información que especifican una pregunta que debe responder el servidor:
- Un nombre de dominio DNS especificado, declarado como un nombre de dominio completo (FQDN).
- Un tipo de consulta especificado, que puede especificar un registro de recursos (RR) por tipo o un tipo especializado de operación de consulta.
- Una clase especificada para el nombre de dominio DNS. En el caso de los servidores DNS que ejecutan el sistema operativo Windows, esta clase siempre se debe especificar como la clase de Internet (IN).
Por ejemplo, el nombre especificado podría ser el FQDN de un equipo, como host-a.example.contoso.com., y el tipo de consulta especificado podría buscar una dirección de RR (A) con ese nombre. Una consulta de DNS se puede entender como un cliente que hace a un servidor una pregunta con dos partes, como "¿Tiene algún registro de recursos A para un equipo llamado hostname.example.contoso.com.?". Cuando el cliente recibe una respuesta del servidor, lee e interpreta el RR A respondido y aprende la dirección IP del equipo que solicitó especificando su nombre.
En la tabla siguiente se describen los tipos de consulta de DNS habituales y los identificadores correspondientes.
| Type | ID |
|---|---|
| A | 1 |
| AAAA | 28 |
| SOA | 6 |
| SRV | 33 |
Las consultas de DNS se resuelven de muchas maneras diferentes. A veces, un cliente puede responder a una consulta localmente utilizando información almacenada en caché que se ha obtenido en una consulta anterior. El servidor DNS puede usar su propia caché de información de registro de recursos para responder a una consulta. Un servidor DNS también puede enviar consultas a otros servidores DNS en nombre del cliente. Este proceso se conoce como recursividad. El servidor resuelve el nombre y, a continuación, envía una respuesta al cliente.
Además, el propio cliente puede intentar contactar con otros servidores DNS para resolver un nombre. Cuando un cliente lo hace, utiliza consultas separadas basadas en las respuestas de referencia de los servidores. Este proceso se conoce como iteración.
En general, el proceso de consulta de DNS se realiza en dos partes:
- Una consulta de nombre comienza en un equipo cliente y se pasa a un solucionador, el servicio de cliente DNS, para su resolución.
- Cuando la consulta no se puede resolver localmente, se pueden consultar servidores DNS según sea necesario para resolver el nombre.
Cada proceso se explica con más detalle en este artículo.
Cómo funciona la iteración
La iteración es el tipo de resolución de nombres que se usa entre los clientes y servidores DNS cuando se cumplen las siguientes condiciones:
- El cliente solicita el uso de la recursividad, pero está deshabilitada en el servidor DNS.
- El cliente no solicita el uso de la recursividad al enviar la consulta al servidor DNS.
Una solicitud iterativa de un cliente indica al servidor DNS que el cliente espera la mejor respuesta que el servidor DNS pueda proporcionar inmediatamente, sin ponerse en contacto con otros servidores DNS.
Cuando se usa la iteración, un servidor DNS responde a un cliente en función de su propio conocimiento específico sobre el espacio de nombres con respecto a los datos de nombres que se consultan. Por ejemplo, si un servidor DNS de la intranet recibe una consulta de un cliente local para www.contoso.com, podría devolver una respuesta de su caché de nombres. Si el nombre consultado no está almacenado actualmente en la caché de nombres del servidor, este podría responder proporcionando una referencia. Una referencia es una lista de RR NS y A de otros servidores DNS que están más cerca del nombre consultado por el cliente.
Cuando se usa la iteración, un servidor DNS puede contribuir aún más a la resolución de una consulta de nombre, en lugar de limitarse a dar su mejor respuesta al cliente. Para la mayoría de las consultas iterativas, un cliente usa su lista de servidores DNS configurada localmente para contactar con otros servidores de nombres en todo el espacio de nombres DNS si su servidor DNS principal no puede resolver la consulta.
El servicio cliente DNS de Windows no usa la recursividad.
Cómo funciona el almacenamiento en caché
A medida que los servidores DNS procesan las consultas de los clientes mediante la recursividad o la iteración, descubren y adquieren un gran almacén de información sobre el espacio de nombres DNS. A continuación, el servidor almacena en caché esta información.
El almacenamiento en caché proporciona una forma de acelerar el rendimiento de la resolución de DNS para las consultas posteriores de nombres populares, al tiempo que reduce sustancialmente el tráfico de consultas relacionadas con DNS en la red.
A medida que los servidores DNS realizan consultas recursivas en nombre de los clientes, almacenan temporalmente en caché los registros de recursos. Los registros de recursos almacenados en caché contienen información obtenida de los servidores DNS. Estos servidores son autoritativos para los nombres de dominio DNS. Esta información se aprende al realizar consultas iterativas. Estas consultas ayudan a responder completamente a una consulta recursiva realizada en nombre de un cliente. Más adelante, cuando otros clientes realicen nuevas consultas que soliciten información de registros de recursos que coincidan con los registros almacenados en caché, el servidor DNS podrá usar la información almacenada en caché para responderlas.
Cuando la información se almacena en caché, se aplica un valor de período de vida (TTL) a todos los registros de recursos almacenados en caché. Mientras el TTL de un registro de recursos almacenado en caché no caduque, un servidor DNS podrá seguir almacenando en caché. Podrá volver a usar el registro de recursos almacenado en caché al responder a las consultas de sus clientes que coincidan con estos registros. A los valores TTL de almacenamiento en caché utilizados por los registros de recursos en la mayoría de las configuraciones de zona se les asigna el TTL mínimo (predeterminado) que se establece en el registro de recursos de inicio de autoridad (SOA) de la zona. De forma predeterminada, el TTL mínimo es de 3600 segundos (una hora), pero se puede ajustar o, si es necesario, se pueden establecer TTL de almacenamiento en caché individuales en cada registro de recursos.
Note
De forma predeterminada, el servicio de servidor DNS utiliza un archivo de sugerencias raíz, cache.dns, que se almacena en la carpeta <systemroot>\System32\Dns del equipo servidor. Este archivo contiene los registros de recursos NS y A para los servidores raíz del espacio de nombres DNS (los servidores raíz de Internet o los servidores raíz de la intranet). Cuando se inicia el servicio de servidor DNS, se consulta la lista de servidores raíz para obtener una lista actual de todos los servidores raíz. Los resultados de la consulta se utilizan para actualizar el archivo de sugerencias raíz. Esta operación también se realiza periódicamente mientras el servicio se está ejecutando. Cuando un administrador realiza cambios en las sugerencias raíz, estos cambios se vuelven a escribir en el archivo de sugerencias raíz.
Solucionador del servicio de cliente DNS
Cuando se utiliza un nombre de dominio DNS en un programa en el equipo local, la solicitud se transfiere para su resolución al servicio de cliente DNS, que primero comprueba la información almacenada en caché localmente. Si el nombre consultado se puede resolver, se responde a la consulta y se completa el proceso.
En el diagrama siguiente se muestra un ejemplo sencillo de un cliente DNS que consulta al servicio de cliente DNS para una resolución de nombres.
La caché del solucionador local puede incluir información sobre nombres obtenida de dos posibles fuentes:
Si hay un archivo Hosts configurado localmente, las asignaciones de nombre de host a dirección de ese archivo se cargan en la memoria caché cuando se inicia el servicio de cliente DNS.
Los registros de recursos obtenidos en las respuestas de consultas de DNS anteriores se agregan a la memoria caché y se conservan durante un tiempo determinado por el período de vida (TTL).
Si la consulta no coincide con una entrada de la memoria caché, el proceso de resolución continúa y el cliente consulta a un servidor DNS para resolver el nombre.
En el diagrama siguiente se muestra el servicio de cliente DNS que comprueba la memoria caché para una consulta de DNS.
La configuración de clientes DNS con más de una IP de servidor DNS aumenta la tolerancia a errores de la infraestructura DNS. La adición de varias direcciones IP de servidor DNS garantiza que los nombres DNS se puedan resolver aunque fallen el servidor DNS principal, el enlace de red o la infraestructura de soporte.
Los errores de nombre pueden provocar bloqueos de aplicaciones o componentes e interrupciones de recursos a la espera de que finalicen tiempos de espera dependientes que provocan directa o indirectamente errores operativos. Consulte Tiempos de espera de resolución de cliente DNS para obtener una explicación más detallada de todos los escenarios posibles.
Por estos motivos, se recomienda configurar todos los clientes de Windows con más de un servidor DNS. Sin embargo, el proceso de resolución de clientes de Windows varía en función del número de servidores DNS configurados.
Proceso de consulta de servidor DNS
Cuando el servidor DNS recibe una consulta, primero comprueba si puede responderla de forma autoritativa. El servidor DNS realiza comprobaciones mediante el uso de la información de registro de recursos contenida en una zona configurada localmente en el servidor.
Si el nombre consultado coincide con un RR correspondiente en la información de la zona local, el servidor responde de forma autoritativa y utiliza esta información para resolver el nombre consultado.
Si no existe información de zona para el nombre consultado, el servidor comprueba si puede resolver el nombre usando información almacenada en caché localmente que se haya obtenido en otras consultas anteriores. Si se encuentra una coincidencia, el servidor responde con esta información. De nuevo, si el servidor preferido puede responder con una respuesta coincidente positiva de su caché al cliente solicitante, la consulta se completa.
Si el nombre consultado no encuentra una respuesta coincidente en su servidor preferido, ya sea en su caché o en la información de zona, el proceso de consulta puede continuar, y se utiliza la recursividad para resolver completamente el nombre. Este proceso implica la asistencia de otros servidores DNS para ayudar a resolver el nombre. De forma predeterminada, el servicio de cliente DNS pide al servidor que use un proceso de recursividad para resolver completamente los nombres para el cliente antes de devolver una respuesta.
Para que el servidor DNS realice la recursividad correctamente, primero necesita información de contacto útil sobre otros servidores DNS del espacio de nombres de dominio DNS. Esta información se proporciona como sugerencias raíz. Las sugerencias raíz son una lista de registros de recursos preliminares. El servicio DNS utiliza estos registros para localizar otros servidores DNS que tienen autoridad para la raíz del árbol de espacio de nombres de dominio DNS. Los servidores raíz son autoritativos 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 raíz para la búsqueda de servidores raíz un servidor DNS es capaz de completar el uso de la recurrencia. En teoría, este proceso permite a cualquier servidor DNS localizar los servidores que son autoritativos para cualquier otro nombre de dominio DNS utilizado en cualquier nivel del árbol del espacio de nombres.
Los siguientes pasos describen el proceso de consulta de un servidor DNS:
Si la consulta es un nombre de dominio completo (FQDN), lo que significa que termina con un punto final (
.), la consulta se envía al servidor DNS. Por ejemplo:www.contoso.com.Si se trata de una consulta multietiqueta no calificada, lo que significa que no termina con un punto final (
.), el cliente DNS la envía al servidor DNS con un punto final (.). Por ejemplo:www.contoso.com.Si la consulta no calificada tiene una sola etiqueta, como
www. Entonces el comportamiento es diferente en función de la configuración de DNS de la NIC.Si hay una lista de búsqueda de sufijos DNS, el servicio de cliente DNS los anexa a la consulta de etiqueta única siguiendo el orden del primero al último y envía la consulta con el punto final (
.) al servidor DNS. Este proceso se repite hasta que se utiliza toda la lista de búsqueda de sufijos DNS.Si no se ha configurado ninguna lista de búsqueda de sufijos DNS, el servicio de cliente DNS anexa el sufijo DNS principal a la consulta de etiqueta única con un punto final (
.) y la envía al servidor DNS.Cuando el cliente DNS está configurado para realizar la devolución de nombres, devuelve el sufijo DNS principal y envía otra consulta con un punto final (
.) si se produce un error en el sufijo DNS principal. Por ejemplo, si se produce un error en la resolución dewww.test.contoso.com, el cliente se convierte enwww.contoso.comSi se ha configurado un sufijo DNS específico de las conexiones en los adaptadores, se anexa la consulta con un punto final (
.) y se envía al servidor DNS.
En todos los casos, la respuesta se almacena en la caché del cliente DNS, independientemente de si es positiva o negativa.
En el siguiente diagrama de flujo se muestra el proceso de consulta de un servidor DNS que se ha descrito.
Recursividad de DNS
Sopese el uso del proceso de recursividad para localizar el nombre host-b.example.contoso.com. cuando el cliente consulte un único servidor DNS. El proceso se da cuando un servidor y un cliente DNS se inician por primera vez y no disponen de información almacenada en caché localmente para ayudar a resolver una consulta de nombre. Se supone que el nombre consultado por el cliente corresponde a un nombre de dominio del que el servidor no tiene conocimiento local, dadas sus zonas configuradas.
En primer lugar, el servidor preferido analiza el nombre completo y determina que necesita la ubicación del servidor autoritativo para el dominio de nivel superior, com. A continuación, utiliza una consulta iterativa al servidor DNS com para obtener una referencia al servidor contoso.com . A continuación, el servidor contoso.com envía una respuesta de referencia al servidor DNS para example.contoso.com.
Finalmente, se contacta con el servidor example.contoso.com.. Dado que este servidor contiene el nombre consultado como parte de sus zonas configuradas, responde de forma autoritativa al servidor original que inició la recursividad. Cuando el servidor original recibe la respuesta, comprueba si la respuesta es autoritativa. Si es así, el servidor reenvía esta respuesta al cliente solicitante y completa el proceso de consulta recursiva.
Aunque el proceso de consulta recursiva puede consumir muchos recursos cuando se realiza de la forma descrita, tiene algunas ventajas de rendimiento para el servidor DNS. Por ejemplo, durante el proceso de recursividad, el servidor DNS que realiza la búsqueda recursiva obtiene información sobre el espacio de nombres de dominio DNS. El servidor almacena en caché la información, que se puede utilizar de nuevo para ayudar a acelerar la respuesta de las consultas posteriores que la utilicen o coincidan con ella. Con el tiempo, esta información almacenada en caché puede crecer hasta ocupar una parte considerable de los recursos de memoria del servidor. La caché se borra cada vez que se reinicia el servicio DNS.
Tiempo de espera adaptable de consulta de DNS
La característica de tiempo de espera adaptable de consultas de DNS permite que el tiempo de espera de las consultas de DNS se adapte en función del tiempo que se necesitó para las consultas anteriores, lo que reduce el tiempo de espera de la mayoría de las consultas. Los tiempos de espera también pueden aumentar para vínculos de latencia alta, como los vínculos de satélite. Las aplicaciones de la Tienda Windows pueden optimizar la configuración de los tiempos de espera de DNS por interfaz de red.
En lugar de esperar 1000 ms antes de agotar el tiempo de espera de una consulta de DNS, el primer tiempo de espera se ajusta para que esté entre 25 ms y 1000 ms, en función del rendimiento anterior de la red.
Caché de servidor DNS que no responde
Los servidores DNS que no responden se almacenan en caché y la consulta se vuelve a intentar periódicamente. De este modo, el cliente DNS puede usar el mejor servidor disponible de forma coherente y pasar menos tiempo esperando a servidores DNS que no responden.
En la figura siguiente se muestran ejemplos de consultas de cliente DNS a cada servidor de cada adaptador mediante el proceso descrito en esta sección.
El servicio de cliente DNS consulta los servidores DNS en la siguiente secuencia:
El servicio de cliente DNS envía la consulta de nombre al primer servidor DNS de la lista de servidores DNS del adaptador preferido y espera un segundo para recibir una respuesta.
Si el servicio de cliente DNS no recibe una respuesta del primer servidor DNS en el plazo de un segundo, envía la consulta de nombre a los primeros servidores DNS de todos los adaptadores que aún se estén considerando y espera dos segundos para recibir una respuesta.
Si el servicio de cliente DNS no recibe una respuesta de ningún servidor DNS en un plazo de dos segundos, envía la consulta a todos los servidores DNS de todos los adaptadores que aún se estén considerando. A continuación, el servicio de cliente DNS espera otros dos segundos para recibir una respuesta.
Si el servicio de cliente DNS sigue sin recibir una respuesta de ningún servidor DNS, envía la consulta de nombre a todos los servidores DNS de todos los adaptadores que aún se estén considerando y espera cuatro segundos para recibir una respuesta.
Si el servicio de cliente DNS sigue sin recibir una respuesta de ningún servidor DNS, el cliente DNS envía la consulta de nombre a todos los servidores DNS de todos los adaptadores que aún se estén considerando y espera ocho segundos para recibir una respuesta.
Si el servicio de cliente DNS no recibe una respuesta de ningún servidor en un plazo de ocho segundos, el servicio de cliente DNS responde con un tiempo de espera. Si el servicio de cliente DNS no recibe una respuesta de ningún servidor DNS de un adaptador específico, agota el tiempo de espera de todas las consultas enviadas a esos servidores durante los próximos 30 segundos en ese adaptador.
Si en algún momento el servicio de cliente DNS recibe una respuesta negativa de un servidor, quita todos los servidores de ese adaptador del proceso durante esta búsqueda. Por ejemplo, si el primer servidor del adaptador alternativo A da una respuesta negativa en el paso 2, el servicio de cliente DNS no consulta a ningún otro servidor de la lista para el adaptador alternativo A.
Si el servicio de cliente DNS recibe una respuesta positiva, deja de consultar el nombre, agrega la respuesta a la memoria caché y devuelve la respuesta al cliente.
El servicio de cliente DNS realiza un seguimiento de los servidores que responden a las consultas de nombres con mayor rapidez y los mueve hacia arriba o hacia abajo en la lista en función de la rapidez de dicha respuesta.
Respuestas alternativas a la consulta
En la descripción anterior de las consultas de DNS se supone que el proceso finaliza con la devolución al cliente de una respuesta positiva. Sin embargo, las consultas también pueden devolver otras respuestas. A continuación se muestran las respuestas más frecuentes a las consultas:
- Una respuesta autoritativa
- Una respuesta positiva
- Una respuesta de referencia
- Una respuesta negativa
Una respuesta autoritativa es una respuesta positiva de un servidor DNS que tiene autoridad directa sobre el nombre consultado. Esta respuesta incluye el bit de autoridad establecido en el mensaje DNS para indicar su autenticidad.
Una respuesta positiva puede constar del RR consultado o de una lista de RR (también conocida como conjunto de RR) que se ajuste al nombre de dominio DNS consultado y al tipo de registro especificado en el mensaje de consulta.
Una respuesta de referencia contiene otros RR no especificados por nombre o tipo en la consulta. Este tipo de respuesta se devuelve al cliente si no se admite el proceso de recursividad. Los registros están pensados para servir como respuestas de referencia útiles que el cliente puede usar para continuar la consulta mediante un proceso de iteración. Una respuesta de referencia contiene más datos, como RR, que son distintos del tipo consultado. Por ejemplo, si el servidor DNS no encuentra ningún RR A para el nombre de host www consultado en esta zona, pero encuentra en lugar de eso un RR CNAME para www, puede incluir esa información en su respuesta al cliente. Si el cliente puede usar la iteración, puede realizar más consultas con la información de referencia en un intento de resolver completamente el nombre por sí mismo.
Una respuesta negativa del servidor puede indicar uno de dos resultados posibles:
- El servidor autoritativo no pudo encontrar el nombre consultado en el espacio de nombres DNS.
- El servidor autoritativo encontró el nombre consultado, pero no existen registros del tipo especificado para ese nombre.
El solucionador procesa la consulta y devuelve los resultados al programa solicitante. La respuesta puede ser positiva o negativa. Además, el solucionador almacena la respuesta en caché para su uso futuro.
Si la respuesta resultante a una consulta es demasiado larga para enviarla y resolverla en un solo paquete de mensajes UDP, el servidor DNS puede iniciar una respuesta de conmutación por error a través del puerto TCP 53 para responder al cliente completamente en una sesión conectada a TCP.
La deshabilitación del uso de la recursividad en un servidor DNS se realiza cuando los clientes DNS se limitan a resolver nombres en un servidor DNS específico, por ejemplo, uno ubicado en la intranet. La recursividad también puede estar deshabilitada cuando el servidor DNS no puede resolver nombres DNS externos. En este caso, se espera que los clientes conmuten por error a otro servidor DNS para la resolución de nombres. Si deshabilita la recursividad en el servidor DNS, no podrá usar reenviadores en el mismo servidor.
De forma predeterminada, los servidores DNS utilizan varios tiempos predeterminados al realizar una consulta recursiva y ponerse en contacto con otros servidores DNS. Estos valores predeterminados incluyen:
- Un intervalo de reintentos de recursividad de 3 segundos. Este intervalo es el período de tiempo que el servicio DNS espera antes de volver a intentar una consulta realizada durante una búsqueda recursiva.
- Un intervalo de tiempo de espera de recursividad de 8 segundos. Este intervalo es el período de tiempo que el servicio DNS espera antes de que se produzca un error en una búsqueda recursiva que se ha reintentado.
En la mayoría de los casos, estos parámetros no necesitan ajustes. Sin embargo, si usa búsquedas recursivas a través de un vínculo de red de área extensa (WAN) de baja velocidad, es posible que pueda mejorar el rendimiento del servidor y la finalización de consultas realizando ligeros ajustes en la configuración.
Contenido relacionado
Para más información sobre el proceso de búsqueda inversa, consulte Búsqueda inversa.