IP/Cloud doesn't perform auto-update

I have enabled IP > Cloud, and I expected it would auto-update given dns-name when my public IP address changes, based on reading relevant documentation. Quote:

ddns-enabled (yes | no)

If set to “yes” then router will send an encrypted message to the MikroTik cloud server. Server will then decrypt the message and verify that sender is an authentic Mikrotik router. If all is OK then server will create a DDNS record for this router and send response to the router. > Every minute the cloud service on the router will check if external IP address matches the one sent to server and will send encrypted update to cloud server if IP address changes.

Bolded part is what I am having issue with. My public IP changed several times, since my cable-based ISP forces DHCP lease expiration every several days. This feature was enabled for more than a several weeks now, and it never did self-update. Forcing update by issuing /ip cloud force-update works as expected. Of course, I could script it to run frequently via scheduler, but I doubt that would be the right solution.

Here’s the relevant configuration of my router.

[admin@HomeMT] > /ip cloud export verbose
# jul/26/2015 12:49:19 by RouterOS 6.29
# software id = UWXX-ZKXX
#
/ip cloud
set ddns-enabled=yes update-time=yes
/ip cloud advanced
set use-local-address=no

[admin@HomeMT] > /ip cloud print
    ddns-enabled: yes
     update-time: yes
  public-address: 188.2.xx.xx
        dns-name: 2fxx02dfxxxx.sn.mynetname.net
          status: updated
         warning: DDNS server received request from IP 188.2.xx.xx but your local IP was 192.168.0.10;
                  DDNS service might not work.

The warning

but your local IP was 192.168.0.10

indicates your router isn’t obtaining a route-able internet address on it’s WAN port. i.e. You router is behind another router with the WAN address of 188.2.xx.xx .

jebz, oh, that’s right, I forgot about my local network configuration. 192.168.0.10 is indeed assigned to my router by upstream DHCP on the cable modem, that holds actual WAN address. I will edit original question to remove suggestion about the warning.

Anyhow, my question still stands. Any ideas as to why Cloud isn’t auto-updating as advertised?

Because the WAN address of your router isn’t changing. It’s staying the same, 192.168.0.10 .

Reconfigure your cable modem to do WAN bypass and operate as a modem only not a combination modem/router.

I am not sure that is how it is supposed to work. Besides, that’s exactly the case where use-local-address=yes option would come in handy, right? Let me quote the documentation again:

Every minute the cloud service on the router will check if > external IP address matches the one sent to server > […]

This pretty clearly says that a publicly visible IP will be compared to the IP previously sent and saved in DDNS record. Dynamic DNS service serves the purpose of mapping a changing IP address to a fixed DNS, and although I can think of a scenario where I would actually want to map a dynamic local IP to a DDNS record, far more useful scenario is keeping a publicly visible IP mapped to a DDNS record, wherever in the routing chain that IP resides.

If I am forced to have a public IP address on my wan interface, that defeats the purpose and ease of use of the Cloud option. I can totally see many users in the same position as I, where they have a cable, an ADSL or another ISP-mandated device that provides connectivity to their home network, in front of their MikroTik router, without possibility to change internal routing options of said device.

+1

Yes it does sound like Mikrotik’s logic/algorithm is flawed, I have the same network topology as mrb (uplink connection is behind nat) and cloud ip doesnt auto update despite having use-local-address option.

Can anyone from Mikrotik comment on this?

This is most certainly not meant that way.

Your actual router must have the external IP. It will not detect changes on your gateways IP and we have no plans for such functionality.

You can send your LAN IP if you want, via the “use-local-address” option if you want, but detection still applies only to the address of the router.

I am maybe boring with this,but I have to say it again. Use normal dynamic dns service and appropriate script that will handle that.

Well yes, “ip cloud” offers basic features. Currently it does not offer more advanced stuff like custom names, detection of gateway IP changes etc.

Okay, thanks for the reply.

Can I ask you guys to please update docs to reflect this stance? I believe others can get confused as well, due to ambiguous wording in docs.

I am already using full-blown DynDNS script for this very purpose. I just was hoping (beyond hope, as it turns out) that things just got much simpler for MikroTik owners.

Regards

No. Unfortunately it is not simplier in case you need things that ip cloud doesn’t offer.

Hi,

I ran in the same Problem. I found out that it is much simpler to update through /ip cloud than other DDNS providers.
I posted this Script yesterday. It should do the trick:
http://forum.mikrotik.com/t/ddns-script-for-sn-mynetname-net-with-wan-interface-behind-nat/91683/1

Dattl

Hi
Great script. Thank you

Just so you know, I had the same problem with Cloud update.

The ISP gave a device that we can’t set as a simple ADSL modem, so we have DMZ to the Mikrotik behind it.
Unfortunately the ADSL is very bad, disconnects all the time, then the Mikrotik will not update the public IP for the Cloud.

So, solution:

  1. new script
    name: cloud
    /ip cloud force-update

  2. new schedule, every five minutes
    event: cloud

And now we’re happy, it forces update every 5 minutes.
mikrotik-cloudforceupdate.jpg

ok, changes the “external” to “WAN”

I hope that it makes it clear what router will look up - an IP address on its current WAN interface.

This is partially flawed logic- one of the nice features MT has builtin to their Cloud side code is its ability to recognize where the request is coming from and use that public IP if ROS is infact sending a private IP as the interface’s IP. ← this is GREAT functionality / thinking on MTs part.

however,
This also is one of the core benefits of the DDNS part of /ip cloud . If the cloud side is smart enough to set the DDNS to a non private IP (ie use the “received request from IP”) than the ROS side should be “smart” enough to run or force , force Update on some kind of schedule (even every 12h), just incase the user is not savey enough to know how to script and schedule a forced update. (and over recent years, clearly, MT has been making ROS / its Interface much easier so that the “non-tech” home users will adopt their great products - those users dont know how to script / schedule and frankly they also dont want to learn - unlike most of us.)
(btw, MT is doing this while still retaining+increasing all of the deeper power and functionality that we all love ROS for)

I understand MT / Normis ’ reasons and position in this ( just use /force update on a schedule if you are “an exception to the way /ip cloud ddns was intended to function” , if you have a private IP on your GW interface) - but this just seems like stubbornness in place of helpful/easier functionality (with no downsides that i can think of).

tks

Hi

Please assist me with a script for No-IP portal. am currently on Version 6.39.2 (mipsbe)

Thanks

A simple google search for: mikrotik ddns script
(or better yet i like to use on google : mikrotik ddns script site:forum.mikrotik.com )

will find your answer.

here are some links from that search:

http://forum.mikrotik.com/t/dynamic-dns-update-script-for-no-ip-dns-for-router-os-v-6-7/73699/1
and
http://forum.mikrotik.com/t/dynamic-dns-one-script-to-rule-them-all/59088/1

Just be sure that whatever DDNS service you use, that your account stays valid on that service (ie some of them make you “check in” every X number of months, if you are on their free tier) – i suggest using mikrotiks builtin “/ip cloud” service , if it works for your network setup (ie you dont have the issues we talk about in this thread)

hi
i have the same problem.
DDNS server received request from IP 217.219.33.126 but your local IP was 172.20.10.79; DDNS service might not work.

what is the solution ?