เซิร์ฟเวอร์ของฉันยังคงถามคำถาม DNS ที่คล้ายกันกับ 8.8.8.8 และมีค่าใช้จ่ายประมาณ 30 มิลลิวินาทีทุกครั้ง เพื่อให้ฉันได้ติดตั้งเซิร์ฟเวอร์ Bind และส่งต่อคำขอ DNS ทั้งหมดไปที่ 8.8.8.8 ดังนี้:
โซน "." ใน {
พิมพ์ไปข้างหน้า
ไปข้างหน้าก่อน
ผู้ส่งต่อ { 8.8.8.8; };
};
ทุกอย่างใช้งานได้ แต่ฉันมีปัญหากับการแคช
เป้าหมายของฉันคือการแคชคำตอบของข้อความค้นหาเช่น 1 ชั่วโมง
สถานการณ์ที่ต้องการ:
- สมมติว่าเซิร์ฟเวอร์ส่งแบบสอบถาม DNS สำหรับ google.com
-my bind server ส่งต่อไปยัง 8.8.8.8 และส่งคืนการตอบกลับและแคช
- เซิร์ฟเวอร์เดียวกันหรือเซิร์ฟเวอร์อื่นส่งคำขอ DNS ไปที่ google.com ใน 1 ชั่วโมง
- เวลานี้ผูกเซิร์ฟเวอร์ DNS ไม่ส่งต่อไปยัง 8.8.8.8 แทน
ส่งคืนคำตอบจากแคชของตัวเอง ด้วยวิธีนี้เซิร์ฟเวอร์ของฉันจะไม่เสียเวลาไป 8.8.8.8 ครั้งแล้วครั้งเล่า
สถานการณ์ปัจจุบัน:
- แต่ละเซิร์ฟเวอร์ได้รับการตอบกลับภายใน 30ms ในแบบสอบถามแรก
-เมื่อฉันส่งคำถามอีกครั้ง มันจะส่งคืนคำตอบ 0 ms มันอาจจะกลับมาจากแคชในเครื่องบนเซิร์ฟเวอร์
-แต่หลังจากผ่านไป 1-2 นาที เมื่อฉันส่งข้อความค้นหาจากเซิร์ฟเวอร์เดียวกัน การตอบกลับยังคงเกิน 30 มิลลิวินาที
- นอกจากนี้ ถ้าฉันส่งข้อความค้นหา DNS เดียวกัน (สมมติว่าเป็น google.com) จากเซิร์ฟเวอร์ที่แตกต่างกัน 4 เครื่องในวินาทีเดียวกัน เซิร์ฟเวอร์ทั้งหมดยังคงส่งต่อไปยัง 8.8.8.8 และคำตอบมาจากเซิร์ฟเวอร์ DNS ระยะไกล ไม่ใช่แคชในเครื่องของฉัน