DNS - Beberapa catatan A atau catatan 1 A dan banyak CNAME?

29

Katakanlah saya memiliki server web, yang disebut 'www'. www.example.com memutuskan ke alamat IP mesin itu. Lalu saya ingin membuat beberapa host virtual, dan catatan DNS untuk mereka, seperti webmail.example.com.

Untuk 'webmail', haruskah saya memasukkan catatan A dengan alamat IP www, atau haruskah saya melakukan CNAME ke www?

Apa yang lebih bersih? Lebih kuat? lebih baik?

Rory
sumber

Jawaban:

26

Ada dua pandangan alternatif dari pertanyaan ini, dan itu adalah salah satu yang pada akhirnya akan diperdebatkan selamanya. Saya tidak akan memberikan pendapat saya (karena saya sendiri sobek), tetapi argumen umum masing-masing cara adalah:

  • Anda harus mendefinisikan A record untuk mesin fisik Anda, dan kemudian layanan CNAME ke mesin tersebut. Ini membuatnya lebih jelas tentang apa itu apa, dan jika Anda perlu memberi nomor baru tidak ada banyak catatan untuk diubah - hanya catatan mesin. Di sisi lain, itu memang meningkatkan beban pencarian DNS Anda, dan "tambahan" IP (pikirkan SSL vhosts) tidak cocok dengan model ini.

  • Arti harfiah "nama kanonik" (CNAME) adalah untuk menentukan alias ketat dari nama yang sama (pikirkan maildan smtp), dan jika Anda memiliki beberapa layanan yang berjalan di mesin yang sama mereka semua harus memiliki catatan A, karena itu mengurangi beban pada DNS dan beberapa layanan (catatan NS dan, pada tingkat lebih rendah, catatan MX) benar-benar tidak terkesan berurusan dengan CNAME, jadi jika Anda harus menangani layanan tersebut secara berbeda, kami mungkin juga melakukannya untuk semuanya.

womble
sumber
12
Anda dapat benar-benar merusak / membebani server DNS Anda dengan mengarahkan MX ke CNAME. Saya tidak bisa repot menjelaskan mengapa sekarang tetapi server email yang lebih tua (ada banyak dari mereka di luar sana) akan melihat MX menunjuk ke CNAME dan tidak akan tahu bagaimana menghadapinya dan akan terus mencari dan menekankan pada DNS Anda dan pada akhirnya email tidak pernah sampai ke mana pun. DONT POINT MX TO A CNAME. PERNAH.
Mark Henderson
3
Saya setuju dengan Farseeker, jangan arahkan MX ke CNAME bahkan jika itu berfungsi. Lihat ke wikipedia (cari MX Record) atau RFC 2181 (bagian 10.3) jika Anda menginginkan detail lengkapnya.
Benoit
+1 ke womble. Jawaban itu mengekspresikan pandangan saya juga. +1 ke Farseeker. Catatan MX adalah pengecualian. Adapun referensi Beoot, Wikipedia tidak boleh digunakan sebagai referensi teknis, karena ada terlalu banyak kesalahan dan ketidakakuratan. Meskipun hampir semua orang suka mengutip RFC, kita perlu mengingat bahwa itu bukan standar, hanya pendahulu proposal untuk standar.
John Gardeniers
Maaf atas kesalahan ejaan nama Benoit. Sudah waktunya saya di tempat tidur.
John Gardeniers
Saya selalu menggunakan cnames. Rekan saya mengambil pendekatan beberapa catatan. Satu lagi alasan cname lebih baik: membuatnya mudah untuk memutuskan catatan mana yang mendapatkan catatan ptr. Saya mendapat bir dari kolega ketiga yang satu ini.
dmourati
12

Menggunakan CNAME secara efektif menggandakan pencarian di server DNS. Saat permintaan memetakan ke CNAME, ia perlu mencari catatan A untuk CNAME.

Yang mengatakan, ada alasan CNAME ada. Itu membuat DNS Anda jauh lebih mudah untuk dikelola, dan kecuali jika Anda melakukan puluhan ribu resolusi sehari itu tidak masalah ...

Mark Henderson
sumber
12

Beberapa mengandalkan di sini menunjukkan bahwa CNAME meningkatkan beban DNS. Ini membuat saya penasaran. Saya menyalakan wireshark, memeriksa permintaan untuk CNAME, dan setidaknya di lingkungan kami hasilnya dikembalikan dalam satu catatan. Yang membawa kata mutiara Knuth ke sini: "optimisasi prematur adalah akar dari semua kejahatan".

Saya suka CNAME, tetapi kebanyakan karena efek psikologisnya. Mereka mendorong orang (seperti saya misalnya) untuk memisahkan nama server dari nama layanan.

Lingkungan kami memiliki beberapa sertifikat SSL yang melekat pada nama server yang tidak jelas (yang telah kami hentikan). CNAME bekerja jauh lebih baik di sini. Di setiap tempat saya pernah bekerja memigrasi layanan di mana nama server sangat erat dengan layanan adalah sakit kepala. CNAME memberikan garis pemisahan konseptual yang jelas.

Joe Fortier
sumber
Ini membutuhkan lebih banyak upvotes. Catatan CNAME biasanya tidak menambah jumlah perjalanan bolak-balik yang diperlukan, karena hasilnya digabungkan menjadi satu respons.
Nic
4

Menurut pendapat saya, jika host virtual adalah www.someotherdomain.com, maka saya akan memperlakukan mereka sebagai domain terpisah dengan set catatan DNS yang ada di sana (membuatnya lebih mudah nantinya jika mereka perlu dibagi). Namun jika itu hanya blog .example.com, maka saya akan menggunakan CNAME.

Hanya preferensi pribadi saya.

Sam
sumber
2

Saya akan menggunakan CNAME karena perspektif DNS, webmail adalah alias untuk www.

Martin P. Hellwig
sumber
2

CNAME meningkatkan beban pada sistem DNS, bukan pada komputer pribadi atau koneksi internet Anda. Saya pikir beberapa orang di sini tidak membuat perbedaan ketika mereka menjawab.

Gunakan catatan A untuk catatan lalu lintas tinggi primer (@ dan www), misalnya. Gunakan CNAME untuk catatan sekunder yang akan selalu dipetakan ke IP yang sama dari catatan primer. Misalnya, jika Anda memiliki domain "member.site.com" yang akan selalu menyelesaikan ke IP yang sama dengan "www.site.com", maka Anda dapat menggunakan CNAME di sini untuk kenyamanan, tetapi jika Anda dapat menggunakan catatan A , itu akan menyelesaikan lebih cepat.

TheDigitalOrchard
sumber
Terima kasih, saya menemukan jawabannya jelas, tetapi komentar Anda bahkan lebih mudah dimengerti :)
karni