Me pregunto si hay una manera de consultar un servidor DNS y evitar el almacenamiento en caché (con dig
). A menudo cambio una zona en el servidor DNS y quiero verificar si se resuelve correctamente desde mi estación de trabajo. Pero como el servidor almacena en caché las solicitudes resueltas, a menudo recibo las anteriores. Reiniciar o cargar el servidor no es realmente algo agradable.
linux
domain-name-system
dig
Daniel
fuente
fuente
+norecurse
se recomienda.+recurse
está activado de forma predeterminada ocasionalmente cambiará la forma en que un servidor DNS interpreta su pregunta por completo.+trace
pero tenga cuidado con el almacenamiento en caché. Andrew B escribió una buena explicación de cómo el almacenamiento en caché puede engañarte cuando esperas a que cambien los servidores de nombres.dig @8.8.8.8 example.com
. Los registros aparecen mucho más rápido allí.No hay ningún mecanismo en el protocolo DNS que obligue a un servidor de nombres a responder sin usar su caché. Excavar en sí mismo no es un servidor de nombres, es simplemente una herramienta que pasa su consulta a los servidores de nombres que haya configurado, utilizando solicitudes DNS estándar. DNS hace incluir una manera de decirle a un servidor a no utilizar la recursividad, pero esto no es lo que quiere. Eso solo es útil cuando desea consultar directamente un servidor de nombres autorizado.
Si desea evitar que un servidor de nombres responda desde su caché, solo podrá hacerlo alterando la configuración en el servidor de nombres , pero si no controla el servidor de nombres, esto es imposible.
Sin embargo, puede excavar para omitir los servidores de nombres configurados y realizar su propia solicitud recursiva que vuelve a los servidores raíz. Para hacer esto, use la
+trace
opción.En la práctica, ya que esto solo consultará a los servidores autorizados en lugar de a su resolutor de almacenamiento en caché local, el resultado no será obsoleto incluso si esos servidores emplean almacenamiento en caché interno. El beneficio adicional de usar
+trace
es que puede ver todas las solicitudes separadas realizadas a lo largo del camino.fuente
+norecurse
solo le dice al servidor de nombres que devuelva la información que tenga (incluida la información almacenada en caché, si la hay), por lo que eso no es correcto.+trace
funcionará porque seguirá la cadena de recursión hasta un servidor autorizado.+norecurse
recomendación, ya que confundió el problema.Algo importante a tener en cuenta aquí, que noto que muchas personas nunca incluyen al hablar
+trace
es que usar+trace
significa que el cliente de excavación hará el seguimiento, no el servidor DNS especificado en su configuración (/etc/resolv.conf). En otras palabras, su cliente de excavación funcionará como lo haría un servidor DNS recursivo, si lo solicita. Pero, lo que es más importante, no tienes un caché.Más detalles: por lo tanto, si ya solicitó un
mx
registro utilizandodig -t mx example.com
y su /etc/resolv.conf es 8.8.8.8, hacer cualquier cosa dentro del TTL de la zona devolverá el resultado almacenado en caché. En cierto modo, si está buscando algo sobre su propia zona y cómo Google lo ve, ha envenenado sus resultados de DNS con Google para el TTL de su zona. No está mal si tienes un TTL corto, algo basura si tienes uno de 1 hora.Por lo tanto, si bien
+trace
lo ayudará a ver qué se vería si le preguntara a Google por PRIMERA vez y no tuviera una entrada en caché, puede darle una falsa idea de que Google le dirá a todos lo mismo que su+trace
resultado, que no lo haría si lo hubiera pedido anteriormente y tenga un TTL largo, ya que lo servirá desde la caché hasta que caduque el TTL; LUEGO servirá lo mismo que lo que+trace
reveló.No puedo tener demasiados detalles de la OMI.
fuente
dig mydomain.com +trace
solo me devuelve losresolvd
resultados del trozo de127.0.0.53
. Ver github.com/systemd/systemd/issues/5897+trace
dig comienza la traza usando el servidor de nombres especificado (por ejemplo, 8.8.8.8 si eso es lo que ha configurado) para la primera búsqueda (la zona raíz), pero luego usa los servidores de nombres devueltos para consultas adicionales. Entonces, si su servidor de nombres configurado no funciona o no responde correctamente a una consulta para los servidores de nombres raíz, puede tener problemas (como en el comentario anterior).Este bash cavará las entradas DNS de example.com desde su primer servidor de nombres:
Esto es lo mismo que un alias para un .zshrc (y probablemente .bashrc):
Aquí está la salida para / .:
Esta solución es lo suficientemente complicada como para no ser práctica de recordar, pero lo suficientemente simple como para que el problema no se solucione.
dig
no es mi especialidad - mejoras bienvenidas :-)fuente