¿Cuánto dura dnsmasq cache dns?

9

Busqué la página de manual y no pude encontrar cuánto tiempo dnsmasq almacena en caché un dns. ¿Cuál es la regla para el almacenamiento en caché y la caducidad?

Tengo un problema por el cual la solicitud de envío a un servicio externo a veces demora más de 5 o 10 segundos para buscar nombres. Podría guardar la dirección IP del servicio externo en / etc / hosts pero tengo miedo de cambiar la dirección IP. La instalación de Dnsmasq mejora la búsqueda de nombres, pero la búsqueda de nombres lenta aún ocurre con menos frecuencia.

Una solución es configurar un ping simple en el trabajo cron, pero primero necesito averiguar el tiempo de vencimiento.

Gracias.

ACTUALIZAR

salida de excavación agregada

; <<>> DiG 9.8.1-P1 <<>> api.mch.weixin.qq.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45012
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;api.mch.weixin.qq.com.             IN      A

;; ANSWER SECTION:
api.mch.weixin.qq.com.      0       IN      A       140.207.69.102

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Jul 17 19:24:36 2015
;; MSG SIZE  rcvd: 55

ACTUALIZACIÓN 2

la salida de excavación anterior contiene TTL como 0, lo cual es engañoso. He publicado otra salida de excavación.

; <<>> DiG 9.8.1-P1 <<>> api.mch.weixin.qq.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60900
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;api.mch.weixin.qq.com.             IN      A

;; ANSWER SECTION:
api.mch.weixin.qq.com.      181     IN      CNAME   forward.qq.com.
forward.qq.com.             181     IN      A       101.226.90.149
forward.qq.com.             181     IN      A       101.226.129.200

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Jul 21 12:01:54 2015
;; MSG SIZE  rcvd: 99
perlwle
fuente

Respuestas:

9

DNSmasq utiliza el valor DNS TTL para determinar el período de almacenamiento en caché. Puede usar el digcomando para consultar el TTL actual de su servidor DNS para ese dominio.

Tero Kilkanen
fuente
¿Quiere decir que dnsmasq solo almacena en caché dns dentro del período TTL? Actualicé mi pregunta con la salida de excavación.
perlwle
1
Sí, solo se utiliza el período TTL para el almacenamiento en caché. Y su TTL es 0, por lo que DNSmasq siempre realizará la consulta al servidor DNS automático.
Tero Kilkanen
Sin embargo, como se indica en el manual, puede usar --max-cache-ttl para forzar un TTL más bajo para los valores en caché (no lo he probado yo mismo).
sam_pan_mariusz
@TeroKilkanen Query time: 0msecsignifica un golpe de caché a dnsmasq. pero ¿cuánto tiempo dnsmasq mantendrá el registro dns en caché?
perlwle
@sam_pan_mariusz ¿Creo que te refieres a la --max_ttlbandera? Prefiero obtener siempre la IP correcta que perder el cambio de IP del servicio externo.
perlwle
4

La opción que necesitará establecer para dnsmasq es que --min-cache-ttlel valor está en segundos.

De acuerdo con la salida de excavación, el TTL es 0, si configura esto en, digamos --min-cache-ttl=600, entonces el valor TTL que será devuelto por dig será 600. El TTL api.mch.weixin.qq.comde donde estoy es 600, así que configúrelo usted mismo en 600 segundos. debe ser razonablemente seguro para evitar perder cualquier cambio de IP. (Supongo que te encuentras en China).

Esto hará que todos los registros DNS se consideren válidos durante 10 minutos.

Consulte el mensaje de la lista de correo dnsmasq que detalla la introducción de esta función.

Phizes
fuente
Voy a hacer ping cada 10 minutos más o menos y espero que eso solucione el retraso de búsqueda de dns. Como se mencionó en el comentario anterior, estoy usando una versión anterior que no tiene esa configuración. Corrígeme si me equivoco. Sin embargo, si está disponible, establecerlo en 600 será lo mismo que el servicio externo TTL. Eso no hará ninguna diferencia, ¿verdad?
perlwle
1
@perlwle No, no lo haría, supuse que siempre recibías un TTL de cero, y aumentarlo a 1200 ayudaría. Sugeriría buscar en DNSCrypt . Sin más información sobre cuánto tiempo llevan las búsquedas, la velocidad de conexión y los efectos de terceros, no puedo dar una respuesta más clara. Si necesita una resolución / caché DNS más potente, recomendaría la parte básica de este tutorial sobre Unbound, funciona perfectamente en Ubuntu 12.04 desde los repositorios estándar. (Tenga en cuenta que Google DNS maneja adecuadamente DNSSEC ahora.)
Phizes
1
También tenga en cuenta dnsmasq 'local-ttl' para esas entradas de archivo de host
KCD