Um es kurz zu machen: Beide Abfragen, die Sie in der Frage erwähnt haben, sind nicht autorisierende Abfragen.
DNS-Einträge für eine Domäne können von einem Cache-DNS-Server oder von einem autorisierenden DNS-Server abgefragt werden. Wenn Sie einen Cache-DNS-Server abfragen möchten, können Sie entweder die DNS-IP-Adresse angeben. Wenn Sie keine Angabe machen, wird der standardmäßig konfigurierte DNS-Server verwendet /etc/resolv.conf
.
Nicht autorisierende Abfrage
$ dig stackexchange.com
oder
$ dig stackexchange.com @8.8.8.8
In beiden Fällen gibt die Abfrage eine nicht autorisierende Antwort zurück, da der DNS Ihres Internetdienstanbieters oder der öffentliche DNS (8.8.8.8) von Google für die stackexchange.com
Domäne nicht autorisierend sind. Da Sie einen nicht autorisierenden Nameserver abgefragt haben, verringert sich der von ihm bereitgestellte TTL-Wert bei jeder Abfrage. Sobald der TTL-Wert abgelaufen ist, fordert der Caching Nameserver den autorisierenden DNS-Server erneut an.
Autorisierende Abfrage
Um eine autorisierende Antwort zu erhalten, müssen Sie den Datensatz von einem autorisierenden DNS-Server abfragen, der mit der unten angegebenen Methode gefunden werden kann.
$ dig ns stackexchange.com ... ;; ANSWER SECTION: stackexchange.com. 84894 IN NS cf-dns02.stackexchange.com. stackexchange.com. 84894 IN NS cf-dns01.stackexchange.com. ...
Der ANSWER SECTION stellt die autorisierenden Nameserver für die Domäne bereit. stackexchange.com
Wenn Sie also die autorisierende Antwort benötigen, geben Sie die Antwort an
$ dig stackexchange.com @cf-dns01.stackexchange.com.
Während wir den autorisierenden DNS-Server abfragen, werden die TTL-Werte nicht geändert, da diese Nameserver die primäre Informationsquelle sind und nicht verfallen, bis der Administrator sie ändert.
Wie JEDER Datensatz funktioniert
Jeder Datensatz ist wie ein Platzhalter. Sie können ihn verwenden, um alle Datensätze abzurufen, die auf einem DNS-Server zwischengespeichert / gespeichert werden. Zum Beispiel habe ich stackexchange.com
nach JEDEM Datensatz gesucht und mein Standard-DNS-Server antwortet wie folgt.
$ dig any stackexchange.com .... ;; ANSWER SECTION: stackexchange.com. 86350 IN SOA cf-dns01.stackexchange.com. dns.cloudflare.com. 2017456480 10000 2400 604800 3600 stackexchange.com. 176 IN A 198.252.206.140 stackexchange.com. 84338 IN NS cf-dns01.stackexchange.com. stackexchange.com. 84338 IN NS cf-dns02.stackexchange.com. ....
Hier können Sie sehen, dass die Antwort nur Informationen über enthält SOA
, A
und NS
Aufzeichnung. Es gibt jedoch tatsächlich mehr Einträge, für stackexchange.com
die in meinem Standard-DNS-Server nicht zwischengespeichert wird, da ich nicht danach gefragt wurde.
Jetzt frage ich nach MX
Datensatz an meinen Standard-DNS-Server und die Antwort lautet als
$ dig MX stackexchange.com .... ;; ANSWER SECTION: stackexchange.com. 300 IN MX 10 aspmx3.googlemail.com. stackexchange.com. 300 IN MX 5 alt2.aspmx.l.google.com. stackexchange.com. 300 IN MX 5 alt1.aspmx.l.google.com. stackexchange.com. 300 IN MX 10 aspmx2.googlemail.com. stackexchange.com. 300 IN MX 1 aspmx.l.google.com. ....
Jetzt abfragen ich wieder für ANY
Aufzeichnung und jetzt können Sie diese Abfrage sehen für ANY
zurückgegeben hat MX
Aufzeichnungen zu. Und so ANY
Datensatz wird nur Aufzeichnungen zur Verfügung stellen, die auf dem Standardserver nur zwischengespeichert werden.
$ dig any stackexchange.com .... ;; ANSWER SECTION: stackexchange.com. 298 IN MX 5 alt1.aspmx.l.google.com. stackexchange.com. 298 IN MX 10 aspmx2.googlemail.com. stackexchange.com. 86084 IN NS cf-dns01.stackexchange.com. stackexchange.com. 298 IN MX 10 aspmx3.googlemail.com. stackexchange.com. 298 IN MX 1 aspmx.l.google.com. stackexchange.com. 298 IN MX 5 alt2.aspmx.l.google.com. stackexchange.com. 86084 IN NS cf-dns02.stackexchange.com. stackexchange.com. 243 IN A 198.252.206.140 stackexchange.com. 86343 IN SOA cf-dns01.stackexchange.com. dns.cloudflare.com. 2017456480 10000 2400 604800 3600 ....
Und wie Sie sehen, ändern sich die TTL-Werte für nicht autorisierende Antworten.