DDNS

Ibland behöver man komma åt ett nätverk som ansluts till Internet via t.ex. ADSL med dynamisk IP adress. Då kan det vara bra att använda sig av en tjänst som tillhandahåller dynamisk DNS, dvs att den tillåter att IP adressen för ett hosatnamn uppdateras via ett API.

www.cahngeip.com är en sådan DDNS tjänsteleverantör. Det är gratis att skapa konto hos dom och med följande lilla script (lämpligen döpt till ”script_DDNS”) som körs t.ex. var 5:e minut så håller den reda på aktuell IP adress för det hostnamn man valt (i detta exempel ”minserver.changeip.net”):

:global sLogin "användarnamn"
:global sPassword "lösenord"
:global sHost "minserver.changeip.net"
:global sInterface "ether1"

:global sIpNow [/ip address get [/ip address find dynamic interface=$sInterface] address]
:global sIpOld

:if ([:len [/interface find name=$sInterface]] = 0 ) do={
  :log info ("DDNS: No interface named " . $sInterface . ", please check configuration.")
}

:if ([:typeof $sIpOld] = "nothing" ) do={
  :global sIpOld 0.0.0.0/0
}

:if ([ :typeof $sIpNow ] = "nothing" ) do={
  :log info ("DDNS: No ip address present on " . $sInterface . ", please check.")
} else={
  :if ($sIpNow != $sIpOld) do={
    :log info ("DDNS: Sending update from " . $sIpOld . " to " . $sIpNow)
    :log info ([:put [/tool dns-update name=$sHost address=[:pick $sIpNow 0 [:find $sIpNow "/"] ] key-name=$sLogin key=$sPassword ] ])

    :global sIpOld $sIpNow
  } else={
    :log info ("DDNS: No change necessary.")
  }
}

Schemaläggning är lika busenkelt:

/system scheduler
add disabled=no interval=5m name="Run DDNS every 5 minutes" on-event=\
    script_DDNS policy=\
    ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api \
    start-date=mar/30/2012 start-time=14:24:00

Resultaten av körningen visas i loggen!

Lämna en kommentar