Inti dari catatan NS adalah memberi tahu klien server nama mana yang akan tahu pasti alamat IP sebenarnya untuk nama domain. Jadi misalnya, kueri berikut memberi tahu Anda bahwa jika Anda ingin mendapatkan jawaban resmi tentang facebook.com
Anda harus bertanya a.ns.facebook.com
:
> dig ns facebook.com 19:58:27
; <<>> DiG 9.9.5-3ubuntu0.8-Ubuntu <<>> ns facebook.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32063
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;facebook.com. IN NS
;; ANSWER SECTION:
facebook.com. 65000 IN NS a.ns.facebook.com.
facebook.com. 65000 IN NS b.ns.facebook.com.
;; Query time: 13 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Sun Mar 20 19:58:40 CET 2016
;; MSG SIZE rcvd: 65
Ini sepertinya keren dan bermanfaat, tetapi saya bertanya-tanya mengapa ANSWER
bagian ini berisi nama host dan bukan IP dari sumber yang berwenang? Bukankah lebih mudah bagi klien untuk mendapatkan alamat IP aktual dari sumber yang berwenang dan bukan nama host?
Maksud saya jika mendapat nama host, ia harus membuat permintaan lain untuk menyelesaikan nama host ini menjadi IP dan kemudian bertanya IP baru ini tentang facebook.com
domain awal yang dicari. Bukankah ini tidak efisien?
Saya akan tertarik pada jawaban yang mengarahkan saya ke beberapa paragraf di beberapa RFC yang menjelaskan masalah ini.
sumber
Jawaban:
Solusi untuk masalah ini adalah catatan lem DNS, yang dijelaskan di Apa itu catatan lem? .
RFC 1035 Bagian 3.3.11 menyatakan
Mengembalikan alamat IP sama saja dengan menyatakan metode di mana tuan rumah dapat dihubungi, yang bertentangan dengan RFC.
sumber
Jason menyediakan mekanisme DNS yang mengatasi masalah yang Anda jelaskan, tetapi kami masih belum melihat mengapa hal-hal dilakukan dengan cara ini.
Katakanlah saya memiliki
example.com
, dan saya telah mengontrak beberapa konten situs web saya ke perusahaan pengiriman konten bernama Contoso . Platform mereka mengharuskan kita untuk mendelegasikansub.example.com
ke server nama mereka sehingga mereka dapat mengontrol respons apa yang dikembalikan.Seperti yang telah Anda catat, kami belum menentukan alamat IP nameserver Contoso. Yang diketahui oleh server kami adalah memberi tahu internet "kami tidak mengelola
sub.example.com
, tanyakan kepada Contoso sebagai gantinya" . Ini sangat penting, karena:Sejauh ini baik. Setahun berlalu, dan tanpa sepengetahuan kami Contoso mengubah alamat IP server nama CDN mereka. Karena DNS berfungsi sebagaimana mestinya, yang harus mereka lakukan hanyalah memperbarui
A
catatan yang mereka kembalikanns1.cdn
danns2.cdn.contoso.com.
.Ini membawa kita ke poin penting: catatan lem yang dijelaskan oleh Jason ada untuk menangani skenario "ayam dan telur" dalam DNS, seperti
google.com
memberi tahu dunia bahwa server nama mereka adalahns1.google.com
danns2.google.com
. Anda tidak boleh membuat catatan lem yang menunjuk ke infrastruktur yang bukan milik Anda kecuali jika ada untuk menyelesaikan masalah seperti ini:Ini menghindari skenario ayam dan telur, tetapi juga membuatnya agar Contoso harus mengoordinasikan setiap perubahan IP dari nameserver tersebut dengan kami. Ini sangat berisiko dan tidak diinginkan.
sumber