TTL ในระเบียน CNAME หมายถึงอะไร


22

เนื่องจากมีกี่เซิร์ฟเวอร์ที่เกี่ยวข้องกับเครือข่ายของฉันฉันจึงลำบากในการจัดระเบียบทั้งหมด บางคนไม่มี IP แบบคงที่ดังนั้นฉันคิดว่าอาจดีถ้าฉันสร้างโดเมน config.mydomain.com ในโดเมนนี้ฉันสามารถเก็บระเบียน A และ IP สำหรับเซิร์ฟเวอร์แต่ละเครื่องได้ นี่คือวิธีที่ฉันตั้งค่า:

s1.config.mydomain.com.     A   10.0.0.1    #ttl 60
s2.config.mydomain.com.     A   10.0.0.2    #ttl 60
s3.config.mydomain.com.     A   10.0.0.3    #ttl 60
# etc

แต่ละระเบียนเหล่านั้นมี TTL ที่ 60 ในกรณีที่ฉันต้องการเปลี่ยน IP อย่างรวดเร็ว แต่ฉันไม่ต้องการให้ลูกค้าเชื่อมต่อทุก ๆ 60 วินาทีเพื่ออัปเดต ตอนนี้สมมติว่าฉันตั้งค่าโดเมนของฉันเพื่อใช้งานเช่นนี้

mydomain.com.           CNAME   s2.config.mydomain.com.   #ttl 3600
mail.mydomain.com.      CNAME   s2.config.mydomain.com.   #ttl 10800
svn.mydomain.com.       CNAME   ns1.config.mydomain.com.  #ttl 21600

TTL สำหรับ CNAMES นั้นสูงขึ้นดังนั้นสมมุติว่าฉันไปที่ mydomain.com มันถามเซิร์ฟเวอร์ DNS ของฉันสำหรับ IP ของmydomain.comและเซิร์ฟเวอร์ของฉันกลับมาCNAME s2.config.mydomain.com.จากนั้นก็ถามเซิร์ฟเวอร์ของฉันสำหรับ IP ของs2.config.mydomain.comและเซิร์ฟเวอร์ของฉันกลับ10.0.0.1มา

มันจะCNAME s2.config.mydomain.comบันทึกแคชเป็นเวลา 3600 วินาทีและA 10.0.0.1บันทึกเป็นเวลา 60 วินาทีหรือไม่? หมายความว่าทุก ๆ 60 วินาทีมันจะยังคงถามเซิร์ฟเวอร์ของฉันสำหรับที่อยู่ IP หรือไม่

หรือจะแคชดูCNAME s2.config.mydomain.com, รับA 10.0.0.1และแคชทั้งสองเป็นเวลา 3600 วินาที

หากเป็นครั้งแรกฉันอาจต้องหาวิธีอื่นในการจัดการพวกเขาดังนั้นฉันหวังว่ามันจะเป็นครั้งที่สอง แต่ฉันไม่แน่ใจ คุณรู้วิธีที่ดีกว่าในการติดตามพวกเขาหรือไม่?


คุณสามารถกำหนดให้ชัดเจนว่าคุณหมายถึงใครโดย 'จะเป็นแคช' หรือไม่ น่าเสียดายที่มีการใช้งานตัวแก้ไขที่แตกต่างกันมากมายฉันจะไม่แปลกใจเลยถ้าคุณพบว่าพฤติกรรมทั้งสองนี้เป็นเรื่องจริง
Zoredache

@zoredache ฉันคิดว่า @Ryan ต้องการทราบอะไร: dns resolvers แคช CNAME ตามปกติหรือผลลัพธ์ของการค้นหา CNAME ที่แก้ไขแล้วหรือไม่
coredump

@coredump ใช่นั่นคือสิ่งที่ฉันหมายถึง
Ryan Pendleton

คำตอบ:


10

ตามข้อความนี้ในรายชื่อผู้รับจดหมายของISC CNAME และระเบียนที่ชี้ไปยังแคชโดยการแก้ไขเซิร์ฟเวอร์ชื่อ ( การแก้ไขเซิร์ฟเวอร์ชื่อที่มีเหตุผล ) สิ่งนี้ทำขึ้นเพื่อให้ตัวแก้ปัญหาสามารถปรับกระบวนการแก้ไข / แคชให้เหมาะสมที่สุดในฝั่งไคลเอ็นต์

ดังนั้นหาก CNAME TTL นั้นถูกต้อง แต่ A ที่ชี้ไปที่นั้นไม่ถูกต้องมันจะทำซ้ำการค้นหาจนถึงระเบียนที่ชี้ไม่ใช่ CNAME ดั้งเดิม (จนกว่า CNAME TTL จะขึ้นเช่นกัน)


ดังนั้นถ้าฉันเข้าใจถูกต้องระเบียน CNAME จะถูกร้องขอหลังจากหมดอายุ TTL และบันทึก A ที่ชี้ไปยังจะถูกร้องขอด้วย แต่หลังจากที่ TTL หมดอายุแล้ว
Ryan Pendleton

1
ใช่. นั่นหมายความว่า TTL ใช้งานได้กับระเบียน CNAME เหมือนกับระเบียนอื่น ๆ
coredump

3

ระเบียน CNAME ทั้งหมดของคุณจะถูกแคชไว้สูงสุด 3600, 10800 และ 21600 วินาที

ระเบียน A ได้รับการจัดการอย่างอิสระและจะถูกสอบถามอีกครั้งทุก ๆ 60 วินาที

อย่างไรก็ตามในกรณี CNAME หมดอายุบันทึก A ควรได้รับการอัปเดตพร้อมกัน

ระเบียน CNAME มี gotchas หลายคำอธิบายใน RFC 1912 mydomain.com ไม่สามารถเป็น CNAME ได้เนื่องจากคุณมีการใช้ระเบียน SOA และ NS: มันเป็นตัวแทนของ com โดเมน.

คำถามของคุณเก่า ปัจจุบันผู้ให้บริการ DNS บางรายไม่ได้ติดตาม RFC โดยให้ผู้ใช้ใส่ CNAMEs ใน SOA (พวกเขาเรียกว่าโดเมน APEX) ใช้ความเสี่ยงของคุณเองอีกครั้ง

สุดท้าย แต่ไม่ท้ายสุดการใส่ค่า TTL ที่สูงขึ้นบน CNAME ของคุณจะช่วยได้เมื่อลูกค้าขอบันทึก IPv6: AAAA อย่างน้อยการแมป CNAME จะยังคงอยู่ในแคชและจะมีการถามเฉพาะที่อยู่ IP สองครั้ง

กล่าวโดยย่อ: การใส่ TTL ที่สูงขึ้นบน CNAME จะลดขนาดของการตอบกลับที่ลูกค้าของคุณเห็น มันควรช่วยเซิร์ฟเวอร์ตัวแก้ไขด้วย อย่างไรก็ตามจำนวนคำขอต่อวินาทีควรจะเท่ากัน

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