lunes, 21 de enero de 2013

Dynamic DNS en Mikrotik


Un script que pienso que debería ser estándar en cualquier router hoy en dia, es el de Dynamic DNS(DDNS), y de echo cualquier router de 15$ lo tiene, pero Mikrotik no tiene Script Incorporado. Supongo que esto se debe a que por su gran versatilidad los creadores dicen que no pueden establecer cuál será su uso y no desean desperdiciar memoria en script que de pronto el usuario nunca usara.

En la pagina de mikrotik tienen una gran variedad de Script para los servicios disponibles en la red como DynDns, No-Ip, entre otros.

Aquí les dejo el que utilizo en la versión 5.xx, que esta probado. Lo único que deben considerar que este esta diseñado para un solo internet.

# Set needed variables
:local username "UsuarioDynDns"
:local password "tuClave"
:local hostname "NombreDyndnsRegistrado"

:global dyndnsForce
:global previousIP 

# print some debug info
:log info ("UpdateDynDNS: username = $username")
:log info ("UpdateDynDNS: password = $password")
:log info ("UpdateDynDNS: hostname = $hostname")
:log info ("UpdateDynDNS: previousIP = $previousIP")

# get the current IP address from the internet (in case of double-nat)
/tool fetch mode=http address="checkip.dyndns.org" src-path="/" dst-path="/dyndns.checkip.html"
:delay 1
:local result [/file get dyndns.checkip.html contents]

# parse the current IP result
:local resultLen [:len $result]
:local startLoc [:find $result ": " -1]
:set startLoc ($startLoc + 2)
:local endLoc [:find $result "
" -1]
:local currentIP [:pick $result $startLoc $endLoc]
:log info "UpdateDynDNS: currentIP = $currentIP"

# Remove the # on next line to force an update every single time - useful for debugging,
# but you could end up getting blacklisted by DynDNS!

#:set dyndnsForce true

# Determine if dyndns update is needed
# more dyndns updater request details http://www.dyndns.com/developers/specs/syntax.html

:if (($currentIP != $previousIP) || ($dyndnsForce = true)) do={
   :set dyndnsForce false
   :set previousIP $currentIP
   :log info "$currentIP or $previousIP"
   /tool fetch user=$username password=$password mode=http address="members.dyndns.org" \
      src-path="nic/update?system=dyndns&hostname=$hostname&myip=$currentIP&wildcard=no" \
      dst-path="/dyndns.txt"
   :delay 1
   :local result [/file get dyndns.txt contents]
   :log info ("UpdateDynDNS: Dyndns update needed")
   :log info ("UpdateDynDNS: Dyndns Update Result: ".$result)
   :put ("Dyndns Update Result: ".$result)
} else={
   :log info ("UpdateDynDNS: No dyndns update needed")
}

3 comentarios:

  1. Saludos Octavio...

    Excelente y te felicito por tu site. Lo vi desde tu facebook. Yo tengo tambien un DNS dinamico. Para tus visitantes, quisiera comentar algo que quizas aportaria algo tambien:

    Para aquellos que tengan un router dinosaurio que no tenga la capacidad de actualizar DNS record dinamicamente; les recomendaria usar un site que de el servicio de sincronization gratuito.

    Ejemplo de ello es http://freedns.afraid.org/ que es gratis. Ellos proveen un SOAP web service por lo que no tienes que abrir ningun puerto a exception del HTTP 80 que por defecto esta abierto para navegar en internet. Tampoco necesitas un router que automaticamente lo haga por ti.

    Puedes bajar software gratis que actualizan el IP address con tu DNS record; o simplemente, pueden crear su propia aplicacion que consuma el web service method.

    De todas maneras, esto es solo para tenerlo como hobby. Si quieres tener tu propio servidor SMTP, no es recomendable usar IP dinamicos or residenciales.

    Los emails generados desde este tipo de IP execeden el ranking de evaluacion de spam o filtros. Pueden chequear su ip en http://www.mxtoolbox.com/blacklists.aspx para ver si estan black listed. Todas los emails provenientes desde ip residenciales son por defecto bloqueados y algunas veces ni siquiera aparecen como spam o junk emails en sus hotmails, gmail etc etc.

    Se puede tener una IP dinamica o residencial si lo que piensan es tener un servidor web. Sin embargo para otros servicios como SMTP tendrian que tener un IP comercial statico o fijo y que no este blacklisted.

    Epero que esto aporte algo para tus visitantes que esten pensando crear su propio SMTP :)

    Saludos Octavio
    Jorge Choy

    ResponderEliminar
  2. muy buenos dias don octavio estube leyendo el script pero he buscado varios y no me sirve necesito de su ayuda en como crear un script para no ip detras del nat para mikrotik v 5.18 o donde puedo aprender para crear script gracias mi correo es juanfrancisco-18@hotmail.com o juanfranciscosuarezsuarez@gmail.com

    ResponderEliminar
    Respuestas
    1. Buenas Juan Francisco,...pudiste encontrar algun script para noip detras de nat.....??? estoy buscando lo mismo. Los que he encontrado actualizan la IP de la Wan :-(
      Saludos !!! marceloapaolini@gmail.com

      Eliminar