กลับไปหน้าบทความ

อ่าน 4 นาที

บันทึก CNAME

ระเบียน ชื่อมาตรฐาน ( CNAME ) เป็น ระเบียนทรัพยากร ประเภทหนึ่งใน ระบบชื่อโดเมน (DNS) ที่แมปชื่อโดเมนหนึ่ง (นามแฝง) ไปยังอีกชื่อหนึ่ง ( ชื่อ มาตรฐาน ) [ 1 ]

บันทึก CNAME

ระเบียนชื่อมาตรฐาน ( CNAME )เป็นระเบียนทรัพยากรประเภทหนึ่งในระบบชื่อโดเมน (DNS) ที่แมปชื่อโดเมนหนึ่ง (นามแฝง) ไปยังอีกชื่อหนึ่ง ( ชื่อมาตรฐาน ) [ 1 ]

วิธีนี้มีประโยชน์อย่างยิ่งเมื่อต้องการใช้งานหลายบริการ (เช่นเซิร์ฟเวอร์ FTP และเว็บเซิร์ฟเวอร์ซึ่งแต่ละบริการทำงานบนพอร์ตที่แตกต่างกัน) จากที่อยู่ IP เดียวกัน ตัวอย่างเช่น เราสามารถใช้ระเบียน CNAME เพื่อชี้ftp.example.comและwww.example.comไปยังรายการ DNS สำหรับexample.comซึ่งมีระเบียน Aที่ชี้ไปยังที่อยู่ IP นั้น ดังนั้น หากที่อยู่ IP เปลี่ยนแปลง เราก็เพียงแค่บันทึกการเปลี่ยนแปลงในที่เดียวภายในเครือข่าย นั่นคือในระเบียน A ของ DNS สำหรับ example.com

ระเบียน CNAME ต้องชี้ไปยังชื่อโดเมนอื่นเสมอ ห้ามชี้ไปยังที่อยู่ IP โดยตรง

รายละเอียด

ระเบียน DNS CNAME ถูกกำหนดไว้ในRFC 1034  และอธิบายเพิ่มเติมในส่วนที่ 10 ของRFC 2181 

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

ตัวอย่างเช่น ลองพิจารณาโซน DNS ดังต่อไปนี้:

ชื่อประเภทค่า-------------------------------------------------- bar.example.com. CNAME foo.example.com. foo.example.com. A 192.0.2.23

เมื่อมีการค้นหาเรคอร์ด A สำหรับ bar.example.com ตัวแก้ไขจะเห็นเรคอร์ด CNAME และเริ่มการค้นหาใหม่สำหรับfoo.example.comจากนั้นจะส่งคืนค่า 192.0.2.23

อาจเกิดความสับสนได้

ด้วยระเบียน CNAME เราสามารถชี้ชื่อ เช่น " bar.example.com " ไปยัง " foo.example.com " ได้ ด้วยเหตุนี้ ในการสนทนาทั่วไป " bar.example.com. " (ด้านซ้าย) ของรายการ DNS อาจถูกเข้าใจผิดว่าเป็น "CNAME" หรือ "a CNAME" อย่างไรก็ตาม นี่ไม่ถูกต้อง ชื่อที่ถูกต้อง (ชื่อหลัก) ของ " bar.example.com " คือ " foo.example.com " เนื่องจาก CNAME ย่อมาจาก Canonical Name ดังนั้นด้านขวาจึงเป็น "CNAME" ที่แท้จริงอยู่ด้านเดียวกับที่อยู่ "A"

ความสับสนนี้ถูกกล่าวถึงโดยเฉพาะใน RFC 2181 "คำชี้แจงเพิ่มเติมเกี่ยวกับข้อกำหนด DNS" ป้ายกำกับด้านซ้ายเป็นชื่อแทนสำหรับด้านขวา (ส่วน RDATA) ซึ่งเป็น (หรือควรจะเป็น) ชื่อมาตรฐาน[ 2 ]กล่าวอีกนัยหนึ่ง ลองพิจารณาบันทึก CNAME ต่อไปนี้:

bar.example.com. CNAME foo.example.com.

อาจตีความได้ว่า " bar.example.com " เป็นชื่อแทน (alias) ของชื่อหลัก (CNAME) " foo.example.com " ไคลเอนต์จะร้องขอ " bar.example.com " และคำตอบที่ได้จะเป็น " foo.example.com "

ข้อจำกัด

  • ระเบียน CNAME ต้องชี้ไปยังชื่อโดเมนอื่นเสมอ ห้ามชี้ไปยังที่อยู่ IP เด็ดขาด
  • หากมีระเบียน CNAME อยู่ที่โหนดแล้ว จะต้องไม่มีข้อมูลอื่นใดอยู่ด้วย เพื่อให้แน่ใจว่าข้อมูลสำหรับชื่อหลักและชื่อแทนจะไม่แตกต่างกัน (RFC 1034 มาตรา 3.6.2, RFC 1912 มาตรา 2.4) ข้อยกเว้นคือเมื่อ ใช้ DNSSECซึ่งในกรณีนี้อาจมีระเบียนที่เกี่ยวข้องกับ DNSSEC เช่น RRSIG, NSEC เป็นต้น (RFC 2181 มาตรา 10.1)
  • ควรหลีกเลี่ยงระเบียน CNAME ที่ชี้ไปยังระเบียน CNAME อื่นๆ เนื่องจากไม่มีประสิทธิภาพ แต่ไม่ใช่ข้อผิดพลาด[ 3 ]ดังนั้นจึงเป็นไปได้ที่จะสร้างลูปที่ไม่สามารถแก้ไขได้ด้วยระเบียน CNAME ดังนี้:
    foo.example.com. CNAME bar.example.com. bar.example.com. CNAME foo.example.com.
  • ไม่สามารถมีระเบียน CNAME อยู่ที่จุดสูงสุดของโซนได้ RFC 1034 มาตรา 4.2.1 [ 4 ]กำหนดให้มีระเบียน SOAที่จุดสูงสุดของโซน และ RFC 1034 มาตรา 3.6.2 [ 5 ]กำหนดว่าต้องไม่มีระเบียนอื่นใดอยู่หากมีระเบียน CNAME อยู่ ดังนั้นระเบียน CNAME จึงไม่สามารถปรากฏที่จุดสูงสุดของโซนได้
  • ระเบียน CNAME ที่ให้บริการโดยระเบียน DNAME อาจทำให้เกิดการวนซ้ำในระบบแก้ไขชื่อโดเมนรุ่นเก่า
  • ระเบียน MXและNSต้องไม่ชี้ไปยังนามแฝง CNAME (RFC 2181 มาตรา 10.3) ดังนั้น ตัวอย่างเช่น โซนต้องไม่มีโครงสร้างเช่นนี้:
    example.com. MX 0 foo.example.com. foo.example.com. CNAME host.example.com. host.example.com. A 192.0.2.1
  • โดเมนที่ใช้ใน คำสั่ง SMTP MAIL และ RCPT อาจไม่มีระเบียน CNAME [ 6 ]ในทางปฏิบัติอาจใช้งานได้ แต่พฤติกรรมอาจแตกต่างกันไปตามเซิร์ฟเวอร์อีเมลต่างๆ และอาจมีผลกระทบที่ไม่พึงประสงค์[ 7 ]

บันทึก DNAME

เรคอร์ด DNAMEหรือเรคอร์ดชื่อการมอบหมาย (Delegation Name record)ถูกกำหนดไว้ในRFC 6672 (RFC 2672 เดิมนั้นล้าสมัยแล้ว) เรคอร์ด DNAME ให้การเปลี่ยนเส้นทาง (นามแฝง) สำหรับโครงสร้างย่อยของชื่อโดเมนใน DNS กล่าวคือ ชื่อทั้งหมดที่ลงท้ายด้วยคำต่อท้ายเฉพาะจะถูกเปลี่ยนเส้นทางไปยังส่วนอื่นของ DNS ในทางตรงกันข้าม เรคอร์ด CNAME สร้างนามแฝงสำหรับชื่อเดียวเท่านั้น ไม่ใช่โดเมนย่อย เหมือนกับเรคอร์ด CNAME การค้นหาใน DNS จะดำเนินต่อไปโดยลองค้นหาใหม่ด้วยชื่อใหม่ เซิร์ฟเวอร์ชื่อจะสร้างเรคอร์ด CNAME เพื่อนำเรคอร์ด DNAME ไปใช้กับชื่อที่ร้องขอจริง ๆ — CNAME สำหรับทุกโหนดในโครงสร้างย่อยจะมีผลเช่นเดียวกับ DNAME สำหรับโครงสร้างย่อยทั้งหมด  

ตัวอย่างเช่น หากมีโซน DNS ดังต่อไปนี้:

foo.example.com. DNAME bar.example.com. bar.example.com. A 192.0.2.23 xyzzy.bar.example.com. A 192.0.2.24 *.bar.example.com. A 192.0.2.25

การ ค้นหาเรคอร์ด Aสำหรับfoo.example.comจะไม่แสดงข้อมูลใดๆ เนื่องจาก DNAME ไม่ใช่ CNAME และไม่มีเรคอร์ด A อยู่ที่fooโดยตรง

อย่างไรก็ตาม การค้นหาxyzzy.foo.example.com จะถูกแม ด้วย DNAME และส่งคืนเร คอร์ด Aสำหรับxyzzy.bar.example.comซึ่งคือ 192.0.2.24 หากเรคอร์ด DNAME เป็นเรคอร์ด CNAME คำขอจะส่งคืนข้อความว่าไม่ พบชื่อ

สุดท้ายนี้ การร้องขอไปยังfoobar.foo.example.comจะถูกแมปด้วย DNAME และส่งคืนค่า 192.0.2.25

บันทึก ANAME

แพลตฟอร์ม DNS ที่มีการจัดการหลายแห่งใช้ประเภทเรคอร์ด ALIAS [ 8 ]หรือ ANAME [ 9 ]ที่ไม่เป็นมาตรฐานเรคอร์ดเสมือนเหล่านี้ได้รับการจัดการโดยผู้ดูแลระบบ DNS เช่นเดียวกับเรคอร์ด CNAME แต่ได้รับการเผยแพร่และแก้ไขโดยไคลเอ็นต์ DNS (บางส่วน) เช่นเดียวกับเรคอร์ด A โดยทั่วไปเรคอร์ด ANAME จะถูกกำหนดค่าให้ชี้ไปยังโดเมนอื่น แต่เมื่อไคลเอ็นต์สอบถาม จะตอบกลับด้วยที่อยู่ IP แม้ว่าประเภทเรคอร์ด ANAME จะถูกส่งเพื่อการกำหนดมาตรฐาน[ 10 ]แต่ก็มีการใช้งานที่ไม่สอดคล้องกันอื่นๆ ดังนั้นจึงสามารถทำอะไรก็ได้ตามที่เจ้าของแพลตฟอร์ม DNS เลือก รวมถึงการมีอยู่ที่จุดสูงสุดของโซนและมีอยู่สำหรับโดเมนที่รับอีเมล

ข้อได้เปรียบหลักของเรคอร์ด ANAME เหนือเรคอร์ด CNAME คือสามารถใช้กับโซนเอเพ็กซ์ได้ ในขณะที่ตัวแก้ไขที่ปฏิบัติตามมาตรฐานจะไม่ถือว่าชื่อโดเมนที่มีเรคอร์ด CNAME เป็นโซนเอเพ็กซ์[ 11 ] นอกจากนี้ ในขณะที่ไคลเอ็นต์ DNS ต้องการการสอบถามอย่างน้อยสองครั้งเพื่อแก้ไข CNAME เป็นเรคอร์ด A ไปยังที่อยู่ IP แต่ ANAME จะเปลี่ยนการสอบถามครั้งที่สองและครั้งต่อๆ ไปเป็นเซิร์ฟเวอร์ หากเซิร์ฟเวอร์ DNS สามารถแก้ไขเรคอร์ด A และแคชที่อยู่ IP ที่ร้องขอได้อย่างมีประสิทธิภาพและมีความหน่วงน้อยกว่าไคลเอ็นต์ DNS ไคลเอ็นต์ DNS ก็จะสามารถแก้ไขการสอบถามได้เร็วขึ้น

ประเภทบันทึก ANAME ได้รับการเสนอเป็นมาตรฐานร่างให้กับ IETF อย่างไรก็ตาม เอกสารร่างฉบับล่าสุดหมดอายุในเดือนมกราคม 2020 [ 10 ]และถูกแทนที่ด้วยข้อเสนอหลายชุด ซึ่งข้อเสนอที่ล่าสุดคือข้อเสนอสำหรับประเภทบันทึก SVCB และ HTTPS [ 12 ]

ดูเพิ่มเติม

  • RFC  2219 – การใช้ชื่อแทน DNS สำหรับบริการเครือข่าย
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=CNAME_record&oldid=1301947313 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ บันทึก CNAME

ระเบียน ชื่อมาตรฐาน ( CNAME ) เป็น ระเบียนทรัพยากร ประเภทหนึ่งใน ระบบชื่อโดเมน (DNS) ที่แมปชื่อโดเมนหนึ่ง (นามแฝง) ไปยังอีกชื่อหนึ่ง ( ชื่อ มาตรฐาน ) [ 1 ]

รายละเอียด

ระเบียน DNS CNAME ถูกกำหนดไว้ในRFC 1034 และอธิบายเพิ่มเติมในส่วนที่ 10 ของ RFC 2181

อาจเกิดความสับสนได้

ด้วยระเบียน CNAME เราสามารถชี้ชื่อ เช่น " bar.example.com " ไปยัง " foo.example.com " ได้ ด้วยเหตุนี้ ในการสนทนาทั่วไป " bar.example.com.

ข้อจำกัด

ระเบียน CNAME ต้องชี้ไปยังชื่อโดเมนอื่นเสมอ ห้ามชี้ไปยังที่อยู่ IP เด็ดขาด หากมีระเบียน CNAME อยู่ที่โหนดแล้ว จะต้องไม่มีข้อมูลอื่นใดอยู่ด้วย เพื่อให้แน่ใจว่าข้อมูลสำหรับชื่อหลักและชื่อแทนจะไม่แตกต่างกัน (RFC 1034 มาตรา 3.6.2, RFC 1912 มาตรา 2.