Wie lange speichert dnsmasq dns?

9

Ich habe die Manpage nachgeschlagen und konnte nicht feststellen, wie lange dnsmasq eine DNS zwischenspeichert. Was ist die Regel für Caching und Ablauf?

Ich habe ein Problem, dass das Senden einer Anfrage an einen externen Dienst manchmal mehr als 5 oder 10 Sekunden für die Namenssuche dauert. Ich könnte die IP des externen Dienstes in / etc / hosts speichern, habe aber Angst vor einer IP-Änderung. Die Installation von Dnsmasq verbessert die Namenssuche, aber die langsame Namenssuche erfolgt immer noch mit geringerer Häufigkeit.

Eine Lösung besteht darin, einen einfachen Ping im Cron-Job einzurichten, aber ich muss zuerst die Ablaufzeit herausfinden.

Vielen Dank.

AKTUALISIEREN

Dig-Ausgabe hinzugefügt

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

Die vorherige Dig-Ausgabe enthält TTL als 0, was irreführend ist. Ich habe eine weitere Dig-Ausgabe gepostet.

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

Antworten:

9

DNSmasq verwendet den DNS-TTL-Wert zum Bestimmen des Caching-Zeitraums. Mit dem digBefehl können Sie die aktuelle TTL Ihres DNS-Servers für diese Domäne abfragen.

Tero Kilkanen
quelle
Meinen Sie damit, dass dnsmasq DNS nur innerhalb des TTL-Zeitraums zwischenspeichert? Ich habe meine Frage mit der Dig-Ausgabe aktualisiert.
Perlwle
1
Ja, nur die TTL-Periode wird zum Zwischenspeichern verwendet. Und Ihre TTL ist 0, sodass DNSmasq die Abfrage immer an den autorisierenden DNS-Server sendet.
Tero Kilkanen
Wie im Handbuch angegeben, können Sie jedoch --max-cache-ttl verwenden , um eine niedrigere TTL für zwischengespeicherte Werte zu erzwingen (habe es nicht selbst getestet).
sam_pan_mariusz
@TeroKilkanen Query time: 0msecbedeutet einen Cache-Treffer für dnsmasq. aber wie lange wird dnsmasq die DNS-Aufzeichnung im Cache halten?
Perlwle
@sam_pan_mariusz Ich denke du meintest die --max_ttlFlagge? Ich möchte lieber immer die richtige IP erhalten, als die IP-Änderung des externen Dienstes zu verpassen.
Perlwle
4

Die Option, die Sie für dnsmasq festlegen müssen, lautet --min-cache-ttl: Der Wert wird in Sekunden angegeben.

Entsprechend der Dig-Ausgabe ist die TTL 0, wenn Sie dies beispielsweise einstellen, --min-cache-ttl=600beträgt der TTL-Wert, der von dig zurückgegeben wird, 600. Die TTL für meine Position api.mch.weixin.qq.comist 600, also setzen Sie sie selbst auf 600 Sekunden sollte einigermaßen sicher sein, um zu vermeiden, dass IP-Änderungen fehlen. (Ich vermute, Sie befinden sich in China.)

Dadurch werden alle DNS-Einträge 10 Minuten lang als gültig angesehen.

Weitere Informationen zur Einführung dieser Funktion finden Sie in der Nachricht zur Mailingliste von dnsmasq .

Phizes
quelle
Ich werde alle 10 Minuten oder so pingen und hoffe, dass dies die Verzögerung der DNS-Suche beheben wird. Wie im vorherigen Kommentar erwähnt, verwende ich eine ältere Version, die diese Einstellung nicht hat. Korrigieren Sie mich, wenn ich falsch liege. Wenn es jedoch verfügbar ist, entspricht die Einstellung auf 600 der TTL des externen Dienstes. Das macht doch keinen Unterschied, oder?
Perlwle
1
@perlwle Nein, das würde es nicht. Ich hatte angenommen, dass Sie immer eine TTL von Null erhalten haben. Eine Erhöhung auf 1200 würde helfen. Ich würde vorschlagen, sich mit DNSCrypt zu befassen . Ohne weitere Informationen darüber, wie lange Suchvorgänge dauern, wie schnell Ihre Verbindung ist und welche Auswirkungen Dritte haben, kann ich keine klarere Antwort geben. Wenn Sie einen leistungsstärkeren DNS-Cache / Resolver benötigen, würde ich den grundlegenden Teil dieses Tutorials über Unbound empfehlen. Er funktioniert unter Ubuntu 12.04 perfekt aus den Standard-Repositorys. (Beachten Sie, dass Google DNS DNSSEC jetzt ordnungsgemäß verarbeitet.)
Preise
1
Beachten Sie auch dnsmasq 'local-ttl' für diese Host-Dateieinträge
KCD