¿Qué desencadena el uso del tiempo negativo para vivir el valor de registro DNS SOA?

8

Estoy leyendo el siguiente tutorial de dns y tiene este ejemplo:

domain.com.  IN SOA ns1.domain.com. admin.domain.com. (
                                        12083   ; serial number
                                        3h      ; refresh interval
                                        30m     ; retry interval
                                        3w      ; expiry period
                                        1h      ; negative TTL
)

La descripción del negative TTLvalor dice esto:

1h: Esta es la cantidad de tiempo que el servidor de nombres almacenará en caché un error de nombre si no puede encontrar el nombre solicitado en este archivo.

¿Cuáles son las condiciones que podrían hacer que el servidor guarde en caché un error de nombre como este? Un ejemplo sería realmente útil.

Viejo
fuente

Respuestas:

11

El intervalo de almacenamiento en caché negativo SOAentra en juego cuando un servidor autorizado indica que el registro solicitado no existe. Los casos específicos son:

  • Responde con un código de respuesta de NXDOMAIN.
  • Responde con un NODATAestado sintético, pero solo forma donde SOAestá presente un registro. ( NOERRORrcode, 0 respuestas, 1 SOAregistro en la sección de autoridad + NSregistros opcionales )

Es común que el software del servidor imponga un máximo configurado localmente en este valor, por lo que incluso si tiene un TTL negativo de 86400la inexistencia, los servidores recursivos remotos no necesariamente van a almacenar en caché durante tanto tiempo.

Los casos están cubiertos por la sección RFC 2308 si desea leer más. Lea la sección 2 como manual, luego 5-6.

Andrew B
fuente
IIUC si solicito "not.available.example.com" del servidor autorizado, ¿se almacena en caché por el tiempo negativo de vida?
Ole
Correcto. Los servidores recursivos completos almacenarán en caché la inexistencia de manera confiable, pero el comportamiento de los resuelvedores de código auxiliar (como las bibliotecas de resolución del sistema operativo) variará. Windows lo hace, por ejemplo. Encontraría "Nombre no existe". en la salida de ipconfig /displaydns, que representa NXDOMAIN. Encontrará instancias de "No hay registros de tipo X" en esa salida también, que corresponde a NODATA. La mayoría de los sistemas basados ​​en UNIX no lo hacen , porque no se almacenan en caché sin configuración adicional. ( nscdcon almacenamiento en caché habilitado, servidor recursivo local y uso de 127.0.0.1 para búsquedas de DNS, etc.)
Andrew B
Entonces, si estoy imaginando el propósito correctamente, ¿es para poder verificar que "not.available.example.com" realmente no estaba disponible de acuerdo con el servidor recursivo completo? En otras palabras, si no obtengo una dirección IP, ¿puedo consultar el servidor en algo así como un punto final / displaydns, y el resultado debería contener la confirmación de que la dirección realmente no existe?
Ole
ipconfig /displaydnsexiste para decirle el contenido del caché local de resolución de stub. Ni mas ni menos. Lo que los administradores podrían querer hacer con esa información es abierto.
Andrew B
@Ole El propósito es evitar consultas repetidas para el nombre, una vez que el servidor ya le ha dicho al solucionador que no existe. Al igual que cualquier otro almacenamiento en caché.
Barmar