วิธีสร้าง CNAME สำหรับชื่อรูทของโดเมน


12

ฉันต้องการตั้งค่าชื่อรูทของโดเมนเป็น CNAME แทนที่จะเป็นระเบียน A ปกติ

นี่คือตัวอย่างที่สมบูรณ์แบบของสิ่งที่ฉันพยายามทำ:

dig lrnskls.com

สังเกตเห็นส่วนคำตอบ:

;; ANSWER SECTION:

lrnskls.com.            300     IN      CNAME   partner.adjix.com.

partner.adjix.com.      300     IN      A       67.121.212.61

เหตุผลที่ฉันพยายามทำเช่นนี้คือฉันสามารถชี้ชื่อรูทของโดเมนผ่านนามแฝง CNAME ไปที่ S3 ของ Amazon การใช้ระเบียน A ไม่ทำงานเนื่องจาก IP ของ S3 เปลี่ยนทุก ๆ นาทีเพื่อวัตถุประสงค์ในการทำโหลดบาลานซ์

PS - สิ่งนี้ดูเหมือนจะถูกกฎหมายภายใต้หัวข้อ 3.6.2 ของ RFC 1034 (โปรดสังเกตตัวอย่าง USC-ISIC.ARPA): http://www.faqs.org/rfcs/rfc1034.html


2
จุดที่ดีเกี่ยวกับการดูเหมือนถูกกฎหมายตามตัวอย่างในหัวข้อ 3.6.2 RFC1034 มาจากปี 1987 และควรอ่านด้วยความต้องการของวันนี้ บางคน / หลายคนใช้มันจะผิดกฎหมายในบริบทวันที่ทันสมัยดูserverfault.com/questions/55528/... ทางที่ดีที่สุดคือ IMHO ที่จะทำผิดพลาดอย่างระมัดระวังนั่นคืออย่าพยายามดัน DNS โดยใช้การกำหนดค่าที่เซิร์ฟเวอร์ DNS บางตัวอาจปฏิเสธ
Jesper M

2
@jesper - ตัวอย่าง RFC 1034 ไม่เกี่ยวข้อง มันแสดงให้เห็นว่า CNAME เป็นบันทึกแบบสแตนด์อโลน โดเมน. ผู้รับมอบสิทธิ์จะต้องมีเรกคอร์ด SOA และระเบียน NS การกำหนดค่า lrnskls.com ไม่ถูกต้องทางเทคนิค
Alnitak

คุณควรแก้ไขคำศัพท์ "ชื่อรูท" ไม่ใช่คำศัพท์ทั่วไปสำหรับสิ่งที่คุณอธิบาย (ซึ่งดูเหมือนจะเป็นชื่อของเอเพ็กซ์ของโซนของคุณ)
bortzmeyer

คำตอบ:


14

อเมซอนตระหนักถึงปัญหาเกี่ยวกับโดเมนรูตและ Elastic Load Balancer พวกเขาแนะนำวิธีแก้ปัญหานี้:

  • กำหนดค่าโดเมนรูทไปยังบริการที่เปลี่ยนเส้นทาง mydomain.com ไปยัง www.mydomain.com (หรือโดเมนย่อยอื่น ๆ ที่คุณเลือก)
  • ตั้งค่าระเบียน CNAME ที่แมปชื่อ DNS ตัวโหลดบาลานซ์กับ "www.mydomain.com"

ฉันไม่ชอบโซลูชันนี้ แต่ "สะอาด" มากกว่านั้นคือ "บังคับให้รูทโดเมนไปยัง CNAME" โซลูชัน

อัปเดต:ตอนนี้ Amazon จัดการเรื่องนี้สำหรับ ELB / S3 ผ่านระเบียน ALIAS ซึ่งเป็นคุณสมบัติ Route53 DNS


5
+1 สำหรับการชี้ไปที่วิธีการทำสิ่งนี้ หากต้องการวลีโซลูชันนี้อีกครั้ง (โปรดดูคำตอบ Amazon ที่เชื่อมโยง): คุณสร้างระเบียน A ที่ถูกต้องสำหรับโดเมนหลักที่มี SOA ที่ถูกต้อง บันทึกนั้นชี้ไปที่บริการบุคคลที่สามที่คุณทำสัญญาเพื่อส่งระดับ HTTP 301/302 เปลี่ยนเส้นทางไปที่ www.mydomain.com
Jesper M

@JesperMortensen คุณสามารถแนะนำผู้รับเหมาบางคนที่ทำการเปลี่ยนเส้นทางดังกล่าวได้หรือไม่? มันน่ารำคาญจริง ๆ ที่ผู้ใช้ของฉันไปที่ mycompany.com และเห็นโฆษณาของผู้ให้บริการชื่อโดเมนของฉันเท่านั้น A recordชี้ไปยังที่อยู่ IP และแน่นอนว่าฉันจะไม่ซื้อ IP คงที่เพียงเพื่อจุดประสงค์นี้
foresightyj

10

ไม่มันไม่ถูกกฎหมาย CNAMEไม่ได้รับอนุญาตให้อยู่ร่วมกับบันทึกอื่น ๆ และคุณต้องการอย่างน้อยSOAที่นี่

ตัวอย่างไม่ได้พิสูจน์เป็นอย่างอื่นเพราะมันไม่ได้หมายความว่ามีบันทึกอื่น ๆ


ดังนั้นจุดที่แท้จริงของคำถามของฉันคือฉันจะทำอย่างไร ฉันจะตั้งค่าชื่อรูทของโดเมนเป็น CNAME ไม่ใช่ระเบียน A ได้อย่างไร ตัวอย่าง "dig lrnskls.com" ทำงานตรงตามที่คาดไว้ หรือฉันขาดอะไรบางอย่างเป็นตัวอย่างขุด?

คุณสามารถใส่มันได้เหมือนที่ทำไว้lrnskls.com- เพียงแค่CNAMEอัดเสียงที่นั่น แต่มันผิดกฎหมายที่จะไม่มีSOA;-)
Michael Krelin - แฮกเกอร์

ดังนั้นฉันเดาว่าไม่มีวิธีทางกฎหมายที่จะมีชื่อรูตของโดเมนที่ชี้ไปที่ S3 เป็น CNAME หรือไม่

มีวิธีที่ถูกกฎหมายในการมีโฮสต์เช่นs3stuff.example.comชี้ไปที่ S3
Michael Krelin - แฮกเกอร์

3
แท้จริงแล้วทางออกที่เหมาะสมคือให้ example.com ไม่ได้รับมอบอำนาจและโน้มน้าวใจรีจิสทรี. COM Verisign เพื่อเพิ่ม CNAME ในโซน. COM ... เสียงทางเทคนิค แต่ Verisign และ ICANN จะพบเหตุผลที่ไม่ใช่ทางเทคนิคเพื่อปฏิเสธมัน .
bortzmeyer

2

แต่เซิร์ฟเวอร์ DNS ของฉันไม่อนุญาต และไม่ไปจัดการ DNS ของ GoDaddy ดังนั้นฉันต้องการทำสิ่งที่เจ้าของ lrnskls.com ทำ ใครรู้ว่าเขาทำมัน?

คุณอาจจะต้องทำการค้นหาในเซิร์ฟเวอร์ DNS เซิร์ฟเวอร์ DNS ส่วนใหญ่ไม่อนุญาตให้คุณทำเช่นนี้ ฉันคิดว่าฉันจำการเห็นคำถามอื่นใน serverfault ซึ่งมีคนโพสต์เซิร์ฟเวอร์ DNS คนที่เคยติดตั้ง cname ที่รูท แต่ฉันหาไม่เจอ

ดูเพิ่มเติมที่: - Root Cname - WHM? - ตั้งค่าระเบียนโดเมนหลักเป็น CNAME


มันเป็น 1 และ 1 ตามคำถามนี้serverfault.com/questions/55528/…
hdanniel

1

หากคุณใช้เซิร์ฟเวอร์ Route 53 DNS ของอเมซอนก็จะทำให้ได้ตามที่คุณต้องการ

ฉันอยากรู้อยากเห็น: ห้ามใช้ CNAME ใน apex โดย RFC อะไรคือเหตุผลทางเทคนิคสำหรับสิ่งนี้ (สมมติว่ามันไม่ได้เป็นแบบสุ่ม)


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