web-dev-qa-db-ja.com

dnsmasqはどれくらいの期間DNSをキャッシュしますか?

私はマニュアルページを調べましたが、dnsmasqがDNSをキャッシュする時間を見つけることができませんでした。キャッシュと有効期限のルールは何ですか?

外部サービスへのリクエスト送信がnamelookupに5秒または10秒以上かかることがあるという問題があります。外部サービスのIPを/ etc/hostsに保存できますが、IPの変更が怖いです。 Dnsmasqをインストールすると、名前のルックアップが改善されますが、遅い名前のルックアップはまだ少ない頻度で発生します。

1つの解決策は、cronジョブで単純なpingをセットアップすることですが、最初に有効期限を確認する必要があります。

ありがとう。

[〜#〜]更新[〜#〜]

追加されたDig出力

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

更新2

以前のDig出力にはTTLとして0が含まれているため、誤解を招く可能性があります。別のDig出力を投稿しました。

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

DNSmasqは、DNS TTL値を使用して、キャッシュ期間を決定します。Digコマンドを使用して、DNSサーバーの現在のTTL=そのドメイン。

9
Tero Kilkanen

Dnsmasqに設定する必要があるオプションは--min-cache-ttlで、値は秒単位です。

Digの出力によると、TTLは0です。これを--min-cache-ttl=600に設定すると、返されるTTL値Digによって600になります。TTL for api.mch.weixin.qq.com from I where]は600なので、自分で600秒に設定すると、IPの変更を見逃さないようにするのにかなり安全です。(Iあなたは中国にいると思います)

これにより、すべてのDNSレコードが10分間有効と見なされます。

この機能の導入の詳細については、dnsmasq メーリングリストメッセージ を参照してください。

4
Phizes