Catatan root DNS hardcoded lalu mengapa ia memiliki TTL?

8

Saya meng-host server nama rekursif secara lokal sehingga saya tidak memerlukan penyedia layanan saya atau server DNS publik lainnya untuk resolusi nama. Meskipun alamat IP server akar nama hardcoded dalam file konfigurasi (dalam /etc/bind/db.rootfile Bind ), ketika saya menjalankan beberapa nslookupperintah berturut-turut untuk server nama root untuk ., maka bidang TTL masih menurun.

Mengapa TTL akan berkurang, ketika di-harcod dalam file config?
Dan mengapa TTL di tingkat root diperlukan di tempat pertama ketika di-harcod?

pengguna2632528
sumber

Jawaban:

14

Biasanya Anda akan mengkonfigurasi server root DNS yang mirip dengan snippet di bawah ini:

zone "." {
  type hint;
  file "/etc/bind/db.root";
};

Di mana Anda mengamati bahwa jenis zona tidak umum masteratau slave tetapi jenis zona khusus yang disebut hint.

Ketika server nama mulai, itu hanya menggunakan petunjuk root untuk menemukan server nama root merespons dan kemudian akan mendapatkan daftar server nama root saat ini dari sana. Mereka adalah server root yang sebenarnya akan digunakan selama operasi.

Karena itu di-cache mereka akan membutuhkan TTL dan seperti yang telah Anda amati: bahwa TTL akan berkurang seperti catatan DNS yang di-cache lainnya.

Jika tidak ada zona petunjuk yang ditentukan untuk kelas IN, server menggunakan seperangkat petunjuk server root yang dikompilasi-in. Sumber: Manual Referensi Administrator Bind .

Seperti yang dijelaskan Brian dalam jawabannya, zona root tidak berubah, dan selama setidaknya satu server nama tetap valid, zona petunjuk memungkinkan untuk perubahan semacam itu di server nama root tanpa memerlukan semua server nama yang ada untuk memperbarui file konfigurasi statis mereka.

HBruijn
sumber
4

Mereka tidak dikodekan secara permanen - file zona root memang berubah seiring waktu sehingga entri yang diteruskan ke resolver tidak dapat disetel untuk bertahan selamanya.

Misalnya yang saat ini terakhir diperbarui pada 2014 seperti yang ditunjukkan pada awal file di sini :

;       This file holds the information on root name servers needed to
;       initialize cache of Internet domain name servers
;       (e.g. reference this file in the "cache  .  <file>"
;       configuration file of BIND domain name servers).
;
;       This file is made available by InterNIC 
;       under anonymous FTP as
;           file                /domain/named.cache
;           on server           FTP.INTERNIC.NET
;       -OR-                    RS.INTERNIC.NET
;
;       last update:    November 05, 2014
;       related version of root zone:   2014110501
;
; formerly NS.INTERNIC.NET
;
.                        3600000      NS    A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.      3600000      A     198.41.0.4
A.ROOT-SERVERS.NET.      3600000      AAAA  2001:503:ba3e::2:30
Brian
sumber
2

db.root hanya digunakan sebagai bagian dari proses startup server DNS untuk menemukan server root aktual saat ini. Ini kemudian diperbarui sesuai TTL.

Tom Hallam
sumber