4 votos

¿Cómo puedo realmente <em>vaciar</em> la memoria caché DNS en OS X 10.9?

Estoy en OS X 10.9, según support.apple.com puedo limpiar la caché con

sudo killall -HUP mDNSResponder

Lamentablemente, esto realmente no refresca mi caché DNS en absoluto, tampoco así:

dscacheutil -flushcache; sudo killall -HUP mDNSResponder

Por ejemplo

$ dig www.example.com|grep CNAME
www.example.com.    83955   IN  CNAME   example.com.

Si la caché se borrara, mostraría un número cercano a 86400, 3600, 300 o 60 son los valores TTL ofrecidos por mi proveedor de nombre de dominio).

Si agrego @dns-host a dig, funciona como se esperaba:

$ dig @ns0.transip.net www.example.com|grep CNAME
www.example.com.    60  IN  CNAME   GITHUBACCOUNT.github.io.

También probé los otros comandos en esa página. Mientras tanto, resuelvo esto conectándome por ssh a uno de mis servidores y comprobando las cosas allí. Pero me gustaría una manera adecuada de realmente refrescar toda la caché DNS en mi Mac. ¿Cómo puedo hacer eso?

3 votos

dig omite el resolver del sistema operativo (y por lo tanto la caché), por lo que esto no te dice nada acerca de si ha sido limpiado o no. Lo que te está diciendo es acerca del almacenamiento en caché en tu servidor DNS, y no puedes limpiar eso desde el cliente.

0 votos

¿Qué tal configurar un DNS completamente nuevo y luego hacer un flush? A veces eso me ha solucionado problemas. Además, una actualización a un sistema operativo más reciente podría valer la pena si aún no lo has hecho.

2voto

Jose Chavez Puntos 645

El efecto que estás viendo no tiene absolutamente nada que ver con las cachés en tu computadora.

En lugar de eso, lo que estás viendo es que tu servidor DNS recursivo (es decir, típicamente el servidor DNS de tu proveedor de servicios de Internet o DNS de Google u similar) ha tomado el valor TTL original y ha restado la cantidad de tiempo transcurrido desde que recuperó estos registros del servidor DNS autoritario.

Por ejemplo, digamos que eres dueño de example.com y tienes un servidor DNS autoritario configurado que cuando se consulta da ese CNAME con un TTL de 86400. Luego, en algún momento al azar, el servidor DNS recursivo de tu proveedor de servicios de Internet es consultado por alguien más para www.example.com y recupera esos registros. Almacena en caché esa información.

Ahora apareces emitiendo el comando dig sin el parámetro @, lo cual significa que la solicitud utiliza el servidor listado en /etc/resolv.conf, que típicamente es el servidor DNS recursivo de tu proveedor de servicios de Internet. Ahora obtienes la respuesta con un TTL de 83995, lo que significa que han pasado 86400-83995=2405 segundos desde que recuperó originalmente esos registros.

En ningún momento en este proceso está involucrada la caché DNS estándar local de macOS, por lo que mDNSResponder y dscacheutil no van a cambiar nada en absoluto.

La razón detrás de esto es que el servidor DNS autoritario ha establecido básicamente que "esta información es válida durante 86400 segundos". El servidor DNS recursivo no sabe si el servidor DNS autoritario ha sido cambiado desde entonces para proporcionar nueva información, por lo que solo puede decirte que la información ahora es válida durante un período ligeramente menor de tiempo.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X