ห่วงโซ่ CNAME to CNAME อนุญาตหรือไม่


68

ใน DNS มีระเบียน CNAME ที่ชี้ไปยังระเบียน CNAME อื่นหรือไม่

เหตุผลที่เราต้องการสิ่งนี้คือเรามีชื่อโฮสต์ที่เราต้องการค้นหาถึงที่อยู่ IP ของคอมพิวเตอร์เซิร์ฟเวอร์เว็บของเรา เรายังมีคอมพิวเตอร์เว็บเซิร์ฟเวอร์อีกเครื่องที่สามารถเปิดใช้งานได้ในกรณีที่คอมพิวเตอร์เครื่องแรกจะตาย ในกรณีเช่นนี้เราจะต้องชี้ชื่อโฮสต์ไปยังที่อยู่ IP ของจุดยืนโดยคอมพิวเตอร์เซิร์ฟเวอร์ของเว็บ

น่าเสียดายที่ชื่อโฮสต์อยู่ในโดเมน DNS ซึ่งการเปลี่ยนแปลงใด ๆ อาจใช้เวลานานเนื่องจากการดำเนินการด้วยตนเองขึ้นอยู่กับ sysadmins อื่น ๆ แต่เรามีโดเมน DNS อื่นที่เราสามารถทำการเปลี่ยนแปลงได้อย่างรวดเร็ว การมีห่วงโซ่ CNAME to CNAME ดูเหมือนจะเป็นทางออกที่เป็นไปได้ แต่อนุญาตหรือไม่ เว็บเบราว์เซอร์จะเข้าใจหรือไม่?

คำตอบ:


81

จากRFC 1034 - ชื่อโดเมน - แนวคิดและสิ่งอำนวยความสะดวก :

ชื่อโดเมนใน RR ที่ชี้ไปที่ชื่ออื่นควรชี้ไปที่ชื่อหลักเสมอไม่ใช่ชื่อแทน วิธีนี้จะช่วยหลีกเลี่ยงการใช้ข้อมูลทางอ้อมเป็นพิเศษ ตัวอย่างเช่นที่อยู่ชื่อ RR สำหรับโฮสต์ด้านบนควรเป็น:

52.0.0.10.IN-ADDR.ARPA  IN      PTR     C.ISI.EDU

แทนที่จะชี้ไปที่ USC-ISIC.ARPA แน่นอนว่าด้วยหลักการความทนทานซอฟต์แวร์โดเมนไม่ควรล้มเหลวเมื่อนำเสนอด้วยเครือข่ายหรือลูป CNAME ควรติดตามเครือข่าย CNAME และ CNAME ลูปส่งสัญญาณเป็นข้อผิดพลาด

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


3
+1 สำหรับการอ้างอิง RFC
Alnitak

16
แม้ว่าฉันจะทำสิ่งนี้ตลอดเวลาข้อความข้างต้นไม่อยู่ในบริบท เหนือวรรคนี้มันอ่าน ..Domain names in RRs which point at another name should always point at the primary name and not the alias. This avoids extra indirections in accessing information.
Molomby

3
เครือข่าย Microsoft Azure ที่กล่าวถึงโดยMicrosoft , การผูกสาย CNAME เป็นสิ่งสำคัญที่จะต้องทำ AnyCast โหลดสมดุลสำหรับพวกเขา
Paul Lan

26

แน่นอนว่าเป็นไปได้

โดยทั่วไปจะไม่สนับสนุนเนื่องจากเหตุผลที่ชัดเจนว่าใช้ทรัพยากร DNS เพิ่มเติม ตัวอย่างเช่น:

foo   IN      CNAME  someserver.somehost.com.
bar   IN      CNAME  foo

การค้นหา 'แถบ' จะส่งผลให้ CNAME fooถูกสอบถามแล้วจึงsomeserver.somehost.com.ถูกสอบถามส่งผลให้มีการสอบถามเพิ่มเติมหนึ่งรายการ

สำหรับทุกองค์ประกอบในห่วงโซ่ที่คุณจะเพิ่มจะต้องมีการค้นหาอื่น

อีกเหตุผลหนึ่งที่ท้อแท้ก็คือเมื่อสร้างห่วงโซ่เช่นนี้โอกาสที่คุณจะสร้างลูป CNAMEก็เพิ่มขึ้น ควรตรวจพบสิ่งเหล่านี้โดยอัตโนมัติโดยเซิร์ฟเวอร์ DNS ปัจจุบัน แต่จะยังคงกำหนดภาระจำนวนมากบนเซิร์ฟเวอร์


5

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

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