Hallo Martin,
Der Server bei dyndns.org bekommt vermutlich *alle* Anfragen an die Domain ...
Und das soll einfacher sein, als ein DNS-Eintrag?Ob einfacher, kann ich nicht sagen. Aber ich habe mal gelesen, das globale DNS sei eine Art verteilte Datenbank, bei der es mehrere Stunden dauern kann, bis ein bestimmter Eintrag im "eigenen" Nameserver auch global gültig und verfügbar ist. Bei dyndns.org dauert ein Update dagegen nur Sekunden, maximal wenige Minuten.
Naja, beim normalen DNS dauert das so lange wegen der TTL-Werte. Ein normaler DNS-Eintrag hat aus Caching-Gründen einen hohen TTL-Wert (TTL: Time To Live) - d.h. er darf _sehr_ lange gecached werden. Teilweise steht da sogar 1 Woche oder mehr drin. Bei DynDNS ist der TTL-Wert auf 1 Minute gesetzt. Das ist zwar eigentlich total ineffizient, aber gerade richtig für den Zweck, den DynDNS erreichen will. Da die DynDNS-Server entsprechend häufiger befragt werden, als normale Nameserver, brauchen sie natürlich auch vergleichsweise viele von diesen.
DNS-Einträge sind billig, die Abfrage eines DNS-Eintrags braucht im Idealfall nur 2 UDP-Pakete (eines hin, eines zurück), die als Traffic für den DynDNS-Server entstehen - bei einem HTTP-Proxy entsteht dagegen _mordsmäßig_ viel Traffic und es kostet mordsmäßig viel Rechenzeit / RAM.
Es muss ja nicht gleich ein HTTP-Server dahinterstehen. Ich habe nicht im Detail darüber nachgedacht; spontan würde ich meinen, ein Lowlevel-Proxy auf IP-Ebene wäre ja auch denkbar. Obwohl, wenn ich so überlege, kaum ein Protokoll überträgt den Hostnamen mit jedem Paket ...
Eben. ;-)
Anyway, mein Wissen über DNS ist Stückwerk, ich weiß - aber das ist eine Wissenslücke, die ich nur zu gern schließen würde. Nur habe ich bisher im Web nichts gefunden, wo man sich so richtig über die Funktionsweise und den technischen Background im Detail informieren kann. Die meisten Sites erschöpfen sich in oberflächlichem Blabla und eventuell der Bemerkung, "das macht Ihr Provider für Sie". Kein Wunder, dass sich dann kaum einer damit auskennt. Weißt du da vielleicht eine Adresse, wo man sich schlaulesen kann?
Bevor ich Dir irgend eine Adresse empfehle, erkläre ich lieber mal was selbst. Also: DNS ist ein hierarchisch aufgebautes System. Es gibt die sogenannten Root-Nameserver. Diese stehen auf der ganzen Welt verteilt. Die Root-Nameserver enthalten Informationen zu allen Top-Level-Domains (de, com, org, ...). Die Root-Nameserver enthalten aber selbst wieder verweise, welcher Nameserver für die Top-Level-Domains zuständig ist. Für die .de-Domain sieht das aktuell bspw. so aus:
DE. 172800 IN NS A.NIC.DE.
DE. 172800 IN NS F.NIC.DE.
DE. 172800 IN NS Z.NIC.DE.
DE. 172800 IN NS C.DE.NET.
DE. 172800 IN NS L.DE.NET.
DE. 172800 IN NS S.DE.NET.
Das sind typische DNS-Einträge - auf der linken Seite steht das Objekt, für den der Eintrag gelten soll, danach kommt die TTL (Time To Live) in Sekunden, danach kommt ein "IN" (ist heutzutage bei jedem DNS-Eintrag vorhanden), danach kommt der Typ des Eintrags (hier: NameServer) und danach kommen Informationen zum Typ des Nameservers. Der Typ "NS" bedeutet: "Der folgende Nameserver ist für diesen DNS-Abschnitt zuständig".
Die Root-Nameserver speichern weiterhin noch die Adressen der Nameserver, die da rechts stehen (A.NIC.DE., ...), da das ganze ja sonst eine Endlosschleife wäre. Mehr Informationen speichern die Root-Nameserver allerdings nicht:
A.NIC.DE. 172800 IN A 193.0.7.3
F.NIC.DE. 172800 IN A 81.91.164.5
F.NIC.DE. 172800 IN AAAA 2001:608:6:0:0:0:0:5
Z.NIC.DE. 172800 IN A 194.246.96.1
Z.NIC.DE. 172800 IN AAAA 2001:628:453:4905:0:0:0:53
C.DE.NET. 172800 IN A 208.48.81.43
L.DE.NET. 172800 IN A 217.51.137.213
S.DE.NET. 172800 IN A 193.159.170.149
(Die AAAA sind Adresseinträge für IPv6, das tangiert Dich als IPv4-Nutzer nicht.)
Die Nameserver, die für .DE eingetragen sind, enthalten dann alle Informationen zu den Second-Level-Domains unter .DE. Die Daten sind im Gegensatz zu den Root-Nameserver-Daten nicht öffentlich, d.h. nur, wenn Du die Domain auch kennst, kannst Du eine Anfrage stellen. Wenn ich aber eine Anfrage nach "denic.de" an einen der obigen .DE-Nameserver stelle, erhalte ich wiederum eine Liste mit Nameservern, die für denic.de. zuständig sind:
denic.de. 3658 IN NS dns15.denic.net.
denic.de. 3658 IN NS dns3.denic.de.
denic.de. 3658 IN NS dns10.denic.de.
denic.de. 3658 IN NS dns13.denic.de.
denic.de. 3658 IN NS dns14.denic.net.
Und natürlich auch wieder die zugehörigen Adressen der Nameserver, die für denic.de zuständig sind:
dns3.denic.de. 3675 IN A 81.91.161.2
dns3.denic.de. 10589 IN AAAA 2001:608:6::2
dns10.denic.de. 3675 IN A 193.171.255.36
dns13.denic.de. 3675 IN A 66.35.208.43
dns14.denic.net. 65374 IN A 193.159.170.188
dns15.denic.net. 2772 IN A 62.53.3.67
Wenn Du nun einen dieser Nameserver nach www.denic.de befragst, erhälst Du dann die gewünschte Antwort:
www.denic.de. 86400 IN A 81.91.161.19
Du siehst: Die Nameserver sind hierarchisch verteilt. Nun gibt es ferner zwei Arten von DNS-Abfragen: Rekursive und Iterative. Bei einer rekursiven Abfrage stellst Du eine Abfrage an einen Nameserver und der macht die ganze Auflösung etc. für Dich und liefert Dir nur das Endergebnis. Bei einer iterativen Abfrage löst Du die Domain so lange »von rechts« nach auf und fragst immer wieder andere Nameserver, bis Du eine Antwort gefunden hast.
Die wichtigsten Nameserver (Root-Nameserver, Nameserver für die TLDs) unterstützen nur iterative Abfragen, d.h. wenn Du z.B. einen Root-Nameserver nach www.denic.de befragst, erhälst Du als Antwort nur:
DE. 172800 IN NS A.NIC.DE.
[...]
S.DE.NET. 172800 IN A 193.159.170.149
(wie oben eben)
Damit kannst Du dann selbst weiterfragen. Wenn Root-Nameserver rekursive Abfragen unterstützen würden, würden diese unter der Last zusammenbrechen.
Wenn Du nun den Nameserver Deines Providers eingetragen hat, dann macht der 2 Dinge: Erstens ist er direkt verantwortlich für die Domains Deines Providers. D.h.: Wenn Du z.B. bei dem fiktiven Provider provider.example wärst, dann würde der Anfragen an z.B. mail.provider.example sofort selbst auflösen - er ist ja direkt dafür zuständig. Falls er *nicht* direkt für eine sog. »Zone« zuständig ist, forscht er selbst nach (Provider-Nameservern kann/soll man nämlich rekursive Anfragen stellen) und gibt Dir dann die Adresse zurück. Dazu hat der Provider-Nameserver eine Liste mit Root-Nameservern (Werden meist in einer Datei namens »root.hint« gespeichert) und fragt dann alles ab bis er zum Ziel gekommen ist und liefert Dir dann das Ergebnis. Damit er das nicht jedes Mal tun muss, cached er die Einträge, primär ist die TTL der entscheidende Wert dafür. D.h. solange Zeitpunkt des Abrufens + TTL > Jetzt ist, dann ist der Eintrag für den Provider-Nameserver noch gültig, d.h. er kann ihn _direkt_ zurückgeben, _ohne_ nochmal nachfragen zu müssen.
Du hast oben gesehen, dass der Eintrag für www.denic.de eine TTL von 86400 hat - das ist genau 1 Tag. Damit dauert es einen Tag, bis sich geänderte Einträge im gesamten DNS rumgesprochen haben. Wenn eine DynDNS-Adresse jedoch nur 60 Sekunden TTL hat, dann muss jeder Nameserver ständig DynDNS-Adressen abfragen - d.h. das Caching ist so gut wie komplett deaktiviert - und damit kann eine Änderung wirklich innerhalb von Minuten (theoretisch: 59 Sekunden, rechne praktisch noch etwas drauf) wirksam werden.
Nur, weil Angebote für Privatmenschen bezüglich eigenen DNS-Einträgen i.A. teurer sind, als Webspace oder ähnliches, heißt das nicht, dass das auch aufwändiger ist
Diese Bemerkung von dir lässt mich vermuten, dass es Provider gibt, die das mit anbieten.
Ja, gerade Provider, die *nur* Domains ohne Webspace anbieten, haben so etwas häufiger.
Aber das müsste doch ein werbewirksames Attribut sein - warum preist das kaum ein Provider an?
Das ist inzwischen im Kommen, ich glaube, man kann inzwischen sogar bei bestimmten 1&1-Paketen das machen.
an Webspace lässt sich halt besser verdienen, das ist alles.
Das eine schließt das andere ja nicht aus. Ich würde es für normal halten, wenn ich bei dem Provider, bei dem ich meinen Webspace miete, auch die zugehörigen DNS-Einträge selbst verwalten könnte.
Dich fragen aber wohl die wenigsten Provider. ;-) Ich stimme Dir aber absolut zu, dass das sehr praktisch wäre.
Viele Grüße,
Christian
"I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone." - Bjarne Stroustrup