ไม่สามารถตั้งค่า“ example.com” เป็นระเบียน CNAME ได้หรือไม่


19

ฉันกำลังใช้งานเซิร์ฟเวอร์ที่บ้าน แต่ฉันมี IP แบบไดนามิก ดังนั้นฉันสมัครรับบริการ dns แบบไดนามิก (dlinkddns.com) ฉันได้ทำการตั้งค่าที่ถูกต้องทั้งหมดในเครือข่ายของตัวเองและการอัพเดตไอพีอย่างสมบูรณ์แบบ

ปัญหาคือฉันมีชื่อโดเมน (สมมุติว่า: "example.com") และฉันต้องการตั้งค่าชื่อโดเมนรูทโดยไม่มีคำนำหน้า ("example.com") เป็น CNAME ไปยังโดเมน dlinkddns ของฉัน แต่โฮสต์ DNS ชื่อโดเมนของฉันบอกว่าฉันทำไม่ได้ (เป็น "ไม่อนุญาต") ฉันสามารถทำได้เพื่อ "www.example.com" ฯลฯ และใช้งานได้ดี แต่ไม่เหมาะสำหรับชื่อโดเมนรูท ใครรู้วิธีแก้ปัญหานี้?


คุณใช้โฮสต์ DNS ตัวใด ดูเหมือนว่าซอฟต์แวร์ของพวกเขาต้องการA Recordให้มีคำนำหน้าโดเมนเช่น www.domain.com ด้วยเหตุผล
Jonathan Ross

ฉันใช้ภาษาดัตช์: www.webreus.nl ดังนั้นถ้ามันอาจเป็นเพียงซอฟต์แวร์ของพวกเขากำลังทำให้ฉันล้มเหลว? : P

ฉันขอความช่วยเหลือจากพวกเขาหรือตรวจสอบเอกสาร
Jonathan Ross

คำตอบ:


26

คุณไม่สามารถตั้งค่าระเบียน CNAME สำหรับโดเมนรูต (เช่นexample.com) เนื่องจากจะทำให้RFC 1034 ส่วน 3.6.2ซึ่งระบุ

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

คุณไม่สามารถทำเช่นนี้example.comเพราะexample.comจะมีระเบียน NS เพื่อให้ทำงานได้ซึ่งจะทำลายกฎที่ไม่ควรมีข้อมูลอื่น

คุณสามารถมีระเบียน CNAME ได้www.example.comเนื่องจากนี่ไม่ใช่โดเมนรูทและดังนั้นจึงเป็นเรื่องง่ายที่จะไม่มีข้อมูลอื่นอยู่

วิธีเดียวที่จะหลีกเลี่ยงปัญหานี้ก็คือ

  • ใช้คำนำหน้า www หรือ
  • ที่จะได้รับโดเมนของคุณจอดอยู่ที่คุณต้องการระเบียน CNAME ไปยังจุดและได้รับที่อยู่ IP example.comที่เกี่ยวข้องกับการตั้งค่าการบันทึกสำหรับ

ฉันเพิ่งอ่านว่าคุณกำลังใช้ DNS แบบไดนามิก ผู้ให้บริการ DNS แบบไดนามิกบางรายสามารถทำงานกับโดเมนของคุณได้หากคุณโฮสต์ไว้ในเนมเซิร์ฟเวอร์: วิธีนี้ตัวอัปเดต DNS แบบไดนามิกของพวกเขาสามารถอัปเดตที่อยู่ IP ของ example.com และหลีกเลี่ยงปัญหา CNAME ทั้งหมด จากด้านบนของหัวของฉันฉันรู้เพียง Dyndns เสนอนี้เป็นบริการชำระเงิน


ฉันยังต้องการตั้งค่า CNAME บน FQDN ที่ฉันได้รับฟรีจาก no-ip และโฮสต์เซิร์ฟเวอร์ DNS ของฉันเอง ดูเหมือนว่ามันค่อนข้างยาก
Aki

สำหรับสิ่งที่คุ้มค่า Hover.com อนุญาตให้คุณใช้ CNAME ในโดเมนที่ไม่มีการปิดบัง ไม่มีการเตือนเมื่อทำสิ่งนี้ผ่านส่วนต่อประสาน ฉันไม่ทราบวิธีการใช้งานจริง แต่มันก็ใช้ได้ผลสำหรับฉันแล้ว
Mason G. Zhwiti

MasonG.Zhwiti เพียงเพราะคุณทำได้ไม่ได้หมายความว่าคุณควร ... มันยังคงแตก RFC และมีแนวโน้มที่จะทำให้เกิดปัญหาที่สำคัญสำหรับคุณถ้าคุณทำ
anthonysomerset

1
สมมติว่าข้อมูล NS และ SOA นั้นเหมือนกันสำหรับโดเมนชื่อแทนเนื่องจากเป็นโดเมนมาตรฐานซึ่งเป็นไปได้หรือไม่ที่จะไม่มีระเบียน NS และ SOA และมีเพียง CNAME หนึ่งรายการที่รูทโดเมนชื่อแทนใช่หรือไม่ หากเป็นไปได้ดูเหมือนว่าสิ่งนี้จะยังคงเป็นไปตามข้อความที่ยกมาจาก RFC
Gary

4

คุณไม่สามารถตั้งค่าชื่อโดเมนเปล่าในระเบียน CNAME คุณต้องทำเฉพาะการตั้งค่าเหล่านั้นสำหรับโดเมนนามแฝงเช่น www.example.com, about.example.com และอื่น ๆ ที่ระเบียน CNAME และการตั้งค่าโดเมนหลักหรือ ROOT ต้องทำที่ A Records และคุณต้องระบุที่อยู่ IP ของโฮสต์ . ก่อนอื่นให้ลบการตั้งค่าจาก CNAME เกี่ยวกับโดเมนที่ไม่มีการปิดบังและตั้งค่าไว้ที่ "A Records" จากนั้นทำการตั้งค่าที่ C ชื่อสำหรับนามแฝงเช่น www, เกี่ยวกับหรืออะไรทำนองนั้น

สิ่งนี้อาจช่วยคุณได้: A Records, CNAME, MX Records: พื้นฐานในการตั้งค่าบล็อกของคุณ


2

ฉันพบว่าCNAMEโดเมนที่ไม่มีการปิดบังผ่าน@Record อย่างที่กล่าวถึงในที่นี้ไม่สามารถใช้ได้กับผู้ให้บริการโดเมนบางราย เพื่อให้ได้ออกจากนี้คุณสามารถพิจารณาที่จะชี้ให้เซิร์ฟเวอร์ชื่อของคุณไปยังผู้ให้บริการ DNS ที่ให้การสนับสนุนหรือALIASANAME

ทำตาม สิ่งนี้มีโฮสต์ DNS บางตัวที่ให้วิธีรับCNAMEฟังก์ชั่นเหมือนที่ apex โซน (ระดับโดเมนรูตสำหรับชื่อโดเมนเปล่า) โดยใช้ประเภทเรกคอร์ดที่กำหนดเอง

บันทึกดังกล่าวรวมถึงตัวอย่างเช่น:

  • ALIAS ที่ DNSimple
  • ANAME ที่ DNS ทำได้ง่าย
  • ANAME ที่ easyDNS
  • CNAME ที่ CloudFlare
  • ALIAS ที่ CloudDNS

สำหรับผู้ให้บริการแต่ละรายการตั้งค่าจะคล้ายกัน: ชี้ที่ALIASหรือANAMEรายการสำหรับโดเมน apex ของคุณไปที่example.yourdomain.comเช่นเดียวกับที่คุณทำกับCNAMEระเบียน

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