DNS nameserver ถอยกลับได้อย่างไร


14

เรามีเซิร์ฟเวอร์ DNS สองตัวที่อยู่ในรายการ NS ของเรา คืนที่ผ่านมาหนึ่งในเซิร์ฟเวอร์ DNS ของเราลดลง ตามที่คาดไว้เซิร์ฟเวอร์ DNS บางตัวไม่ได้รับการแก้ไขชื่อโฮสต์ของเรา ฉันคิดว่านี่เป็นชั่วคราวและจะเริ่มทำงานเมื่อ TTL ของระเบียน NS ของเราจะหมดอายุ (1 ชั่วโมง)

อีกหนึ่งชั่วโมงต่อมาฉันยังได้รับ DNS หมดเวลาจากเดสก์ท็อปที่ใช้ Earthlink, Verizon และ OpenDNS severs ฉันทดสอบเพื่อดูว่าเซิร์ฟเวอร์ DNS อื่นกำลังตอบรับ:

dig @ns2.example.com www.example.com +short

สิ่งนี้ใช้ได้ผล

คำถามของฉัน:

  1. ไม่มีใครมีคำตอบว่าทำไมเซิร์ฟเวอร์ DNS อื่นไม่กดปุ่มเซิร์ฟเวอร์ DNS อื่นของเราแม้ว่าหลังจากที่ TTL หมดอายุแล้วหรือยัง
  2. เซิร์ฟเวอร์ DNS ต้องการเซิร์ฟเวอร์ DNS หลักของโดเมน (จากSOAระเบียน) หรือไม่
  3. มีอัลกอริธึมที่ใช้ในการเลือกเนมเซิร์ฟเวอร์จากระเบียน NS ที่มีอยู่หรือไม่ ฉันสมมติว่านี่เป็นการใช้งานเฉพาะ แต่อาจมีมาตรฐานบางอย่างที่ใช้ที่นี่

TTL ไม่มีส่วนเกี่ยวข้องอะไรเลย เนื่องจากไม่มีการเปลี่ยนแปลงบันทึกจึงไม่มีผลกระทบที่เกี่ยวข้อง
David Schwartz

ฉันเห็นแล้วตอนนี้ Doh
Belmin Fernandez

คำตอบ:


17

นี่คือการระคายเคืองที่โชคร้าย เซิร์ฟเวอร์ DNS หลายตัวควรเพิ่มความน่าเชื่อถือ แต่ในทางปฏิบัติบ่อยครั้งมีผลย้อนกลับ

ปัญหาคือไคลเอนต์รอเพียงเวลานานสำหรับการตอบสนองและเซิร์ฟเวอร์รอประมาณเวลาเดียวกัน สมมติว่าคุณมีเซิร์ฟเวอร์ DNS สองตัว A และ B บอกว่า A ทำงานได้และ B ล้มเหลว สิ่งนี้เกิดขึ้น:

  1. ไคลเอ็นต์เชื่อมต่อกับเนมเซิร์ฟเวอร์ Z และขอข้อมูล Z เลือก B และส่งแบบสอบถาม

  2. ไคลเอ็นต์หมดเวลาเนื่องจากเนมเซิร์ฟเวอร์ Z ไม่ตอบสนอง

  3. ลูกค้าลองชื่อเซิร์ฟเวอร์ Y. Y เลือก B และส่งแบบสอบถาม

  4. เซิร์ฟเวอร์ชื่อ Z หมดเวลาและลองใช้ A. ได้รับคำตอบที่ถูกต้อง แต่ลูกค้าไม่รออีกต่อไป

  5. ไคลเอ็นต์หมดเวลาเนื่องจากเนมเซิร์ฟเวอร์ Y ไม่ตอบสนอง

  6. ไคลเอ็นต์ยอมแพ้เนื่องจากเซิร์ฟเวอร์ชื่อทั้งสองไม่ตอบสนอง

  7. เซิร์ฟเวอร์ชื่อ Y หมดเวลาและลองใช้ A. ได้รับคำตอบที่ถูกต้อง แต่ลูกค้าไม่รออีกต่อไป

และไม่มีทางออกที่ดี ยิ่งคุณรอนานขึ้นเพื่อดูว่า nameserver ตอบกลับมานานเท่าใดคุณต้องรออีกต่อไปเพราะเซิร์ฟเวอร์ชื่อที่คุณรอจะรออีกต่อไป ปัญหาคือว่า Y และ Z ไม่ยอมแพ้ B เร็วพอ

โดยพื้นฐานแล้วหากเซิร์ฟเวอร์ชื่อใดของคุณไม่ทำงานลูกค้าบางรายจะผ่านโชคไม่ดีออกไปเพราะพวกเขาพยายามเฉพาะผู้ที่ไม่ดีเท่านั้น

ในด้านสว่างหากคุณมีเซิร์ฟเวอร์ชื่อสองตัวและเซิร์ฟเวอร์หนึ่งล้มเหลวเซิร์ฟเวอร์ชื่อประมาณ 75% จะได้รับคำตอบแทนที่จะเป็น 0%


ฉันเห็นสิ่งที่คุณหมายถึง จี๊ด ดังนั้นเนมเซิร์ฟเวอร์ของลูกค้า ( Z) จะไม่แคชเนมเซิร์ฟเวอร์ที่ใช้ล่าสุดที่ทำงานได้อย่างไร
Belmin Fernandez

1
เซิร์ฟเวอร์ชื่อบางตัวทำเช่นนั้นและบางครั้งก็ช่วยได้ มันมักจะขึ้นอยู่กับวิธีที่แม่นยำในการที่เซิร์ฟเวอร์ล้มเหลว คุณต้องจำไว้ว่านี่คือทั้งหมดที่อยู่ด้านบนของ UDP ดังนั้นความล้มเหลวในการรับการตอบกลับ (แม้หลังจากการส่งสัญญาณอีกครั้งหรือสองครั้ง) ไม่ได้พิสูจน์ว่ามีอะไรผิดปกติกับเนมเซิร์ฟเวอร์
David Schwartz

ฉันอ่าน DNS และ BIND (Paul Albitz และ Cricket Lui, O'Rielly p278) ที่เซิร์ฟเวอร์ Bind 8.2.3 เลือกเซิร์ฟเวอร์ที่ตอบสนองเร็วที่สุดจากรายชื่อผู้ส่งซึ่งหมายความว่าหากเซิร์ฟเวอร์ในรายการล้มเหลว จะลดลงโดยอัตโนมัติสวยมาก การโยง 9 ยังไม่ได้ใช้สิ่งนี้จะทำการสอบถามเซิร์ฟเวอร์ไปข้างหน้าตามลำดับรายการ มีใครรู้บ้างไหมว่าสิ่งนี้มีการเปลี่ยนแปลงหรือไม่?
Jaydee

เพื่อชี้แจงสำหรับผู้ที่มีประสบการณ์น้อยกว่าในการตั้งค่า DNS (ใช้เวลาพอสมควรที่จะเข้าใจสิ่งนี้) เซิร์ฟเวอร์ชื่อ DNS Z และ Y ในตัวอย่างนี้น่าจะเป็นเซิร์ฟเวอร์ชื่อแบบเรียกซ้ำโดยอ้างอิงจากเครือข่ายของลูกค้าเช่นเซิร์ฟเวอร์ DNS ที่ ISP ให้บริการ ให้กับลูกค้าผ่านทาง DHCP และปัญหาเกิดขึ้นเมื่อเซิร์ฟเวอร์เหล่านี้มีค่าหมดเวลานานกว่าจำแนกไคลเอ็นต์ DNS (เช่นระบบปฏิบัติการของอุปกรณ์.)
จอร์แดน Rieger

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