Zum Inhalt springen

Quellen und DynDNS

Wechselt die IP eines Servers, muss sie in jedem Eintrag nachgezogen werden, der auf ihn zeigt. Quellen drehen das um: Der Eintrag bindet sich an einen benannten Endpunkt, und die Adresse steht nur an einer Stelle.

Eine Quelle trägt einen Namen und ihre IPv4-/IPv6-Adressen — etwa edge-lb mit zwei Adressen. Anlegen unter Projekt → Source Hosts; doppelt vergebene Adressen meldet die Maske.

Im Record-Set-Editor bietet das Wertefeld beim Tippen die Quellen an. Ein gebundenes Set zeigt in der Tabelle die aufgelösten Adressen und einen Verweis auf die Quelle; ändert man deren Adressen, ziehen alle gebundenen Einträge automatisch nach.

Auch MX- und SRV-Zielfelder schlagen Quellen vor und setzen deren Hostnamen ein.

Ein DynDNS-Ziel ist eine Quelle, deren Adresse von außen gemeldet wird — typischerweise von einem Router mit wechselnder IP.

Anlegen: Projekt → DynDNS → Ziel anlegen. Optional wählt man gleich eine Zone und eine Subdomain; dann entstehen A- und AAAA-Eintrag mit an das Ziel gebundenen Werten. Solange noch keine Adresse gemeldet wurde, stehen sie auf wartet… und es wird beim Provider nichts geschrieben.

Nach dem Anlegen zeigt der Dialog einmalig das Token samt fertiger Update-URL. Danach ist es nicht mehr abrufbar — nur ein neues Token lässt sich erzeugen.

Das Ziel akzeptiert das verbreitete DynDNS2-Protokoll, das nahezu jeder Router spricht:

https://<dyndns-hostname>/nic/update

Authentifiziert wird per Basic Auth mit dem Token; die IP wird aus der Verbindung ermittelt oder per Parameter (myip, myipv6, ip) übergeben. Antworten folgen der DynDNS2-Konvention (good, nochg, badauth).

Zusätzlich gibt es einen offenen Echo-Endpunkt, der die eigene IP als reinen Text zurückgibt. Über die getrennten Hostnamen für IPv4 und IPv6 lässt sich gezielt eine Familie abfragen.

Die Hostnamen dafür kommen aus den Kern-Einstellungen; ohne sie kann die Oberfläche keine fertige Update-URL anzeigen.

curl — Absender-IP der Verbindung verwenden:

Terminal-Fenster
curl "https://<label>:<token>@dyn.example.net/nic/update?hostname=home.example.com&myip="

curl — IPv4 und IPv6 explizit:

Terminal-Fenster
curl "https://<label>:<token>@dyn.example.net/nic/update\
?hostname=home.example.com&myip=203.0.113.10&myip6=2001:db8::10"

REST mit Bearer-Token — z. B. alle 5 Minuten per Cron:

Terminal-Fenster
*/5 * * * * curl -fsS -X POST https://dns-editor.example.net/api/v1/dyndns/update \
-H "Authorization: Bearer <token>" -d "{\"ip\":\"$(curl -s https://api.ipify.org)\"}"

FRITZ!Box (Internet → Freigaben → DynDNS → Benutzerdefiniert):

FeldWert
Update-URLhttps://dyn.example.net/nic/update?hostname=<domain>&myip=<ipaddr>&myip6=<ip6addr>
Domainnamehome.example.com
BenutzernameLabel des DynDNS-Ziels
Kennwortdas Token

Die FRITZ!Box ersetzt <ipaddr>/<ip6addr> selbst durch die aktuellen Adressen.

ddclient (/etc/ddclient.conf):

protocol=dyndns2
use=web, web=https://api.ipify.org
server=dyn.example.net
login=<label>
password=<token>
home.example.com

Weitere Varianten stehen in der In-App-Doku unter /docs. Kurze TTLs (60–120 s) sorgen dafür, dass Adresswechsel schnell greifen.

Steht die Instanz hinter einem Reverse Proxy, muss DNSE_TRUSTED_PROXIES gesetzt sein — sonst landet die Adresse des Proxys im Eintrag statt die des Routers.