I had set and enabled a DNSscript to switch between DNS server IPs.
Here is the original one:
Code: Select all
/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
dhcp-server > network >dns server change :
Code: Select all
: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={}
}
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