DNS menggunakan CNAME memecahkan data MX?

42

Kami mencoba untuk memindahkan semua situs web yang kami inangi ke CNAMES karena kami berencana untuk memindahkan server di tahun baru dan ingin kemampuan untuk memindahkan beberapa klien ke satu server dan klien lain di tempat lain. Kami berencana memberikan CNAME unik kepada klien yang kemudian dapat kami ubah di kemudian hari. (Kami memiliki alasan lain untuk melakukan ini sekarang tapi itu yang utama)

Kami telah menguji teori ini dengan beberapa domain kami sendiri dan tampaknya baik-baik saja. Namun ketika memeriksa catatan MX di domain saya mendapatkan nilai CNAME kembali daripada catatan MX.

Sayangnya semua domain ini dilakukan melalui panel kontrol, tapi saya kira mereka hanya menulis file zona untuk saya.

Saya ingin membuat 2 CNAME untuk company.com

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

Catatan MX adalah sesuatu seperti berikut ini:

company.com  IN MX 10 mail.company.com

Kami memiliki catatan A untuk mail.company.com

Perbuatan:

host -t mx company.com

Mengembalikan nilai CNAME daripada catatan mx.

Apakah ini perilaku yang diharapkan?

Saya telah berhasil mendapatkan konfigurasi di atas bekerja dengan panel kontrol 123-reg.co.uk, tetapi tidak yakin apakah itu lebih beruntung daripada apa pun.

Johnwards
sumber
Ini adalah pertanyaan umum dan telah ditanyakan berkali-kali sebelumnya. Lihat tautan ini untuk contoh: serverfault.com/questions/18000/…
Russell Heilling
Saya memang menghabiskan sedikit waktu mencari jawaban tetapi tidak tahu apakah saya melakukan sesuatu yang berbeda. Terutama karena berfungsi baik dengan satu penyedia domain. Saya punya jawaban saya yang keren dan mudah-mudahan bermanfaat bagi seseorang.
johnwards

Jawaban:

54

Ini adalah kesalahan umum. Anda tidak dapat menggunakan RR CNAME untuk domain root Anda (mis. Company.com) dan menentukan catatan sumber daya tambahan untuk zona yang sama.

Lihat Mengapa saya tidak bisa membuat catatan CNAME untuk catatan root? dan RFC1034 bagian 3.6.2 untuk detail:

Jika CN CNAME hadir di sebuah node, tidak ada data lain yang harus ada; ini memastikan bahwa data untuk nama kanonik dan aliasnya tidak boleh berbeda.

Joseph
sumber
RFC2181 Bagian 10.1 juga relevan karena memperkuat hal di atas.
Håkan Lindqvist
juga dikenal sebagai domain puncak
Alex78191
5

RFC2181 bagian 10.3 mengatakan Anda tidak bisa mengarahkan data MX ke CNAME:

Nama domain yang digunakan sebagai nilai ... dari catatan sumber daya MX tidak boleh berupa alias.

nogginboink
sumber
2
Tapi itu bukan skenario tentang pertanyaannya?
Håkan Lindqvist
2

Saya baru saja pindah ke Heroku yang menggunakan CNAME alih-alih catatan A dan apa yang harus saya lakukan adalah bukannya membuat CNAME dengan my_domain.com menunjuk ke heroku, saya melakukan CNAME dengan www.my_domain.com menunjuk ke heroku, jadi bare / root domain tidak meneruskan dan data MX saya akan tetap berfungsi. Lalu saya menambahkan pointer untuk mengarahkan ulang my_domain.com ke www.my_domain.com. Tampaknya bekerja dengan baik. Di penyedia nama domain saya, pointer dibuat menggunakan pengaturan 'pointer' yang saya tetapkan ke 'standar' 'URL' dan 'www.my_domain.com'

Jesse Adamson
sumber
Kerja yang solid! Terima kasih telah berbagi ini!
duhaime
0

Saya menyadari bahwa keduanya dapat dipisahkan seluruhnya

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

Kecuali Anda menggunakan server Anda sebagai server email, itu tidak akan mempengaruhi apa pun. Email akan mencari catatan MX mydomain.com. Ini hanya akan terpengaruh jika seperti ini

mydomain.com - MX - mail.mydomain.com

tetapi jika seperti ini (artinya Anda menggunakan server mail terpisah) itu tidak akan terpengaruh

mydomain.com - MX - mail.mycustommailserver.com

Anda tidak dapat menggunakan IP untuk Server Email.

Tidak perlu
sumber
-1

Saya telah menemukan bahwa BEBERAPA penyedia MX bersama-sama dengan BEBERAPA penyedia DNS benar-benar akan bekerja bersama CNAME yang telanjang, jika Anda hanya memesan data MX DI ATAS CNAME dalam urutan catatan top-down.

Ini bekerja pada pendaftar Name.com dengan data Office 365 MX dan data CNAME telanjang mengarahkan HTTP ke domain lain. Saat menguji permintaan MX, saya perhatikan hasil CNAME saya kembali lebih dulu sesuai dengan pesanan entri DNS saya, jadi saya pikir mengapa tidak mencoba memesan MX terlebih dahulu dan melihat apakah itu memuaskan penyedia MX. Yang mengejutkan, verifikasi Office 365 MX kemudian berlalu dan saya dapat mengonfirmasi email masuk dan keluar memang mengalir. Dan setelah menguji beberapa klien web, HTTP juga memang diinginkan untuk host tujuan CNAME yang ditentukan.

Caveat emptor - Ini jelas bertentangan dengan standar dan karena itu mungkin tidak boleh dipertimbangkan untuk hal yang kritis. Saya mengasumsikan urutan rekaman tidak dalam spesifikasi dan karena itu tidak dapat secara resmi diandalkan ... yaitu dapat berubah segera setelah Anda lupa tentang peretasan ini.

Kiat - Halaman gratis MX Toolbox sangat berguna untuk memeriksa hasil dari mencoba berbagai pengaturan DNS.

Steker tak tahu malu untuk posting terkait saya .

Beej
sumber
2
Menjadi perilaku tidak berdokumen, ini jelas bukan sesuatu yang ingin saya andalkan.
ceejayoz
2
perilaku ini hanya dapat dianggap sebagai bug, server nama caching dapat menembolok
Jasen
-3

Anda dapat menggunakan CNAME pada root domain, namun catatan MX tersebut juga harus dikonfigurasi pada catatan host, jadi jika Anda memiliki mx1.mail.com yang dikonfigurasi pada zona untuk domain Anda.com, dan root dari domain Anda. com adalah CNAME ke thisrecord.cname.com, Anda juga harus memastikan bahwa mx1.mail.com dikonfigurasi pada host CNAME itu; jika tidak, semua email akan hilang!

Mat
sumber
4
Masalahnya adalah, sesuai RFC1034, "jika CN CNAME hadir di sebuah node, tidak ada data lain yang harus ada" - karena root perlu memiliki catatan NS (agar berguna, bagaimanapun), akan selalu ada data lain , yang melanggar bagian RFC ini.
Doktor J
Menurut saya jawabannya adalah benar, kecuali bahwa catatan MX harus bukan pada host CNAME (tidak juga).
Alexander Taubenkorb