|

Dynamisches DNS für RouterOS mit IPv6

Leider gibt es keine Möglichkeit ein dynamisches DNS in RouterOS direkt zu konfigurieren. Um dieses Thema zu umgehen, habe ich ein Skript geschrieben, welches im Intervall von 5 Minuten prüft, ob sich die Public IP geändert hat.

Sollte sich die Public IP geändert haben, wird diese an euren DynDNS Anbieter übertragen.

Hier im Beispiel habe ich den Anbieter ipv64.net verwendet. Es ist aber auch mit diversen anderen Anbietern nutzbar. Fangen wir damit an, ein neues Skript mit dem Namen „dyndns_ipv64_ipv6“ zu erstellen.

Nun kopiert ihr euch den Skript und passt die Variablen wan, wanComment, ipv64Domain, updateKey und listname an eure Umgebung an.

:local wan "pppoe_dsl"
:local wanComment "DSL"
:local ipv64Domain "xxxxxxx.ipv64.net"
:local updateKey "xxxxxxxxxxx"
:local listname "DynDNS_Check"

# Script start
:if ([:len [/ipv6 firewall address-list find address=$ipv64Domain and list=$listname]] = 0) do={
    /ipv6 firewall address-list add list=$listname address=$ipv64Domain
    :log info "Domain $ipv64Domain added to List $listname"
}

:local ipCurrentMe [/ipv6 address get [find where interface=$wan comment=$wanComment] address ]
:local ipDomainRaw [/ipv6 firewall address-list get [find list=DynDNS_Check && dynamic] address ]

:for i from=( [:len $ipDomainRaw] - 1) to=0 do={
    :if ( [:pick $ipDomainRaw $i] = "/") do={
        :local ipCurrentDomain [:pick $ipDomainRaw 0 $i];
 
        :for i from=( [:len $ipCurrentMe] - 1) to=0 do={
            :if ( [:pick $ipCurrentMe $i] = "/") do={
                :local NewIP [:pick $ipCurrentMe 0 $i];

                :if ($ipCurrentDomain != $NewIP) do={
                    /tool fetch url="https://ipv64.net/nic/update?key=$updateKey&domain=$ipv64Domain&ip6=$NewIP" keep-result=no
                    :log info "IPv64 Update: $ipv64Domain - $NewIP"
                }
            }
        }
    }
}

Ist das Skript angelegt und die Variablen angepasst, erstellen wir mit folgenden Befehl einen Scheduler, der alle 5 Minuten prüft, ob sich die IP geändert hat.

/system scheduler
add comment="DynDNS IPv64 IPv6" interval=5m name=dyndns_ipv64_ipv6 on-event=dyndns_ipv64_ipv6 policy=read,write,policy,test start-time=startup

Viel Spaß beim nachbauen… 😉

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert