Quanto tempo o dnsmasq armazena em cache o DNS?

9

Procurei na página do manual e não consegui descobrir quanto tempo o dnsmasq armazena em cache um dns. qual é a regra para armazenamento em cache e expiração?

Estou com um problema que solicita o envio para um serviço externo às vezes leva mais de 5 ou 10 segundos para a namelookup. Eu poderia salvar o ip do serviço externo em / etc / hosts, mas tenho medo de alterar o ip. Instalar o Dnsmasq aprimora a pesquisa de nome, mas a lenta busca de nome ainda acontece com menos frequência.

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

obrigado.

ATUALIZAR

saída dig adicionada

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

ATUALIZAÇÃO 2

a saída dig anterior contém TTL como 0, o que é enganoso. Eu publiquei 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
perlwle
fonte

Respostas:

9

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

Tero Kilkanen
fonte
Você quer dizer que o dnsmasq apenas armazena em cache o DNS dentro do período TTL? Atualizei minha pergunta com a saída dig.
perlwle
1
Sim, apenas o período TTL é usado para armazenamento em cache. E seu TTL é 0, então o DNSmasq sempre fará a consulta no servidor DNS autoritário.
Tero Kilkanen 17/07/2015
No entanto, conforme declarado no manual, você pode usar --max-cache-ttl para forçar TTL mais baixo para valores em cache (não testei por conta própria).
21135 Sam_pan_mariusz
@TeroKilkanen Query time: 0msecsignifica uma ocorrência de cache no dnsmasq. mas por quanto tempo o dnsmasq manterá o registro de DNS no cache?
perlwle
@sam_pan_mariusz Acho que você quis dizer a --max_ttlbandeira? Prefiro sempre obter o IP correto do que perder a alteração do IP do serviço externo.
perlwle
4

A opção que você precisará definir para o dnsmasq é que --min-cache-ttlo valor está em segundos.

De acordo com a saída de dig, o TTL é 0, se você definir como, digamos --min-cache-ttl=600, o valor TTL que será retornado por dig será 600. O TTL api.mch.weixin.qq.comde onde eu estou é 600, então configure-o para 600 segundos você mesmo deve ser razoavelmente seguro para evitar a perda de quaisquer alterações de IP. (Acho que você está localizado na China.)

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

Veja a mensagem da lista de endereços dnsmasq detalhando a introdução desse recurso.

Phizes
fonte
Vou fazer ping a cada 10 minutos mais ou menos e espero que isso corrija o atraso da pesquisa de DNS. Como mencionado no comentário anterior, estou usando uma versão mais antiga que não possui essa configuração. Corrija-me se estiver errado. No entanto, se estiver disponível, configurá-lo para 600 será o mesmo que o serviço externo TTL. Isso não fará nenhuma diferença, certo?
perlwle
1
@perlwle Não, não, eu tinha assumido que você sempre recebia um TTL de zero, aumentar para 1200 ajudaria. Eu sugeriria olhar para o DNSCrypt . Sem mais informações sobre quanto tempo as pesquisas demoram, sua velocidade de conexão e os efeitos de terceiros, não posso dar uma resposta mais clara. Se você precisa de um mais poderoso do cache DNS / resolver, eu recomendaria a parte básica Neste tutorial sobre Unbound, ele funciona no Ubuntu 12.04 perfeitamente bem nos repositórios padrão. (Observe que o DNS do Google lida com DNSSEC corretamente agora.)
Phizes
1
Observe também o dnsmasq 'local-ttl' para as entradas do arquivo host
KCD