Yeah. Unfortunately there is no simple way to do that on MikroTik.
I did play around with a layer 7 filtering option with routing marks. I believe it would actually work.
Basically what you do is create two layer7 rules… 1 to match requests to http://myip.dnsomatic.com/interface1 and one to match http://myip.dnsomatic.com/interface2 … This will work since actually it doesn’t matter what URL you request from http://myip.dnsomatic.com/ … it always just returns the IP. So then once you have matches on those rules you can create prerouting rules to add routing marks to the packets coming from your router (this way you don’t do Layer7 on all your traffic). With that mark added you could then force the requests to route out the specific interfaces.
Then once all that is setup you could use a modified version of the script I posted… I can modify it for you if you want… to just use fetch on a list of interfaces.
Does all that make sense? If I get a chance tomorrow I can play around with the REGEX, etc for the above and see if I can post some sort of example of what I’m talking about.
this No-Ip script doesn’t work on v6.18
im on NAT pls help me…
[code]# No-IP automatic Dynamic DNS update for RouterOS v6.x
#--------------- Change Values in this section to match your setup ------------------
# No-IP User account info
:local noipuser "USERNAME"
:local noippass "PASSWORD"
# Set the hostname or label of network to be updated.
# Hostnames with spaces are unsupported. Replace the value in the quotations below with your host names.
# To specify multiple hosts, separate them with commas.
:local noiphost "no-ip.org"
# Change to the name of interface that gets the dynamic IP address
:local inetinterface "GATEWAY"
#------------------------------------------------------------------------------------
# No more changes need
:global previousIP
:if ([/interface get $inetinterface value-name=running]) do={
# Get the current IP on the interface
:local currentIP [/ip address get [find interface="$inetinterface" disabled=no] address]
# Strip the net mask off the IP address
:for i from=( [:len $currentIP] - 1) to=0 do={
:if ( [:pick $currentIP $i] = "/") do={
:set currentIP [:pick $currentIP 0 $i]
}
}
# Get your previous IP address
:set previousIP [:resolve $noiphost]
:if ($currentIP != $previousIP) do={
:log info "No-IP: Current IP $currentIP is not equal to previous IP $previousIP, update needed"
:set previousIP $currentIP
# The update URL. Note the "\3F" is hex for question mark (?). Required since ? is a special character in commands.
:local url "http://dynupdate.no-ip.com/nic/update\3Fmyip=$currentIP"
:local noiphostarray
:set noiphostarray [:toarray $noiphost]
:foreach host in=$noiphostarray do={
:log info "No-IP: Sending update for $host"
/tool fetch url=($url . "&hostname=$host") user=$noipuser password=$noippass mode=http keep-result=no;
:log info "No-IP: Host $host updated on No-IP with IP $currentIP"
}
} else={
:log info "No-IP: Previous IP $previousIP is equal to current IP, no update needed"
}
} else={
:log info "No-IP: $inetinterface is not currently running, so therefore will not update."
}
# --------------------------------------------------------------------------------------
I have been running into the same as you did, but two years later… until I read this and I read your communication with OpenDNS. Thank you for sharing this.