นี่เป็นคำถามที่ยอมรับได้เกี่ยวกับ CNAMEs ที่ apices (หรือ root) ของโซน
มันเป็นความรู้ทั่วไปที่CNAME
บันทึกไว้ที่ปลายสุดของโดเมนเป็นการฝึกฝนที่ต้องห้าม
ตัวอย่าง:
example.com. IN CNAME ithurts.example.net.
ในซอฟต์แวร์เนมเซิร์ฟเวอร์สถานการณ์กรณีที่ดีที่สุดอาจปฏิเสธที่จะโหลดการกำหนดค่าและในกรณีที่แย่ที่สุดก็อาจยอมรับการกำหนดค่านี้และทำให้การกำหนดค่าสำหรับ example.com เป็นโมฆะ
เมื่อเร็ว ๆ นี้ฉันมี บริษัท เว็บโฮสติ้งส่งคำแนะนำไปยังหน่วยธุรกิจที่เราต้องการ CNAME ซึ่งเป็นจุดสูงสุดของโดเมนของเราไปยังระเบียนใหม่ เมื่อรู้ว่านี่จะเป็นการกำหนดค่าการฆ่าตัวตายเมื่อถูกส่งไปยัง BIND ฉันแนะนำพวกเขาว่าเราจะไม่สามารถปฏิบัติตามได้และนี่เป็นคำแนะนำสองชั้นโดยทั่วไป บริษัท เว็บโฮสติ้งมีจุดยืนว่าไม่ได้ห้ามโดยวิธีกำหนดมาตรฐาน RFC และซอฟต์แวร์ของพวกเขารองรับ หากเราไม่สามารถ CNAME เอเพ็กซ์คำแนะนำของพวกเขาคือไม่มีเร็กคอร์ดเอเพ็กซ์เลยและพวกเขาจะไม่ให้เว็บเซิร์ฟเวอร์ที่เปลี่ยนเส้นทาง ...อะไร?
พวกเราส่วนใหญ่รู้ว่าRFC1912ยืนยันว่าA CNAME record is not allowed to coexist with any other data.
แต่ขอซื่อสัตย์กับตัวเราที่นี่ RFC นั้นเป็นข้อมูลเท่านั้น ฉันรู้ว่าจะใช้คำฟุ่มเฟือยที่ใกล้เคียงกับการฝึกฝนมาจากRFC1034 :
หาก CNAME RR มีอยู่ที่โหนดไม่ควรมีข้อมูลอื่น สิ่งนี้ทำให้มั่นใจได้ว่าข้อมูลสำหรับชื่อที่เป็นที่ยอมรับและชื่อแทนไม่สามารถแตกต่างกันได้
น่าเสียดายที่ฉันอยู่ในอุตสาหกรรมนี้มานานพอที่จะรู้ว่า "ไม่ควร" ไม่เหมือนกับ "ต้องไม่" และนั่นก็เพียงพอแล้วสำหรับนักออกแบบซอฟต์แวร์ส่วนใหญ่ที่จะแขวนตัวเองด้วย การรู้ว่าสิ่งใดก็ตามที่สั้นกระชับลิงค์ไปยังสแลมดังค์จะเป็นการเสียเวลาของฉันฉันจึงยอมให้ บริษัท หนีไปด้วยการด่าว่าเพื่อแนะนำการกำหนดค่าที่อาจทำลายซอฟต์แวร์ที่ใช้กันทั่วไปโดยไม่ต้องเปิดเผยอย่างเหมาะสม
นี่นำเราไปสู่คำถามและคำตอบ สำหรับครั้งหนึ่งที่ฉันต้องการให้เราได้รับเทคนิคจริงๆเกี่ยวกับความบ้าของ apex CNAMEs และไม่ได้รอบปัญหาเช่นที่เรามักจะทำเมื่อมีคนโพสต์ในเรื่อง RFC1912ไม่ได้ จำกัด เช่นเดียวกับ RFC ที่ให้ข้อมูลอื่น ๆ ที่นี่ที่ฉันไม่ได้คิด มาปิดทารกนี่สิ