Untergeordnete Identifikation
NS-Einträge auf Apex-Ebene werden von einem Masterserver verwendet, um seine Untergebenen zu identifizieren. Wenn sich Daten auf einem autorisierenden Nameserver ändern, wird dies über DNS NOTIFY
Nachrichten ( RFC 1996 ) an alle Peers in dieser Liste angekündigt . Diese Server rufen ihrerseits mit einer Anfrage nach dem SOA
Datensatz (der die Seriennummer enthält) zurück und treffen eine Entscheidung darüber, ob eine neuere Kopie dieser Zone abgerufen werden soll.
- Es ist möglich, diese Nachrichten an Server zu senden, die nicht in diesem
NS
Abschnitt aufgeführt sind. Hierfür sind jedoch serverspezifische Konfigurationsanweisungen erforderlich (z. B. die also-notify
Anweisung von ISC BIND ). Die Apex-NS-Einträge umfassen die Grundliste der Server, die bei einer Standardkonfiguration benachrichtigt werden sollen.
- Es ist zu beachten, dass die sekundären Server auf der Grundlage dieser
NS
Datensätze auch NOTIFY-Nachrichten aneinander senden , was normalerweise zu protokollierten Ablehnungen führt. Dies kann deaktiviert werden, indem Server angewiesen werden, Benachrichtigungen nur für Zonen zu senden, für die sie Master sind (BIND:) notify master;
, oder NS
basierte Benachrichtigungen vollständig zugunsten explizit in der Konfiguration definierter Benachrichtigungen zu überspringen . (BIND: notify explicit;
)
Maßgebliche Definition
Die obige Frage enthielt einen Irrtum:
Sie werden nicht vom Caching von DNS-Servern verwendet, um die autorisierenden Server für die Domäne zu ermitteln. Dies wird durch Nameserver-Leim erledigt, der auf Registrar-Ebene definiert wird. Der Registrar verwendet diese Informationen niemals, um die Leimaufzeichnungen zu erstellen.
Dies ist eine einfache Schlussfolgerung, die jedoch nicht zutreffend ist. Die NS
in Ihrem Registrar-Konto definierten Datensätze und Leimdatensätze sind nicht maßgebend. Es liegt auf der Hand, dass sie nicht als "autorisierender" angesehen werden können als die Daten, die sich auf den Servern befinden, an die die Autorität delegiert wird. Dies wird durch die Tatsache unterstrichen, dass für Verweise das aa
Flag (Authoritative Answer) nicht gesetzt ist.
Um zu veranschaulichen:
$ dig @a.gtld-servers.net +norecurse +nocmd example.com. NS
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14021
;; flags: qr; QUERY: 1, ANSWER: 0, AUTHORITY: 2, ADDITIONAL: 5
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;example.com. IN NS
;; AUTHORITY SECTION:
example.com. 172800 IN NS a.iana-servers.net.
example.com. 172800 IN NS b.iana-servers.net.
;; ADDITIONAL SECTION:
a.iana-servers.net. 172800 IN A 199.43.135.53
a.iana-servers.net. 172800 IN AAAA 2001:500:8f::53
b.iana-servers.net. 172800 IN A 199.43.133.53
b.iana-servers.net. 172800 IN AAAA 2001:500:8d::53
Beachten Sie das Fehlen aa
in den Flags für die obige Antwort. Die Überweisung selbst ist nicht maßgebend. Andererseits sind die Daten auf dem Server, auf den verwiesen wird, maßgebend.
$ dig @a.iana-servers.net +norecurse +nocmd example.com. NS
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2349
;; flags: qr aa; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;example.com. IN NS
;; ANSWER SECTION:
example.com. 86400 IN NS a.iana-servers.net.
example.com. 86400 IN NS b.iana-servers.net.
Das heißt, diese Beziehung kann sehr verwirrend werden, da es nicht möglich ist, Informationen zu den autorisierenden Versionen dieser NS
Datensätze zu erhalten, ohne die nicht autorisierenden NS
Datensätze, die auf der übergeordneten Seite der Überweisung definiert sind. Was passiert, wenn sie nicht einverstanden sind?
- Die kurze Antwort lautet "inkonsistentes Verhalten".
- Die lange Antwort ist , dass Name - Server werden zunächst Stummel alles aus der Vorlage (und Klebstoff) auf einem leeren Cache, aber diejenigen
NS
, A
und AAAA
Aufzeichnungen irgendwann ersetzt werden können , wenn sie aufgefrischt werden. Die Aktualisierungen erfolgen, wenn die TTLs für diese temporären Datensätze ablaufen oder wenn jemand die Antwort für diese Datensätze explizit anfordert.
A
und AAAA
Aufzeichnungen für von Zonendaten (dh der com
Name - Server definiert , Klebstoff für Daten außerhalb der com
Zone, wie example.net
) wird auf jeden Fall am Ende werden aufgefrischt, da es ein gut verständliches Konzept ist , dass ein Name - Server soll nicht eine maßgebliche Quelle dieser Informationen in Betracht gezogen werden . (RFC 2181)
- Wenn sich die Werte der
NS
Datensätze zwischen der übergeordneten und der untergeordneten Seite der Überweisung unterscheiden (z. B. die in das Registrar Control Panel eingegebenen Nameserver, die sich von den NS
auf denselben Servern gespeicherten Datensätzen unterscheiden ), ist das erlebte Verhalten bis einschließlich untergeordneter Server inkonsistent NS
Datensätze werden komplett ignoriert. Dies liegt daran, dass das Verhalten durch die Standards nicht genau definiert ist und die Implementierung zwischen verschiedenen rekursiven Serverimplementierungen variiert. Mit anderen Worten, ein konsistentes Verhalten im Internet kann nur erwartet werden, wenn die Nameserver-Definitionen für eine Domain zwischen der übergeordneten und der untergeordneten Seite einer Empfehlung konsistent sind .
Das Entscheidende dabei ist, dass rekursive DNS-Server im gesamten Internet zwischen Zielen zurückspringen, wenn die auf der übergeordneten Seite des Verweises definierten Datensätze nicht mit den maßgeblichen Versionen dieser Datensätze übereinstimmen. Anfänglich werden die in der Überweisung enthaltenen Daten bevorzugt, nur um durch die maßgeblichen Definitionen ersetzt zu werden. Da Caches im gesamten Internet ständig von Grund auf neu aufgebaut werden, kann sich das Internet mit dieser Konfiguration nicht auf eine einzige Version der Realität festlegen. Wenn die autorisierenden Datensätze gemäß den Standards etwas Illegales tun, z. B. NS
Datensätze auf Aliase verweisen, die durch a definiert sindCNAME
Dies ist noch schwieriger zu beheben. Die Domain wechselt zwischen "funktioniert" und "funktioniert nicht" für Software, die den Verstoß ablehnt. (dh ISC BIND / named)
RFC 2181 §5.4.1 enthält eine Rangliste für die Vertrauenswürdigkeit dieser Daten und macht deutlich, dass Cache-Daten, die mit Verweisen und Klebstoff verknüpft sind, nicht als Antwort auf eine explizite Anforderung der Datensätze zurückgegeben werden können, auf die sie verweisen.
5.4.1. Ranking data
When considering whether to accept an RRSet in a reply, or retain an
RRSet already in its cache instead, a server should consider the
relative likely trustworthiness of the various data. An
authoritative answer from a reply should replace cached data that had
been obtained from additional information in an earlier reply.
However additional information from a reply will be ignored if the
cache contains data from an authoritative answer or a zone file.
The accuracy of data available is assumed from its source.
Trustworthiness shall be, in order from most to least:
+ Data from a primary zone file, other than glue data,
+ Data from a zone transfer, other than glue,
+ The authoritative data included in the answer section of an
authoritative reply.
+ Data from the authority section of an authoritative answer,
+ Glue from a primary zone, or glue from a zone transfer,
+ Data from the answer section of a non-authoritative answer, and
non-authoritative data from the answer section of authoritative
answers,
+ Additional information from an authoritative answer,
Data from the authority section of a non-authoritative answer,
Additional information from non-authoritative answers.
<snip>
Unauthenticated RRs received and cached from the least trustworthy of
those groupings, that is data from the additional data section, and
data from the authority section of a non-authoritative answer, should
not be cached in such a way that they would ever be returned as
answers to a received query. They may be returned as additional
information where appropriate. Ignoring this would allow the
trustworthiness of relatively untrustworthy data to be increased
without cause or excuse.