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


42

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

เราทดสอบทฤษฎีนี้กับโดเมนของเราสองสามตัวและดูเหมือนว่าจะใช้ได้ อย่างไรก็ตามเมื่อตรวจสอบระเบียน MX บนโดเมนฉันได้รับค่า CNAME กลับมามากกว่าบันทึก MX

น่าเสียดายที่โดเมนทั้งหมดเหล่านี้ทำผ่านแผงควบคุม แต่ฉันเดาว่าพวกเขาแค่เขียนไฟล์โซนให้ฉัน

ฉันต้องการสร้าง CNAME 2 รายการสำหรับ company.com

company.com. IN CNAME client.dns.ourserver.com
www          IN CNAME client.dns.ourserver.com

ระเบียน MX เป็นดังนี้:

company.com  IN MX 10 mail.company.com

เรามีบันทึก A สำหรับ mail.company.com

การทำ:

host -t mx company.com

ส่งคืนค่า CNAME แทนที่จะเป็นระเบียน mx

เป็นพฤติกรรมที่คาดหวังหรือไม่

ฉันจัดการเพื่อให้การกำหนดค่าข้างต้นทำงานร่วมกับแผงควบคุม 123-reg.co.uk แต่ไม่แน่ใจว่านั่นจะเป็นโชคมากกว่าอะไร


นี่เป็นคำถามที่พบบ่อยและถูกถามมาหลายครั้งแล้ว ดูลิงค์นี้สำหรับตัวอย่าง: serverfault.com/questions/18000/…
Russell Heilling

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

คำตอบ:


54

นี่เป็นข้อผิดพลาดทั่วไป คุณไม่สามารถใช้ CNAME RR สำหรับโดเมนรูทของคุณ (เช่น company.com) และกำหนดระเบียนทรัพยากรเพิ่มเติมสำหรับโซนเดียวกัน

ดูเหตุใดฉันจึงไม่สามารถสร้างระเบียน CNAME สำหรับบันทึกรากได้ และRFC1034ส่วน 3.6.2 สำหรับรายละเอียด:

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


RFC2181 ส่วน 10.1นั้นมีความเกี่ยวข้องเช่นกันในการเสริมกำลังข้างต้น
Håkan Lindqvist

หรือที่รู้จักในชื่อโดเมนเอเพ็กซ์
Alex78191

5

RFC2181 ส่วน 10.3 บอกว่าคุณไม่สามารถชี้ระเบียน MX ของคุณไปที่ CNAME:

ชื่อโดเมนที่ใช้เป็นค่า ... ของระเบียนทรัพยากร MX ต้องไม่ใช่ชื่อแทน


2
นั่นไม่ใช่สถานการณ์จริง ๆ ที่คำถามนั้นเกี่ยวกับใช่ไหม?
Håkan Lindqvist

2

ฉันเพิ่งย้ายไป Heroku ซึ่งใช้ CNAME แทนระเบียน A และสิ่งที่ฉันต้องทำแทนที่จะทำ CNAME กับ my_domain.com ซึ่งชี้ไปที่ heroku ฉันทำ CNAME กับ www.my_domain.com ซึ่งชี้ไปที่ heroku ดังนั้นผู้ที่เปลือยเปล่า / โดเมนหลักไม่ได้ส่งต่อและระเบียน MX ของฉันยังคงทำงาน จากนั้นฉันเพิ่มตัวชี้เพื่อเปลี่ยนเส้นทาง my_domain.com ไปยัง www.my_domain.com ดูเหมือนว่าจะทำงานได้ดี ในผู้ให้บริการชื่อโดเมนของฉันตัวชี้ถูกสร้างขึ้นโดยใช้การตั้งค่า 'ตัวชี้' ซึ่งฉันตั้งค่าเป็น 'มาตรฐาน' 'URL' และ 'www.my_domain.com'


งานหนัก! ขอบคุณที่แชร์สิ่งนี้!
duhaime

0

ฉันได้ตระหนักว่าทั้งสองนี้สามารถแยกออกจากกันโดยสิ้นเชิง

mydomain.com. -  A Record  - 01.0.0.1
mydomain.com - CNAME - www.cname.eg.com

เว้นแต่ว่าคุณกำลังใช้เซิร์ฟเวอร์ของคุณเป็นเซิร์ฟเวอร์อีเมลมันจะไม่ส่งผลกระทบอะไรเลย อีเมลจะค้นหาระเบียน MX ของ mydomain.com มันจะได้รับผลกระทบหากมันเป็นแบบนี้

mydomain.com - MX - mail.mydomain.com

แต่ถ้ามันเป็นเช่นนี้ (หมายถึงคุณกำลังใช้เซิร์ฟเวอร์อีเมลแยกต่างหาก) มันจะไม่ได้รับผลกระทบ

mydomain.com - MX - mail.mycustommailserver.com

คุณไม่สามารถใช้ IP สำหรับ Mail Servers


-1

ฉันพบว่าผู้ให้บริการ SOME MX ควบคู่กับผู้ให้บริการ DNS บางรายจะทำงานร่วมกับ CNAME เปล่าหากคุณเพียงแค่สั่งซื้อระเบียน MX ข้างต้น CNAMEตามลำดับจากบนลงล่าง

มันทำงานกับผู้รับจดทะเบียน Name.com พร้อมกับระเบียน Office 365 MX และระเบียน CNAME เปลือยที่กำกับ HTTP ไปยังโดเมนอื่น ในขณะที่การทดสอบการสืบค้น MX ฉันสังเกตว่าผลลัพธ์ CNAME ของฉันกลับมาเป็นลำดับแรกตามคำสั่งรายการ DNS ของฉันดังนั้นฉันจึงคิดว่าทำไมไม่ลองสั่งซื้อ MX ก่อนและดูว่าผู้ให้บริการ MX นั้นพอใจหรือไม่ ฉันประหลาดใจที่การยืนยัน Office 365 MX ผ่านไปแล้วและฉันสามารถยืนยันได้ว่าอีเมลขาเข้าและขาออกไหลอย่างแน่นอน และหลังจากทดสอบไคลเอนต์เว็บหลายแห่งแล้ว HTTP ยังสามารถแก้ไขโฮสต์ปลายทาง CNAME ที่ระบุได้อย่างแน่นอน

Caveat emptor - สิ่งนี้เป็นไปอย่างชัดเจนกับมาตรฐานและดังนั้นจึงไม่ควรได้รับการพิจารณาสำหรับสิ่งที่สำคัญ ฉันสมมติว่าคำสั่งบันทึกไม่ได้อยู่ในสเป็คและดังนั้นจึงไม่สามารถพึ่งพาอย่างเป็นทางการเมื่อ ... เช่นอาจมีการเปลี่ยนแปลงได้ทันทีหลังจากที่คุณลืมแฮ็คนี้

เคล็ดลับ - หน้าฟรีMX Toolboxมีประโยชน์อย่างมากสำหรับการตรวจสอบผลลัพธ์ของการลองการตั้งค่า DNS ที่แตกต่างกัน

เสียบด้านหน้าสำหรับโพสต์ที่สอดคล้องกันของฉัน


2
เป็นพฤติกรรมที่ไม่มีเอกสารนี่ไม่ใช่สิ่งที่ฉันต้องการ
ceejayoz

2
ลักษณะการทำงานนี้ถือได้ว่าเป็นข้อผิดพลาดแคชของเนมเซิร์ฟเวอร์อาจแคชการตอบสนอง CNAME และ MDAs จะไม่เห็น MX record tools.ietf.org/html/rfc5321#section-5.1
Jasen

-3

คุณสามารถใช้ CNAME บนรูทของโดเมนได้อย่างไรก็ตามเรคคอร์ด MX เหล่านั้นต้องได้รับการกำหนดค่าในเรคคอร์ดโฮสต์ดังนั้นหากคุณมี mx1.mail.com ที่กำหนดค่าในโซนสำหรับ yourdomain.com และรูทของโดเมนของคุณ com คือ CNAME เพื่อ thisrecord.cname.com คุณต้องตรวจสอบให้แน่ใจว่า mx1.mail.com ได้รับการกำหนดค่าบนโฮสต์ CNAME นั้น ถ้าไม่เมลทั้งหมดจะหายไป!


4
ปัญหาคือตาม RFC1034 "ถ้า CNAME RR อยู่ที่โหนดไม่ควรมีข้อมูลอื่น" - เนื่องจากรากจำเป็นต้องมีระเบียน NS (เพื่อเป็นประโยชน์ต่อไป) จะมีข้อมูลอื่นเสมอ ซึ่งละเมิดส่วนนี้ของ RFC
Doktor J

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