
Aushttps://www.cloudflare.com/en-au/learning/dns/dns-server-types/
Die 13 DNS-Root-Nameserver sind jedem rekursiven Resolver bekannt und stellen die erste Anlaufstelle bei der Suche eines rekursiven Resolvers nach DNS-Einträgen dar. Ein Root-Server akzeptiert die Abfrage eines rekursiven Resolvers, die einen Domänennamen enthält, und der Root-Nameserver antwortet, indem er den rekursiven Resolver an einen TLD-Nameserver weiterleitet, der auf der Erweiterung dieser Domäne (.com, .net, .org usw.) basiert.
Aber warum können die rekursiven Resolver die TLD-Server nicht direkt abfragen? Meines Wissens nach gibt es nur ca. 1500 TLD-Server, die man problemlos auf alle Resolver-Server verteilen könnte.
So etwas wie ein Root-Server wäre nötig, um alle TLD-Server an die Resolver zu verteilen. Sie sollten jedoch nur einmal abgefragt werden, um die TLD-Liste zu initialisieren. Meines Wissens wird bei jeder DNS-Anfrage der Root-Server gefragt, z. B. „Wo ist der TLD-Server für .com?“ Das scheint ziemlich ineffizient zu sein?
Antwort1
Aber warum können die rekursiven Resolver die TLD-Server nicht direkt abfragen? Meines Wissens nach gibt es nur ca. 1500 TLD-Server, die man problemlos auf alle Resolver-Server verteilen könnte.
Denn wenn Sie über eine Liste mit 1500 Servern verfügen, müssen Sie wesentlich häufiger Updates verteilen – und die Vermeidung der Notwendigkeit, eine solche Liste an alle Benutzer zu verteilen (selbst wenn es sich nur um diejenigen handelt, die einen Resolver ausführen), ist sozusagen der Grund, warum DNS überhaupt entwickelt wurde.
Dies wäre zwar möglich (und in manchen Fällen wird es auch gemacht), aber Sie benötigen trotzdem diese X-Root-Server.für die Verteilung der ListeEs ist also einfacher, die bestehenden Mechanismen zu nutzen – höchstwahrscheinlich sind siemehreffizienter als das Abrufen der gesamten Liste bei jedem Start.
So etwas wie ein Root-Server wäre nötig, um alle TLD-Server an die Resolver zu verteilen. Sie sollten jedoch nur einmal abgefragt werden, um die TLD-Liste zu initialisieren. Meines Wissens wird bei jeder DNS-Anfrage der Root-Server gefragt, z. B. „Wo ist der TLD-Server für .com?“ Das scheint ziemlich ineffizient zu sein?
Ja, jede DNS-Anfrage erfordert eine solche Abfrage, aber meistens wird sie direkt aus dem Cache des Resolvers erfüllt, solange die TTL dies zulässt. In dieser Hinsicht sind Root-Abfragen nichts Besonderes – sie werden wie alle anderen Abfragen in der Kette zwischengespeichert (und natürlich auch die letzte Abfrage).
Da jede TLD einzeln zwischengespeichert wird, ist dies wahrscheinlich effizienter als das Abrufen der gesamten Liste. Ein Resolver, dessen Benutzer hauptsächlich 10 TLDs benötigen, muss nur etwa einmal am Tag 10 Abfragen an die Stammserver senden. Bei einer großen Liste mit 1500 Servern würde das Aktualisieren der gesamten Liste mit der gleichen Häufigkeit viele Ressourcen auf den Stammservern verbrauchen, und selbst wenn Sie die inkrementelle Übertragung verwenden würden, würden Sie immer noch viele Änderungen erhalten, die Siebrauche nicht.
Antwort2
Wie @gantendo betont, gibt es Caching.
Aushttps://en.m.wikipedia.org/wiki/Domain_Name_System
Dieser Mechanismus würde eine große Verkehrslast für die Stammserver bedeuten, wenn jede Auflösung im Internet von der Stammserverseite aus erfolgen müsste. In der Praxis wird in DNS-Servern Caching verwendet, um die Stammserver zu entlasten. Infolgedessen sind Stamm-Nameserver tatsächlich nur an einem relativ kleinen Teil aller Anfragen beteiligt.
Mit anderen Worten: Root-Server werden nur gelegentlich abgefragt, um die TLD-Liste zu initialisieren.