Dynamisches DNS #

Das Problem #

Wenn man sich über einen normalen Provider ins Internet einwählt, bekommt man von diesem eine dynamische IP-Nummer zugewiesen. Diese Nummer ist jedesmal eine andere aus dem IP-Pool, der dem Provider zur Verfügung steht.

Jetzt ist das wie bei einem Telefonanschluß, der jeden Tag eine andere Nummer hat: Man kann zwar wunderbar raustelefonieren (sprich surfen etc.) aber wenn jemand anders einen anrufen will, wird's kompliziert. Will man also Dienste anbieten, wie z.B. ein eigener Webserver, ein ssh-Eingang, EMail-Abruf aus dem Urlaub, oder auch ein VirtualPrivateNetwork, so muss der Rechner irgendwie erreichbar sein.

Der potentielle Nutzer muss fuer diese Dienste also die IP-Adresse kennen. Diese ändert sich aber bei jeder Einwahl. Normalerweise benutzt man für diese Adresse das DNS-System des Internet und der Rechner bekommt einen Domain-Namen. Allerdings muss man dazu wieder eine IP-Adresse beim DNS hinterlegen. Und das geht ja nicht...

Gerade im Zeitalter der Flatrates wird es aber immer interessanter, auch für "Heimbenutzer" oder kleine Firmen, Dienste ins Internet zu stellen.

Ein anderes Problem, das man auch mit dynamisches DNS bezeichnen kann, ist es übrigens, wenn man seinen eigenen Nameserver dynamisch updaten will, z.B. von einem DHCP-Server aus. Dazu steht etwas auf der Seite DHCPServerMitDNS.

Die Lösung #

die primitivste Lösung ist, bei jedem Verbindungsaufbau automatisch eine Webseite mit der Mitteilung "Jetzt habe ich die IP-Adresse a.b.c.d" auf einen bestehenden Webserver hochzuladen. Dieser Webserver kann von einem Provider für Webspace wie z.B. gmx, freenet, etc. sein und hat dann eine offizielle, mit DNS zugängliche Adresse. Der potentielle Client nimmt also seinen Webbrowser, öffnet die Seite people.freenet.de/~benutzer, sieht dort die Adresse und trägt sie z.B. in seinen Browser ein, um auf den eigentlichen Server zu kommen.

Eine etwas schönere Lösung ist, direkt eine HTML-Umleitungs-Seite anzulegen. Dann hat man sich einen lästigen Schritt gespart. Nachteil des Verfahrens: Es funktioniert nur für HTML-Seiten. Andere Dienste lassen sich so nicht umlenken.

Und jetzt kommen wir zur schönsten Lösung: Was wäre, wenn es spezielle DNS-Server gäbe, die man bei jedem Verbindungsaufbau permanent umstellen könnte? Normalerweise steht dem das TTL (Time To Live)-Feld im DNS-Eintrag entgegen, der besagt, daß der Eintrag für z.B. eine Woche gültig ist. Dadurch wird der Eintrag von allen anderen Nameservern im Internet gecached. Wenn man später auf diesen Domainnamen zugreift, bekommt man also die alte Adresse. Nun könnte man theoretisch das TTL-Feld auf z.B. 5 Minuten stellen. Würden das alle machen, würde das ganze DNS-System ewig langsam werden, weil nichts mehr gecached wird, aber für ein paar dynamische IPs sollte das gehen.

Jetzt die gute Nachricht: Es gibt Leute, die solche Nameserver anbieten. Man kann eine Unterdomain der Hauptdomain des Anbieters für sich reservieren und ein kleines Programm, das beim Verbindungsaufbau gestartet wird, sorgt dafür, daß die IP-Adresse richtig eingetragen wird.

Anbieter #

Es gibt eine ganze Menge Anbieter. Sucht in Eurer favorisierten Suchmaschine einfach mal nach "dynamic DNS". Ich selber habe erstmal mit dyndns angefangen. Die meisten Dienste sind kostenlos. Es gibt aber auch Anbieter, die gegen Gebühr sogar Hauptdomains (eigenername.com) registrieren und dynamisch umleiten. Wer Erfahrungen mit einem Anbieter hat, kann diesen hier gerne mit angeben:

Einrichtung #

DNS-Eintrag erstellen #

Beispielhaft wird hier die Einrichtung bei dyndns vorgestellt. Zuerstmal sollte man sich bei http://www.dyndns.org umschauen. Insbesondere die FAQ und das HOWTO sollte man überfliegen. Danach muss man einen Useraccount anlegen. Danach bekommt man ein Passwort zugesandt, muss dieses dann ändern und kann sich dann endlich richtig einloggen. Ist das geschafft, klickt man rechts im Menü auf "Dynamic DNS" und dann auf "Create New Host". Dann gibt man die benötigten Daten ein und hat damit seinen DNS-Eintrag erstellt.

Adresse automatisch anpassen #

Zur automatischen Anpassung der Adresse bei jedem Verbindungsaufbau gibt es verschiedene Client-Programme. Ich selber habe mich für ddclient entschieden. Es arbeitet mit dyndns.org zusammen und ist in Perl geschrieben. Dieses Programm ist über die Seite http://members.home.net/ddclient/ zu bekommen. Es gibt auch ein Debian-Paket, das natürlich einfacher zu installieren ist. Aufgrund der inzwischen sehr schönen debconf-Einbindung installiert es sich fast von selbst.

Übrigens hat es sich - eine Flatrate vorausgesetzt - als sinnvoller herausgestellt, ddclient im Daemon-Mode laufen zu lassen anstatt jeweils beim Verbindungsaufbau. Falls mit der DNS-Umstellung irgendwas schiefläuft, bessert ddclient dann von selber nach fünf Minuten nach. Ansonsten muss man z.B. bei T-DSL dann 24h bis zum nächsten Verbindungsaufbau warten.

Für die, die es interessiert, hier nochmal ein äterer Text, mit dem ich ddclient "von Hand" installiert habe:

Das Paket wird entpackt. Es handelt sich nur um ein Programmskript, die Konfigurationsdatei und ein Init-Skript. Die habe ich erstmal folgendermassen installiert:

  cd ddclient-3.4.5
  cp sample-etc_rc.d_init.d_ddclient /etc/init.d/ddclient
  cp sample-etc_ddclient.conf /etc/ddclient.conf
  cp ddclient /usr/sbin/  

Um die Runlevel-Skripten richtig zu installieren, jetzt noch folgendes unter Debian (andere Distributionen ggf. mit chkconfig (RedHat) oder von Hand die Links einfügen):

  update-rc.d ddclient defaults

Dann habe ich zur Konfiguration die Datei /etc/ddclient.conf in meinen Lieblingseditor geladen und folgende Eintragungen vorgenommen bzw. Kommentarzeichen entfernt:

  daemon=300
  use=web                               
  login=mein_nic_username
  password=mein_dyn_dns_passwort
  # Sektion "dyndns.org dynamic addresses":
  server=members.dyndns.org,           \
  protocol=dyndns2,                    \
  meine_dyndns_domain.dyndns.org

Jetzt noch mit

  /etc/init.d/ddclient start

den Dämonen gestartet und fertig!

Firewall #

Der ddclient benutzt ausschließlich den http-Port. Er geht also über die ganz normale Webseite von dyndns, um dort die IP zu ändern. Daher dürfte es keine Probleme mit gängigen Firewalls geben. Wer allerdings das Skript auf einem Server laufen lässt, der keinen Zugang zum Web hat, muss sich ggf. etwas einfallen lassen. Oft werden bei internen Webservern oder auch Firewall-Rechnern alle Ports inklusive dem Port 80 gesperrt, um potentielle Kommunikationskanäle für Backdoor-Programme zu schließen.

Erfahrungen #

Es heisst, daß es trotz des kurzen TTL-Feldes oft Probleme geben kann, die über die versprochenen 5 Minuten hinausgehen, daß der Namenseintrag doch irgendwo gecachet wird. Dabei heisst es, dass normalerweise spätestens nach 1 Stunde das ganze Internet von der Änderung erfahren hat.

Meine eigenen Erfahrungen bis jetzt sind gut. Ich habe ein host meinedomain.dyndns.org gemacht, dann den Dämonen gestart und ca. 10 Sekunden danach nochmal nachgefragt, da hatte ich schon die neue Adresse. Also wird zwischen dem dyndns-Nameserver und meinem Provider (T-Online) wohl nirgendwo länger gecached als erlaubt.

Sicherheit #

Man sollte beachten, daß man der ganzen Welt und damit auch jedem Hacker seine IP-Adresse offenlegt. Andererseits ist das IMHO nicht gefährlicher, als einfach so seine Flatrate dauernd offen zu haben - nämlich saugefährlich. Denkt daran: Jeder Computer, der am Internet hängt - egal, wie lange und egal, mit welchen Diensten - wird Ziel von Angriffen sein. Meine Firewall meldet 3-50 Angriffsversuche pro Tag (ohne dynamisches DNS). Also immer hübsch die Firewall laufen lassen! Das eigentliche Sicherheitsproblem entsteht viel eher bei den von Euch angebotenen Diensten, aber damit kann ich Euch jetzt hier auch nicht helfen.

Übrigens habe ich eine Untersuchung gelesen, bei der Internet-Rechner von Surfern getestet wurden. 3% der Rechner waren Windows-Rechner, auf denen das Laufwerk C: per Gastzugang ohne Passwort als Share zugänglich war...

eigener dynamischer DNS-Server #

Nachdem in 2014 dyndns.org seinen kostenlosen Service eingestellt hat, war die Frage, was man nun tut. Die einfache Lösung ist, das es etliche andere Anbieter gibt, die einen ähnlichen Service bieten (siehe z.B. im Heise-Artikel hierzu). Ich wäre natürlich kein echter LUGer, wenn ich nicht wenigstens mal nachgeschaut hätte, ob man einen derartigen Server nicht auch selber betreiben kann. Kann man natürlich, wenn man über einen Server mit fester IP verfügt, den man als Nameserver einrichten kann. :-) Hierzu ein paar Links:

Weiteres zum Thema #

Wer eine "richtige" Webseite auf seinem heimischen PC haben will, kann diese auf seinen dynamischen Server umleiten, wenn er Zugriff auf die Nameserver-Einträge seines Providers nehmen kann. Dazu steht einiges auf der Seite ApacheVirtualHosts.

Add new attachment

Only authorized users are allowed to upload new attachments.
« This page (revision-6) was last changed on 11-Mar-2015 19:27 by ThomasBayen