Wie können die Root-Nameserver alle DNS-Anfragen bearbeiten?

18

Ich habe vor einigen Tagen über DNS gelesen und erfahren, wie die Anfragen verarbeitet werden. Wenn Sie auf www.example.com surfen, wird eine Anfrage an die Root-Nameserver gesendet, um festzustellen, wem diese .com-Adresse gehört. Eine weitere Anfrage wird an einen anderen, lokaleren DNS-Server gesendet, um festzustellen, wem die example.com gehört Adresse und so weiter.

Wie ist es technisch möglich, dass die 13 Root Name Server alle Anfragen von Milliarden von Internetnutzern gleichzeitig bearbeiten können, ohne ddos: ed zu müssen?

Rox
quelle
11
Übrigens ist Ihre Zusammenfassung der Funktionsweise des DNS falsch. Die an den Root-Nameserver gestellte Frage lautet nicht "Wem gehört .com?". aber "wie lautet die IP-Adresse von www.example.com?" (Der Root-Nameserver antwortet mit einem Verweis auf den Eigentümer von .com.) Der Stammnamenserver sieht die gesamte Abfrage (was für Statistiken, Data Mining usw. nützlich ist).
Bortzmeyer
@bortzmeyer Der Hauptgrund, warum der gesamte Name an die Stammserver gesendet wird, ist, dass nicht jeder Punkt im Namen notwendigerweise eine Autoritätsgrenze darstellt. In der Praxis gibt es meines Erachtens immer eine Autoritätsgrenze direkt unterhalb der TLD, aber im Prinzip ist dies nicht garantiert. Daher könnte zu einem späteren Zeitpunkt beschlossen werden, eine spezielle TLD einzuführen, bei der die zweite Ebene von den Root-Servern verwaltet wird, sodass Sie bei der Abfrage der Root-Server a.b.c.exampleerfahren, wer für wen zuständig ist, c.exampleanstatt für wen example.
Kasperd

Antworten:

51

Es handelt sich um 13 hochverfügbare Servercluster, nicht nur um 13 Server.

Unter anderem müssen Root-Nameserver-Bediener über genügend Kapazität verfügen, um das Dreifache ihrer normalen Verkehrslast ( RFC 2870 ) zu bewältigen . Dies führt zu ziemlich großen Clustern.

Allerdings dient der Root - Nameserver nur Antworten für den Top - Level - Domains selbst, das heißt com., net., uk., ae., usw., und die Nameserver , die die Wurzel Fragen Sie diese Informationen zwischenspeichern kann bis zu 48 Stunden , die drastisch die Last an dem Root - Nameserver reduziert. Dies führt zu kleineren Clustern.

Die Root-Nameserver befinden sich an über 130 Standorten in 53 Ländern. Mit nur 13 Servernamen geschieht dies durch die Magie von IPv4 Anycast.

Die Root-Nameserver haben auch eine eigene Website , auf der Sie interessante Informationen finden können.

Michael Hampton
quelle
48 h ist die TTL der NS-Records an der Wurzel. Sie kann jedoch von den Nameservern der TLD selbst überschrieben werden. Für .jp sind es beispielsweise nur 24 Stunden.
Bortzmeyer
Nun, wir werden reden über den Root - Nameserver hier. :)
Michael Hampton
RFC 2870 ist heute ziemlich veraltet. Aufgrund der dDoS-Angriffe muss ein Root-Nameserver bereit sein, mehr als das Dreifache seines normalen Datenverkehrs zu beantworten.
Bortzmeyer
8
53 Länder? ist es ein Zufall oder sie haben es genau wie der DNS-Abfrage-Port gewählt? : D
Amyassin
10

Sie tun es nicht. Die Root-Nameserver müssen nur mitteilen, mit welchen Nameservern sie umgehen com. Von da an müssen Sie nicht mehr zu ihnen gehen, um eine Domain innerhalb zu verwalten com. Die Root-Nameserver haben keine Ahnung, wem sie gehören example.com. Sie sind Root Nameserver, keine Com Nameserver.

Was slimsuperhero sagte, ist auch wahr. Viele hochvolumige Nameserver verwenden Anycast , um eine einzige IP-Adresse von einer Reihe von Servern auf der ganzen Welt bereitzustellen.

David Schwartz
quelle
Aber wenn 1 Milliarde Benutzer gleichzeitig zu verschiedenen .com-Adressen surfen würden, würden die Root-Nameserver dann alle Anfragen bearbeiten?
Rox
3
Zum einen sprechen Benutzer nur mit rekursiven Nameservern (die eine Verbindung zu anderen Nameservern herstellen, um Antworten zu erhalten), und die Root-Nameserver sind nicht rekursiv (sie liefern nur lokale Informationen, die sie bereits kennen). Benutzer sprechen mit ihren eigenen Nameservern (in der Regel von ihrem ISP bereitgestellt), die die Root-Nameserver nur einmal nach den Servern fragen müssen, die sie bedienen com.
David Schwartz
1
@DavidSchwartz ist richtig - statt einer Milliarde Anfragen von einer Milliarde Benutzern würden sie nur ungefähr eine Million Anfragen von einer Million ISPs erhalten, von denen jeder tausend Benutzer bedient.
Shadur
@Shadur: Nun, die Nameserver für comauf der anderen Seite müssen einen viel massiveren Schlag hinnehmen .
David Schwartz
1
Und ich bin mir ziemlich sicher, dass sie angemessen skaliert und geclustert sind.
Shadur
6

Jeder Root-Server ist eigentlich kein Server, sondern ein riesiger Cluster von Servern. Darüber hinaus werden DNS-Antworten zwischengespeichert, sodass nicht jede Anforderung den Stammserver erreicht.

Gevial
quelle
3

Beachten Sie, dass Sie die Stammserver nicht verwenden. Normalerweise verwenden Sie den von Ihrem Internetdienstanbieter bereitgestellten DNS-Server, der in der Regel sofort reagieren kann, wenn sich die benötigten Informationen im lokalen Cache befinden. Nur wenn es nicht zwischengespeichert ist, wird der Upstream-DNS-Server gefragt, und schließlich wird der Stammserver gefragt (und diese Antwort wird dann zwischengespeichert).

Thorbjørn Ravn Andersen
quelle
0

Tatsächlich ist es die 13 Anycast IP-Adresse, die zu vielen Servern auf der ganzen Welt aufgelöst wird. Über den Link können Sie diese Server bei Bedarf finden. Alle diese Server werden von der betreffenden Behörde verwaltet.

Die Tatsache, dass wir immer noch nur 13 IP-Adressen (und Cluster von Servern mit derselben IP-Adresse) verwenden, ist, um sicherzustellen, dass die Paketgröße 512 Bytes nicht überschreitet. Warum dann? Wir haben TCP, das über diese Paketgröße hinausgehen kann. Warum können wir es nicht verwenden? Die Sache ist, dass TCP einen sehr hohen Overhead mit sich bringt, da es mehrere Schritte und Prozeduren zum Herstellen einer TCP-Verbindung umfasst. Aus diesem Grund verlangsamt sich der gesamte Prozess einer DNS-Abfrage.

Dinge wie DNS können niemals langsam sein und deshalb verwenden wir immer noch dasselbe alte System.

Jaison
quelle
Die Antwort auf eine Anfrage für .passt nicht mehr in 512 Bytes. Da IPv6 jetzt eine Notwendigkeit ist, ist die Antwort auf 811 Byte angewachsen. Mit EDNS kann dies in einer einzigen Antwort zurückgegeben werden. Anfragen nach .werden jedoch nicht so oft benötigt, dass ein paar Hin- und Rückfahrten ein Showstopper sind. In erster Linie ist es für Rekursoren erforderlich, die neuesten Änderungen an den IP-Adressen der Roots zu erfahren, die sich selten ändern.
Kasperd
@kasperd Ich bin mir nicht sicher. Ich habe dig + trace auf einen normalen A- oder AAAA-Datensatz überprüft und alle Antworten (von Root-Servern, Top-Servern oder Nameservern) liegen unter 508 bis 509 Byte. Kannst du ein bisschen mehr darüber erklären?
Jaison
Sie müssen EDNS oder TCP verwenden, um die vollständige Antwort zu erhalten. UDP-Anfragen ohne EDNS können niemals eine Antwort erhalten, die länger als 512 Bytes ist.
Kasperd