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.
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
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.
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.
Tags dnsmasq