Quanto tempo o dnsmasq cache dns?

7

Eu procurei na página do manual e não consegui descobrir quanto tempo o dnsmasq armazenava um dns em cache. Qual é a regra para cache e expiração?

Estou tendo um problema que a solicitação de envio para um serviço externo às vezes leva de 5 a 10 segundos para o namelookup. Eu poderia salvar o serviço externo ip para / etc / hosts, mas estou com medo de mudar de ip. Instalar o Dnsmasq melhora a pesquisa de nomes, mas o namelookup lento ainda acontece com menos frequência.

Uma solução é configurar um simples ping no cron job, mas eu preciso descobrir o tempo de expiração primeiro.

obrigado.

UPDATE

adicionou saída de escavação

; <<>> 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

UPDATE 2

a saída de escavação anterior contém TTL como 0, o que é enganador. Eu postei outra saída de escavação.

; <<>> 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
    
por perlwle 17.07.2015 / 13:11

2 respostas

8

O DNSmasq usa o valor TTL do DNS para determinar o período de armazenamento em cache. Você pode usar o comando dig para consultar o TTL atual do seu servidor DNS para esse domínio.

    
por 17.07.2015 / 13:17
4

A opção que você precisa definir para dnsmasq é --min-cache-ttl , o valor é em segundos.

De acordo com a saída da escavação, o TTL é 0, se você definir isso para, digamos --min-cache-ttl=600 , então o valor TTL que será retornado pela escavação será 600. O TTL para api.mch.weixin.qq.com de onde estou é 600, então configurá-lo para 600 segundos deve ser razoavelmente seguro para evitar a perda de qualquer alteração de IP. (Eu estou supondo que você está localizado na China.)

Isso fará com que todos os registros DNS sejam considerados válidos por 10 minutos.

Veja a mensagem dnsmasq mailing list detalhando a introdução deste recurso.

    
por 17.07.2015 / 22:47

Tags