DNS-Root-Eintrag fest codiert, warum hat es dann ttl?

8

Ich hoste einen rekursiven Nameserver lokal, sodass ich meinen Dienstanbieter oder einen anderen öffentlichen DNS-Server nicht für die Namensauflösung benötige. Obwohl die IP-Adressen des Root-Nameservers in der Konfigurationsdatei (in der Bind- /etc/bind/db.rootDatei) fest codiert sind , nimmt das TTL-Feld immer noch ab , wenn ich mehrere aufeinanderfolgende nslookupBefehle für den Root-Nameserver für ausführe ..

Warum sollte die TTL abnehmen, wenn sie in der Konfigurationsdatei harcodiert ist?
Und warum sollte eine TTL auf Root-Ebene überhaupt benötigt werden, wenn sie harcodiert ist?

user2632528
quelle

Antworten:

14

Normalerweise konfigurieren Sie die DNS-Stammserver explizit ähnlich dem folgenden Snippet:

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

Wo Sie beobachten , dass Zonentyp nicht üblich ist , masternoch slave aber eine spezielle Zone Typ genannt hint.

Wenn der Nameserver gestartet wird, verwendet er nur die Root-Hinweise, um einen antwortenden Root-Nameserver zu finden, und ruft 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 festgestellt haben: Diese TTL nimmt wie jeder andere zwischengespeicherte DNS-Eintrag ab.

Wenn für die Klasse IN keine Hinweiszone angegeben ist, verwendet der Server einen kompilierten Standardsatz von Hinweisen für Stammserver. Quelle: Das Bind Administrator-Referenzhandbuch .

Wie Brian in seiner Antwort erklärt hat, ändert sich die Stammzone, und solange mindestens ein Nameserver gültig bleibt, ermöglicht die Hinweiszone solche Änderungen in den Stammnamenservern, ohne dass alle vorhandenen Nameserver ihre statischen Konfigurationsdateien aktualisieren müssen.

HBruijn
quelle
4

Sie sind nicht dauerhaft fest codiert - die Stammzonendatei ändert sich im Laufe der Zeit, sodass Einträge, die an Resolver weitergeleitet werden, nicht für immer gültig sein können.

Zum Beispiel wurde die aktuelle Version zuletzt im Jahr 2014 aktualisiert, wie am Anfang der Datei hier gezeigt :

;       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
quelle
2

db.root wird nur als Teil des DNS-Server-Startvorgangs verwendet, um die tatsächlichen aktuellen Root-Server zu finden. Diese werden dann gemäß der TTL aktualisiert.

Tom Hallam
quelle