Nur eine kleine private Website.

DynDNS

· Lesedauer ~ 2 Min · (289 Wörter)

Viele Jahre habe ich einen bekannten kostenfreien DynDNS Service genutzt. Vor einiger Zeit wurde dieser Dienst leider kostenpflichtig, so dass ich mir eine Alternative überlegte: Warum baut man so etwas nicht einfach selber? Da mich diese Frage interessiert hat, habe ich einmal angefangen.

Der erste Schritt bestand aus der Installation eines Name-Servers. Da ich einen Root-Server zur Verfügung habe, konnte ich diesen dort installieren. Wie viele andere Systeme verwende ich dafür auch BIND. Damit ich die im Name-Server abgelegten Daten auch ändern kann, habe ich zusätzlich nsupdate installiert.

Der zweite Schritt war schon etwas schwieriger, denn er bestand aus der Konfiguration des Servers. Die Konfiguration besteht aus zwei Teilen. Im ersten Teil habe ich eine neue Zone für meinen DynDNS anzulegen. Eine kleine Beschreibungen, wie so eine Zonendatei aufgebaut ist, ist hier zu finden. Diese muss dann nur noch in die BIND-Konfiguration aufgenommen werden. Dazu kann man einen, wie folgt aufgebauten Block in die Datei /etc/bind/named.conf eingetragen werden.

zone "<domain.tld>" {
  type master;
  file "<pfad zur zonendatei>";
  allow-update { key "<id eines schluessels>"; };
};

Dabei entspricht die domain.tld der in der Zonendatei angegeben Domain (Beispiel: thackbarth.net). Neben dem Pfad zur Zonendatei muss nur noch eine Schlüssel-Id angegeben werden. Der Schlüssel muss ebenfalls in der Datei registriert werden. Dies sieht ungewähr so aus:

key "<id eines schluessels>" {
  algorithm <gewaehlter algorithmus>;
  secret "<erstellter schluessel>";
};

Erstellt wird der Schlüssel mit dem Tool dnssec-keygen.

Der letzte Schritt besteht darin, eine Möglichkeit zu schaffen, damit die Änderung der IP-Adresse an den Name-Server weitergegeben werden kann. Ich habe dazu einen kleinen Python-Server geschrieben, der aufgerufen werden kann und der mit Hilfe des Tools nsupdate den Name-Server ändert.

Wer Lust hat einen Blick in die Implementierung zu werfen, kann es hier gerne tun.

Kommentare