Hier finden Sie Konfigurationsbeispiele für verschiedene Routermodelle. Die Werte myhost, myuser, mypass sind zu ersetzen !
Feld | Einstellung |
---|---|
Dynamic DNS-Anbieter | Benutzerdefiniert |
Update-URL |
dns.air5.net/upd.php?hostname=<domain>&ip=<ipaddr> |
Domainname | myhost.air5.net |
Benutzername | myuser |
Kennwort | mypass |
Feld | Einstellung |
---|---|
DDNS Service | Custom |
DynDNS Server | dns.air5.net |
Username | myuser |
Password | mypass |
Hostname | myname.air5.net |
URL | /upd.php?hostname= |
Getestet mit Version v6.40.8 und interne Namensauflösung des Hosteintrags
:global username "myuser" :global password "mypass" :global ddnshost myhost.air5.net :global ipintdns [:resolve $ddnshost]; :global ipethernet [ /ip address get [/ip address find interface="ether1" ] address ] :if ([ :typeof $ipethernet ] = nil ) do={ :log info ("dyndns: Keine IP Adresse auf Schnittstelle ether1 !") } else={ :for i from=( [:len $ipethernet] - 1) to=0 do={ :if ( [:pick $ipethernet $i] = "/") do={ :set ipethernet [:pick $ipethernet 0 $i]; } } :if ($ipintdns != $ipethernet) do={ :log info ("dyndns: IP-intDNS = $ipintdns") :log info ("dyndns: IP-ether1 = $ipethernet") :log info "dyndns: Update wird gesendet.." :global url "https://$username:$password@dns.air5.net/upd.php?hostname=$ddnshost&ip=$ipethernet" /tool fetch url=$url mode=https dst-path="/dyndns-log.txt" :delay 1 :global url [/file find name="dyndns-log.txt"]; :global ipintdns $ipethernet :log info "dyndns: $ipintdns aktualisiert auf $ipethernet" } else={ :log info "dyndns: $ipethernet ist aktuell"; } }
add name=dyndns interval=5m on-event=dyndns start-time=startup
Getestet mit Version v6.40.8 und externe Namensauflösung des Hosteintrags
Wer zB. den DynDns im internen Netzwerk per Static DNS auf die interne IP des Serverdienstes lenken will, hat das Problem das die Abfrage der aktuellen IP vom Hosteintrag
fehlschlägt, weil die Namensauflösung dann nur mehr auf den internen DNS Eintrag auflöst. Dieses Script löst den DNS extern auf, dazu wird ein Service von Mikrotik selbst verwendet (Cloud).
/ip cloud set ddns-enabled=yes
:global username "myuser" :global password "mypass" :global ddnshost myhost.air5.net :global ipextdns [/ip cloud get public-address] :global ipethernet [ /ip address get [find interface="ether1" disabled=no] address ] :if ([ :typeof $ipethernet ] = nil ) do={ :log info ("dyndns: Keine IP Adresse auf Schnittstelle ether1 !") } else={ :for i from=( [:len $ipethernet] - 1) to=0 do={ :if ( [:pick $ipethernet $i] = "/") do={ :set ipethernet [:pick $ipethernet 0 $i]; } } :if ($ipextdns != $ipethernet) do={ :log info ("dyndns: IP-extDNS = $ipextdns") :log info ("dyndns: IP-ether1 = $ipethernet") :log info "dyndns: Update wird gesendet.." :global url "https://$username:$password@dns.air5.net/upd.php?hostname=$ddnshost&ip=$ipethernet" /tool fetch url=$url mode=https dst-path="/dyndns-log.txt" :delay 1 :global url [/file find name="dyndns-log.txt"]; :global ipextdns $ipethernet :log info "dyndns: $ipextdns aktualisiert auf $ipethernet" } else={ :log info "dyndns: $ipethernet ist aktuell"; } }
add name=dyndns interval=5m on-event=dyndns start-time=startup
Auch das aktualisieren/setzen des DNS Eintrags per Internet Browser (Firefox, Internet Explorer, Safari usw..) funktioniert. Um mehr als nur den Statuscode zurück zu erhalten kann hier der optionale Paramater "system" verwendet werden.
https://dns.air5.net/upd.php?username=myname&password=mypass&ip=14.105.148.73&domain=myhost.air5.net&system=browser
dDNS ist ein portabler/universeller/Freeware DynDNS Client für Windows, und kann hier heruntergeladen werden. Details zur Konfiguration auf der Herstellerseite.
Systemsteuerung > Externer Zugriff > DDNS > Anbieter anpassen
Serviceanbieter: dns.air5.net
Query URL:
https://dns.air5.net/upd.php?username=__USERNAME__&password=__PASSWORD__&ip=__MYIP__&hostname=__HOSTNAME__
Diesen Software Client gibt des für Linux und Windows.
Installation unter Linux (Debian, Ubuntu)
1. ddclient Paket installieren
apt install ddclient
2. Konfigurationsdatei bearbeiten
nano /etc/ddclient.conf
protocol=dyndns2 ssl=yes #kann verwendet werden, ist jedoch nicht zwingend use=web, web=checkip.air5.net #die aktuelle ip soll von extern aufgelöst werden server=dns.air5.net script=/upd.php login=myname password='mypass' myhost.air5.net
Vorteil des Bash Script: es wird nur das curl Paket benötigt, keine weiteren Abhängigkeiten.
Akutelle Version Download: 20180516
1. curl installieren
apt-get install curl # Debian, Ubuntu usw.. yum install curl # Centos usw..
2. Bashscript herunterladen und einmalig ausführen (dabei wird die Konfigurationsdatei erstellt)
wget "http://dns.air5.net/dl/dyndns-air5.sh" -O /usr/local/bin/dyndns-air5.sh chmod 700 /usr/local/bin/dyndns-air5.sh /usr/local/bin/dyndns-air5.sh
Die Ausgabe:
Configuration created >>> /etc/dyndns/air5.cfg <<< You must edit username,password,hostname in this file!
3. Scrtipt Variablen (username, password, hostname) anpassen, danach schliessen und speichern [STRG]+[X] -> [Y|J]
nano /etc/dyndns/air5.cfg
4. Manuelles ausführen des Scriptes
/usr/local/bin/dyndns-air5.sh
5. Crontab einrichten (automatisch alle 5 Minuten)
crontab -e
6. Der Crontab Eintrag:
#DynDns check */5 * * * * /usr/local/bin/dyndns-air5.sh
Wer zum Beispiel täglich (ca. 08:00 Uhr morgens) einen Force-Update durchführen möchte muss dazu einfach das gespeicherte current_ip File löschen. Crontab:
#DynDns Force Update vorbereiten 59 7 * * * rm -f /tmp/current_ip >/dev/null 2>&1
Beim Update des Scriptes bleibt die Konfiguration erhalten.
wget "http://dns.air5.net/dl/dyndns-air5.sh" -O /usr/local/bin/dyndns-air5.sh && chmod 700 /usr/local/bin/dyndns-air5.sh
Zum testen oder benutzen in einem Bashscript.
curl "https://dns.air5.net?user=myname&pass=mypass&ip=88.162.208.48.23&host=myhost.air5.net"
Sende uns die Konfiguration deines Routers und Sie wird hier erscheinen..
...