Apakah rantai CNAME ke CNAME diizinkan?

68

Apakah diizinkan dalam DNS untuk memiliki catatan CNAME yang mengarah ke catatan CNAME lain?

Alasan kami membutuhkan ini adalah karena kami memiliki nama host yang ingin kami lihat alamat IP komputer server web kami. Kami juga memiliki komputer server web stand by yang dapat diaktifkan jika yang pertama akan mati. Dalam kasus seperti itu, kita perlu dengan cepat mengarahkan nama host ke alamat IP komputer stand by server web.

Sayangnya nama host berada di domain DNS di mana perubahan akan memakan waktu lama karena operasi manual bergantung pada sysadmin lainnya. Tetapi kami memiliki domain DNS lain tempat kami dapat melakukan perubahan dengan cepat. Memiliki CNAME ke rantai CNAME sepertinya merupakan solusi yang memungkinkan. Tetapi apakah itu diizinkan? Akankah browser web memahaminya?

Erik Sjölund
sumber

Jawaban:

81

Dari RFC 1034 - Nama domain - konsep dan fasilitas :

Nama domain dalam RR yang menunjuk pada nama lain harus selalu menunjuk pada nama utama dan bukan alias. Ini menghindari tipuan ekstra dalam mengakses informasi. Misalnya, alamat untuk memberi nama RR untuk host di atas adalah:

52.0.0.10.IN-ADDR.ARPA  IN      PTR     C.ISI.EDU

alih-alih menunjuk ke USC-ISIC.ARPA. Tentu saja, dengan prinsip ketahanan, perangkat lunak domain tidak boleh gagal ketika disajikan dengan rantai atau loop CNAME; Rantai CNAME harus diikuti dan simpul CNAME ditandai sebagai kesalahan.

Jadi ya, itu diperbolehkan dan perangkat lunak yang ditulis dengan benar akan menanganinya dengan baik. Namun rantai CNAME tidak dianggap praktik yang baik dan memaksakan overhead pada infrastruktur.

Paweł Brodacki
sumber
3
+1 untuk referensi RFC
Alnitak
16
Meskipun saya melakukan ini sepanjang waktu, kutipan di atas tidak sesuai konteks. Tepat di atas paragraf ini tertulis ..Domain names in RRs which point at another name should always point at the primary name and not the alias. This avoids extra indirections in accessing information.
Molomby
3
Disebutkan oleh orang jaringan Microsoft Azure , rantai CNAME penting untuk melakukan penyeimbangan pemuatan AnyCast untuk mereka.
Paul Lan
26

Tentu itu mungkin.

Namun umumnya tidak disarankan , karena alasan yang jelas bahwa ia menggunakan lebih banyak sumber daya DNS. Sebagai contoh:

foo   IN      CNAME  someserver.somehost.com.
bar   IN      CNAME  foo

Meminta 'bilah' akan menghasilkan CNAME fooditanyai, lalu someserver.somehost.com.ditanyai, menghasilkan satu permintaan tambahan.

Untuk setiap elemen dalam rantai yang akan Anda tambahkan, permintaan lain akan diperlukan.

Alasan lain ini tidak disarankan adalah bahwa, dengan membuat rantai seperti ini, peluang Anda entah bagaimana membuat loop CNAME meningkat; ini harus dideteksi secara otomatis oleh server DNS saat ini, tetapi masih akan membebani server yang besar.

Aron Rotteveel
sumber
5

Ya, itu diizinkan dan akan berfungsi, tetapi itu tidak dianggap praktik yang baik. Beberapa pencarian menggunakan lebih banyak sumber daya, dan ada risiko tidak sengaja membuat lingkaran.

Mike Scott
sumber