GNU/Linux >> Tutoriales Linux >  >> Linux

Forzar excavación para resolver sin usar caché

Solución 1:

Puedes usar el @ sintaxis para buscar el dominio desde un servidor en particular. Si el servidor DNS tiene autoridad para ese dominio, la respuesta no será un resultado almacenado en caché.

dig @ns1.example.com example.com

Puede encontrar los servidores autorizados solicitando el NS registros para un dominio:

dig example.com NS

Solución 2:

No existe ningún mecanismo en el protocolo DNS para obligar a un servidor de nombres a responder sin usar su caché. Dig en sí no es un servidor de nombres, es simplemente una herramienta que pasa su consulta a cualquier servidor de nombres que haya configurado, utilizando solicitudes de DNS estándar. DNS incluya una forma de decirle a un servidor que no use la recursividad, pero esto no es lo que desea. 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 modificando la configuración en el servidor de nombres , pero si no controlas el servidor de nombres, esto es imposible.

Sin embargo, puede hacer dig para bypass los servidores de nombres configurados y realiza su propia solicitud recursiva que vuelve a los servidores raíz. Para hacer esto, use el +trace opción.

dig example.com +trace

En la práctica, dado que esto solo consultará a los servidores autorizados en lugar de a su resolución 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 puedes ver todas las solicitudes separadas realizadas a lo largo de la ruta.

Solución 3:

Algo importante a tener en cuenta aquí, que noto que muchas personas nunca incluyen cuando hablan de +trace es que usando +trace significa que el cliente de excavación hará el seguimiento, no el servidor DNS especificado en su configuración (/etc/resolv.conf). Entonces, 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 caché.

Más detalles, por lo que si ya ha solicitado un mx grabar usando dig -t mx example.com y su /etc/resolv.conf es 8.8.8.8, entonces 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 la ve Google, en cierto modo 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.

Entonces, mientras +trace te ayudará a ver lo que se vería si le preguntaras a Google por PRIMERA vez y no tuviera una entrada en caché, puede darte una idea falsa de que Google les dirá a todos lo mismo que tu +trace El resultado fue, que no lo hará si lo hubieras preguntado previamente y tuvieras un TTL largo, ya que lo servirá desde la memoria caché hasta que caduque el TTL; ENTONCES, servirá lo mismo que tu +trace revelado.

En mi opinión, no puede tener demasiados detalles.

Solución 4:

Este bash buscará las entradas DNS de example.com desde su primer servidor de nombres listado:

dig @$(dig @8.8.8.8 example.com ns +short | head -n1) example.com ANY +noall +answer
  • La excavación interna consulta el DNS de Google (8.8.8.8) para obtener los servidores de nombres de example.com.
  • La excavación externa consulta el servidor de nombres de example.com.

Esto es lo mismo que un alias para un .zshrc (y probablemente .bashrc):

# e.g. `checkdns google.com`
checkdns () { dig @$(dig @8.8.8.8 $1 ns +short | head -n1) $1 ANY +noall +answer; ping -c1 $1; }

Aquí está la salida para /.:

☀  checkdns slashdot.org                                                                                                dev
-->Server DNS Query

; <<>> DiG 9.10.3-P4-Ubuntu <<>> @ns1.dnsmadeeasy.com. slashdot.org ANY +noall +answer
; (2 servers found)
;; global options: +cmd
slashdot.org.       21600   IN  SOA ns0.dnsmadeeasy.com. hostmaster.slashdotmedia.com. 2016045603 14400 600 604800 300
slashdot.org.       86400   IN  NS  ns3.dnsmadeeasy.com.
slashdot.org.       86400   IN  NS  ns4.dnsmadeeasy.com.
slashdot.org.       86400   IN  NS  ns0.dnsmadeeasy.com.
slashdot.org.       86400   IN  NS  ns2.dnsmadeeasy.com.
slashdot.org.       86400   IN  NS  ns1.dnsmadeeasy.com.
slashdot.org.       3600    IN  MX  10 mx.sourceforge.net.
slashdot.org.       3600    IN  TXT "google-site-verification=mwj5KfwLNG8eetH4m5w1VEUAzUlHotrNwnprxNQN5Io"
slashdot.org.       3600    IN  TXT "v=spf1 include:servers.mcsv.net ip4:216.34.181.51 ?all"
slashdot.org.       300 IN  A   216.34.181.45
-->Local DNS Query
PING slashdot.org (216.34.181.45) 56(84) bytes of data.
64 bytes from slashdot.org (216.34.181.45): icmp_seq=1 ttl=242 time=33.0 ms

--- slashdot.org ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 33.026/33.026/33.026/0.000 ms

Esta solución es lo suficientemente complicada como para que no sea práctica de recordar, pero lo suficientemente simple como para que el problema no se solucione. dig no es mi especialidad - se aceptan mejoras :-)


Linux
  1. Cómo forzar a cp a sobrescribir sin confirmación

  2. ¿Cómo eliminar un prefijo de palabra usando grep?

  3. Cálculo del porcentaje redondeado en Shell Script sin usar bc

  4. Usar vim para forzar la edición de un archivo cuando lo abrió sin permisos

  5. ¿Cómo eliminar un archivo sin usar rm?

Cómo cambiar automáticamente a un directorio sin usar el comando Cd en Linux

Diferentes formas de enumerar los contenidos del directorio sin usar el comando ls

Cómo bloquear ataques de fuerza bruta SSH usando SSHGUARD

Cómo descargar paquetes usando APT sin instalarlos

Uso de W3 Total Cache en sitios en la nube

Explicación del comando Dig en Linux