Cloudflare IP Updater
Docker Container für DNS-Updates
Was ist der Cloudflare IP Updater?
Der Cloudflare IP Updater (oder kurz: “CF Updater”) ist ein kleine Go-Binary in einem Docker Container, welcher Änderungen an der öffentlichen IP-Adresse eines Servers erkennt und im Cloudflare DNS anpasst. Das Ziel ist die Minimierung der Downtime von Diensten hinter Internetanschlüssen mit wechselnder IP-Adresse. Gerade für “Hobby-Hoster” ist das natürlich interessant.
Ursprünglich wurde der Cloudflare Updater in Python entwickelt, jedoch nach einiger Zeit in Go umgeschrieben. Grund dafür waren eine höhere Laufzeit-Stabilität sowie einfacher umzusetzende Nebenläufigkeit, um die Aktualisierung der DNS Records im Fall eines IP-Wechsels schneller propagieren zu können (sog. “Emergency Mode”). Der volle Name der neuen Go-Implementierung lautet “New CF Updater”.
Der CF Updater wird auf allen Hosts von leon.wtf und leon-schmidt.dev produktiv verwendet!
Konfiguration
Der CF Updater bietet hier im Gegensatz zum ddclient einen deutlich moderneren, flexibleren und stabileren Ansatz: Das Tool wird über eine JSON-Datei konfiguriert und ermöglicht eine granulare Konfiguration für jeden Host, aber auch anpassbare Standardwerte, die auf jeden Host angewandt werden. So kann beispielsweise das Updaten von AAAA-Records für bestimmte Hosts deaktiviert werden.
Beispielkonfiguration
{
"api_token": "some-secret-key",
"update_ipv4_default": true,
"update_ipv6_default": true,
"check_interval": 30,
"check_timeout": 5,
"zones": {
"leon-schmidt.dev": [
{
"name": "leon-schmidt.dev",
"create": true // legt den Record an, wenn er nicht existiert
},
{
"name": "analytics.leon-schmidt.dev",
"proxy": true, // aktivert den Cloudflare Proxy (null = nicht ändern)
"update_ipv6": false // deaktivert AAAA-Record Update nur für diesen Host
}
]
}
}
Abgrenzung zu anderen Tools
- Der CF Updater hat volle IPv6 Unterstützung, auch wenn NAT angewendet wird.
- Die aktuelle IP wird über Cloudflares Trace Dienst ermittelt. Es fließen also keine Daten an externe Dienste – außer natürlich Cloudflare selbst - ab.
- Für die Requests zu Cloudflares Trace Dienst wird immer die IP-Adresse vewendet – die aktuelle IP kann also auch ohne funktionierendes DNS ermittelt werden, was die Propagierung der Werte beschleunigt.
- Unterstützt das Setzen der Proxy-States.
- Es kann festgelegt werden, ob neue Records angelegt werden sollen, falls sie nicht bereits existieren.
- Unterstützt mehrere Cloudflare-Zonen gleichzeitig.