แคช dnsmasq dns นานเท่าไหร่


9

ฉันค้นหาหน้าคนและไม่สามารถค้นหาว่า dnsmasq แคชได้นานเท่าใด กฎสำหรับการแคชและการหมดอายุคืออะไร

ฉันมีปัญหาที่บางครั้งการร้องขอส่งไปยังบริการภายนอกใช้เวลานานกว่า 5 หรือ 10 วินาทีสำหรับ namelookup ฉันสามารถบันทึก IP ของบริการภายนอกไปยัง / etc / hosts ได้ แต่ฉันกลัวการเปลี่ยน ip การติดตั้ง Dnsmasq ช่วยปรับปรุงการค้นหาชื่อ แต่ namelookup ช้ายังคงเกิดขึ้นด้วยความถี่ที่น้อยลง

ทางออกหนึ่งคือการตั้งค่า ping อย่างง่ายในงาน cron แต่ฉันต้องค้นหาเวลาหมดอายุก่อน

ขอบคุณ

UPDATE

เพิ่มเอาท์พุทขุด

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

เอาต์พุตขุดก่อนหน้ามี TTL เป็น 0 ซึ่งทำให้เข้าใจผิด ฉันได้โพสต์เอาท์พุทขุดอื่น

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

DNSmasq ใช้ค่า DNS TTL เพื่อกำหนดระยะเวลาการแคช คุณสามารถใช้digคำสั่งเพื่อสอบถาม TTL ปัจจุบันของเซิร์ฟเวอร์ DNS ของคุณสำหรับโดเมนนั้น


คุณหมายความว่า dnsmasq แคชเฉพาะ dns ภายในระยะเวลา TTL หรือไม่ ฉันอัพเดตคำถามของฉันด้วยเอาต์พุตขุด
perlwle

1
ใช่ใช้เฉพาะช่วงเวลา TTL สำหรับการแคช และ TTL ของคุณคือ 0 ดังนั้น DNSmasq จะทำการสอบถามไปยังเซิร์ฟเวอร์ DNS ที่มีสิทธิ์เสมอ
Tero Kilkanen

อย่างไรก็ตามตามที่ระบุไว้ในคู่มือคุณสามารถใช้--max-cache-ttlเพื่อบังคับ TTL ที่ต่ำกว่าสำหรับค่าแคช (ยังไม่ได้ทดสอบด้วยตนเอง)
sam_pan_mariusz

@TeroKilkanen Query time: 0msecหมายถึงการแคชเพื่อ dnsmasq แต่นานแค่ไหน dnsmasq จะเก็บบันทึก DNS ในแคช?
perlwle

@sam_pan_mariusz ฉันคิดว่าคุณหมายถึงการ--max_ttlตั้งค่าสถานะ? ฉันต้องการรับ IP ที่ถูกต้องมากกว่าที่จะพลาดการเปลี่ยนแปลง IP ของบริการภายนอก
perlwle

4

ตัวเลือกที่คุณจะต้องตั้งค่าสำหรับ dnsmasq คือ--min-cache-ttlค่าเป็นวินาที

ตามที่ขุดเอาท์พุท, TTL คือ 0, ถ้าคุณตั้งค่านี้เป็น, พูด--min-cache-ttl=600, แล้วค่า TTL ที่จะถูกส่งกลับโดยขุดจะเป็น 600. TTL สำหรับapi.mch.weixin.qq.comที่ที่ฉันอยู่คือ 600, ดังนั้นให้ตั้งค่าเป็น 600 วินาทีด้วยตัวคุณเอง ควรมีเหตุผลที่ปลอดภัยในการหลีกเลี่ยงการเปลี่ยนแปลง IP ที่ขาดหายไป (ฉันเดาว่าคุณอยู่ที่ประเทศจีน)

ซึ่งจะทำให้ระเบียน DNS ทั้งหมดได้รับการพิจารณาว่าถูกต้องเป็นเวลา 10 นาที

ดูข้อความรายชื่อผู้รับจดหมาย dnsmasq ที่มีรายละเอียดเกี่ยวกับการแนะนำคุณสมบัตินี้


ฉันจะ ping ทุก 10 นาทีหรือมากกว่านั้นและหวังว่าจะแก้ไขความล่าช้าในการค้นหา dns ดังที่ได้กล่าวไว้ในความคิดเห็นก่อนหน้านี้ฉันใช้รุ่นเก่ากว่าซึ่งไม่มีการตั้งค่านั้น แก้ไขให้ถูกต้องหากฉันผิด .. อย่างไรก็ตามหากมีการตั้งค่าเป็น 600 จะเหมือนกันกับ TTL บริการภายนอก นั่นจะไม่สร้างความแตกต่างใช่มั้ย
perlwle

1
@perlwle ไม่ฉันไม่คิดว่าคุณจะได้รับ TTL เป็นศูนย์เสมอและการเพิ่มเป็น 1200 จะช่วยได้ ฉันขอแนะนำให้มองเข้าไปในDNSCrypt หากไม่มีข้อมูลเพิ่มเติมเกี่ยวกับการค้นหาใช้เวลานานเท่าใดความเร็วในการเชื่อมต่อของคุณและเอฟเฟกต์ของบุคคลที่สามฉันไม่สามารถให้คำตอบที่ชัดเจนยิ่งขึ้น หากคุณต้องการแคช DNS / ตัวแก้ไขที่มีประสิทธิภาพยิ่งขึ้นฉันขอแนะนำส่วนพื้นฐานของบทช่วยสอนเกี่ยวกับ Unbound มันสามารถทำงานบน Ubuntu 12.04 ได้อย่างสมบูรณ์แบบจากที่เก็บมาตรฐาน (โปรดทราบว่า Google DNS จัดการ DNSSEC ได้อย่างถูกต้องแล้ว)
Phizes

1
นอกจากนี้โปรดสังเกต dnsmasq 'local-ttl' สำหรับรายการโฮสต์ไฟล์
KCD
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.