Heute heißt das Thema „Dynamisches DNS“, kurz DynDNS. Die Idee dahinter ist folgende: DNS ist ja das Domain Name System. Das ist ein Dienst, der IP-Adressen zu Rechnernamen auflöst. Hintergrund ist, dass alle Rechner eine IP-Adresse haben, wir Menschen uns Namen aber leichter merken können als Nummern (aus denen diese IP-Adresse besteht). Das DNS ist jetzt vergleichbar mit einem Telefonbuch: Ein Register, in dem steht, welche IP-Adresse zu welchem Rechnernamen gehört. Der Rechner, auf dem diese Webseite gehostet ist, heißt www.jan-eggert.com und hat die IP-Adresse 188.68.47.226 – der Name ist etwas leichter zu merken…
Das Ganze ist recht statisch: www.jan-eggert.com hat die IP-Adresse 188.68.47.226. Die hat es morgen auch noch. Und übermorgen auch. Und noch eine ganze Zeit…
Ich sagte ja eben, dass jeder Rechner eine solche IP-Adresse hat. Mit „Jeder“ ist auch der Rechner gemeint, der die Internetverbindung am heimischen Anschluss herstellt (das ist in der Regel eine FritzBox oder ein anderes Gerät, in meinem Fall die Firewall). Prinzipiell kann man also einen DNS-Eintrag mit der öffentlichen IP-Adresse der Fritzbox anlegen und sich dann über einen Hostnamen damit verbinden. Da gibt es nur ein Problem: Es ist nicht garantiert, dass mein Einwahlgerät immer dieselbe IP-Adresse erhält – früher (ich bin nicht sicher, ob es heute auch noch so ist) haben die Provider die Verbindung einmal am Tag getrennt und neu aufgebaut. Die Folge war: eine andere IP-Adresse. Auch wenn die FritzBox mal neugestartet wird (z.B. nach einem Update) kann sie eine neue Adresse erhalten.
Und da kommt dynamisches DNS ins Spiel: Es gibt DNS-Anbieter im Internet, bei denen man sich einen Hostnamen besorgen kann. Diesen Hostnamen verknüpft man mit der öffentlichen IP-Adresse der FritzBox. Ändert sich nun die öffentliche IP-Adresse, teilt man dem Dienst die neue Adresse mit und ist so dauerhaft unter ein und demselben Hostnamen erreichbar. Technisch läuft das so, dass auf der FritzBox (oder der Firewall oder aber auch auf einem Raspi oder sonstigen Rechner) ein Client läuft, der die Änderung der öffentlichen IP-Adresse an den Anbieter meldet. Nach dem Motto „Suche jan-eggert.dyndns.domain; streiche 1.2.3.4, setze 5.6.7.8“.
Es gibt unzählige solcher DynDNS-Anbieter – von kostenlos bis teuer ist alles dabei. Und auch Clients, die die IP-Adresse aktuell halten, gibt es reichlich. Ich habe mich irgendwann mal für duckdns.org entschieden. Der ist kostenlos und genügt meinen Ansprüchen.
opnSense bringt den ddClient als Plugin mit – der wird einfach über System –> Firmware –> Erweiterungen installiert.
Nach einem Refresh der Seite gibt es dann unter „Dienste“ einen Eintrag „Dynamisches DNS“. Nicht wundern, dass bei mir schon ein Eintrag vorhanden ist: Ich habe das schon eingerichtet…
Klickt man hier auf das Plus-Symbol, kann man einen neuen Eintrag hinzufügen:
Nach dem Speichern und Erzwingen der Aktualisierung sollte es ein Ping auf den gewählten Hostnamen die IP-Adresse der Firewall zurückliefern.
Jetzt ist die Firewall unter einem Hostnamen erreichbar – auch wenn sich ihre öffentlich IP-Adresse ändert.
Kleines Schmankerl: Hat man einen Webhoster, der einem die Möglichkeit gibt, DNS-Einträge zu verwalten, kann man hier in den Einstellungen CName-Einträge einrichten, die auf den DynDNS-Namen verweisen.
Ich hoste beispielsweise diese Webseite bei Netcup. Die bieten die Möglichkeit, DNS-Einträge der Domain jan-eggert.com zu bearbeiten. So kann ich einen CName „irgendwas“ anlegen, der auf meinen duckdns.org-Hostnamen zeigt. Damit wird der Aufruf irgendwas.jan-eggert.com zur öffentlichen IP meiner Firewall aufgelöst.
Auf diese Weise ist es möglich, mehrere CName-Einträge zu erzeugen, die alle auf den Duckdns.org-Hostnamen verweisen. So kann man mehrere Dienste aus dem Heimnetz im Internet anbieten. Voraussetzung hierfür ist der Einsatz eines Reverse Proxys. Das werde ich aber mit anderen Artikeln beschreiben. Dieser Artikel kann jedoch als Vorbereitung für den Einstieg ins „Reverse Proxying“ gesehen werden.