Berapa lama dnsmasq cache dns?

9

Saya mencari halaman manual dan tidak dapat menemukan berapa lama dnsmasq menyimpan sebuah dns. apa aturan untuk caching dan kedaluwarsa?

Saya mengalami masalah yang meminta kirim ke layanan eksternal terkadang membutuhkan waktu lebih dari 5 atau 10 detik untuk namelookup. Saya bisa menyimpan ip layanan eksternal ke / etc / hosts tapi saya takut perubahan ip. Menginstal Dnsmasq meningkatkan pencarian nama tetapi namelookup lambat masih terjadi dengan frekuensi yang lebih sedikit.

Salah satu solusinya adalah mengatur ping sederhana di pekerjaan cron tapi saya harus mencari tahu waktu kedaluwarsa terlebih dahulu.

Terima kasih.

MEMPERBARUI

menambahkan hasil penggalian

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

PEMBARUAN 2

output penggalian sebelumnya berisi TTL sebagai 0 yang menyesatkan. Saya telah memposting keluaran penggalian lainnya.

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

Jawaban:

9

DNSmasq menggunakan nilai DNS TTL untuk menentukan periode caching. Anda dapat menggunakan digperintah untuk menanyakan TTL server DNS Anda saat ini untuk domain itu.

Tero Kilkanen
sumber
Apakah maksud Anda bahwa dnsmasq hanya menyimpan dns dalam periode TTL? Saya memperbarui pertanyaan saya dengan hasil penggalian.
perlwle
1
Ya, hanya periode TTL yang digunakan untuk caching. Dan TTL Anda adalah 0, jadi DNSmasq akan selalu membuat kueri ke server DNS otoritatif.
Tero Kilkanen
Namun, seperti yang dinyatakan dalam manual, Anda dapat menggunakan --max-cache-ttl untuk memaksa TTL yang lebih rendah untuk nilai yang di-cache (belum mengujinya sendiri).
sam_pan_mariusz
@TeroKilkanen Query time: 0msecberarti cache hit ke dnsmasq. tapi berapa lama dnsmasq akan menyimpan catatan dns dalam cache?
perlwle
@sam_pan_mariusz Saya pikir Anda maksud --max_ttlbendera? Saya lebih suka untuk selalu mendapatkan IP yang tepat daripada melewatkan perubahan IP layanan eksternal.
perlwle
4

Opsi yang Anda perlu atur untuk dnsmasq adalah --min-cache-ttl , nilainya dalam detik.

Menurut output penggalian, TTL adalah 0, jika Anda mengatur ini menjadi, katakanlah --min-cache-ttl=600, maka nilai TTL yang akan dikembalikan oleh dig akan menjadi 600. TTL untukapi.mch.weixin.qq.com dari tempat saya adalah 600, jadi atur sendiri menjadi 600 detik harus cukup aman dalam menghindari kehilangan perubahan IP. (Saya kira Anda berada di Cina.)

Ini akan menyebabkan semua catatan DNS dianggap valid selama 10 menit.

Lihat pesan milis dnsmasq yang merinci pengenalan fitur ini.

Phize
sumber
Saya akan melakukan ping setiap 10 menit atau lebih dan mudah-mudahan itu akan memperbaiki dns lookup lag. Seperti disebutkan dalam komentar sebelumnya, saya menggunakan versi yang lebih lama yang tidak memiliki pengaturan itu. Perbaiki saya jika saya salah .. Namun, jika tersedia, pengaturan ke 600 akan sama dengan layanan eksternal TTL. Itu tidak akan membuat perbedaan, kan?
perlwle
1
@perlwle Tidak, tidak akan, saya berasumsi Anda selalu menerima TTL nol, meningkatkannya menjadi 1200 akan membantu. Saya sarankan melihat ke DNSCrypt . Tanpa informasi lebih lanjut tentang berapa lama pencarian, kecepatan koneksi Anda, dan efek dari pihak ke-3, saya tidak bisa memberikan jawaban yang lebih jelas. Jika Anda memerlukan cache / resolver DNS yang lebih kuat, saya akan merekomendasikan bagian dasar dari tutorial ini tentang Unbound, ia berfungsi di Ubuntu 12,04 dengan sangat baik dari repositori standar. (Perhatikan bahwa Google DNS sekarang menangani DNSSEC dengan benar.)
Phizes
1
Perhatikan juga dnsmasq 'local-ttl' untuk entri file host tersebut
KCD