Files
Brancheneinstufung2/duckdns_setup.md

2.7 KiB

DuckDNS & DNS Monitor Setup

Erstellt am: 05.01.2026 Status: Aktiv Architektur: Sidecar-Pattern

Dieses Dokument beschreibt die Docker-basierte Lösung zur DynDNS-Aktualisierung und Überwachung, die eingeführt wurde, um DNS-Caching-Probleme und Verbindungsabbrüche auf der Synology Diskstation zu beheben.

Problembeschreibung

Das ursprüngliche Synology-Skript im Aufgabenplaner führte zu unzuverlässigen DNS-Updates. Oft war die IP bei DuckDNS zwar aktuell, aber die Dienste waren von außen nicht erreichbar. Erst ein manuelles Ändern der IP auf einen falschen Wert und zurück (Toggle) löste das Problem. Dies deutete auf DNS-Propagation- oder Caching-Probleme hin.

Lösung

Wir haben eine robuste Zwei-Container-Lösung (Sidecar-Pattern) implementiert:

  1. Updater (duckdns): Aktualisiert zuverlässig die IP bei DuckDNS (Image: linuxserver/duckdns).
  2. Monitor (dns-monitor): Überwacht unabhängig, ob die Domain tatsächlich auf die aktuelle öffentliche IP auflöst.

Konfiguration (docker-compose.yml)

1. Der Updater

Dieser Container sorgt dafür, dass DuckDNS immer die aktuelle IP kennt.

  duckdns:
    image: lscr.io/linuxserver/duckdns:latest
    container_name: duckdns
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Berlin
      - SUBDOMAINS=deine-subdomains # (ohne .duckdns.org, kommasepariert)
      - TOKEN=dein-duckdns-token
    restart: unless-stopped

2. Der Monitor (Sidecar)

Dieser Container prüft alle 5 Minuten die DNS-Auflösung und schreibt das Ergebnis ins Log.

  dns-monitor:
    image: alpine
    container_name: dns-monitor
    environment:
      - SUBDOMAINS=deine-subdomains
      - TZ=Europe/Berlin
    volumes:
      - ./dns-monitor:/app
    command: /app/monitor.sh
    restart: unless-stopped

Wichtig: Das Skript monitor.sh liegt im Host-Verzeichnis /app/dns-monitor/.

Logs & Monitoring

Update-Status prüfen

docker logs duckdns

Erwartet: Your IP was updated at ... oder IP(s) unchanged.

DNS-Konsistenz prüfen (WICHTIG!)

Hier sehen wir, ob die Welt (bzw. der Container) die Domain korrekt auflöst.

docker logs dns-monitor

Szenario OK:

[2026-01-05 21:26:26] [DNS-MONITOR] OK | Domain: floke.duckdns.org (87.x.x.x) == Public: 87.x.x.x

Szenario FEHLER (Alarm):

[2026-01-05 21:30:00] [DNS-MONITOR] ALERT | Domain: floke.duckdns.org (Error) != Public: 87.x.x.x

Dies deutet darauf hin, dass DuckDNS zwar vielleicht aktualisiert wurde, aber die DNS-Server die Änderung noch nicht propagiert haben.

Dateien

  • /app/docker-compose.yml: Definition der Services.
  • /app/dns-monitor/monitor.sh: Das Shell-Skript für den Monitor-Container.