DynDNS auf MikroTik RouterOS: Anleitung Schritt für Schritt
MikroTik-Router bringen keinen DynDNS2-Client mit – die IP-Cloud-Funktion spricht nur MikroTiks eigenen Dienst. Mit einem kleinen RouterOS-Skript und dem Scheduler ruft dein Router das Update bei DNS Beacon trotzdem selbst auf und bleibt unter einem festen Hostnamen erreichbar, auch wenn sich die WAN-IP ändert. So richtest du es ein.
Schritt für Schritt
- Lege in WinBox unter System → Scripts (oder im Terminal per /system script add) ein neues Skript namens dnsbeacon an, Policies: read, write, test. Füge die beiden Skript-Zeilen aus der Tabelle unten als Source ein und ersetze ether1 durch dein WAN-Interface sowie <email> und <api-key> durch deine Konto-E-Mail und einen API-Schlüssel aus dem Dashboard.
- Lege unter System → Scheduler einen Zeitplan an, der das Skript alle 5 Minuten ausführt – der Scheduler-Befehl aus der Tabelle erledigt das im Terminal in einer Zeile. Der Scheduler braucht dieselben Policies wie das Skript.
- Starte das Skript einmal von Hand (Run Script bzw. /system script run dnsbeacon). Im Log erscheint „dnsbeacon: good <IP>“ – oder nochg, wenn die IP bereits stimmt. Ab jetzt hält der Scheduler den Hostnamen automatisch aktuell.
Diese Werte eintragen
System → Scripts und System → Scheduler (WinBox oder Terminal)
- WAN-Interface:
- Interface mit der öffentlichen IP, z. B. ether1 oder pppoe-out1 (im Skript statt ether1 eintragen)
- Hostname:
- myhouse.dnsfollowme.uk
- Benutzername:
- deine E-Mail-Adresse (im Skript als <email>)
- Kennwort:
- dein API-Key (im Skript als <api-key>)
- Skript, Zeile 1:
- :local a [/ip address get [find interface=ether1] address]; :local ip [:pick $a 0 [:find $a "/"]]
- Skript, Zeile 2:
- :local r [/tool fetch url="https://api.dnsbeacon.com/nic/update?hostname=myhouse.dnsfollowme.uk&myip=$ip" user="<email>" password="<api-key>" output=user as-value]; :log info ("dnsbeacon: " . ($r->"data"))
- Scheduler:
- /system scheduler add name=dnsbeacon interval=5m on-event=dnsbeacon policy=read,write,test
- IPv6:
- In Zeile 1 /ip address durch /ipv6 address und [find interface=ether1] durch [find interface=ether1 global] ersetzen, in Zeile 2 &myipv6=$ip statt &myip=$ip senden.
RouterOS hat keinen eingebauten DynDNS2-Client – IP Cloud spricht nur MikroTiks eigenen Dienst. Deshalb übernimmt ein Zwei-Zeilen-Skript das Update: Zeile 1 liest die IP des WAN-Interfaces, Zeile 2 ruft /nic/update per /tool fetch mit HTTP-Basic-Auth auf und schreibt die Antwort ins Log. Bei DSL/PPPoE heißt das WAN-Interface meist pppoe-out1. Hinter CGNAT/DS-Lite ist die WAN-IP privat und per IPv4 ohnehin nicht erreichbar – dann stattdessen myipv6 mit der globalen IPv6-Adresse senden. Gilt für RouterOS 7 (und 6.45+).
IPv4 oder IPv6?
Die Werte oben aktualisieren die IPv4-Adresse (A-Record) – der Normalfall an Anschlüssen mit eigener öffentlicher IPv4. Für IPv6 (AAAA-Record) schickt das Gerät zusätzlich oder stattdessen den Parameter &myipv6=<IPv6>. Wie das bei diesem Gerät geht, steht in der Zeile „IPv6“ der Tabelle.
DS-Lite oder CGNAT (viele Kabel- und Glasfaseranschlüsse): Der Router hat dann keine öffentliche IPv4, und eine private WAN-Adresse lehnt der Dienst mit „abuse“ ab. Sende in dem Fall nur myipv6 – oder nutze den DNS-Beacon-Client direkt auf dem Zielgerät, der beide Adressfamilien selbst erkennt.
Noch keinen kostenlosen Hostnamen?
Lege ein kostenloses DNS-Beacon-Konto an, füge einen Hostnamen hinzu und erzeuge einen API-Schlüssel – danach kannst du die Einrichtung oben abschließen.
Kostenloses Konto erstellen