Tema representativo de entrevista

Entrevista general: ¿Por qué un registro DNS recién creado aún puede devolver NXDOMAIN?

GeneralIntermedio
Equipo editorial de Offer.ccPublicado Actualizado

Pregunta

Acaba de crear un registro A para api.example.com, pero los usuarios aún reciben NXDOMAIN. En otro incidente, tras una breve interrupción autoritativa, los resolvers recursivos devuelven fallos. Explique los dos tipos de respuestas negativas de DNS, de dónde provienen los tiempos de vida de su caché, cómo localiza la capa de almacenamiento en caché y cómo se recupera sin perjudicar el tráfico saludable.

Planteamiento y contexto

Esta pregunta técnica general evalúa la semántica del protocolo DNS, el almacenamiento en caché y el diagnóstico de incidentes. Una respuesta sólida distingue entre "el nombre no existe", "el nombre existe pero no tiene el tipo solicitado" y "la resolución falló", y luego explica por qué corregir los datos autoritativos no borra instantáneamente una respuesta negativa antigua de los resolvers recursivos.

Qué evalúa el entrevistador

  • Distinguir NXDOMAIN de NODATA en lugar de llamar a cada respuesta vacía "falta de DNS".
  • Explicar cómo los datos de SOA proporcionan la temporización de la caché negativa y cómo se limita el almacenamiento en caché de fallos.
  • Rastrear la ruta del stub, el resolver recursivo y el servidor autoritativo con evidencia y TTL restantes.
  • Diseñar procedimientos de creación de registros, reversión y monitoreo sin vaciado ciego de caché ni tormentas de reintentos.

Preguntas aclaratorias para hacer

Confirme el nombre consultado, el tipo de registro, la marca de tiempo, el código de respuesta, el estado de publicación de la zona autoritativa, la validación de DNSSEC, si todos los resolvers o solo una red se ven afectados, y si hay una caché de DNS local, de service mesh o de aplicación involucrada.

Estructura de respuesta de 30 segundos

Consultaría primero al servidor autoritativo y luego a varios resolvers recursivos mientras registro NXDOMAIN, NODATA o SERVFAIL, el SOA en la sección Authority y los TTL. NXDOMAIN indica que el nombre no existe; NODATA indica que existe sin el tipo solicitado, y ambos pueden almacenarse en caché negativa utilizando los parámetros de SOA. Si la autoridad es correcta pero la recursión aún devuelve la respuesta antigua, espere al TTL negativo o utilice una invalidación controlada del resolver; actualizar un solo cliente no puede limpiar las cachés ascendentes.

Respuesta detallada paso a paso

1. Separar los resultados negativos

NXDOMAIN significa que la cadena autoritativa indica que el nombre consultado no existe. NODATA normalmente tiene una respuesta exitosa con una sección de respuesta vacía, lo que significa que el nombre existe pero carece del tipo de RR solicitado. SERVFAIL significa que el proceso de resolución falló, por ejemplo, porque la autoridad es inalcanzable o falló la validación de DNSSEC; no es una prueba de que el nombre esté ausente.

2. Explicar de dónde provienen los tiempos de vida negativos

La RFC 2308 permite que las respuestas NXDOMAIN y NODATA lleven un SOA. Un resolver recursivo utiliza el TTL negativo, comúnmente limitado por el menor entre el MINIMUM de SOA y el TTL de SOA en las implementaciones actuales, para decidir cuánto tiempo retener la respuesta. Los operadores deben tratar ese valor como la ventana de propagación para crear o retirar registros. La RFC 9520 también exige un almacenamiento en caché negativo limitado para los fallos de resolución, de modo que una interrupción transitoria no bloquee la recuperación para siempre.

3. Construir un diagnóstico repetible

Ejecute dig @authoritative-server api.example.com A +norecurse para verificar la respuesta autoritativa, el SOA y el serial, y luego ejecute la misma consulta contra varios resolvers recursivos. Registre status, la sección Authority, el TTL de SOA y las marcas de tiempo. Autoridad positiva más NXDOMAIN recursivo apunta a una caché negativa o ruta de delegación; NXDOMAIN en la autoridad apunta a la publicación de zona o nombres; SERVFAIL apunta a alcanzabilidad, delegación o DNSSEC.

4. Prevenir la amplificación de caché y tormentas de reintentos

Las aplicaciones no deben realizar bucles de espera activa (busy-loop) ante una respuesta negativa. Utilice retroceso acotado (bounded backoff) para el descubrimiento de servicios y registre códigos de respuesta con la antigüedad de la caché. Publique un nuevo nombre antes de que llegue el tráfico de producción para que la primera consulta no siembre muchas cachés recursivas con NXDOMAIN. Después de un cambio, monitoree las proporciones de respuestas negativas por resolver y región para distinguir una caché no expirada de un fallo autoritativo continuo.

5. Planificar la recuperación y la reversión

No puede obligar a todos los resolvers recursivos públicos a eliminar una entrada negativa de inmediato. Espere al TTL negativo, limpie los resolvers que controla, repare la autoridad o DNSSEC y mantenga un endpoint antiguo o una ruta de descubrimiento alternativa durante la ventana. Verifique el comportamiento autoritativo, recursivo y de solicitudes reales continuamente; retire la alternativa de respaldo solo después de que las tasas de NXDOMAIN y SERVFAIL regresen a la línea base.

Respuesta modelo de alta calidad

Primero separo NXDOMAIN, NODATA y SERVFAIL. NXDOMAIN significa que el nombre está ausente, NODATA significa que el nombre existe sin el tipo solicitado y SERVFAIL significa que la cadena de resolución falló. Consulto la autoridad para la zona y el serial, luego comparo varios resolvers recursivos, sus códigos de respuesta, el SOA de la sección Authority y el TTL restante. Una respuesta negativa puede permanecer en caché según el TTL negativo de SOA, por lo que un registro recién creado aún puede verse como NXDOMAIN; un resolver también puede retener un resultado de fallo acotado. Evito tormentas de reintentos en aplicaciones, publico nombres antes del cambio de tráfico, utilizo una ventana de TTL negativo planificada y monitoreo múltiples regiones y tráfico real mientras mantengo un endpoint de respaldo.

Errores comunes

  • Tratar NXDOMAIN, NODATA y SERVFAIL como un único resultado vacío.
  • Limpiar la caché de una laptop mientras se ignora el estado del resolver recursivo.
  • Asumir que editar el SOA acorta instantáneamente las entradas negativas ya almacenadas.
  • Reintentar continuamente mientras el servicio autoritativo sigue roto.
  • Comprobar solo A y olvidar AAAA, delegación, DNSSEC o la ortografía.

Preguntas de seguimiento y respuestas

¿Por qué un nuevo registro A todavía devuelve NXDOMAIN?

Confirme que la autoridad ha cargado la zona y que la delegación es correcta. Si la autoridad devuelve A, el NXDOMAIN recursivo suele ser una entrada negativa previa; espere a que expire su TTL negativo de SOA.

¿Puede NODATA retrasar un registro AAAA posterior?

Sí. Un resolver puede almacenar en caché que el nombre existe sin AAAA, por lo que los clientes pueden continuar viendo una respuesta vacía hasta que expire ese TTL negativo específico del tipo.

¿Se puede almacenar en caché también SERVFAIL?

Sí, las pautas modernas requieren el almacenamiento en caché acotado de los fallos de resolución, con límites de implementación. Después de reparar la autoridad o DNSSEC, valide con varios resolvers mientras se drena esa ventana de fallo.

¿Pueden los subdominios aleatorios eludir el almacenamiento en caché negativo?

No son una solución general. Los nombres aleatorios añaden consultas autoritativas y presión de caché, y no reparan errores de delegación, zona o DNSSEC. Corrija el hecho autoritativo y deje que las entradas existentes expiren.

Fuentes públicas

Preguntas relacionadas