Katakanlah kita memiliki zona mywebservice.com.
Saya ingin setiap pelanggan saya mendapatkan subdomain mereka sendiri, seperti customer.mywebservice.com.
customer.mywebservice.com harus menjadi CNAME untuk server di luar lokasi yang diberikan. Karena situs itu mengelola peralatannya sendiri dan dapat mengubah alamat kapan saja, CNAME merupakan persyaratan.
Orang-orang juga harus dapat mengirim email ke [email protected], yang akan membutuhkan data MX sederhana.
Namun, dan di sinilah saya ingin beberapa panduan:
Menurut RFC 1034 :
If a CNAME RR is present at a node, no other data should be
present; this ensures that the data for a canonical name and its aliases
cannot be different.
Saya juga telah memverifikasi bahwa server DNS saya akan menolak untuk menayangkan apa pun selain CNAME untuk host yang menggunakannya.
Jadi, sepertinya saya mungkin mengalami situasi yang kalah. Jika saya ingin menggunakan data MX, saya harus menggunakan A alih-alih CNAME.
Adakah yang bisa memikirkan penyelesaian masalah? Terima kasih!
sumber
Setelah banyak pekerjaan dan penelitian di sini, saya telah menemukan solusi yang dapat diterima. Pertama, penting bahwa kita semua mengikuti RFC. Saya menambal server DNS saya untuk melanggar RFC, dan saya menemukan bahwa beberapa server DNS utama lainnya tidak akan menghargai perubahan.
Langkah yang sesuai adalah menempatkan MX pada host yang ditunjuk CNAME. Jadi, jika customer.mywebservice.com adalah CNAME ke a record loadbalancer.mywebservice.com, maka layak untuk juga membuat data MX untuk loadbalancer.mywebservice.com. Saya telah memverifikasi bahwa ini berfungsi dengan semua penyelesai utama.
Jika permintaan MX dibuat untuk customer.mywebservice.com, perpustakaan resolver akan mengikuti CNAME dan mendapatkan MX yang tepat untuk catatan A akhir. Hore!
sumber
Anda memiliki persyaratan bahwa pelanggan harus dapat mengubah alamat, sudahkah Anda mempertimbangkan untuk mengizinkan pelanggan untuk memperbarui catatan mereka sendiri secara dinamis? Dengan dns dinamis, Anda dapat menggunakan catatan A, dan pelanggan dapat mengubah catatan sesuai kebutuhan. Ini akan membutuhkan sedikit usaha, tetapi Anda dapat masing-masing sub-domain sebagai zona terpisah sehingga Anda dapat memastikan pelanggan hanya dapat menyentuh zona mereka sendiri.
Saya belum mencobanya, tetapi gnudip tampaknya merupakan alat open source untuk memfasilitasi pembaruan dinamis tanpa harus berurusan dengan otentikasi dan menyiapkan banyak zona di server DNS Anda.
sumber
Jika catatan MX Anda akan sama untuk semua catatan ini, maka Anda dapat mencoba menggunakan DNAME untuk mengarahkan XYZ.mywebservice.com ke hosting.mywebservice.com. Di bawah hosting.mywebservice.com, tambahkan catatan MX dan A yang relevan.
Saya harus mengatakan bahwa saya belum pernah menggunakan catatan DNAME dalam produksi, tetapi Anda dapat membaca lebih lanjut tentang mereka di RFC2672 .
sumber
Apakah RHS CNAME customer.mywebservice.com memiliki entri MX?
Jika demikian, maka server email akan menggunakan MX itu untuk menemukan server email yang akan digunakan. Semoga Anda bisa mengendalikan itu.
sumber
Jawaban Michael Gorsuch sebagian besar benar, CNAME -> A + MX chain tidak berfungsi ... kebanyakan . Namun, hal itu memicu beberapa perilaku buruk di MTA tertentu. Apa yang saya temukan menjalankan solusi ini pada skala yang layak:
Masih belum jelas seberapa luas masalah ini (google / hotmail / yahoo / etc semua tampaknya berurusan dengan ini dengan benar), tetapi mereka tentu saja meminta kita mencari solusi yang lebih baik.
sumber
Solusi yang mungkin dan valid adalah membuat nama host dasar untuk semua pelanggan Anda dan mengaturnya ke catatan a dan aaaa dari server situs dan mx Anda, lalu CNAME semua domain pelanggan Anda ke nama host tunggal itu. Dengan begitu Anda hanya perlu mengubah satu catatan ketika alamat IP luar-situs berubah.
Ini adalah satu-satunya cara valing dan mungkin, karena CNAME adalah alias untuk set lengkap catatan, bukan hanya a.
sumber
MX dan CNAME adalah catatan yang benar-benar terpisah - yang pertama menentukan server surat untuk domain yang diberikan, kedua memberikan alamat untuk domain. Ini seharusnya bekerja:
sumber