Community discussions

MikroTik App
 
User avatar
broderick
Member Candidate
Member Candidate
Topic Author
Posts: 242
Joined: Mon Nov 30, 2020 7:44 pm

DNSscript and issues with local devices

Wed Feb 23, 2022 1:49 pm

Hi,
I had set and enabled a DNSscript to switch between DNS server IPs.
Here is the original one:
/system scheduler
add interval=30s name=DNSscript on-event=":local currentDNS [/ip dns get serve\
    r]\r\
    \n:local piholeDNS \"192.168.3.12\"\r\
    \n:local backupDNS \"1.1.1.1,1.1.1.2\"\r\
    \n:local testDomain \"www.google.com\"\r\
    \n\r\
    \n:if (\$currentDNS = \$piholeDNS) do={\r\
    \n    :do {\r\
    \n        :resolve \$testDomain server \$piholeDNS\r\
    \n    } on-error={\r\
    \n        /ip dns set servers=\$backupDNS\r\
    \n        /ip dhcp-server network set [find] dns-server=\$backupDNS;\r\
    \n    }\r\
    \n} else={\r\
    \n    :do {\r\
    \n        :resolve \$testDomain server \$piholeDNS\r\
    \n        /ip dns set servers=\$piholeDNS\r\
    \n        /ip dhcp-server network set [find] dns-server=\$piholeDNS;\r\
    \n    } on-error={}\r\
    \n}" policy=\
    ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \
    start-date=aug/15/2020 start-time=07:59:53

Since I want my Mikrotik dns->server to stick with 1.1.1.1,1.1.1.2, I modified the script this way in order to make only
dhcp-server > network >dns server change :

:local currentDNS [/ip dhcp-server network get [find] dns-server]
:local piholeDNS "192.168.3.12"
:local backupDNS "192.168.3.1"
:local testDomain "www.google.com"

:if ($currentDNS = $piholeDNS) do={
    :do {
        :resolve $testDomain server $piholeDNS
    } on-error={
        /ip dhcp-server network set [find] dns-server=$backupDNS;
    }
} else={
    :do {
        :resolve $testDomain server $piholeDNS
        /ip dhcp-server network set [find] dns-server=$piholeDNS;
    } on-error={}
}

they both work.
In the first case, if my pihole dns server is down the dns ip switches to 1.1.1.1, 1.1.1.2 both in ip->dns-> servers and in IP->dhcp server->network->dns server,
In the second case only dhcp server->network->dns server change.
However, I have some issue with the second script. I have to run ipconfig /renew on my Windows pc to make it use the backup dns server each time.
Is there a way to get around this problem?
Thanks
 
Sob
Forum Guru
Forum Guru
Posts: 9119
Joined: Mon Apr 20, 2009 9:11 pm

Re: DNSscript and issues with local devices

Thu Feb 24, 2022 6:02 am

It's expected behaviour, changes in DHCP config don't take effect instantly, only when client renews lease. You can shorten lease time, but I'm not sure if some clients won't have problems with something too short. If you want immediate reaction, then don't do anything with DHCP, but do some redirection on router instead.

Who is online

Users browsing this forum: nichky and 28 guests