Eigener DynDNS mit dnsmasq, Apache und PHP

In Computer und Netzwerk | Erstellt: 08.02.2016, 14:48 | Editiert: 12.10.2018, 07:28 | 2.441 mal angesehen | Seite Drucken

Aktualisiert am 11. Februar 2016: Verwendung von inotify statt eines Cronjobs.

Analog zum DynDNS mit Bind hier die Anpassungen für dnsmasq als Authoritative DNS:

Um die Haupt-Konfigurationsdatei /etc/dnsmasq.conf in Ruhe zu lassen, wird ein Include-Verzeichnis für zusätzliche Dateien angegeben, z.B.

Das PHP des DynDNS-VHosts (Funktion in include/functions.php) muss dann statt einem nsupdate mit dem Key der Zone lediglich die .conf-Dateien im Dateisystem schreiben – Eine für den geänderten Host, eine für die neue Seriennummer der Zone.

Eine clientname.conf in /var/www/dyndns-vhost/dnsmasq/ sieht z.B. so aus:

Die soa.conf im selben Verzeichnis so:

Als Seriennummer der Zone wird den Integer-Anteil von (MinuteDesTages / 14.41) – also 00..99 – verwendet. Auszug der Funktion update_dns($host, $ip) in PHP:

In /etc/iwatch/iwatch.xml eine neue watchlist anlegen:

Iwatch überwacht live die Datei soa.conf und führt bei einem „modify“-Event das Skript /data/scripts/inotify_ddns.sh aus.

Bei der Verwendung von incron erledigt folgende /etc/incron.d/dnsmasq-dyndns das Ausführen:

Dieses Skript startet dnsmasq nach einer Syntax-Prüfung der Konfiguration und der Include-Dateien neu:

In /var/log/inotify.log kann die Funktion überwacht werden:

Dateien

Download (Version 2.0): privater-ddns_2.0.tar.bz2

Schreibe einen Kommentar

Captcha * Time limit is exhausted. Please reload CAPTCHA.