Apakah catatan CNAME menghasilkan pencarian DNS kedua?


19

Katakanlah kita memiliki subdomain bernama www.foo.com yang memiliki catatan CNAME yang menunjuk ke foo.bar.cc. Foo.bar.cc pada gilirannya memiliki catatan A yang menunjuk pada alamat IP 1.2.3.4.

Sekarang, jika saya melakukan pencarian DNS dari www.foo.com saya akan mendapatkan jawaban yang tampak seperti ini:

www.foo.com. IN CNAME foo.bar.cc.
foo.bar.cc. IN A 1.2.3.4

Pertanyaan saya adalah, pada tahap apa foo.bar.cc diselesaikan? Apakah ini dilakukan oleh server DNS rekursif sebelum respons dikirim kembali ke klien? Atau apakah klien mengeluarkan permintaan kedua ke server DNS, kali ini untuk foo.bar.cc? Atau apakah itu tergantung pada apakah server DNS sudah memiliki entri dalam cache untuk foo.bar.cc?

Saya bertanya karena satu server DNS rekursif tertentu hanya mengembalikan baris pertama, yaitu tidak menyelesaikan CNAME. Namun, setelah mungkin 20 detik, permintaan selanjutnya untuk host yang sama kemudian akan mencakup kedua baris.

Jawaban:


16

2 catatan dikembalikan bersama dalam permintaan yang sama. Anda dapat mengetahuinya melalui perintah berikut

dig +trace www.foo.com

Sebagai contoh, domain saya photoblog.com memiliki cname untuk www sehingga 2 permintaan terakhir dari server nama photoblog kepada saya terlihat seperti

photoblog.com.      172800  IN  NS  ns1.photoblog.com.
photoblog.com.      172800  IN  NS  ns2.photoblog.com.
;; Received 103 bytes from 192.43.172.30#53(i.gtld-servers.net) in 196 ms

www.photoblog.com.  600 IN  CNAME   photoblog.com.
photoblog.com.      600 IN  A   74.52.128.18
photoblog.com.      60  IN  NS  ns2.photoblog.com.
photoblog.com.      60  IN  NS  ns1.photoblog.com.
;; Received 133 bytes from 74.52.128.18#53(ns2.photoblog.com) in 59 ms

Seperti yang Anda lihat permintaan meminta ns1 / ns2 apa ip untuk www.photoblog.com dan kembali dengan baik itu adalah cname ke photoblog.com dan di sini adalah ip untuk itu catatan A.


Dalam OP, contoh Anda yang memberikan CNAME kembali, server DNS kemungkinan mengalami kesulitan mengikuti CNAME dan memberi klien informasi apa pun yang dimilikinya. Akhirnya, itu selesai mengikuti CNAME dan mampu memberikan balasan lengkap.
David Schwartz

Ya - jika server DNS memiliki lebih banyak informasi, maka itu akan mengembalikannya di ADDITIONALbagian jawaban. Kesempatan di mana ia tidak mengembalikannya berarti bahwa recurser tidak memilikinya dalam cache - berpotensi karena CNAMEdan Acatatan itu menunjuk untuk memiliki server otoritatif yang berbeda (sehingga permintaan awal recurser tidak mendapatkan respon CNAMEtambahan plus A, hanya CNAME).
Shane Madden

@ Mike: jadi apa kesimpulannya? Apakah catatan CNAME menghasilkan pencarian DNS kedua atau tidak? Jika tidak, mengapa banyak yang menyarankan untuk meningkatkan catatan CNAME TTL?
Marco Demaio

10
selama catatan A berada di server otoritatif yang sama dengan CNAME, itu adalah pencarian yang sama
Mike
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.