Ich hoste einen rekursiven Nameserver lokal, sodass ich weder meinen Dienstanbieter noch einen anderen öffentlichen DNS-Server für die Namensauflösung benötige. Obwohl die IP-Adressen des Root-Nameservers in der Konfigurationsdatei (in der Bind-Datei) fest codiert sind , verringert sich das TTL-Feld trotzdem, /etc/bind/db.root
wenn ich mehrere aufeinanderfolgende nslookup
Befehle für den Root-Nameserver ausführe..
Warum sollte die TTL abnehmen, wenn sie in der Konfigurationsdatei fest codiert ist?
Und warum wäre überhaupt eine TTL auf Stammebene erforderlich, wenn sie fest codiert ist?
Antwort1
Normalerweise würden Sie die DNS-Stammserver ähnlich dem folgenden Codeausschnitt explizit konfigurieren:
zone "." {
type hint;
file "/etc/bind/db.root";
};
Wenn Sie beobachten, dass Zonentyp nicht der übliche ist, master
sondern slave
einSonderzonentypangerufenhint
.
Beim Start des Nameservers verwendet er lediglich die Root-Hinweise, um einen antwortenden Root-Nameserver zu finden und ruft dann von dort die aktuelle Liste der Root-Nameserver ab. Dies sind die Root-Server, die während des Betriebs tatsächlich verwendet werden.
Da diese zwischengespeichert sind, benötigen sie eine TTL und wie Sie beobachtet haben, verringert sich diese TTL wie bei jedem anderen zwischengespeicherten DNS-Eintrag.
Wenn für die Klasse IN keine Hinweiszone angegeben ist, verwendet der Server einen kompilierten Standardsatz von Hinweisen für Stammserver. Quelle: das BindAdministrator-Referenzhandbuch.
Wie Brian in seiner Antwort erklärt, ändert sich die Root-Zone, und solange mindestens ein Nameserver gültig bleibt, lässt die Hinweiszone solche Änderungen in den Root-Nameservern zu, ohne dass alle vorhandenen Nameserver ihre statischen Konfigurationsdateien aktualisieren müssen.
Antwort2
Sie sind nicht dauerhaft fest codiert – die Stammzonendatei ändert sich im Laufe der Zeit, sodass an Resolver weitergegebene Einträge nicht für die Ewigkeit festgelegt werden können.
Die aktuelle Version wurde beispielsweise zuletzt im Jahr 2014 aktualisiert, wie der Anfang der Datei zeigt.Hier:
; 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
Antwort3
db.root wird nur im Rahmen des DNS-Server-Startvorgangs verwendet, um die tatsächlichen aktuellen Root-Server zu finden. Diese werden dann gemäß TTL aktualisiert.