Una consulta DNS es un mensaje de solicitud enviado por un cliente a un servidor DNS en el que se solicitan registros que coincidan con un nombre de dominio, un tipo de registro y una clase específicos, y que se responde de acuerdo con las especificaciones del RFC 1035. La consulta inicia prácticamente todas las conexiones de red y sirve como medida directa de la demanda del servicio DNS; el análisis del volumen por tipo de registro, cliente y código de respuesta revela las necesidades de capacidad e identifica las configuraciones erróneas. La supervisión de los patrones de consulta —incluidos los picos en las respuestas NXDOMAIN, las inundaciones de consultas y las respuestas UDP truncadas— es fundamental para la fiabilidad operativa y la seguridad, ya que el tráfico de consultas no supervisado permite que los problemas salgan a la luz únicamente a través de las quejas de los usuarios, en lugar de resolverse de forma proactiva.
Cómo funciona una consulta DNS
Una consulta DNS contiene una pregunta compuesta por un nombre, un tipo de registro y una clase. El cliente la envía a un resolutor, que responde desde su caché o recorre la jerarquía del DNS para encontrar la respuesta.
- Formulación de la consulta: el cliente formula una consulta con el nombre de dominio que desea buscar, el tipo de registro (por ejemplo, A, AAAA, MX o TXT) y la clase, que casi siempre es IN para Internet.
- Enviar a un resolutor: El resolutor stub del cliente envía la consulta a un resolutor recursivo configurado, normalmente a través de UDP en el puerto 53.
- Comprobar la caché: el resolutor recursivo devuelve una respuesta almacenada en caché si dispone de una que no haya caducado para el mismo nombre y tipo.
- Consultar servidores autoritativos: si no hay ninguna respuesta almacenada en caché, el resolutor envía consultas iterativas a los servidores raíz, de dominio de primer nivel y autoritativos hasta que uno de ellos proporciona la respuesta o devuelve un error.
- Devolver la respuesta: el resolutor envía la respuesta al cliente y la almacena en caché durante el tiempo establecido por el tiempo de vida del registro.
Las consultas suelen utilizar UDP, y el cliente vuelve a intentarlo a través de TCP cuando la respuesta se ve truncada. El código de respuesta indica el resultado, como «sin error» o «NXDOMAIN» para un nombre que no existe. Las extensiones como EDNS y los protocolos de transporte cifrados, como el DNS sobre TLS, modifican la forma en que se transmiten las consultas, no lo que estas solicitan.
Problemas habituales en las consultas DNS
Una gran avalancha de consultas, a menudo para nombres aleatorios o procedentes de fuentes falsificadas, puede agotar la CPU del resolutor, los sockets o el ancho de banda de enlace ascendente. Los síntomas son un aumento de la latencia, errores SERVFAIL o tiempos de espera agotados, y una tasa de consultas muy por encima del nivel normal.
Un cliente o una aplicación mal configurados que ignoren el TTL y el almacenamiento en caché pueden enviar la misma consulta muchas veces por segundo. Esto se refleja en los registros como un único cliente que domina la lista de los que más tráfico generan para un único nombre.
Un aumento repentino de las respuestas NXDOMAIN suele deberse a una aplicación defectuosa, un sufijo de dominio de búsqueda incorrecto o una configuración obsoleta que apunta a un nombre eliminado. Los clientes también pueden añadir varios sufijos de búsqueda, lo que multiplica el número de consultas fallidas por cada búsqueda.
Cuando una respuesta supera el tamaño que un cliente acepta a través de UDP, el servidor activa el indicador de truncamiento y el cliente debe volver a intentarlo a través de TCP. Los cortafuegos que bloquean el puerto TCP 53 provocan fallos intermitentes en respuestas de gran tamaño, como las que contienen datos DNSSEC.
Los clientes configurados con un resolutor público u obsoleto eluden el DNS interno, por lo que los nombres internos no se resuelven o devuelven respuestas diferentes. Esto suele producirse tras cambios en el ámbito de DHCP o en dispositivos con ajustes de DNS fijos.