Dynamischer DNS-LAMP-Server

Für interne Infrastruktur benötigten wir eine zuverlässige und simple Möglichkeit für dynamische DNS-Updates.

Wir haben weder einen DDNS-Provider, noch eine existierende Lösung zum Selbsthosten gefunden, die alle unsere Anforderungen (unter anderem mehrfache Records, TLS) erfüllten. Da wir sensiblere Daten ohnehin lieber selbst hosten, habe ich daher eine vor einigen Jahren schnell als „Provisorium für immer“ zusammengeschriebene Werkzeugsammlung objektorientiert überarbeitet.

Herausgekommen ist die PHP-Klasse DDDNS, die als Schnittstelle zwichen einem Webserver und einem beliebigen DNS (ursprünglich BIND9) arbeitet. Zusätzlich erlaubt sie Protokollierung und Monitoring mithilfe einer optionalen Datenbankschnittstelle.

in der Praxis erlaubt DDDNS vollwertiges dynamisches DNS zum Preis eines dedizierten (virtuellen) Servers mit einer statischen öffentlichen IP-Adresse, ohne dabei auf auf externe Dienstleister zurückgreifen zu müssen (außer ggf. einem Server-Hoster).

Updates werden über simple HTTP-Aufrufe aus einem lokalen Netzwerk durch einen beliebigen Internetanschluss ausgelöst. Voraussetzung ist lediglich eine öffentliche (dynamische) IP-Adresse des lokalen Internetanschlusses.

Bei aktiviertem Monitoring wird nach Ablauf einer definierbaren Zeitspanne ohne eingehende Updates bis zu zwei Mal per Email alarmiert und der dynamische Zoneneintrag zur Vermeidung unerwünschter Effekte entfernt.

Horizontale Tabs

Task

Zeitraum: 
2012

Flexibel integrierbare, konfigurierbare PHP-Klasse für den Betrieb eines (eigenen) HTTP(s)-basierten DDNS-Dienstes.

  • Umfassend HTTP-standardkonform
  • HTTP REST API
  • Maximale Wiederverwertbarkeit durch OOP und ein stringentes API
  • Flexible Konfiguration
  • Variable Ausgabeformate (PHP, HTML, JSON) und vorbereitete Wrapper-Skripte für Front- und Backend
  • Optionale Datenbankanbindung für Protokollierung und Reporting
  • Optionales Monitoring und Alarming
  • Abstraktion aller Systemschnittstellen für zusätzliche Flexibilität