Dynamisches DNS

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von DynDNS)
Wechseln zu: Navigation, Suche

Dynamisches DNS oder DDNS ist eine Technik, um Domains im Domain Name System dynamisch zu aktualisieren. Der Zweck ist, dass ein Rechner nach dem Wechsel seiner IP-Adresse automatisch und schnell den dazugehörigen Domaineintrag ändert. So ist der Rechner immer unter demselben Domainnamen erreichbar, auch wenn die aktuelle IP-Adresse für den Nutzer unbekannt ist.

Es sind zwei verschiedene Mechanismen verbreitet, die unterschiedlichen Anwendungsfällen entspringen:

  • Aktualisierung über HTTP oder HTTPS, populär durch Anbieter wie z. B. DynDNS
  • Aktualisierung über ein an DNS angelehntes Nachrichtenprotokoll, spezifiziert in RFC 2136 und vom Programm nsupdate verwendet

DDNS über HTTP[Bearbeiten]

Ein typischer Anwendungsfall für dynamisches DNS über HTTP oder HTTPS ist der Rechner eines Heimnutzers, der Zugang zum Internet über eine dynamische IP-Adresse des Internet Service Providers hat. Möchte der Nutzer zum Beispiel einen Gameserver betreiben oder per Remote-Desktop auf den Rechner von außen zugreifen, so müsste er die ständig wechselnde IP-Adresse kennen. Mit dynamischem DNS kann er stattdessen bei einem DDNS-Anbieter einen Domainnamen registrieren und dem Namen automatisch die jeweils aktuelle IP-Adresse zuweisen.

Funktionsweise[Bearbeiten]

Um einen DDNS-Eintrag beim Nameserver des Betreibers zu aktualisieren, kann entweder eine Client-Software auf dem Rechner installiert werden, oder eine entsprechende Funktion im Heimrouter genutzt werden. Sobald der Client eine geänderte IP-Adresse erkennt, übermittelt er diese über eine HTTP- oder HTTPS-Schnittstelle an den Anbieter. Die Authentifizierung erfolgt über Benutzername und Passwort. Die Implementierung eines Clients ist wenig aufwendig, da das Netzwerkprotokoll simpel ist und viele Software-Bibliotheken für HTTP/HTTPS-Verbindungen verfügbar sind.

Ständig wechselnde Einträge waren im Domain Name System ursprünglich nicht vorgesehen. Um Netzressourcen zu sparen, werden DNS-Einträge zwischengespeichert. Die Lebensdauer eines Eintrags (Time to Live) wird dabei vom Nameserver vorgegeben. Beim dynamischen DNS wird üblicherweise eine Time to Live von einer Minute verwendet, um kurzfristig vom Caching zu profitieren, ohne dass veraltete Einträge über einen längeren Zeitraum auf eine falsche IP-Adresse verweisen.

Einschränkungen[Bearbeiten]

Wird ein Rechner heruntergefahren oder vom Netz getrennt, so bleibt seine IP-Adresse dem Domainnamen zugeordnet. Falls die IP-Adresse offline ist, führen Verbindungsversuche erst mit mehreren Sekunden Verzögerung zu einem Timeout-Fehler. Wurde die IP-Adresse zwischenzeitlich einem anderen ISP-Kunden zugeordnet, so könnte dieser versuchen die Identität des vorherigen DDNS-Nutzers zu missbrauchen. Als Lösungsansatz kann ein Client bei einigen DDNS-Anbietern den Domainnamen beim Herunterfahren vorübergehend löschen. Ein anderer Ansatz ist die Verwendung von Heartbeats, um zu erkennen, sobald ein Rechner offline ist und dann den Domainnamen automatisch zu entfernen.

Dynamisches DNS ist kein vollwertiger Ersatz für eine statische IP-Adresse. Offene Netzwerkverbindungen bleiben bei der Trennung vom Internet oder beim Wechsel der IP-Adresse hängen und brechen nach einem Timeout zusammen. Innerhalb der Time to Live des DDNS-Eintrags kann die alte IP-Adresse zwischengespeichert sein, sodass keine neue Verbindung aufgebaut werden kann.

Durch unausgereifte DDNS-Client-Software kann es vorkommen, dass der DDNS-Eintrag über eine längere Zeit nicht aktualisiert wird. Dies geschieht zum Beispiel, wenn der Client nur einmal beim Einwählen den DDNS-Eintrag zu aktualisieren versucht, es jedoch bei einem vorübergehenden Fehler nicht erneut versucht. Auch der umgekehrte Fall kann problematisch sein: versucht ein Client die Aktualisierung häufiger als eigentlich nötig, so verstößt dies bei einigen DDNS-Anbietern gegen die Nutzungsbedingungen, was zur Sperrung des Benutzerkontos führen kann. Dies tritt zum Beispiel bei Heimroutern auf, die die zugewiesene IP-Adresse nicht speichern und daher bei jedem Neustart, zum Beispiel nach der Trennung vom Stromnetz, eine Aktualisierung senden. Wird vom ISP nach dem Neustart dieselbe IP-Adresse erneut zugeteilt, wird eine solche unnötige DDNS-Aktualisierung durchgeführt. Deshalb kann es mitunter sehr lange dauern, bis dieses Problem in Erscheinung tritt. Vom Router könnte dies aber dadurch verhindert werden, dass dieser vorher eine DNS-Abfrage für den zu aktualisierenden dynamischen Domainnamen durchführt und auf diese Weise die zuletzt verwendete IP-Adresse ermittelt.

DDNS über RFC 2136[Bearbeiten]

1. Der Client fordert vom DHCP-Server eine IP-Adresse an.
2. Der DHCP-Server weist dem Client eine IP-Adresse zu.
3. Die IP-Adresse und der Hostname werden vom DHCP-Server dem DNS zur Registrierung übergeben.

RFC 2136 spezifiziert ein Verfahren für dynamisches DNS, das als DNS Update bekannt ist. Ein typischer Anwendungsfall für DNS-Update ist ein DHCP-Server, der nach der Vergabe einer IP-Adresse den Namen des Clients beim Nameserver im lokalen Netz registriert. DNS Update verwendet ein UDP-basiertes Netzwerkprotokoll, das dem DNS-Nachrichtenformat ähnelt. Die Idee dahinter war, bestehende DNS-Software mit geringem Aufwand um die Update-Funktionalität zu erweitern.

Ein Nameserver, der einen Dynamic Update Request empfängt, speichert diesen zunächst ab, bevor er die Einträge in der Zonendatei modifiziert. Dadurch werden zum einen Inkonsistenzen beim Absturz des Servers vermieden, zum anderen können so Aktualisierungen zunächst gesammelt werden, wodurch der Durchsatz verbessert wird. Beim BIND-Nameserver wird dazu pro Zonendatei eine Journal-Datei angelegt, die eine ähnliche Funktion wie ein Journaling-Dateisystem hat. Die Sammelphase kann mehrere Minuten dauern, so dass dynamische Aktualisierungen nicht sofort an eventuell vorhandene Slave-Nameserver weitergegeben werden, die eine Kopie der Zonendatei vorhalten. DNS Update dient nur zum Ändern des Datenbestands auf dem Master-Nameserver. Um Änderungen an Slave-Nameserver zu übertragen, sollen die gebräuchlichen Mechanismen zum Zonentransfer verwendet werden.

Im ursprünglichen Netzwerkprotokoll von DNS Update war keine Authentifizierung vorgesehen. Steht bei einem Nameserver die Update-Funktion für alle Rechner im Internet offen, so stellt dies ein Sicherheitsrisiko dar. Ein Schutz besteht in der Einrichtung von Zugriffskontrolle über IP-Adressen, was jedoch mittels IP-Spoofing umgangen werden kann. Dieser Schutzmechanismus kommt daher nur für vertraute, private Netze in Frage, bei denen eine Firewall den Nameserver vom unvertrauten Netzwerkverkehr abschirmt. Besseren Schutz bieten die kryptographischen Schutzmechanismen TSIG und SIG(0). TSIG (RFC 2845) verwendet ein symmetrisches Kryptosystem, bei dem ein geheimer Schlüssel sowohl dem DNS-Client als auch dem Nameserver bekannt sein muss. SIG(0) (RFC 2931) verwendet ein asymmetrisches Kryptosystem, bei dem nur der DNS-Client einen privaten Schlüssel vorhält.

Das Programm nsupdate, das Teil des BIND-Pakets ist, erlaubt Client-seitige Aktualisierungen von DNS-Einträgen. Zusätzlich besteht noch die Möglichkeit der Authentifizierung über TSIG oder SIG(0). Microsoft verwendet GSS-TSIG, eine TSIG-Variante, die Kerberos benutzt.

Weblinks[Bearbeiten]